KR20190101118A - Apparatus and method to encrypt key input in document object model level - Google Patents

Apparatus and method to encrypt key input in document object model level Download PDF

Info

Publication number
KR20190101118A
KR20190101118A KR1020180021076A KR20180021076A KR20190101118A KR 20190101118 A KR20190101118 A KR 20190101118A KR 1020180021076 A KR1020180021076 A KR 1020180021076A KR 20180021076 A KR20180021076 A KR 20180021076A KR 20190101118 A KR20190101118 A KR 20190101118A
Authority
KR
South Korea
Prior art keywords
encryption
input
user input
unit
key
Prior art date
Application number
KR1020180021076A
Other languages
Korean (ko)
Other versions
KR102109864B1 (en
Inventor
심재원
Original Assignee
주식회사 알파비트
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 주식회사 알파비트 filed Critical 주식회사 알파비트
Priority to KR1020180021076A priority Critical patent/KR102109864B1/en
Publication of KR20190101118A publication Critical patent/KR20190101118A/en
Application granted granted Critical
Publication of KR102109864B1 publication Critical patent/KR102109864B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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)

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)

Abstract

Disclosed are an apparatus for encrypting key input in a document object model (DOM) level and a method thereof. The apparatus for encrypting key input in a DOM level interprets a web page file of a web page in the DOM level to generate a DOM tree structure, sets an encryption mode in accordance with a type of a key event, sets a flag so that the key even generated after setting the encryption mode is not to propagated to a target object or propagated to the outside, and encrypts and stores user input inputted after setting the encryption mode.

Description

문서객체모델 레벨의 키 입력 암호화 장치 및 방법{APPARATUS AND METHOD TO ENCRYPT KEY INPUT IN DOCUMENT OBJECT MODEL LEVEL}Apparatus and method for key object encryption at document object model level {APPARATUS AND METHOD TO ENCRYPT KEY INPUT IN DOCUMENT OBJECT MODEL LEVEL}

본 발명은 인터넷 환경에서 사용자 입력을 암호화하는 장치 및 방법에 관한 것으로, 문서객체모델(DOM: Document Object Model) 레벨(level)에서의 키 입력 암호화 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for encrypting user input in an Internet environment, and more particularly, to an apparatus and method for encrypting a key input at a Document Object Model (DOM) level.

현재, 해킹 등과 같이 개인정보가 노출될 수 있는 인터넷 환경에서는 다양한 방법으로 사용자가 입력한 정보에 대한 보안을 실현하고 있다. 대표적인 예로 키보드 보안 솔루션이 있다. 키보드 보안 솔루션은 사용자가 키보드를 이용하여 입력하는 ID, 비밀번호 등의 중요 정보를 암호화해 해킹으로부터 보호하는 솔루션이다.Currently, in the Internet environment where personal information may be exposed such as hacking, security of information input by a user is realized in various ways. A good example is keyboard security solutions. Keyboard security solution is a solution that encrypts sensitive information such as ID and password that a user inputs using the keyboard and protects it from hacking.

키보드 보안 솔루션에 대한 구체적인 예를 들면, 사용자는 인터넷 뱅킹을 위해 비밀번호를 입력할 시에 키보드 대신에 마우스를 이용하여 입력하게 하는 보안프로그램을 실행시키고 보안프로그램에서 제공하는 숫자화면에서 비밀번호를 선택한다. 현재 이러한 보안프로그램을 이용하기 위하여 별도의 액티브(active)-X 프로그램을 필요로 한다.As a specific example of a keyboard security solution, a user executes a security program that allows a user to enter a password for Internet banking using a mouse instead of a keyboard, and selects a password from a numeric screen provided by the security program. Currently, a separate active-X program is required to use this security program.

이와 같이, 현재의 키보드 보안 솔루션은 키보드 보안을 위한 보안프로그램 및 액티브 X 프로그램이 있어야 하는 번거로움이 있고, 그 사용에서도 보안프로그램을 실행한 후 마우스로 일일이 클릭을 해야 하는 번거로움이 있다.As such, the current keyboard security solution is cumbersome to have a security program and an ActiveX program for keyboard security, and even in that use, there is a hassle of having to click each mouse after executing the security program.

또한, 현재의 키보드 보안 솔루션은 자바스크립트에 의해 실행되는 것으로, 이러한 자바스크립트의 실행은, 문서객체모델(DOM)에서 이미 입력된 사용자의 입력 예를 들어, 비밀번호 등을 HTML 또는 XML 문서의 해당 객체(Object)로 전파(propagation)시킨 이후에 이루어진다. 때문에, 문서객체모델에 의해 생성된 DOM 트리구조의 각 객체 간에서 이벤트 전파가 이루어질 때 외부에서 전파 중인 이벤트를 가로채는 후킹(hooking)이 발생할 수 있는 문제가 있다. In addition, current keyboard security solutions are executed by JavaScript, which executes the user's input already entered in the Document Object Model (DOM), for example, a password, etc. in the corresponding object of the HTML or XML document. This is done after propagation to (Object). Therefore, when event propagation is performed between objects of the DOM tree structure generated by the document object model, there is a problem in that hooking may be generated to intercept an externally propagating event.

본 발명이 해결하고자 하는 과제는 사용자 입력을 문서객체모델에서 암호화하는 문서객체모델 레벨의 키 입력 암호화 장치 및 방법을 제공하는 것이다.An object of the present invention is to provide an apparatus and method for encrypting a key input at a document object model level for encrypting user input in a document object model.

또한, 본 발명이 해결하고자 하는 과제는 문서객체모델 계층 구조 내에서 사용자 입력이 객체로 전파되지 않게 하여 문서객체모델 내에서의 후킹을 방지하는 문서객체모델 레벨의 키 입력 암호화 장치 및 방법을 제공하는 것이다. Another object of the present invention is to provide an apparatus and method for encrypting a key object at a document object model level, which prevents hooking in the document object model by preventing user input from being propagated to the object in the document object model hierarchy. will be.

상기 과제 이외에도 구체적으로 언급되지 않은 다른 과제를 달성하는 데 본 발명에 따른 실시 예가 사용될 수 있다.In addition to the above object, embodiments according to the present invention can be used to achieve other objects not specifically mentioned.

상기 과제를 해결하기 위한 본 발명의 실시 예에 따르면, 문서객체모델 레벨의 키 입력 암호화 장치가 제공된다. 이 키 입력 암호화 장치는 입력 수단을 통해 입력되는 사용자 입력을 수신하는 키 입력부, 키 입력부를 통해 입력한 사용자 입력에 대응하는 키 이벤트를 파악하고 이벤트에 대응된 타겟 객체를 파악하는 키이벤트 파악부, 서버로부터 새로운 웹페이지의 웹페이지 파일을 수신하면 해당 웹페이지 파일을 해석하여 DOM 트리구조를 생성하고, 키 이벤트의 종류에 따라 암호화 모드를 설정한 후 입력되는 사용자 입력이 타겟 객체로 전파되거나 외부로 전파되지 않게 하며, 암호화 모드 설정 후 입력되는 사용자 입력에 대해 암호화가 이루어지게 하는 DOM부, DOM부로부터 수신되는 사용자 입력을 암호화하고 암호화한 암호화값을 저장하는 암호화부, 암호화부에 의해 암호화된 암호화값을 저장하는 저장부, 그리고 사용자 단말과 서버와의 인터넷 통신을 담당하는 통신부를 포함한다.According to an embodiment of the present invention for solving the above problems, a key input encryption apparatus of a document object model level is provided. The key input encryption apparatus includes a key input unit for receiving a user input input through an input means, a key event identification unit for identifying a key event corresponding to the user input input through the key input unit, and identifying a target object corresponding to the event; When the web page file of the new web page is received from the server, the web page file is interpreted to generate the DOM tree structure, and after setting the encryption mode according to the type of key event, the user input that is input is propagated to the target object, or Do not propagate, the DOM unit to encrypt the user input input after setting the encryption mode, the encryption unit for encrypting the user input received from the DOM unit and storing the encrypted encryption value, the encryption encrypted by the encryption unit Storage unit for storing the value, and Internet communication between the user terminal and the server It includes a communication unit.

