KR102483848B1 - Apparatus and method for strengthening login - Google Patents
Apparatus and method for strengthening login Download PDFInfo
- Publication number
- KR102483848B1 KR102483848B1 KR1020210002555A KR20210002555A KR102483848B1 KR 102483848 B1 KR102483848 B1 KR 102483848B1 KR 1020210002555 A KR1020210002555 A KR 1020210002555A KR 20210002555 A KR20210002555 A KR 20210002555A KR 102483848 B1 KR102483848 B1 KR 102483848B1
- Authority
- KR
- South Korea
- Prior art keywords
- login
- public key
- item
- value
- web page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/128—Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
본 발명의 바람직한 실시예에 따른 로그인 강화 장치 및 방법은, 로그인 강화 기법을 적용하여 로그인 동작을 수행함으로써, 사용자의 로그인 편의성에 영향을 미치지 않으면서 크롤링(crawling)으로부터 민감 정보를 보호할 수 있고, 본 발명에 따른 로그인 강화 동작이 적용된 경우에는 크롤링 도구 제작이 어려워, 크롤링 도구 제작을 포기하게 할 수 있다.A login enhancement device and method according to a preferred embodiment of the present invention performs a login operation by applying a login enhancement technique, thereby protecting sensitive information from crawling without affecting the user's login convenience, In the case where the log-in reinforcement operation according to the present invention is applied, it is difficult to manufacture a crawling tool, and thus, it is possible to give up manufacturing a crawling tool.
Description
본 발명은 로그인 강화 장치 및 방법에 관한 것으로서, 더욱 상세하게는 웹 사이트의 로그인 동작을 수행하는, 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for enhancing login, and more particularly, to an apparatus and method for performing a log-in operation of a website.
웹 사이트는 크롤링(crawling)에 의한 침해로 인해 피해를 보고 있다. 피해에는 데이터 유출, 민감 정보의 침해, 서버 장애, 서버 운영비의 상승 등이 있다.Websites suffer from intrusion by crawling. Damages include data leakage, infringement of sensitive information, server failure, and increase in server operating costs.
크롤링에 대응하는 종래의 방법은 WAF(Web Application Firewall)를 이용한 IP(Internet Protocol) 차단, 임계치 차단, 구글의 reCaptcha 등을 이용하고 있다. 그러나, WAF를 이용한 IP 차단 방법은 가볍게 우회가 되는 문제가 있고, reCaptcha는 비용이 높아 실제 서비스에서 효과를 보기까지 오랜 기간 적용하기 어려운 문제가 있다.Conventional methods for responding to crawling use IP (Internet Protocol) blocking using WAF (Web Application Firewall), threshold blocking, Google's reCaptcha, and the like. However, the IP blocking method using WAF has a problem of being easily bypassed, and reCaptcha is expensive and difficult to apply for a long period of time until it is effective in actual service.
또한, OTP(One Time Password) 등과 같은 2차 인증 도구를 이용하는 방법도 있지만, 이는 사용자 편의성을 감소시키는 단점이 있다.In addition, there is also a method using a secondary authentication tool such as OTP (One Time Password), but this has a disadvantage of reducing user convenience.
따라서, 사용자 편의성을 유지하면서도 크롤링에 의한 침해를 방지할 수 있는 로그인 기법의 개발이 필요한 상황이다.Therefore, it is necessary to develop a login technique that can prevent infringement by crawling while maintaining user convenience.
본 발명이 이루고자 하는 목적은, 사용자의 로그인 편의성에 영향을 미치지 않으면서 크롤링(crawling)으로부터 민감 정보를 보호하기 위해, 로그인 강화 기법을 적용하여 로그인 동작을 수행하는, 로그인 강화 장치 및 방법을 제공하는 데 있다.An object of the present invention is to provide a login reinforcement device and method for performing a login operation by applying a login reinforcement technique in order to protect sensitive information from crawling without affecting the user's login convenience. there is
본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 수 있다.Other non-specified objects of the present invention may be additionally considered within the scope that can be easily inferred from the following detailed description and effects thereof.
상기의 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 로그인 강화 장치는, 사용자 단말에 설치된 웹 브라우저로부터 로그인 웹 페이지를 요청받으면, 미리 설정된 공개키 암호화 알고리즘을 기반으로 개인키와 공개키를 생성하고, 상기 로그인 웹 페이지와 상기 공개키를 상기 웹 브라우저에게 제공하는 정보 제공부; 및 상기 로그인 웹 페이지의 로그인 항목에 대한 값이 상기 공개키를 이용하여 암호화되어 있는 로그인 정보 패킷을 상기 웹 브라우저로부터 제공받으면, 상기 로그인 항목에 대한 값을 상기 개인키를 이용하여 복호화하고, 복호화된 상기 로그인 항목에 대한 값을 기반으로 로그인 동작을 수행하는 로그인 수행부;를 포함한다.In order to achieve the above object, the login reinforcement device according to a preferred embodiment of the present invention generates a private key and a public key based on a preset public key encryption algorithm when a login web page is requested from a web browser installed in a user terminal. and an information providing unit providing the login web page and the public key to the web browser; and when a login information packet in which the value of the login item of the login web page is encrypted using the public key is received from the web browser, the value of the login item is decrypted using the private key, and the decrypted and a login performer performing a login operation based on the value of the login item.
여기서, 상기 로그인 웹 페이지에 대응되는 프론트-엔드(Front-End) 코드는, 상기 공개키 암호화 알고리즘을 기반으로 상기 로그인 항목에 대한 값의 암호화를 수행하는 자바스크립트(JavaScript) 코드가 미리 설정된 난독화 기법에 의해 난독화되어 있을 수 있다.Here, the front-end code corresponding to the login web page is obfuscated by a JavaScript code that encrypts the value of the login item based on the public key encryption algorithm. It may be obfuscated by the technique.
여기서, 상기 프론트-엔드(Front-End) 코드는, 상기 공개키 암호화 알고리즘에 대하여 미리 설정된 암호화 관련 정보가 삭제되어 있을 수 있다.Here, in the front-end code, encryption related information preset for the public key encryption algorithm may be deleted.
여기서, 상기 암호화 관련 정보는, 파일 경로, 파일 명칭, 주석 및 디버깅 코드 중 적어도 하나일 수 있다.Here, the encryption-related information may be at least one of a file path, a file name, a comment, and a debugging code.
여기서, 상기 로그인 정보 패킷은, 상기 로그인 항목에 대한 값이 상기 로그인 항목의 변수와 관련성이 없는 미리 설정된 변수에 기록되어 있고, 미리 설정된 더미(dummy) 값이 상기 로그인 항목의 변수에 기록되어 있을 수 있다.Here, in the login information packet, a value for the login item may be recorded in a preset variable unrelated to a variable of the login item, and a preset dummy value may be recorded in a variable of the login item. there is.
여기서, 상기 공개키 암호화 알고리즘은, RSA(Rivest Shamir Adleman) 알고리즘일 수 있다.Here, the public key encryption algorithm may be a Rivest Shamir Adleman (RSA) algorithm.
여기서, 상기 로그인 항목은, 아이디 항목 및 비밀번호 항목을 포함할 수 있다.Here, the login item may include an ID item and a password item.
상기의 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 로그인 강화 방법은, 사용자 단말에 설치된 웹 브라우저로부터 로그인 웹 페이지를 요청받으면, 미리 설정된 공개키 암호화 알고리즘을 기반으로 개인키와 공개키를 생성하는 단계; 상기 로그인 웹 페이지와 상기 공개키를 상기 웹 브라우저에게 제공하는 단계; 상기 로그인 웹 페이지의 로그인 항목에 대한 값이 상기 공개키를 이용하여 암호화되어 있는 로그인 정보 패킷을 상기 웹 브라우저로부터 제공받으면, 상기 로그인 항목에 대한 값을 상기 개인키를 이용하여 복호화하는 단계; 및 복호화된 상기 로그인 항목에 대한 값을 기반으로 로그인 동작을 수행하는 단계;를 포함한다.In order to achieve the above object, a login enhancement method according to a preferred embodiment of the present invention generates a private key and a public key based on a preset public key encryption algorithm when a login web page is requested from a web browser installed in a user terminal. doing; providing the login web page and the public key to the web browser; decrypting the value of the login item using the private key when a login information packet in which the value of the login item of the login web page is encrypted using the public key is received from the web browser; and performing a login operation based on the value of the decrypted login item.
여기서, 상기 로그인 웹 페이지에 대응되는 프론트-엔드(Front-End) 코드는, 상기 공개키 암호화 알고리즘을 기반으로 상기 로그인 항목에 대한 값의 암호화를 수행하는 자바스크립트(JavaScript) 코드가 미리 설정된 난독화 기법에 의해 난독화되어 있을 수 있다.Here, the front-end code corresponding to the login web page is obfuscated by a JavaScript code that encrypts the value of the login item based on the public key encryption algorithm. It may be obfuscated by the technique.
여기서, 상기 프론트-엔드(Front-End) 코드는, 상기 공개키 암호화 알고리즘에 대하여 미리 설정된 암호화 관련 정보가 삭제되어 있을 수 있다.Here, in the front-end code, encryption related information preset for the public key encryption algorithm may be deleted.
여기서, 상기 로그인 정보 패킷은, 상기 로그인 항목에 대한 값이 상기 로그인 항목의 변수와 관련성이 없는 미리 설정된 변수에 기록되어 있고, 미리 설정된 더미(dummy) 값이 상기 로그인 항목의 변수에 기록되어 있을 수 있다.Here, in the login information packet, a value for the login item may be recorded in a preset variable unrelated to a variable of the login item, and a preset dummy value may be recorded in a variable of the login item. there is.
상기의 기술적 과제를 달성하기 위한 본 발명의 바람직한 실시예에 따른 컴퓨터 프로그램은 컴퓨터로 읽을 수 있는 기록 매체에 저장되어 상기한 로그인 강화 방법 중 어느 하나를 컴퓨터에서 실행시킨다.A computer program according to a preferred embodiment of the present invention for achieving the above technical problem is stored in a computer-readable recording medium and executes any one of the above login reinforcement methods on a computer.
본 발명의 바람직한 실시예에 따른 로그인 강화 장치 및 방법에 의하면, 로그인 강화 기법을 적용하여 로그인 동작을 수행함으로써, 사용자의 로그인 편의성에 영향을 미치지 않으면서 크롤링(crawling)으로부터 민감 정보를 보호할 수 있다.According to the login reinforcement device and method according to a preferred embodiment of the present invention, by performing a login operation by applying the login reinforcement technique, sensitive information can be protected from crawling without affecting the user's login convenience. .
또한, 본 발명에 따른 로그인 강화 동작이 적용된 경우에는 크롤링 도구 제작이 어려워, 크롤링 도구 제작을 포기하게 할 수 있다.In addition, when the log-in reinforcement operation according to the present invention is applied, it is difficult to manufacture a crawling tool, and it is possible to give up manufacturing a crawling tool.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below.
도 1은 본 발명의 바람직한 실시예에 따른 로그인 강화 장치를 설명하기 위한 블록도이다.
도 2는 도 1에 도시한 로그인 강화 장치의 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 바람직한 실시예에 따른 로그인 항목에 대한 값의 암호화 일례를 설명하기 위한 도면이다.
도 4는 본 발명의 바람직한 실시예에 따른 공개키와 개인키의 획득 과정의 일례를 설명하기 위한 도면이다.
도 5는 본 발명의 바람직한 실시예에 따른 자바스크립트 코드의 난독화 일례를 설명하기 위한 도면이다.
도 6은 본 발명의 바람직한 실시예에 따른 암호화 관련 정보의 일례를 설명하기 위한 도면이다.
도 7은 본 발명의 바람직한 실시예에 따른 로그인 정보 패킷의 일례를 설명하기 위한 도면이다.
도 8은 본 발명의 바람직한 실시예에 따른 로그인 강화 동작의 성능을 설명하기 위한 도면이다.
도 9는 본 발명의 바람직한 실시예에 따른 로그인 강화 동작이 적용된 경우의 크롤링 도구 제작의 어려움을 설명하기 위한 도면이다.
도 10은 본 발명의 바람직한 실시예에 따른 로그인 강화 방법을 설명하기 위한 흐름도이다.1 is a block diagram for explaining a login enhancement device according to a preferred embodiment of the present invention.
FIG. 2 is a block diagram for explaining the configuration of the login reinforcement device shown in FIG. 1 .
3 is a diagram for explaining an example of encryption of a value for a login item according to a preferred embodiment of the present invention.
4 is a diagram for explaining an example of a process of obtaining a public key and a private key according to a preferred embodiment of the present invention.
5 is a diagram for explaining an example of obfuscation of JavaScript code according to a preferred embodiment of the present invention.
6 is a diagram for explaining an example of encryption-related information according to a preferred embodiment of the present invention.
7 is a diagram for explaining an example of a login information packet according to a preferred embodiment of the present invention.
8 is a diagram for explaining the performance of a login reinforcement operation according to a preferred embodiment of the present invention.
9 is a diagram for explaining the difficulty of manufacturing a crawling tool when a log-in reinforcement operation according to a preferred embodiment of the present invention is applied.
10 is a flowchart illustrating a login reinforcement method according to a preferred embodiment of the present invention.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Advantages and features of the present invention, and methods for achieving them, will become clear with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and may be implemented in various different forms, only the present embodiments make the disclosure of the present invention complete, and common knowledge in the art to which the present invention belongs. It is provided to completely inform the person who has the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numbers designate like elements throughout the specification.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used in a meaning commonly understood by those of ordinary skill in the art to which the present invention belongs. In addition, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless explicitly specifically defined.
본 명세서에서 "제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.In this specification, terms such as "first" and "second" are used to distinguish one component from another component, and the scope of rights should not be limited by these terms. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element.
본 명세서에서 각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In this specification, identification codes (eg, a, b, c, etc.) for each step are used for convenience of explanation, and identification codes do not describe the order of each step, and each step is clearly Unless a specific order is specified, it may occur in a different order from the specified order. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.
본 명세서에서, "가진다", "가질 수 있다", "포함한다" 또는 "포함할 수 있다"등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.In this specification, expressions such as "has", "may have", "includes" or "may include" indicate the existence of a corresponding feature (eg, numerical value, function, operation, or component such as a part). indicated, and does not preclude the presence of additional features.
또한, 본 명세서에 기재된 '~부'라는 용어는 소프트웨어 또는 FPGA(field-programmable gate array) 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터 구조들 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다.In addition, the term '~unit' described in this specification means software or a hardware component such as a field-programmable gate array (FPGA) or ASIC, and '~unit' performs certain roles. However, '~ part' is not limited to software or hardware. '~bu' may be configured to be in an addressable storage medium and may be configured to reproduce one or more processors. Therefore, as an example, '~unit' refers to components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, and procedures. , subroutines, segments of program code, drivers, firmware, microcode, circuitry, data structures and variables. Functions provided within components and '~units' may be combined into smaller numbers of components and '~units' or further separated into additional components and '~units'.
이하에서 첨부한 도면을 참조하여 본 발명에 따른 로그인 강화 장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, preferred embodiments of a login enhancement device and method according to the present invention will be described in detail with reference to the accompanying drawings.
먼저, 도 1을 참조하여 본 발명의 바람직한 실시예에 따른 로그인 강화 장치에 대하여 설명한다.First, referring to FIG. 1, a login enhancement device according to a preferred embodiment of the present invention will be described.
도 1은 본 발명의 바람직한 실시예에 따른 로그인 강화 장치를 설명하기 위한 블록도이다.1 is a block diagram for explaining a login enhancement device according to a preferred embodiment of the present invention.
도 1을 참조하면, 본 발명의 바람직한 실시예에 따른 로그인 강화 장치(100)는 통신망(300)을 통해 사용자 단말(200)과 연결된다.Referring to FIG. 1 , a
로그인 강화 장치(100)는 사용자 단말(200)의 요청에 따라 웹 사이트의 로그인에 관련된 동작을 수행한다. 특히, 본 발명에 따른 로그인 강화 장치(100)는 사용자의 로그인 편의성에 영향을 미치지 않으면서 크롤링(crawling)으로부터 민감 정보를 보호하기 위해, 로그인 강화 기법을 적용하여 로그인 동작을 수행한다. 이와 같은, 본 발명에 따른 로그인 강화 동작이 적용된 경우에는 크롤링 도구 제작이 어려워, 크롤링 도구 제작을 포기하게 할 수 있다.The
여기서, 민감 정보는 로그인 후 확인할 수 있는 각종 정보를 말한다.Here, the sensitive information refers to various types of information that can be checked after logging in.
사용자 단말(200)은 설치된 웹 브라우저(210)를 통해 로그인 강화 장치(100)에 접속하여 로그인 동작에 필요한 데이터를 주고 받을 수 있다.The user terminal 200 may access the
여기서, 사용자 단말(200)은 데스크톱 컴퓨터뿐만 아니라 노트북 컴퓨터, 워크스테이션, 팜톱(palmtop) 컴퓨터, UMPC(Ultra Mobile Personal Computer), 태블릿 PC, 개인 휴대 정보 단말기(Personal Digital Assistant, PDA), 웹 패드, 스마트폰, 휴대전화 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 단말기로 이루어질 수 있다.Here, the user terminal 200 includes not only a desktop computer, but also a notebook computer, a workstation, a palmtop computer, an ultra mobile personal computer (UMPC), a tablet PC, a personal digital assistant (PDA), a web pad, It may be made of a terminal equipped with a memory means and equipped with a microprocessor, such as a smart phone, a mobile phone, etc., and having an arithmetic capability.
통신망(300)은 구내 정보 통신망(local area network, LAN), 도시권 통신망(metropolitan area network, MAN), 광역 통신망(wide area network, WAN), 인터넷 등을 포함하는 데이터 통신망뿐만 아니라 전화망 등을 포함할 수 있고, 유선과 무선을 가리지 않으며, 어떠한 통신 방식을 사용하더라도 상관없다.The
한편, 로그인 강화 장치(100)가 독립적인 장치인 것으로 도 1에 도시하였으나, 본 발명은 이에 한정되지 않고 실시예에 따라, 본 발명에 따른 로그인 강화 장치(100)는 로그인 동작을 포함하는 웹 서비스를 제공하는 웹 서버(도시하지 않음) 내에 탑재되어, 웹 서버가 본 발명에 따른 로그인 강화 동작을 수행하거나, 본 발명에 따른 로그인 강화 장치(100)는 독립적인 장치로 구현되어 웹 서버와 연결되어, 로그인 강화 장치(100)가 웹 서버를 통해 제공되는 웹 서비스 중에서 로그인 동작만을 수행하도록 구현될 수도 있다.On the other hand, although the
그러면, 도 2를 참조하여 본 발명의 바람직한 실시예에 따른 로그인 강화 장치에 대하여 보다 자세하게 설명한다.Then, with reference to FIG. 2, a login enhancement device according to a preferred embodiment of the present invention will be described in more detail.
도 2는 도 1에 도시한 로그인 강화 장치의 구성을 설명하기 위한 블록도이다.FIG. 2 is a block diagram for explaining the configuration of the login reinforcement device shown in FIG. 1 .
도 2를 참조하면, 로그인 강화 장치(100)는 정보 제공부(110) 및 로그인 수행부(130)를 포함할 수 있다.Referring to FIG. 2 , the
정보 제공부(110)는 사용자 단말(200)에 설치된 웹 브라우저(210)로부터 로그인 웹 페이지를 요청받으면, 미리 설정된 공개키 암호화 알고리즘을 기반으로 개인키와 공개키를 생성한다.When the
여기서, 공개키 암호화 알고리즘은 RSA(Rivest Shamir Adleman) 알고리즘 등을 말한다.Here, the public key encryption algorithm refers to a Rivest Shamir Adleman (RSA) algorithm or the like.
그리고, 정보 제공부(100)는 로그인 웹 페이지와 공개키를 웹 브라우저(210)에게 제공한다. 그러면, 웹 브라우저(210)는 공개키를 저장하고, 로그인 웹 페이지를 디스플레이한다. 이후, 사용자에 의해 로그인 웹 페이지의 로그인 항목에 정보가 입력되고, 로그인이 요청되면, 웹 브라우저(210)는 공개키를 이용하여 로그인 항목에 대한 값을 암호화하고, 로그인 정보 패킷을 로그인 강화 장치(100)에 제공하게 된다.And, the
여기서, 로그인 항목은 아이디 항목, 비밀번호 항목 등을 포함할 수 있다.Here, the login item may include an ID item, a password item, and the like.
그리고, 로그인 정보 패킷은 로그인 웹 페이지의 로그인 항목에 대한 값이 공개키를 이용하여 암호화되어 있다. 이때, 로그인 정보 패킷에 기록된 정보들 중에서 로그인 항목에 대한 값만이 공개키를 이용하여 암호화되어 있을 수 있다.And, in the login information packet, the value of the login item of the login web page is encrypted using a public key. At this time, only values for login items among information recorded in the login information packet may be encrypted using a public key.
이때, 로그인 웹 페이지에 대응되는 프론트-엔드(Front-End) 코드는 공개키 암호화 알고리즘을 기반으로 로그인 항목에 대한 값의 암호화를 수행하는 자바스크립트(JavaScript) 코드가 미리 설정된 난독화 기법에 의해 난독화되어 있을 수 있다. 여기서, 미리 설정된 난독화 기법은 복호화 툴이 공개되지 않거나 복호화 난이도가 보장되는 난독화 기법과 같이, 복호화 난이도가 높은 난독화 기법을 말한다.At this time, the front-end code corresponding to the login web page is obfuscated by an obfuscation technique in which the JavaScript code that encrypts the value of the login item based on the public key encryption algorithm is set in advance. may be upset Here, the preset obfuscation technique refers to an obfuscation technique having a high decoding difficulty, such as an obfuscation technique in which a decoding tool is not disclosed or a decoding difficulty is guaranteed.
또한, 프론트-엔드(Front-End) 코드는 공개키 암호화 알고리즘에 대하여 미리 설정된 암호화 관련 정보가 삭제되어 있을 수 있다. 여기서, 암호화 관련 정보는 상기 공개키 암호화 알고리즘의 종류 등을 유추할 수 있는 정보를 말하며, 파일 경로, 파일 명칭, 주석 및 디버깅 코드 중 적어도 하나일 수 있다.Also, in the front-end code, encryption-related information previously set for a public key encryption algorithm may be deleted. Here, the encryption-related information refers to information from which the type of the public key encryption algorithm can be inferred, and may be at least one of a file path, a file name, a comment, and a debugging code.
아울러, 로그인 정보 패킷은 로그인 항목에 대한 값이 로그인 항목의 변수와 관련성이 없는 미리 설정된 변수에 기록되어 있고, 미리 설정된 더미(dummy) 값이 로그인 항목의 변수에 기록되어 있을 수 있다. 예컨대, 로그인 항목이 아이디 항목과 비밀번호 항목으로 이루어진 경우, 로그인 정보 패킷 내의 "ID" 변수와 "PW" 변수에는 실제 로그인 항목에 대한 값과 전혀 상관없는 더미 값이 기록되어 있고, 실제 아이디 항목에 대한 값(암호화된 값)은 "ID" 변수와 전혀 관련성이 없는 "DATA" 변수에 기록되며, 실제 비밀번호 항목에 대한 값(암호화된 값)은 "PW" 변수와 전혀 관련성이 없는 "INFORMATION" 변수에 기록되어 있을 수 있다. 이때, 더미 값은 공개키를 이용하여 암호화된 값으로 이루어질 수 있다.In addition, in the login information packet, a value for a login item may be recorded in a preset variable unrelated to a variable of the login item, and a preset dummy value may be recorded in a variable of the login item. For example, when a login item consists of an ID item and a password item, dummy values that have nothing to do with the values for the actual login item are recorded in the "ID" variable and the "PW" variable in the login information packet, and The value (encrypted value) is written to the "DATA" variable, which has nothing to do with the "ID" variable, and the value for the actual password entry (the encrypted value) is written to the "INFORMATION" variable, which has nothing to do with the "PW" variable. may have been recorded. At this time, the dummy value may be composed of a value encrypted using a public key.
로그인 수행부(130)는 로그인 정보 패킷을 웹 브라우저(210)로부터 제공받으면, 로그인 항목에 대한 값을 개인키를 이용하여 복호화한다.When the login information packet is received from the web browser 210, the
그리고, 로그인 수행부(130)는 복호화된 로그인 항목에 대한 값을 기반으로 로그인 동작을 수행한다. 즉, 로그인 수행부(130)는 복호화된 로그인 항목에 대한 값을 미리 저장되어 있는 사용자 로그인 정보와 비교하여, 로그인 수락 여부를 판단할 수 있다.Then, the
그러면, 도 3 내지 도 7을 참조하여 본 발명의 바람직한 실시예에 따른 로그인 강화 동작의 일례에 대하여 설명한다.Next, an example of a login reinforcement operation according to a preferred embodiment of the present invention will be described with reference to FIGS. 3 to 7 .
도 3은 본 발명의 바람직한 실시예에 따른 로그인 항목에 대한 값의 암호화 일례를 설명하기 위한 도면이고, 도 4는 본 발명의 바람직한 실시예에 따른 공개키와 개인키의 획득 과정의 일례를 설명하기 위한 도면이다.3 is a diagram for explaining an example of encryption of a value for a login item according to a preferred embodiment of the present invention, and FIG. 4 is a diagram for explaining an example of a process for obtaining a public key and a private key according to a preferred embodiment of the present invention. It is a drawing for
본 발명에 따른 로그인 강화 기법 중 제1 기법은 공개키 암호화 알고리즘 기반 암호화를 적용하는 기법이다. 제1 기법은 공개키 암호화 알고리즘을 이용하여 로그인 웹 페이지를 통해 입력받은 아이디 값과 비밀번호 값의 암호화를 "로그인" 버튼이 눌러지면 수행한다. "로그인" 버튼을 눌렀을 때, 전송되는 로그인 정보 패킷은 도 3에 도시된 바와 같이, "pw" 변수와 "ID" 변수에 각각 사용자 아이디와 비밀번호로 유추되는 값이 아닌 암호화된 값이 기입되어 전달된다.Among the login reinforcement techniques according to the present invention, the first technique applies public key encryption algorithm-based encryption. The first technique uses a public key encryption algorithm to encrypt an ID value and a password value input through a login web page when a "login" button is pressed. When the "login" button is pressed, as shown in FIG. 3, the transmitted login information packet is transmitted with an encrypted value written in the "pw" variable and the "ID" variable, rather than the value inferred by the user ID and password, respectively do.
이는 공개키 암호화 알고리즘 기반 암호화를 수행한 뒤 나온 값이며, 매번 로그인 웹 페이지를 불러올 때 마다 값이 바뀌게 된다. 예컨대, 도 4에 도시된 바와 같이, 공개키와 개인키 생성은 자바의 security 모듈을 이용하여 구현될 수 있다. 즉, "keyPair.getPublic();"과 "keyPair.getPrivate();"을 통해 공개키와 개인키를 획득할 수 있다. 웹 프론트 페이지는 웹 브라우저가 백-엔드(Back-End) 서버에게 요청할 내용을 받아 전달하는 역할을 한다. 이때, 웹 브라우저가 웹 프론트 페이지를 호출할 때마다 당연히 백-엔드 서버에서는 웹 프론트 페이지가 요청한 정보들을 주기 위해 코드를 불러오게 되고, 그때마다 "keyPair.getPublic();"과 "keyPair.getPrivate();"을 호출하게 되므로 공개키와 개인키는 매번 바뀌게 된다.This is the value obtained after performing encryption based on the public key encryption algorithm, and the value changes each time the login web page is called. For example, as shown in FIG. 4 , public key and private key generation may be implemented using a Java security module. That is, the public key and the private key can be obtained through "keyPair.getPublic();" and "keyPair.getPrivate();". The web front page plays the role of receiving and delivering the contents requested by the web browser to the back-end server. At this time, whenever the web browser calls the web front page, of course, the back-end server calls the code to provide the information requested by the web front page, and each time "keyPair.getPublic();" and "keyPair.getPrivate( );" is called, so the public and private keys change each time.
따라서, 크롤링 도구 제작자는 이 로그인을 자동화하기 위해 "이 값이 무엇인지?", "암호화된 값인지?", "어떤 암호화된 값인지?", "어떤 방식으로 암호화가 이루어지는지?"에 대한 질문에 답을 할 수 있어야 한다.Therefore, in order to automate this login, crawl tool creators have asked questions such as "What is this value?", "Is this an encrypted value?", "What encrypted value?" You should be able to answer questions.
이를 모두 답한다면, 크롤링 도구를 제작할 수 있게 된다. 공개키 암호화 알고리즘이라는 것을 알게 되면 공개키를 찾게 된다. 공개키 암호화 알고리즘은 공개키와 개인키로 구분되어 암호화와 복호화를 수행하는데, 공개키는 누구에게나 제공되는 키이기 때문에, 프론트-엔드(Front-End) 코드나 로그인 정보 패킷의 흐름을 분석하면 공개키를 찾을 수 있게 된다.If you answer all of them, you can build a crawling tool. If you know that it is a public key cryptographic algorithm, you will find the public key. The public key encryption algorithm is divided into a public key and a private key to perform encryption and decryption. Since the public key is a key provided to anyone, analyzing the front-end code or the flow of login information packets reveals the public key will be able to find
이와 같이, 공개키 암호화 알고리즘을 알게 되면 공개키를 찾을 수 있게 되기 때문에, 본 발명은 공개키 암호화 알고리즘을 유추하기 어렵게 하기 위해 아래에서 설명하는 추가적인 로그인 강화 기법을 적용할 수 있다.In this way, since the public key can be found if the public key encryption algorithm is known, the present invention can apply an additional login reinforcement technique described below to make it difficult to infer the public key encryption algorithm.
도 5는 본 발명의 바람직한 실시예에 따른 자바스크립트 코드의 난독화 일례를 설명하기 위한 도면이다.5 is a diagram for explaining an example of obfuscation of JavaScript code according to a preferred embodiment of the present invention.
본 발명에 따른 로그인 강화 기법 중 제2 기법은 자바스크립트 코드의 난독화 기법이다. 실제 공개키 암호화 알고리즘 기반 암호화 과정을 수행하는 것은 프론트-엔드(Front-End) 코드에서 자바스크립트 코드가 수행한다. 이 자바스크립트 코드를 분석하면 어떤 공개키 암호화 알고리즘을 이용하고 있는지를 분석할 수 있다.Among the login reinforcement techniques according to the present invention, the second technique is a JavaScript code obfuscation technique. The actual public key encryption algorithm-based encryption process is performed by the JavaScript code in the front-end code. By analyzing this JavaScript code, you can analyze which public key encryption algorithm is being used.
따라서, 본 발명은 자바스크립트 코드의 난독화를 적용하여, 크롤러(crawler)가 자바스크립트 코드를 분석하는 것을 어렵게 한다.Accordingly, the present invention applies obfuscation of JavaScript code to make it difficult for crawlers to analyze JavaScript code.
여기서, 쉽게 복호화되는 난독화 기법(XOR 기법을 이용한 난독화 기법, dean edwards 연구원이 만든 dean.edwards.name/packer, 공개된 난독화 기법인 beautifier.io 등을 이용한 난독화 기법)은 큰 의미가 없다. 난독화 기법에도 유추할 수 있는 키워드가 있어, 이 키워드를 기반으로 공개된 복호화 툴로 쉽게 복호화된다면 무의미하게 된다. 따라서, 본 발명은 복호화 난이도가 높은 난독화 기법(http://jasob.com/, http://javascript-source.com/, https://jscrambler.com/ 와 같은 복호화 툴이 공개되지 않거나 복호화 난이도가 보장되는 난독화 기법)을 이용하여, 도 5에 도시된 바와 같이 자바스크립트 코드를 난독화할 수 있다.Here, obfuscation techniques that are easily decrypted (obfuscation techniques using the XOR technique, dean.edwards.name/packer created by dean edwards researcher, and obfuscation techniques using open obfuscation techniques such as beautifier.io ) are of great significance. does not exist. There is a keyword that can be inferred from the obfuscation technique, so if it is easily decrypted with an open decryption tool based on this keyword, it becomes meaningless. Therefore, the present invention is an obfuscation technique with a high difficulty of decoding (http://jasob.com/, http://javascript-source.com/, https://jscrambler.com/ where decryption tools such as As shown in FIG. 5, the JavaScript code may be obfuscated using an obfuscation technique with guaranteed difficulty.
도 6은 본 발명의 바람직한 실시예에 따른 암호화 관련 정보의 일례를 설명하기 위한 도면이다.6 is a diagram for explaining an example of encryption-related information according to a preferred embodiment of the present invention.
본 발명에 따른 로그인 강화 기법 중 제3 기법은 암호화 관련 정보를 삭제하는 기법이다. 분석 시에 많이 활용되고 있는 정보가 바로 프론트-엔드(Front-End) 코드 상에 노출되는 파일 경로, 파일 명칭, 주석, 디버깅 목적으로 작성해 둔 디버깅 코드이다.The third technique among login reinforcement techniques according to the present invention is a technique for deleting encryption-related information. Information that is widely used in analysis is the file path, file name, comment, and debugging code written for debugging purposes exposed on the front-end code.
공개키 암호화 알고리즘 기반 암호화를 수행하여 아이디 값과 비밀번호 값을 전달하는 로그인 정보 패킷의 구현을 어렵게 한다고 하더라도, 도 6에 도시된 바와 같이 코드 상에 주석(도 6의 ERI_1, ERI_3, ERI_4)이 되어 있다면 누구나 공개키 암호화 알고리즘 중 "RSA 알고리즘"을 이용한다고 유추할 수 있다. 따라서, 본 발명은 코드 상에서 주석을 삭제한다.Even if it is difficult to implement a login information packet that transmits an ID value and a password value by performing encryption based on a public key encryption algorithm, as shown in FIG. Anyone can infer that "RSA algorithm" is used among public key encryption algorithms. Therefore, the present invention deletes comments on the code.
또한, "js/auth/rsa/"라는 파일 경로(즉, 프론트 리소스 파일명)(도 6의 ERI_2)를 이용하여 공개키 암호화 알고리즘을 유추할 수 있기 때문에, 본 발명은 파일 경로도 삭제한다.In addition, since the public key encryption algorithm can be inferred using the file path "js/auth/rsa/" (that is, the front resource file name) (ERI_2 in FIG. 6), the present invention also deletes the file path.
또한, 디버깅 목적으로 "else(예외 처리)한 부분"에서 오류 발생 시 "Invalid RSA public key"라는 경고(alert)가 발생되도록 작성(도 6의 ERI_5)되어 있는 경우, 이 부분도 크롤링 도구 제작자가 분석 시에 에러가 발생한다면 RSA 암호화를 유추할 수 있는 내용이므로, 본 발명은 디버깅 코드도 삭제한다. 예컨대, 서비스에 코드를 배포하기 전에 코드를 저장하는 git 등과 같은 저장소를 사용한다. git 등과 같은 저장소는 검색 기능을 제공하는데, 공개키 암호화 알고리즘과 직간접적으로 관련성이 있는 키워드(예컨대, RSA 등)를 이용하여 검색하면, 해당 키워드가 삽입된 코드들이 나열되고, 거기서 공개키 암호화 알고리즘을 유추할 수 있는 디버깅 코드를 삭제할 수 있다.In addition, if an error occurs in the "else (exception handling) part" for debugging purposes, if an alert called "Invalid RSA public key" is generated (ERI_5 in Fig. 6), this part is also created by the crawling tool producer If an error occurs during analysis, since RSA encryption can be inferred, the present invention also deletes the debugging code. For example, use a repository such as git to store the code before deploying it to the service. Repositories such as git provide a search function. If you search using a keyword (e.g., RSA, etc.) directly or indirectly related to a public key encryption algorithm, codes with the keyword inserted are listed, and the public key encryption algorithm Debugging code that can be inferred can be deleted.
도 7은 본 발명의 바람직한 실시예에 따른 로그인 정보 패킷의 일례를 설명하기 위한 도면이다.7 is a diagram for explaining an example of a login information packet according to a preferred embodiment of the present invention.
본 발명에 따른 로그인 강화 기법 중 제4 기법은 로그인 정보 패킷 내의 변수명 감추기 기법이다. 즉, "ID" 변수와 "pw" 변수가 있다면, 당연히 로그인 웹 페이지로부터 전달받은 사용자 아이디 값과 비밀번호 값은 이 변수에 전달된다고 판단하게 된다.A fourth technique among login reinforcement techniques according to the present invention is a technique for hiding variable names in a login information packet. That is, if there is an "ID" variable and a "pw" variable, it is naturally determined that the user ID value and password value transmitted from the login web page are transmitted to these variables.
하지만, 본 발명은 실제 아이디 값과 비밀번호 값은 이와 연관 없어 보이는 변수를 통해 전달하고, "ID" 변수와 "pw" 변수에는 암호화된 더미 값을 넣어 전달한다. 즉, 도 7에 도시된 바와 같이, "pw" 변수와 "ID" 변수에는 각각 더미 값(도 7의 DM_V1과 DM_V2)을 넣고, "Value1" 변수와 "Value2" 변수에는 각각 실제 아이디 값과 비밀번호 값(도 7의 ID_V와 PW_V)을 넣을 수 있다. 이에 따라, 로그인 정보 패킷만으로는 실제 아이디 값과 비밀번호 값이 어디에 기록되어 있는지 확인할 수 없다.However, in the present invention, actual ID and password values are transmitted through variables that do not seem to be related thereto, and encrypted dummy values are transmitted to the "ID" variable and the "pw" variable. That is, as shown in FIG. 7, dummy values (DM_V1 and DM_V2 in FIG. 7) are put into the "pw" and "ID" variables, respectively, and real ID values and passwords are respectively put into the "Value1" and "Value2" variables. Values (ID_V and PW_V in FIG. 7) can be entered. Accordingly, it is not possible to determine where the actual ID value and password value are recorded using only the login information packet.
그러면, 도 8 및 도 9를 참조하여 본 발명의 바람직한 실시예에 따른 로그인 강화 동작의 성능에 대하여 설명한다.Next, the performance of the login reinforcement operation according to the preferred embodiment of the present invention will be described with reference to FIGS. 8 and 9 .
도 8은 본 발명의 바람직한 실시예에 따른 로그인 강화 동작의 성능을 설명하기 위한 도면이고, 도 9는 본 발명의 바람직한 실시예에 따른 로그인 강화 동작이 적용된 경우의 크롤링 도구 제작의 어려움을 설명하기 위한 도면이다.8 is a diagram for explaining the performance of a login reinforcement operation according to a preferred embodiment of the present invention, and FIG. it is a drawing
본 발명에 따른 로그인 강화 동작은 도 8에 도시된 바와 같이 사용자의 로그인 편의성에 영향을 미치지 않으면서 크롤링(crawling)으로부터 민감 정보를 보호할 수 있다.As shown in FIG. 8 , the login reinforcement operation according to the present invention can protect sensitive information from crawling without affecting the user's login convenience.
또한, 도 9에 도시된 바와 같이, 본 발명에 따른 로그인 강화 동작이 적용된 시스템에 대한 크롤링 도구 제작을 하기 위해서는 여러 과정(로그인 웹 페이지 분석 가능 여부 -> 로그인 정보 패킷 분석 가능 여부 -> 난독화 해제 가능 여부 -> 암호화 방식 판단 가능 여부 -> 공개키 확인 가능 여부 -> 로그인 정보 패킷 내 변수 확인 가능 여부 -> 프로그래밍 구현 가능 여부))을 다 통과해야 하고, 현실적으로 이러한 여러 과정을 다 통과하는 것은 어려움이 있게 때문에, 크롤링 도구 제작을 포기하게 할 수 있다.In addition, as shown in FIG. 9, in order to create a crawling tool for the system to which the login reinforcement operation according to the present invention is applied, several processes (whether the login web page can be analyzed -> whether the login information packet can be analyzed -> deobfuscation Whether it is possible -> whether it is possible to determine the encryption method -> whether it is possible to check the public key -> whether it is possible to check the variables in the login information packet -> whether it is possible to implement programming) Because of this, you can give up on making crawl tools.
즉, 본 발명은 민감 정보의 침해를 위해 로그인 자동화가 필요한 크롤링 도구 제작 시 필요한 투자 대비 수익률(Return on Investment, ROI)을 낮추어 크롤링 도구 제작을 포기하게 한다.In other words, the present invention lowers the return on investment (ROI) required when creating a crawling tool that requires log-in automation for invasion of sensitive information, thereby giving up crawling tool production.
그러면, 도 10을 참조하여 본 발명의 바람직한 실시예에 따른 로그인 강화 방법에 대하여 설명한다.Next, a login reinforcement method according to a preferred embodiment of the present invention will be described with reference to FIG. 10 .
도 10은 본 발명의 바람직한 실시예에 따른 로그인 강화 방법을 설명하기 위한 흐름도이다.10 is a flowchart illustrating a login reinforcement method according to a preferred embodiment of the present invention.
도 10을 참조하면, 사용자 단말(200)이 로그인 웹 페이지를 요청하면(S110), 로그인 강화 장치(100)는 미리 설정된 공개키 암호화 알고리즘을 기반으로 개인키와 공개키를 생성한다(S120).Referring to FIG. 10 , when the user terminal 200 requests a login web page (S110), the
여기서, 공개키 암호화 알고리즘은 RSA 알고리즘 등을 말한다.Here, the public key encryption algorithm refers to an RSA algorithm or the like.
그런 다음, 로그인 강화 장치(100)는 로그인 웹 페이지와 공개키를 사용자 단말(200)에 제공한다(S130).Then, the
그러면, 사용자 단말(200)은 공개키를 저장하고, 로그인 웹 페이지를 디스플레이한다(S140).Then, the user terminal 200 stores the public key and displays a login web page (S140).
이후, 사용자에 의해 로그인 웹 페이지의 로그인 항목에 정보가 입력되고, 로그인이 요청되면(S150), 사용자 단말(200)은 공개키를 이용하여 로그인 항목에 대한 값을 암호화한다(S160).Thereafter, when information is input to the login item of the login web page by the user and login is requested (S150), the user terminal 200 encrypts the value of the login item using the public key (S160).
여기서, 로그인 항목은 아이디 항목, 비밀번호 항목 등을 포함할 수 있다.Here, the login item may include an ID item, a password item, and the like.
그런 다음, 사용자 단말(200)은 로그인 정보 패킷을 로그인 강화 장치(100)에 제공한다(S170).Then, the user terminal 200 provides the login information packet to the login enhancement device 100 (S170).
여기서, 로그인 정보 패킷은 로그인 웹 페이지의 로그인 항목에 대한 값이 공개키를 이용하여 암호화되어 있다.Here, in the login information packet, a value for a login item of a login web page is encrypted using a public key.
이때, 로그인 웹 페이지에 대응되는 프론트-엔드(Front-End) 코드는 공개키 암호화 알고리즘을 기반으로 로그인 항목에 대한 값의 암호화를 수행하는 자바스크립트 코드가 미리 설정된 난독화 기법에 의해 난독화되어 있을 수 있다. 여기서, 미리 설정된 난독화 기법은 복호화 툴이 공개되지 않거나 복호화 난이도가 보장되는 난독화 기법과 같이, 복호화 난이도가 높은 난독화 기법을 말한다.At this time, the front-end code corresponding to the login web page may have the JavaScript code that encrypts the value of the login item based on the public key encryption algorithm and is obfuscated by a pre-set obfuscation technique. can Here, the preset obfuscation technique refers to an obfuscation technique having a high decoding difficulty, such as an obfuscation technique in which a decoding tool is not disclosed or a decoding difficulty is guaranteed.
또한, 프론트-엔드(Front-End) 코드는 공개키 암호화 알고리즘에 대하여 미리 설정된 암호화 관련 정보가 삭제되어 있을 수 있다. 여기서, 암호화 관련 정보는 상기 공개키 암호화 알고리즘의 종류 등을 유추할 수 있는 정보를 말하며, 파일 경로, 파일 명칭, 주석 및 디버깅 코드 중 적어도 하나일 수 있다.Also, in the front-end code, encryption-related information previously set for a public key encryption algorithm may be deleted. Here, the encryption-related information refers to information from which the type of the public key encryption algorithm can be inferred, and may be at least one of a file path, a file name, a comment, and a debugging code.
아울러, 로그인 정보 패킷은 로그인 항목에 대한 값이 로그인 항목의 변수와 관련성이 없는 미리 설정된 변수에 기록되어 있고, 미리 설정된 더미(dummy) 값이 로그인 항목의 변수에 기록되어 있을 수 있다.In addition, in the login information packet, a value for a login item may be recorded in a preset variable unrelated to a variable of the login item, and a preset dummy value may be recorded in a variable of the login item.
그러면, 로그인 강화 장치(100)는 로그인 항목에 대한 값을 개인키를 이용하여 복호화한다(S180).Then, the
그런 다음, 로그인 강화 장치(100)는 복호화된 로그인 항목에 대한 값을 기반으로 로그인 동작을 수행한다(S190).Then, the
즉, 로그인 강화 장치(100)는 복호화된 로그인 항목에 대한 값을 미리 저장되어 있는 사용자 로그인 정보와 비교하여, 로그인 수락 여부를 판단할 수 있다.That is, the
이상에서 설명한 본 발명의 실시예를 구성하는 모든 구성요소들이 하나로 결합하거나 결합하여 동작하는 것으로 기재되어 있다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 또한, 이와 같은 컴퓨터 프로그램은 USB 메모리, CD 디스크, 플래쉬 메모리 등과 같은 컴퓨터가 읽을 수 있는 기록 매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 기록 매체로서는 자기기록매체, 광 기록매체 등이 포함될 수 있다.Even though all components constituting the embodiments of the present invention described above are described as being combined or operated as one, the present invention is not necessarily limited to these embodiments. That is, within the scope of the object of the present invention, all of the components may be selectively combined with one or more to operate. In addition, although all of the components may be implemented as a single independent piece of hardware, some or all of the components are selectively combined to perform some or all of the combined functions in one or a plurality of pieces of hardware. It may be implemented as a computer program having. In addition, such a computer program can implement an embodiment of the present invention by being stored in a computer readable recording medium such as a USB memory, a CD disk, a flash memory, etc., and read and executed by a computer. A recording medium of a computer program may include a magnetic recording medium, an optical recording medium, and the like.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely an example of the technical idea of the present invention, and those skilled in the art can make various modifications, changes, and substitutions without departing from the essential characteristics of the present invention. will be. Therefore, the embodiments disclosed in the present invention and the accompanying drawings are not intended to limit the technical idea of the present invention, but to explain, and the scope of the technical idea of the present invention is not limited by these embodiments and the accompanying drawings. . The protection scope of the present invention should be construed according to the claims below, and all technical ideas within the equivalent range should be construed as being included in the scope of the present invention.
100 : 로그인 강화 장치,
110 : 정보 제공부,
130 : 로그인 수행부,
200 : 사용자 단말,
210 : 웹 브라우저,
300 : 통신망100: login hardening device,
110: information provision unit,
130: login execution unit,
200: user terminal,
210: web browser,
300: communication network
Claims (12)
상기 로그인 웹 페이지의 로그인 항목에 대한 값이 상기 공개키를 이용하여 암호화되어 있는 로그인 정보 패킷을 상기 웹 브라우저로부터 제공받으면, 상기 로그인 항목에 대한 값을 상기 개인키를 이용하여 복호화하고, 복호화된 상기 로그인 항목에 대한 값을 기반으로 로그인 동작을 수행하는 로그인 수행부; 를 포함하고,
상기 로그인 웹 페이지에 대응되는 프론트-엔드(Front-End) 코드는 상기 공개키 암호화 알고리즘을 기반으로 상기 로그인 항목에 대한 값의 암호화를 수행하는 자바스크립트(JavaScript) 코드가 미리 설정된 난독화 기법에 의해 난독화되어 있고,
상기 프론트-엔드(Front-End) 코드는 상기 공개키 암호화 알고리즘에 대하여 미리 설정된 암호화 관련 정보가 삭제되어 있으며,
상기 암호화 관련 정보는 파일 경로, 파일 명칭, 주석 및 디버깅 코드를 포함하는,
로그인 강화 장치.An information provider for generating a private key and a public key based on a preset public key encryption algorithm when a login web page is requested from a web browser installed in a user terminal, and providing the login web page and the public key to the web browser. ; and
When a login information packet in which the value of the login item of the login web page is encrypted using the public key is received from the web browser, the value of the login item is decrypted using the private key, and the decrypted A login performer performing a login operation based on the value of the login item; including,
The front-end code corresponding to the login web page is an obfuscation technique in which a JavaScript code that encrypts the value of the login item based on the public key encryption algorithm is set in advance. obfuscated,
In the front-end code, encryption related information preset for the public key encryption algorithm is deleted,
The encryption-related information includes a file path, file name, comments, and debugging code.
Login Enhancer.
상기 로그인 정보 패킷은,
상기 로그인 항목에 대한 값이 상기 로그인 항목의 변수와 관련성이 없는 미리 설정된 변수에 기록되어 있고, 미리 설정된 더미(dummy) 값이 상기 로그인 항목의 변수에 기록되어 있는,
로그인 강화 장치.In paragraph 1,
The login information packet,
The value of the login item is recorded in a preset variable unrelated to the variable of the login item, and a preset dummy value is recorded in the variable of the login item.
Login Enhancer.
상기 공개키 암호화 알고리즘은,
RSA(Rivest Shamir Adleman) 알고리즘인,
로그인 강화 장치.In paragraph 1,
The public key encryption algorithm,
RSA (Rivest Shamir Adleman) algorithm,
Login Enhancer.
상기 로그인 항목은,
아이디 항목 및 비밀번호 항목을 포함하는,
로그인 강화 장치.In paragraph 1,
The login item is
Including ID items and password items,
Login Enhancer.
상기 로그인 웹 페이지와 상기 공개키를 상기 웹 브라우저에게 제공하는 단계;
상기 로그인 웹 페이지의 로그인 항목에 대한 값이 상기 공개키를 이용하여 암호화되어 있는 로그인 정보 패킷을 상기 웹 브라우저로부터 제공받으면, 상기 로그인 항목에 대한 값을 상기 개인키를 이용하여 복호화하는 단계; 및
복호화된 상기 로그인 항목에 대한 값을 기반으로 로그인 동작을 수행하는 단계; 를 포함하고,
상기 로그인 웹 페이지에 대응되는 프론트-엔드(Front-End) 코드는 상기 공개키 암호화 알고리즘을 기반으로 상기 로그인 항목에 대한 값의 암호화를 수행하는 자바스크립트(JavaScript) 코드가 미리 설정된 난독화 기법에 의해 난독화되어 있고,
상기 프론트-엔드(Front-End) 코드는 상기 공개키 암호화 알고리즘에 대하여 미리 설정된 암호화 관련 정보가 삭제되어 있으며,
상기 암호화 관련 정보는 파일 경로, 파일 명칭, 주석 및 디버깅 코드를 포함하는,
로그인 강화 방법.generating a private key and a public key based on a preset public key encryption algorithm when a login web page is requested from a web browser installed in a user terminal;
providing the login web page and the public key to the web browser;
decrypting the value of the login item using the private key when a login information packet in which the value of the login item of the login web page is encrypted using the public key is received from the web browser; and
performing a login operation based on the value of the decrypted login item; including,
The front-end code corresponding to the login web page is an obfuscation technique in which a JavaScript code that encrypts the value of the login item based on the public key encryption algorithm is set in advance. obfuscated,
In the front-end code, encryption related information preset for the public key encryption algorithm is deleted,
The encryption-related information includes a file path, file name, comments, and debugging code.
How to harden your login.
상기 로그인 정보 패킷은,
상기 로그인 항목에 대한 값이 상기 로그인 항목의 변수와 관련성이 없는 미리 설정된 변수에 기록되어 있고, 미리 설정된 더미(dummy) 값이 상기 로그인 항목의 변수에 기록되어 있는,
로그인 강화 방법.In paragraph 8,
The login information packet,
The value of the login item is recorded in a preset variable unrelated to the variable of the login item, and a preset dummy value is recorded in the variable of the login item.
How to harden your login.
A computer program stored in a computer-readable recording medium in order to execute the login reinforcement method according to any one of claims 8 or 11 on a computer.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020210002555A KR102483848B1 (en) | 2021-01-08 | 2021-01-08 | Apparatus and method for strengthening login |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020210002555A KR102483848B1 (en) | 2021-01-08 | 2021-01-08 | Apparatus and method for strengthening login |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20220100279A KR20220100279A (en) | 2022-07-15 |
| KR102483848B1 true KR102483848B1 (en) | 2023-02-07 |
Family
ID=82400787
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020210002555A Active KR102483848B1 (en) | 2021-01-08 | 2021-01-08 | Apparatus and method for strengthening login |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR102483848B1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102802653B1 (en) * | 2025-01-15 | 2025-05-07 | 주식회사 피앤피시큐어 | Method and system for automatically reinforcing authentication functions in a communication network environment |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008245145A (en) * | 2007-03-28 | 2008-10-09 | D I System Co Ltd | Security program and server |
| WO2015162985A1 (en) * | 2014-04-25 | 2015-10-29 | 株式会社セキュアブレイン | Illicit activity sensing network system and illicit activity sensing method |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100452766B1 (en) * | 2001-05-30 | 2004-10-14 | 월드탑텍(주) | Method for cryptographing a information |
| US7961878B2 (en) * | 2007-10-15 | 2011-06-14 | Adobe Systems Incorporated | Imparting cryptographic information in network communications |
-
2021
- 2021-01-08 KR KR1020210002555A patent/KR102483848B1/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008245145A (en) * | 2007-03-28 | 2008-10-09 | D I System Co Ltd | Security program and server |
| WO2015162985A1 (en) * | 2014-04-25 | 2015-10-29 | 株式会社セキュアブレイン | Illicit activity sensing network system and illicit activity sensing method |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20220100279A (en) | 2022-07-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7545419B2 (en) | Ransomware Mitigation in Integrated and Isolated Applications | |
| Nadikattu | IoT and the issue of data privacy | |
| Vorakulpipat et al. | Recent challenges, trends, and concerns related to IoT security: An evolutionary study | |
| US11790106B1 (en) | Methods for protecting data | |
| US20180068124A1 (en) | Systems and methods for detecting sensitive information leakage while preserving privacy | |
| GB2621045A (en) | Encrypted cache protection | |
| CN105681039A (en) | Method and device for secret key generation and corresponding decryption | |
| Mayrhofer | An architecture for secure mobile devices | |
| EP3563548B1 (en) | Historic data breach detection | |
| KR102483848B1 (en) | Apparatus and method for strengthening login | |
| CN117708798A (en) | Method and system for controlling blockchain terminal equipment based on cryptography | |
| Ang et al. | Unveiling the covert vulnerabilities in multi-factor authentication protocols: a systematic review and security analysis | |
| CN111831978B (en) | A method and device for protecting configuration files | |
| CN113946801B (en) | Python source code protection method and device based on SGX | |
| CN103605927A (en) | Encryption and decryption method based on embedded Linux system | |
| Alluhaybi et al. | Achieving self-protection and self-communication features for security of agentbased systems | |
| Sharma et al. | Are PETs (Privacy Enhancing Technologies) Giving Protection for Smartphones?--A Case Study | |
| CN115048662A (en) | File protection method, device, equipment and storage medium | |
| US11582248B2 (en) | Data breach protection | |
| Dano | Systems Engineering Integration and Test Challenges due to Security Measures in a Cloud‐Based System | |
| TWI640928B (en) | System for generating and decrypting two-dimensional codes and method thereof | |
| Azhar et al. | Big Data Security Issues: A Review | |
| Sridhar | Enhancing website security through prevention: SQL and data inference injections | |
| Vignesh et al. | Attribute based data management in crypt cloud | |
| Khavya et al. | Forensic analysis and security assessment in Android m-Banking applications: A survey |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
| R17-X000 | Change to representative recorded |
St.27 status event code: A-3-3-R10-R17-oth-X000 |
|
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| R15-X000 | Change to inventor requested |
St.27 status event code: A-3-3-R10-R15-oth-X000 |
|
| R16-X000 | Change to inventor recorded |
St.27 status event code: A-3-3-R10-R16-oth-X000 |
|
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
| U11 | Full renewal or maintenance fee paid |
Free format text: ST27 STATUS EVENT CODE: A-4-4-U10-U11-OTH-PR1001 (AS PROVIDED BY THE NATIONAL OFFICE) Year of fee payment: 4 |