암호화부는 순차적으로 입력되는 복수의 사용자 입력에 대하여 대칭키를 이용하여 암호화를 수행하되, 이전에 암호화된 암호화값이 있는 경우에 암호화값을 복호화한 후 이전 입력된 사용자 입력과 현재 입력된 사용자 입력을 합치고 합친 사용자 입력을 대칭키를 이용하여 암호화한다.The encryption unit encrypts a plurality of sequentially input user inputs using a symmetric key. If there is a previously encrypted encryption value, the encryption unit decrypts the encryption value and then replaces the previously input user input with the currently input user input. Merge and merge user input using symmetric keys.

암호화부는 제1 사용자 입력을 암호화하여 저장한 후 제1 사용자 입력과 무관한 표기가 사용자 단말의 화면에 표시되게 한다.The encryption unit encrypts and stores the first user input so that a mark not related to the first user input is displayed on the screen of the user terminal.

DOM부는 암호화 모드 설정 후 수신되는 사용자 입력이 <html> 객체 및 <html> 객체 이후의 객체로 전파되지 않게 하고, DOM 트리구조의 객체에서 외부로 이벤트가 전파되지 않게 한다.The DOM unit prevents the user input received after setting the encryption mode from being propagated to the <html> object and the object after the <html> object, and the event propagation from the object of the DOM tree structure to the outside.

서버는 암호화된 암호값, 암호화된 대칭키 그리고 식별정보를 포함하여 전달받는 경우, 서블릿 필터를 통해 암호화된 암호값을 복호화할 수 있다.상기 과제를 해결하기 위한 본 발명의 실시 예에 따르면, 문서객체모델 레벨의 키 입력 암호화 방법이 제공된다. 이 키 입력 암호화 방법은 DOM(Document Object Model) 레벨에서 웹페이지의 웹페이지 파일을 해석하여 DOM 트리구조를 생성하는 단계, DOM 레벨에서 키 이벤트의 종류에 따라 암호화 모드를 설정하는 단계, DOM 레벨에서 상기 암호화 모드를 설정하면 발생된 키 이벤트가 타겟 객체로 전파되거나 외부로 전파되지 않게 플래그를 설정하는 단계, 그리고 DOM 레벨에서 암호화 모드 설정 후 입력되는 사용자 입력을 암호화하고 저장하는 단계를 포함한다.When the server receives the encrypted cipher value, the encrypted symmetric key and the identification information, the server may decrypt the encrypted cipher value through the servlet filter. According to an embodiment of the present invention for solving the above problems, An object model level keystroke encryption method is provided. This keystroke encryption method involves creating a DOM tree structure by interpreting a webpage file of a webpage at the Document Object Model (DOM) level, setting the encryption mode according to the type of key event at the DOM level, and at the DOM level. The setting of the encryption mode includes setting a flag so that the generated key event is not propagated to the target object or propagated to the outside, and encrypting and storing a user input input after setting the encryption mode at the DOM level.

사용자 입력을 암호화하고 저장하는 단계는, 순차적으로 입력되는 복수의 사용자 입력에 대하여 대칭키를 이용하여 암호화를 수행하되, 이전에 암호화된 암호화값이 있는 경우에 암호화값을 복호화한 후 이전 입력된 사용자 입력과 현재 입력된 사용자 입력을 합치고 합친 사용자 입력을 대칭키를 이용하여 암호화한다.The encrypting and storing of the user input may include encrypting a plurality of user inputs sequentially input by using a symmetric key, and decrypting the encryption value if there is a previously encrypted encryption value and then previously inputting the user. Combine the input with the currently entered user input and encrypt the combined user input using a symmetric key.

사용자 입력을 암호화하고 저장하는 단계는, 사용자 입력을 암호화하여 저장한 후 제1 사용자 입력과 무관한 표기가 사용자 단말의 화면에 표시되게 한다.In the encrypting and storing of the user input, after encrypting and storing the user input, a mark not related to the first user input is displayed on the screen of the user terminal.

본 발명의 실시 예에 따르면, 별도의 보안프로그램을 이용하지 않고도 사용자 입력에 대한 보안이 가능하며, 액티브 X 프로그램을 설치하지 않아도 된다. According to an embodiment of the present invention, security for user input is possible without using a separate security program, and an ActiveX program does not need to be installed.

또한, 본 발명의 실시 예에 따르면, 문서객체모델 트리 구조의 객체로 사용자 입력이 전파되지 않게 하여 보다 높은 키보드 보안을 가능하게 한다.In addition, according to an embodiment of the present invention, the user input is not propagated to the object of the document object model tree structure to enable higher keyboard security.

도 1은 일반적인 DOM 트리 구조 및 이벤트 전파 모델을 설명하기 위한 도면이다.
도 2는 본 발명의 실시 예에 따른 문서객체모델 레벨의 키 입력 암호화 장치의 블록 구성도이다.
도 3은 본 발명의 실시 예에 따른 문서객체모델 레벨의 키 입력 암호화 방법에 대한 전반적인 순서도이다.
도 4는 본 발명의 실시 예에 따른 사용자 입력에 따른 실시간 암호화 방법을 보인 순서도이다.
도 5는 본 발명의 실시 예에 따른 사용자 입력에 따른 실시간 암호화 방법에 구체적인 일 예를 보인 도면이다.
도 6은 본 발명의 실시 예에 따른 DOM 트리구조 및 이벤트 전파 모델을 설명하기 위한 도면이다.
도 7은 본 발명의 실시 예에 따른 서블릿 필터를 설명하기 위한 도면이다.
도 8은 본 발명의 실시 예에 따른 서블릿 필터의 네트워크 암복호화 과정을 설명하기 위한 도면이다.
1 is a diagram illustrating a general DOM tree structure and an event propagation model.
2 is a block diagram of a key input encryption device of a document object model level according to an embodiment of the present invention.
3 is a general flowchart of a key input encryption method of a document object model level according to an embodiment of the present invention.
4 is a flowchart illustrating a real-time encryption method according to a user input according to an embodiment of the present invention.
5 is a diagram illustrating a specific example of a real-time encryption method according to a user input according to an embodiment of the present invention.
6 is a diagram for explaining a DOM tree structure and an event propagation model according to an embodiment of the present invention.
7 is a diagram illustrating a servlet filter according to an exemplary embodiment of the present invention.
8 is a diagram illustrating a network encryption / decryption process of a servlet filter according to an exemplary embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대해 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며 명세서 전체에서 동일 또는 유사한 구성요소에 대해서는 동일한 도면부호가 사용되었다. 또한, 널리 알려져 있는 공지기술의 경우 그 구체적인 설명은 생략한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. The drawings and description are to be regarded as illustrative in nature and not restrictive. Like reference numerals designate like elements throughout the specification. In addition, in the case of well-known technology, a detailed description thereof will be omitted.

본 명세서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In the present specification, when a part is said to "include" a certain component, it means that it may further include other components, without excluding the other components unless otherwise stated. In addition, the terms “… unit”, “module”, etc. described in the specification mean a unit that processes at least one function or operation, which may be implemented by hardware or software, or a combination of hardware and software.

이하에서는 첨부한 도면을 참조로 하여 본 발명의 실시 예에 따른 문서객체모델 레벨의 키 입력 암호화 장치 및 방법을 설명한다.Hereinafter, an apparatus and method for encrypting a key input of a document object model level according to an embodiment of the present invention will be described with reference to the accompanying drawings.

도 1은 일반적인 DOM 트리구조 및 이벤트 전파 모델을 설명하기 위한 도면이다. 일반적으로, 사용자 단말에서 서버로 접속하게 되면 사용자 단말의 웹브라우저가 접속한 서버의 도메인 주소에 해당하는 웹페이지를 분석하여 사용자 단말의 화면상에 웹페이지를 표시한다. 이러한 웹브라우저는 문서객체모델(DOM), 브라우저 객체 모델(BOM: Brower Object Model), 그리고 자바스크립트(Javascript)를 이용하여 웹페이지의 HTML 파일, XML 파일 등의 웹페이지 파일을 해석한다.1 is a diagram illustrating a general DOM tree structure and an event propagation model. In general, when a user terminal accesses a server, the web page of the user terminal analyzes a web page corresponding to the domain address of the server to display the web page on the screen of the user terminal. These web browsers use the Document Object Model (DOM), Browser Object Model (BOM), and JavaScript to interpret web page files such as HTML files and XML files.

예를 들어, 문서객체모델은 자바스크립트가 HTML 파일, XML 파일 등의 웹페이지 파일을 해석할 수 있도록 하기 위해서 서버로부터 제공받은 HTML(또는 XML)에 대한 DOM 트리구조를 생성한다. 이때 생성되는 DOM 트리구조의 일 예가 도 1에 도시되어 있다. 도 1은 일반적인 DOM 트리구조 및 이벤트 전파 모델을 설명하기 위한 도면이다.For example, the document object model creates a DOM tree structure for HTML (or XML) provided by the server to enable JavaScript to interpret web page files such as HTML files and XML files. An example of the DOM tree structure generated at this time is shown in FIG. 1. 1 is a diagram illustrating a general DOM tree structure and an event propagation model.

도 1에 도시된 바와 같이, 일반적으로 문서객체모델은 HTML 파일을 해석하여 <html>, <body>, <tbody>, <tr>, <td> 등의 태그(tag)들에 대해 각각 객체화를 하고, 각 객체를 계층적 구조 즉, 트리구조로 만든다. 이때의 트리구조를 DOM 트리구조라고 명명한다.As shown in FIG. 1, a document object model generally parses an HTML file and performs objectization on tags such as <html>, <body>, <tbody>, <tr>, and <td>, respectively. And make each object a hierarchical structure, or tree structure. This tree structure is called DOM tree structure.

이렇게 생성된 DOM 트리구조에서, 키보드, 마우스, 터치 등의 사용자 입력에 의하여 키 이벤트가 발생되면 발생된 이벤트는 DOM 트리구조에서 각 객체로 전파(propagation)되어 목표하는 목표 객체 즉, 이벤트를 발생시킨 요소에 해당하는 DOM 객체로 전파되거나 목표 객체의 부모 객체로 전파된다. 이처럼 이벤트가 흘러가는 과정을 이벤트 흐름(event flow)라고 한다. In this DOM tree structure, when a key event is generated by user input such as keyboard, mouse, or touch, the generated event is propagated to each object in the DOM tree structure to generate a target object, that is, an event. It is propagated to the DOM object corresponding to the element or to the parent object of the target object. This process of event flow is called event flow.

이벤트 흐름은 캡처링 단계(capturing phase), 타겟 단계(target phase), 버블링 단계(bubbling phase)의 3가지 단계를 거친다. 각 단계를 설명하면, 예컨대 도 1에서 빗금친 <td> 객체에서 이벤트가 발생하면, 그 이벤트는 우선 브라우저의 'Defaultview'에서 'Document' 객체로 전달되어 이벤트가 발생된 <td>의 부모 객체인 <tr>로 전달된다. 이때 'Document' 객체에서 이벤트가 발생된 <td>의 부모 객체인 <tr>로 전달되는 이벤트 흐름을 캡처링 단계라고 한다.The event flow goes through three phases: the capturing phase, the target phase, and the bubbling phase. For each step, for example, when an event occurs in the <td> object hatched in FIG. 1, the event is first passed from the browser's 'Defaultview' to the 'Document' object, which is the parent object of the <td> in which the event occurred. passed to <tr> At this time, the event flow delivered from the 'Document' object to the <tr>, the parent object of the <td> where the event occurred, is called a capturing step.

타겟 단계는 이벤트가 발생된 <td>의 부모 객체인 <tr>에서 타겟 객체인 <td>로 이벤트가 전달되는 이벤트 흐름이고, 버블링 단계는 이벤트가 타겟 객체로 전달된 다음 부모 객체인 <td>를 거쳐 <Document> 객체까지 전달되는 이벤트 흐름이다.The target stage is the flow of events from <tr>, the parent object of <td> where the event is raised, to the target object <td>, and the bubbling stage is the <td, the next parent object, after the event is delivered to the target object. Event flows from> to <Document> object.

이러한 일반적인 이벤트 흐름에 따르면, 예를 들어, 인터넷 뱅킹시 비밀번호가 입력되는 객체가 빗금친 <td> 객체인 경우에 사용자가 입력한 비밀번호는 전술한 이벤트 흐름에 따라 타겟 객체인 <td>에 기록된 후 <Document> 객체를 거쳐 키보드 보안 프로그램 또는 키보드 보안 액티브 X를 실행하는 자바스크립트에 의해 서버로 제공된다. According to this general flow of events, for example, when the password input object is a hatched <td> object during Internet banking, the password entered by the user is recorded in the target object <td> according to the above-described event flow. It is then provided to the server by JavaScript running a Keyboard Security program or Keyboard Security ActiveX via a <Document> object.

이 경우 DOM 트리구조 내부는 암호화되지 않으며, DOM 영역의 접근을 차단할 뿐이므로, 사용자 단말의 저장부, 서버의 저장부 등 저장 영역 자체를 해킹하여, 사용자 입력 정보가 누출될 수 있다. 또한, 이러한 DOM 트리구조에서 캡처 단계, 타겟 단계, 버블링 단계와 같이 이벤트 흐름이 발생하게 되는데, 이러한 이벤트 흐름 중에 외부에서 이벤트를 가로채는 후킹이 발생할 수 있으며, 후킹을 통하여 사용자 입력 정보가 누출될 수 있다. In this case, since the inside of the DOM tree structure is not encrypted and only blocks access to the DOM area, the user input information may leak by hacking the storage area itself such as the storage unit of the user terminal or the storage unit of the server. In addition, an event flow occurs in the DOM tree structure such as a capture step, a target step, and a bubbling step. During this event flow, a hook may be intercepted from the outside, and user input information may leak through the hook. have.

그러나, 본 발명의 실시 예에 따르면, DOM 트리구조의 내부를 암호화하는 것으로, 문서객체모델 레벨에서 사용자 입력에 대한 실시간 암호화가 수행되어 사용자 단말, 서버 등에 저장되고, 실시간으로 암호화가 수행되는 사용자 입력이 DOM 트리구조 내 해당 객체로 전파되지 않도록 전파차단 플래그를 설정하여 키 이벤트(예를 들어, 사용자 입력)가 DOM 트리구조에 전달될 때 적어도 캡처 단계와 버블링 단계가 수행되지 않게 한다.However, according to an embodiment of the present invention, by encrypting the inside of the DOM tree structure, real-time encryption is performed on the user input at the document object model level, stored in the user terminal, server, etc., and user input in which encryption is performed in real time. The propagation flag is set so that it is not propagated to the corresponding object in this DOM tree structure so that at least the capture and bubbling steps are not performed when key events (eg user input) are delivered to the DOM tree structure.

도 2는 본 발명의 실시 예에 따른 문서객체모델 레벨의 키 입력 암호화 장치의 블록 구성도이다. 도 2를 참고하면, 본 발명의 실시 예에 따른 키 입력 암호화 장치(100)는 사용자 단말(A)에 탑재된다. 사용자 단말(A)은 유선 또는 무선으로 인터넷에 접속하여 서버(200)와의 데이터 통신이 가능한 단말로서, 예컨대, 스마트폰, 컴퓨터 등 일 수 있다.2 is a block diagram of a key input encryption device of a document object model level according to an embodiment of the present invention. Referring to FIG. 2, the key input encryption apparatus 100 according to the embodiment of the present invention is mounted in the user terminal A. FIG. The user terminal A is a terminal capable of data communication with the server 200 by connecting to the Internet by wire or wirelessly, and may be, for example, a smartphone or a computer.

이러한 키 입력 암호화 장치(100)는 키 입력부(110), 키이벤트 파악부(120), DOM부(130), 암호화부(140), 저장부(150) 및 통신부(150)를 포함한다.The key input encryption apparatus 100 includes a key input unit 110, a key event detecting unit 120, a DOM unit 130, an encryption unit 140, a storage unit 150, and a communication unit 150.

키 입력부(110)는 키보드, 마우스, 터치 등의 입력 수단을 통해 입력되는 사용자 입력을 수신한다. 키이벤트 파악부(120)는 키 입력부(110)를 통해 입력한 사용자 입력의 종류 즉, 키 이벤트를 파악한다. 키 이벤트는 숫자나 문자 등의 텍스트 입력 이벤트나 명령 실행 이벤트 등으로, 키이벤트 파악부(120)는 DOM 트리구조에서 해당 키 이벤트를 발생시킨 요소에 해당하는 타겟 객체를 파악한다.The key input unit 110 receives a user input that is input through an input means such as a keyboard, a mouse, or a touch. The key event grasping unit 120 grasps the type of the user input, ie, the key event, input through the key input part 110. The key event may be a text input event such as a number or a letter or an command execution event. The key event identifying unit 120 may identify a target object corresponding to an element generating the corresponding key event in the DOM tree structure.

DOM부(130)는 문서객체모델의 동작을 수행하고 사용자 입력에 대한 암호화가 필요한 경우에 암호화부(140)와 연계하여 사용자 입력이 암호화되도록 하며 사용자 입력에 대한 암호화시에 사용자 입력이 <html> 객체 이하로 전파되거나 외부로 전파되지 않게 한다. 구체적으로, DOM부(130)는 서버(200)로부터 새로운 웹페이지 즉, 새로운 HTML(또는 XML) 파일을 수신하면 해당 HTML(또는 XML)을 해석하여 DOM 트리구조를 생성한다. DOM부(130)는 DOM 트리구조를 생성한 후 전파모드인지 전파차단모드인지에 따라 이벤트(키 입력부(110)로부터 수신된 사용자 입력 포함)가 <html> 객체의 하위 객체 즉, 엘리먼트로 전파하거나 전파되는 것을 차단한다.The DOM unit 130 performs the operation of the document object model and when the encryption for the user input is required so that the user input is encrypted in association with the encryption unit 140. When the user input is encrypted, the <html> Do not propagate below or outside the object. Specifically, when the DOM unit 130 receives a new web page, that is, a new HTML (or XML) file from the server 200, the DOM unit 130 interprets the corresponding HTML (or XML) to generate a DOM tree structure. After generating the DOM tree structure, the DOM unit 130 propagates an event (including user input received from the key input unit 110) to a sub-object of the <html> object, that is, an element according to whether the propagation mode or the propagation blocking mode is used. Blocks propagation

전파모드 또는 전파차단모드는 사용자, 서버 관리자 등의 요구에 따라 설정되거나, 이벤트의 종류에 따라 자동 설정되고 해지된다. 자동 설정되고 해지되는 일 예로, 보안이 요구되는 이벤트가 발생되면 해당 이벤트 발생 후에 입력되는 설정 횟수의 사용자 입력(예를 들어 3 회의 사용자 입력)에 대하여 전파차단모드가 설정되게 한다. The propagation mode or the radio wave blocking mode is set at the request of the user, the server administrator, or the like, or automatically set and terminated according to the type of event. As an example of automatically setting and canceling, when an event requiring security is generated, a radio wave blocking mode is set for a predetermined number of user inputs (for example, three user inputs) input after the event occurs.

물론 전파차단모드는 암호화부(140)와 연계된다. 전파차단모드가 설정되면, 입력되는 설정 횟수의 사용자 입력은 암호화부(140)에 제공되어 해당 사용자 입력들에 대해 암호화가 이루어지게 한다. 전파모드는 통상의 문서객체모델의 동작이므로 자세한 설명은 생략한다.Of course, the jamming mode is associated with the encryption unit 140. When the radio wave blocking mode is set, the input number of user inputs is provided to the encryption unit 140 to encrypt the corresponding user inputs. The propagation mode is an operation of a normal document object model, so detailed description thereof is omitted.

암호화부(140)는 DOM부(130) 또는 키이벤트 파악부(120)로부터 수신되는 사용자 입력을 암호화하고 암호화한 암호화값(사용자 입력)을 저장하며, 서버(200)로 사용자 입력을 전송하는 이벤트 발생시에 저장된 암호화값을 서버(200)에 제공한다. 암호화부(140)는 사용자 단말(A)의 화면에 표시되는 사용자 입력을 속이기 위하여 암호화한 사용자 입력과 다른 정보(예를 들어 사용자 입력이 숫자인 경우 더미(dummy) 숫자 정보)를 표시할 수 있으며, 이때 화면에 표시되는 정보는 사용자 입력과 그 길이가 같다.The encryption unit 140 encrypts a user input received from the DOM unit 130 or the key event checking unit 120, stores an encrypted encryption value (user input), and transmits the user input to the server 200. The encryption value stored at the time of occurrence is provided to the server 200. The encryption unit 140 may display the encrypted user input and other information (for example, dummy numeric information when the user input is a number) to deceive the user input displayed on the screen of the user terminal A. At this time, the information displayed on the screen is the same length as the user input.

저장부(150)는 암호화부(140)에 의해 암호화된 암호화값(사용자 입력)을 저장한다. The storage unit 150 stores the encrypted value (user input) encrypted by the encryption unit 140.

통신부(160)는 사용자 단말(A)과 서버(200)와의 인터넷 통신을 담당한다. 그리고 통신부(160)는 암호화값을 웹에서 실행되는 서블릿 필터를 통해 서버(200)로 전송할 수 있다. 이하에서는 도 3 내지 도 6을 참조로 하여 키 입력 암호화 장치의 동작 즉 키 입력 암호화 방법을 설명한다.The communication unit 160 is in charge of internet communication between the user terminal A and the server 200. The communication unit 160 may transmit the encryption value to the server 200 through a servlet filter executed on the web. Hereinafter, an operation of the key input encryption apparatus, that is, a key input encryption method, will be described with reference to FIGS. 3 to 6.

도 3은 본 발명의 실시 예에 따른 문서객체모델 레벨의 키 입력 암호화 방법에 대한 전반적인 순서도이다. 도 3을 참고하면, 사용자 단말(A)이 서버(200)에 접속하면, DOM부(130)는 서버(200)로부터 접속된 도메인 주소의 웹페이지에 대한 HTML(또는 XML) 파일 등의 웹페이지 파일을 수신한다(S301).3 is a general flowchart of a key input encryption method of a document object model level according to an embodiment of the present invention. Referring to FIG. 3, when the user terminal A accesses the server 200, the DOM unit 130 may include a web page such as an HTML (or XML) file for a web page of a domain address connected from the server 200. Receive a file (S301).

DOM부(130)는 수신한 HTML(또는 XML) 파일 등의 웹페이지 파일을 해석하여 DOM 트리구조를 생성한다(S302). 이때 생성된 DOM 트리구조의 일 예가 도 6에 도시되어 있다.The DOM unit 130 generates a DOM tree structure by analyzing the received web page file such as an HTML (or XML) file (S302). An example of the generated DOM tree structure is shown in FIG. 6.

DOM 트리구조가 생성된 후, 사용자가 키보드, 마우스, 터치 등으로 입력을 수행하면 키 이벤트가 발생되고, 키 입력부(110)는 사용자가 조작한 사용자 입력을 수신하고 사용자 입력을 키이벤트 파악부(120)에 제공한다(S303).After the DOM tree structure is generated, a key event is generated when a user performs an input using a keyboard, a mouse, a touch, etc. The key input unit 110 receives a user input manipulated by the user and uses the key event checker ( 120) (S303).

키이벤트 파악부(120)는 수신된 사용자 입력에 따른 이벤트의 종류 및 대상 객체를 파악하고 DOM부(130)에 대상 객체를 알린다(S304). 이때 전파 모드에 해당하여 대상 객체로 사용자 입력을 전파하는 경우에 키이벤트 파악부(120)는 DOM부(130)로 사용자 입력을 제공한다. The key event grasping unit 120 grasps the type of the event and the target object according to the received user input and informs the DOM unit 130 of the target object (S304). In this case, when the user input is propagated to the target object in the propagation mode, the key event identifying unit 120 provides the user input to the DOM unit 130.

DOM부(130)는 수신되는 이벤트의 종류를 파악하여 이벤트 종류가 사용자 입력에 대한 암호화가 필요로 하는 이벤트인지를 판단하고(S304), 암호화가 필요한 이벤트인 경우에 암호화 모드를 설정하고 대상 객체로 이벤트를 전파한다(S306). 그리고 DOM부(130)는 암호화 모드 설정에 대응하여 캡처 단계와 버블링 단계 수행을 차단하도록 하는 플래그(flag)를 설정하여 이벤트 흐름을 차단한다(S307). 반면에, DOM부(130)는 수신되는 이벤트의 종류가 암호화를 필요로 하지 않는 이벤트이면 일반모드를 계속 유지한 후 일반적인 문서객체모델의 동작을 수행한다(S305).The DOM unit 130 determines the type of the received event to determine whether the event type is an event that requires encryption for user input (S304), and sets an encryption mode in case of an event requiring encryption and sets it as a target object. The event is propagated (S306). The DOM unit 130 blocks a flow of events by setting a flag to block the capturing step and the bubbling step in response to the encryption mode setting (S307). On the other hand, if the type of the received event is an event that does not require encryption, the DOM unit 130 maintains the normal mode and performs the operation of the general document object model (S305).

DOM부(130)에 암호화 모드가 설정된 이후에 사용자가 비밀번호 등의 사용자 입력(예; 텍스트나 문자 등)을 입력하면 키이벤트 파악부(120)를 통해 DOM부(130)에 제공된다(S308). After the encryption mode is set in the DOM unit 130, when a user inputs a user input such as a password (eg, text or characters), the user is provided to the DOM unit 130 through the key event identifying unit 120 (S308). .

DOM부(130)는 도 6에 도시된 바와 같이 'Defaultview'에서 'Document' 객체로 수신된 사용자 입력이 하위 객체로 전파되지 않도록 하고 또한, 하위 객체로부터의 정보나 이벤트가 'Document' 객체로 전파되지 않도록 한 후, 사용자 입력을 암호화부(140)에 제공한다. 이에 암호화부(140)는 DOM부(130)의 지시에 따라 사용자 입력을 암호화하고 저장한다(S309).As shown in FIG. 6, the DOM unit 130 prevents the user input received from the 'Defaultview' as the 'Document' object to be propagated to the sub-object, and also propagates information or events from the sub-object to the 'Document' object. After doing so, the user input is provided to the encryption unit 140. The encryption unit 140 encrypts and stores the user input according to the instructions of the DOM unit 130 (S309).

그리고 사용자 입력이 화면상에 노출되지 않도록 암호화부(140)는 사용자 입력에 대응한 랜덤값을 생성하여 출력하고(S310), 랜덤값은 자바스크립트에 의해 화면상에 표시된다(B). 여기서 랜덤값은 더미값(dummy value)에 해당한다.The encryption unit 140 generates and outputs a random value corresponding to the user input so that the user input is not exposed on the screen (S310), and the random value is displayed on the screen by JavaScript (B). Here, the random value corresponds to a dummy value.

여기서, 도 4 및 도 5를 참조로 하여 암호화부(140)의 암호화 동작을 보다 상세히 설명한다. 도 4는 본 발명의 실시 예에 따른 사용자 입력에 따른 실시간 암호화 방법을 보인 순서도이고, 도 5는 본 발명의 실시 예에 따른 사용자 입력에 따른 실시간 암호화 방법에 구체적인 일 예를 보인 도면이다.Here, the encryption operation of the encryption unit 140 will be described in more detail with reference to FIGS. 4 and 5. 4 is a flowchart illustrating a real time encryption method according to a user input according to an embodiment of the present invention, and FIG. 5 is a view illustrating a specific example of a real time encryption method according to a user input according to an embodiment of the present invention.

도 4 및 도 5를 참고하면, 사용자가 "a, b, c"라는 알파벳을 순차적으로 입력한 경우에, 암호화부(140)는 먼저 알파벳 'a'를 수신한다(S401). 그리고 암호화부(140)는 서버(200)와 공유된 대칭키(즉, 암호화키)를 이용하여 알파벳 'a'를 암호화하여 암호화값인 암호문1을 생성하고(S402), 암호문1을 저장부(150)에 저장한다(S403). 4 and 5, when the user sequentially inputs alphabets “a, b, and c”, the encryption unit 140 first receives the alphabet “a” (S401). The encryption unit 140 encrypts the alphabet 'a' using a symmetric key (that is, an encryption key) shared with the server 200 to generate a ciphertext 1 that is an encryption value (S402), and stores the ciphertext 1 in the storage unit ( 150) (S403).

여기서 대칭키는 서버(200)에서 생성된 것이거나 사용자 단말(A)에서 생성된 것이다. 또는, 서버(200)와 사용자 단말(A)은 서버(200)에서 랜덤하게 생성된 값과 사용자 단말(A)에서 랜덤하게 생성된 값을 디피-헬만 키 교환(Diffie-Hellman key exchange) 방식으로 교환함으로써 대칭키를 공유할 수 있으나 이에 한정하는 것은 아니다. 암호화부(140)는 대칭키를 이용하여 암호문1을 생성한 후 알파벳 'a'를 대신하여 사용자 단말(A)의 화면에 표시될 제1 표시를 랜덤값으로 생성한 후 제1 표시를 자바스크립트에 제공하여 화면상에 표시되게 한다. 여기서 제1 표시는 알파벳 'a'와 상관없는 랜덤한 표시로서, 'a'와 다른 알파벳 'e' 등이거나 특수문자, 이모티콘 등이다. 그리고 제1 표시는 알파벳 'a'와 동일길이인 것이 양호하다.Here, the symmetric key is generated by the server 200 or generated by the user terminal (A). Alternatively, the server 200 and the user terminal A exchange the randomly generated value in the server 200 and the randomly generated value in the user terminal A in a Diffie-Hellman key exchange method. By exchanging, the symmetric key can be shared but is not limited thereto. The encryption unit 140 generates the ciphertext 1 using the symmetric key, generates a random first display to be displayed on the screen of the user terminal A in place of the alphabet 'a', and then displays the first display in JavaScript. To be displayed on the screen. Here, the first display is a random display irrespective of the alphabet 'a', and is a letter 'e' different from 'a', a special character, an emoticon, or the like. The first display is preferably the same length as the alphabet 'a'.

이후, 사용자가 알파벳 'b'를 입력하면, 암호화부(140)는 알파벳 'b'를 수신한다(S404). 그러면 암호화부(140)는 저장부(150)에 저장된 암호문1을 대칭키를 이용하여 복호화하여 'a'를 만들고(S405), 복호화한 'a'와 수신된 'b'를 합쳐 'ab'를 만든 후 'ab'를 서버(200)와 공유된 대칭키를 이용하여 암호화하여 암호문2를 생성하며(S406), 암호문2를 저장부(150)에 저장한다(S407). Then, if the user enters the alphabet 'b', the encryption unit 140 receives the alphabet 'b' (S404). Then, the encryption unit 140 decrypts the ciphertext 1 stored in the storage unit 150 using a symmetric key to make 'a' (S405), and combines the decrypted 'a' and the received 'b' to form 'ab'. After the 'ab' is encrypted using the symmetric key shared with the server 200 generates a cipher text 2 (S406), and stores the cipher text 2 in the storage unit 150 (S407).

암호화부(140)는 암호문2을 생성한 후 알파벳 'b'를 대신하여 사용자 단말(A)의 화면에 표시될 제2 표시를 랜덤값으로 생성한 후 제2 표시를 자바스크립트에 제공하여 화면상에 표시되게 한다. 제2 표시는 제1 표시와 마찬가지로 알파벳 'b'와 상관없는 랜덤한 표시로서, 'b'와 다른 알파벳 'f' 등이거나 특수문자 이모티콘 등이며, 알파벳 'b'와 동일길이인 것이 양호하다.The encryption unit 140 generates the cipher text 2 and generates a second display to be displayed on the screen of the user terminal A as a random value instead of the alphabet 'b', and then provides the second display to the JavaScript to display on the screen. To be displayed. Like the first display, the second display is a random display irrespective of the alphabet 'b'. The second display is an alphabet 'f' different from 'b', a special character emoticon, or the like, and preferably has the same length as the alphabet 'b'.

마지막으로, 사용자가 알파벳 'c'를 입력하면, 암호화부(140)는 알파벳 'c'를 수신한다(S408). 그러면 암호화부(140)는 저장부(150)에 저장된 암호문2를 대칭키를 이용하여 복호화하여 'ab'를 만들고(S409), 복호화한 'ab'와 수신된 'c'를 합쳐 'abc'를 만든 후 'abc'를 서버(200)와 공유된 대칭키를 이용하여 암호화값인 암호문3을 생성하며(S410), 암호문3을 저장부(150)에 저장한다(S411). Finally, when the user inputs the letter 'c', the encryption unit 140 receives the letter 'c' (S408). Then, the encryption unit 140 decrypts the ciphertext 2 stored in the storage unit 150 using a symmetric key to make 'ab' (S409), and combines the decrypted 'ab' and the received 'c' to form 'abc'. After the 'abc' is generated using the symmetric key shared with the server 200 generates a cipher text 3 (S410), and stores the cipher text 3 in the storage unit 150 (S411).

암호화부(140)는 암호문3을 생성한 후 알파벳 'c'를 대신하여 사용자 단말(A)의 화면에 표시될 제3 표시를 랜덤값으로 생성한 후 제3 표시를 자바스크립트에 제공하여 화면상에 표시되게 한다. 제3 표시는 제1 및 제2 표시와 마찬가지로 알파벳 'c'와 상관없는 랜덤한 표시로서, 'c'와 다른 알파벳 'g' 등이거나 특수문자 이모티콘 등이며, 알파벳 'c'와 동일길이인 것이 양호하다.The encryption unit 140 generates a ciphertext 3 and generates a third display to be displayed on the screen of the user terminal A as a random value instead of the letter 'c', and then provides the third display to the JavaScript on the screen. To be displayed. The third display is a random display irrelevant to the alphabet 'c' like the first and second displays. The third display is a letter 'g' different from 'c', a special character emoticon, etc., and the same length as the alphabet 'c'. Good.

다시 도 3으로 돌아와서, 사용자가 입력한 사용자 입력을 서버(200)로 전송하는 것을 요청하면(S311), DOM부(130)는 설정된 암호화 모드를 해제하고 일반모드를 설정한다(S312). 그런 다음 DOM부(130)는 저장된 암호문3을 자바스크립트로 던지고 자바스크립트 즉, 웹브라우저는 암호문3과 더불어 암호화된 대칭키를 서버(200)로 전송한다(C).3 again, if the user requests the user input transmitted to the server 200 (S311), the DOM unit 130 releases the set encryption mode and sets the normal mode (S312). Then, the DOM unit 130 throws the stored cipher text 3 as JavaScript and the JavaScript, that is, the web browser transmits the encrypted symmetric key together with the cipher text 3 to the server 200 (C).

여기서, 대칭키는 서버의 공개키로 암호화될 수 있다. Here, the symmetric key can be encrypted with the public key of the server.

전술한 실시 예에서는 'a', 'ab' 또는 'abc'를 동일한 대킹키를 이용하여 한번에 암호화한 것으로 설명하였지만, 한 개 이상의 사용자의 입력을 서로 다른 대칭키로 암호화하여 암호문을 생성할 수 있다.In the above-described embodiment, 'a', 'ab' or 'abc' has been described as being encrypted at the same time using the same large key. However, the cipher text may be generated by encrypting one or more user inputs with different symmetric keys.

그리고 통신부(160)가 암호문3과 암호화된 대칭키를 서버(200)로 전달할 때, 서버(200)와의 네트워크 구간에 위치하는 서블릿 필터(Servlet Filte)를 통해 암호화된 키보드 입력값을 복호화하도록 하는 식별 정보를 포함할 수 있다. When the communication unit 160 transmits the ciphertext 3 and the encrypted symmetric key to the server 200, identification of the encrypted keyboard input value through the servlet filter located in the network section with the server 200 is decrypted. May contain information.

여기서, 서블릿 필터는 여러 가지 동작에 있어서 사이 사이에 끼워져 실행되는 서블릿의 클래스를 나타내며 체인(chain) 형태의 구조로 형성된다. 예를 들어, 서블릿 필터는 웹 상에서 사용자 요청 페이지가 실행하기 전이나 후에 동작이나 데이터를 가로채서 미리 설정된 작업을 수행하고 해당 페이지로 넘어갈 수 있도록 하거나 넘어가지 못하도록 하는 작업 등을 수행한다.Here, the servlet filter represents a class of servlets that are sandwiched and executed in various operations, and are formed in a chain structure. For example, the servlet filter intercepts actions or data before or after the user request page is executed on the web to perform a preset task, and to prevent or skip the page.

도 7은 본 발명의 실시 예에 따른 서블릿 필터를 설명하기 위한 도면이고, 도 8은 본 발명의 실시 예에 따른 서블릿 필터의 네트워크 암복호화 과정을 설명하기 위한 도면이다. 7 is a diagram illustrating a servlet filter according to an embodiment of the present invention, and FIG. 8 is a diagram illustrating a network encryption / decryption process of a servlet filter according to an embodiment of the present invention.

도 7에 도시한 바와 같이, 서블릿 필터(300)는 서버(200)의 네트워크 구간에서 어느 위치에 설치하느냐에 따라 기능을 달리 수행할 수 있다. As shown in FIG. 7, the servlet filter 300 may perform a function differently depending on which position in the network section of the server 200 is installed.

예를 들어, 서블릿 필터(300)가 서버(200)의 네트워크 구간 암복호화 필터 이후에 설치된 경우, 서블릿 필터(300)는 암호화된 키보드 입력값 복호화 기능을 수행할 수 있다. 한편, 서블릿 필터(300)가 서버(200)의 가장 앞단에 설치된 경우, 서블릿 필터(300)는 네트워크 구간 암복호화 기능을 수행할 수 있다.For example, when the servlet filter 300 is installed after the network section encryption / decryption filter of the server 200, the servlet filter 300 may perform an encrypted keyboard input value decryption function. On the other hand, when the servlet filter 300 is installed at the front end of the server 200, the servlet filter 300 may perform a network section encryption / decryption function.

여기서, 서블릿 필터(300)가 서버(200)의 네트워크 구간 암복호화 필터 이후에 설치된 경우, 키 입력 암호화 장치(100)는 암호화된 키보드 입력값(암호화값)과 식별 정보를 함께 전송할 수 있다. 식별 정보는 서블릿 필터(300)에서 복호화를 수행하도록 하기 위한 것으로, 예를 들어 임의의 접두사(prefix)를 이용하여 나타낼 수 있다. Here, when the servlet filter 300 is installed after the network section encryption / decryption filter of the server 200, the key input encryption apparatus 100 may transmit the encrypted keyboard input value (encryption value) and identification information together. The identification information is for performing decoding in the servlet filter 300 and may be represented by using, for example, an arbitrary prefix.

이처럼 식별 정보를 포함하는 암호화된 키보드 입력값을 수신하면, 서블릿 필터(300)는 사용자 단말(A)로부터 공유된 값을 복호화 키로 사용하여 복호화를 수행할 수 있다. When the encrypted keyboard input value including the identification information is received as described above, the servlet filter 300 may perform decryption using the value shared from the user terminal A as a decryption key.

한편, 도 8의 (a)는 네트워크 구간의 암호화를 수행하기 위해서 재정의된 암호화 모듈 스크립트를 예시하는 화면이고 (b)는 네트워크 구간의 암호화를 수행하기 위해서 API를 통해 네트워크 구간의 복호화를 예시하는 화면을 나타낸다. Meanwhile, FIG. 8A is a screen illustrating an encryption module script redefined to perform encryption of a network section, and (b) is a screen illustrating decryption of a network section through an API to perform encryption of the network section. Indicates.

도 8에 도시한 바와 같이, 서블릿 필터(300)는 서버(200)의 가장 앞단에 설치된 경우, 암호화 모듈 스크립트(함수 및 XHR 클래스)를 재정의하여 암호화를 수행하거나 복호화 API 및 XHR 클래스를 재정의하여 복호화 기능을 수행할 수 있다. 이상에서 본 발명의 실시 예에 상세하게 설명하였으나, 본 발명의 권리범위가 이에 한정되는 것은 아니며 본 발명이 속하는 분야에서 통상의 지식을 가진 자가 여러 가지로 변형 및 개량한 형태 또한 본 발명의 권리범위에 속한다.As shown in FIG. 8, when the servlet filter 300 is installed at the front end of the server 200, the servlet filter 300 redefines encryption module scripts (functions and XHR classes) to perform encryption or redefines decryption APIs and XHR classes to decrypt them. Function can be performed. Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements have been made by those skilled in the art to which the present invention pertains. Belongs to.

A : 사용자 단말 100 : 키 입력 암호화 장치
110 : 키 입력부 120 : 키이벤트 파악부
130 : DOM부 140 : 암호화부
150 : 저장부 160 : 통신부
200: 서버 300: 서블릿 필터
A: user terminal 100: key input encryption device
110: key input unit 120: key event grasping unit
130: DOM portion 140: encryption portion
150: storage unit 160: communication unit
200: server 300: servlet filter

Claims (10)

입력 수단을 통해 입력되는 사용자 입력을 수신하는 키 입력부,
상기 키 입력부를 통해 입력한 사용자 입력에 대응하는 키 이벤트를 파악하고 이벤트에 대응된 타겟 객체를 파악하는 키이벤트 파악부,
서버로부터 새로운 웹페이지의 웹페이지 파일을 수신하면 해당 웹페이지 파일을 해석하여 문서객체모델(DOM: Document Object Model) 트리구조를 생성하고, 키 이벤트의 종류에 따라 암호화 모드를 설정한 후 입력되는 사용자 입력이 타겟 객체로 전파되거나 외부로 전파되지 않게 하며, 암호화 모드 설정 후 입력되는 사용자 입력에 대해 암호화가 이루어지게 하는 DOM부,
상기 DOM부로부터 수신되는 사용자 입력을 암호화하고 암호화한 암호화값을 저장하는 암호화부,
상기 암호화부에 의해 암호화된 암호화값을 저장하는 저장부, 그리고
사용자 단말과 상기 서버와의 인터넷 통신을 담당하는 통신부
를 포함하는 문서객체모델 레벨의 키 입력 암호화 장치.
A key input unit which receives a user input input through an input means,
A key event grasping unit which grasps a key event corresponding to a user input input through the key input unit and a target object corresponding to the event;
When a web page file of a new web page is received from the server, the web page file is interpreted to generate a Document Object Model (DOM) tree structure, and the user entered after setting the encryption mode according to the type of key event. A DOM unit that prevents input from being propagated to the target object or to the outside, and encrypts the input of the user input after setting the encryption mode;
An encryption unit for encrypting a user input received from the DOM unit and storing an encrypted encryption value;
A storage unit for storing the encrypted value encrypted by the encryption unit, and
Communication unit in charge of Internet communication between the user terminal and the server
Key input encryption device of the document object model level comprising a.
제1항에서
상기 암호화부는 순차적으로 입력되는 복수의 사용자 입력에 대하여 대칭키를 이용하여 암호화를 수행하되, 이전에 암호화된 암호화값이 있는 경우에 암호화값을 복호화한 후 이전 입력된 사용자 입력과 현재 입력된 사용자 입력을 합치고 합친 사용자 입력을 대칭키를 이용하여 암호화하는 문서객체모델 레벨의 키 입력 암호화 장치.
In claim 1
The encryption unit encrypts a plurality of user inputs sequentially input by using a symmetric key. If there is a previously encrypted encryption value, the encryption unit decrypts the encryption value and then inputs the previously input user and the currently input user input. Key input encryption device of document object model level that combines and combines user input using symmetric key.
제1항 또는 제2항에서,
상기 암호화부는 제1 사용자 입력을 암호화하여 저장한 후 상기 제1 사용자 입력과 무관한 표기가 상기 사용자 단말의 화면에 표시되게 하는 문서객체모델 레벨의 키 입력 암호화 장치.
The method of claim 1 or 2,
And encrypting and storing the first user input, thereby encrypting a representation unrelated to the first user input on a screen of the user terminal.
제3항에서,
상기 DOM부는 상기 암호화 모드 설정 후 수신되는 사용자 입력이 <html> 객체 및 <html> 객체 이후의 객체로 전파되지 않게 하고, 또한 상기 암호화 모드 설정 후 상기 DOM 트리구조의 객체에서 외부로 이벤트가 전파되지 않게 하는 문서객체모델 레벨의 키 입력 암호화 장치.
In claim 3,
The DOM unit prevents a user input received after setting the encryption mode from being propagated to the <html> object and the object after the <html> object, and further, the event is not propagated to the outside from the object of the DOM tree structure after setting the encryption mode. A keystroke encryption device at the document object model level.
제4항에 있어서,
상기 서버는,
상기 암호화된 암호값, 암호화된 대칭키 그리고 식별정보를 포함하여 전달받는 경우, 서블릿 필터를 통해 상기 암호화된 암호값을 복호화하는 문서객체모델 레벨의 키 입력 암호화 장치.
The method of claim 4, wherein
The server,
And a document object model level key input encryption device that decrypts the encrypted encryption value through a servlet filter when the encrypted encryption value, the encrypted symmetric key, and the identification information are received.
DOM(Document Object Model) 레벨에서 웹페이지의 웹페이지 파일을 해석하여 DOM 트리구조를 생성하는 단계,
상기 DOM 레벨에서 키 이벤트의 종류에 따라 암호화 모드를 설정하는 단계,
상기 DOM 레벨에서 상기 암호화 모드를 설정하면 발생된 키 이벤트가 타겟 객체로 전파되거나 외부로 전파되지 않게 플래그(flag)를 설정하는 단계, 그리고
상기 DOM 레벨에서 상기 암호화 모드 설정 후 입력되는 사용자 입력을 암호화하고 저장하는 단계
를 포함하는 문서객체모델 레벨의 키 입력 암호화 방법.
Creating a DOM tree structure by interpreting the webpage files of the webpage at the Document Object Model (DOM) level,
Setting an encryption mode according to a type of key event at the DOM level,
Setting a flag so that a key event generated when setting the encryption mode at the DOM level is not propagated to a target object or propagated to the outside; and
Encrypting and storing a user input input after setting the encryption mode at the DOM level
Document object model level keystroke encryption method comprising a.
제6항에서,
상기 사용자 입력을 암호화하고 저장하는 단계는,
순차적으로 입력되는 복수의 사용자 입력에 대하여 대칭키를 이용하여 암호화를 수행하되, 이전에 암호화된 암호화값이 있는 경우에 암호화값을 복호화한 후 이전 입력된 사용자 입력과 현재 입력된 사용자 입력을 합치고 합친 사용자 입력을 대칭키를 이용하여 암호화하는 문서객체모델 레벨의 키 입력 암호화 방법.
In claim 6,
Encrypting and storing the user input,
Encrypts a plurality of user inputs sequentially by using a symmetric key, and if there is a previously encrypted encryption value, decrypts the encryption value and then merges and combines the previously input user input with the currently input user input. A method of encrypting keystrokes at the document object model level, which encrypts user input using symmetric keys.
제6항 또는 제7항에서,
상기 사용자 입력을 암호화하고 저장하는 단계는,
사용자 입력을 암호화하여 저장한 후 상기 제1 사용자 입력과 무관한 표기가 상기 사용자 단말의 화면에 표시되게 하는 문서객체모델 레벨의 키 입력 암호화 방법.
In claim 6 or 7,
Encrypting and storing the user input,
And encrypting and storing a user input so that a mark irrelevant to the first user input is displayed on the screen of the user terminal.
제8항에서,
상기 플래그(flag)를 설정하는 단계는,
상기 암호화 모드 설정 후 수신되는 사용자 입력이 <html> 객체 및 <html> 객체 이후의 객체로 전파되지 않게 하고, 상기 암호화 모드 설정 후 상기 DOM 트리구조의 객체에서 외부로 이벤트가 전파되지 않게 하는 문서객체모델 레벨의 키 입력 암호화 방법.
In claim 8,
The setting of the flag includes:
Document object that prevents the user input received after setting the encryption mode to the <html> object and the object after the <html> object, and does not propagate events from the object of the DOM tree structure to the outside after setting the encryption mode Model-level keystroke encryption method.
제9항에 있어서,
상기 암호화된 암호값과 암호화된 대칭키를 서버로 전달하는 단계를 더 포함하고,
상기 서버는,
상기 암호화된 암호값, 암호화된 대칭키 그리고 식별정보를 포함하여 전달받는 경우, 서블릿 필터를 통해 상기 암호화된 암호값을 복호화하는 문서객체모델 레벨의 키 입력 암호화 방법.
The method of claim 9,
Transmitting the encrypted encryption value and the encrypted symmetric key to a server,
The server,
And receiving the encrypted cipher value, the encrypted symmetric key, and the identification information, and decrypting the encrypted cipher value through a servlet filter.
KR1020180021076A 2018-02-22 2018-02-22 Apparatus and method to encrypt key input in document object model level KR102109864B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180021076A KR102109864B1 (en) 2018-02-22 2018-02-22 Apparatus and method to encrypt key input in document object model level

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180021076A KR102109864B1 (en) 2018-02-22 2018-02-22 Apparatus and method to encrypt key input in document object model level

Publications (2)

Publication Number Publication Date
KR20190101118A true KR20190101118A (en) 2019-08-30
KR102109864B1 KR102109864B1 (en) 2020-05-12

Family

ID=67776249

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180021076A KR102109864B1 (en) 2018-02-22 2018-02-22 Apparatus and method to encrypt key input in document object model level

Country Status (1)

Country Link
KR (1) KR102109864B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293671A (en) * 2005-04-11 2006-10-26 Quality Kk Information processor, file management system and file management program
JP2007065362A (en) * 2005-08-31 2007-03-15 Ktk Kk Information communication device and information communication method
KR20130012327A (en) * 2011-07-25 2013-02-04 주식회사호천 Data security apparatus, system and method using the same
KR101414186B1 (en) * 2014-03-27 2014-07-01 주식회사 삼문시스템 Method for real-time preventing leak data
JP2016521875A (en) * 2013-05-20 2016-07-25 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited Data protection

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293671A (en) * 2005-04-11 2006-10-26 Quality Kk Information processor, file management system and file management program
JP2007065362A (en) * 2005-08-31 2007-03-15 Ktk Kk Information communication device and information communication method
KR20130012327A (en) * 2011-07-25 2013-02-04 주식회사호천 Data security apparatus, system and method using the same
JP2016521875A (en) * 2013-05-20 2016-07-25 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited Data protection
KR101414186B1 (en) * 2014-03-27 2014-07-01 주식회사 삼문시스템 Method for real-time preventing leak data

Also Published As

Publication number Publication date
KR102109864B1 (en) 2020-05-12

Similar Documents

Publication Publication Date Title
Eskandarian et al. Fidelius: Protecting user secrets from compromised browsers
US8176324B1 (en) Method and system for a secure virtual keyboard
JP6516342B2 (en) Access data tampering prevention method and portable terminal
KR101878149B1 (en) Device, system, and method of secure entry and handling of passwords
CN101183412B (en) Method and device for secure data entry in an application
KR100745489B1 (en) Preventing method for hacking key input data
JP2008269610A (en) Protecting sensitive data intended for remote application
KR20130087010A (en) Method and device for secured entry of personal data
Kalysch et al. How android's UI security is undermined by accessibility
EP3869374B1 (en) Method, apparatus and electronic device for processing user request and storage medium
KR100996955B1 (en) Security method using virtual keyboard
EP2973182B1 (en) Methods and apparatus for securing user input in a mobile device
WO2023053101A1 (en) Systems and methods for malicious code neutralization in execution environments
KR101228028B1 (en) Virtual keyboard and preventing method for hacking information using the same
US20170200020A1 (en) Data management system, program recording medium, communication terminal, and data management server
CN113032753A (en) Identity verification method and device
KR101042227B1 (en) A Method for Preventing from Hacking with Virtual Keyboard
CN112613000A (en) Sensitive information protection method and device, electronic equipment and readable storage medium
CN107066888A (en) Expansible trusted users interface, method and electronic equipment
KR20020074475A (en) Method and apparatus for inputting secret information
KR102109864B1 (en) Apparatus and method to encrypt key input in document object model level
KR101015633B1 (en) A method and a computer readable media for secure data input
KR20110014177A (en) Method and system for defeating the man in the middle computer hacking technique
KR102047547B1 (en) System for security using encryption mode in self-protected javascript and method thereof
KR20180129302A (en) Method for executing of security keyboard, apparatus and system for executing the method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant