KR20080010918A - Keyboard security method preventing application hooking - Google Patents

Keyboard security method preventing application hooking Download PDF

Info

Publication number
KR20080010918A
KR20080010918A KR1020060071613A KR20060071613A KR20080010918A KR 20080010918 A KR20080010918 A KR 20080010918A KR 1020060071613 A KR1020060071613 A KR 1020060071613A KR 20060071613 A KR20060071613 A KR 20060071613A KR 20080010918 A KR20080010918 A KR 20080010918A
Authority
KR
South Korea
Prior art keywords
input
keyboard
security
window
information
Prior art date
Application number
KR1020060071613A
Other languages
Korean (ko)
Other versions
KR100835224B1 (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 KR1020060071613A priority Critical patent/KR100835224B1/en
Publication of KR20080010918A publication Critical patent/KR20080010918A/en
Application granted granted Critical
Publication of KR100835224B1 publication Critical patent/KR100835224B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Input From Keyboards Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

A keyboard security method preventing application program hooking is provided to cut off application program hooking fundamentally by outputting inputted characters into a virtual window produced at the same location of a real window, thereby protecting the input information even at application program level. Composition information of a web page is created and stored(S10). Focus movement into an input window of a web browser is sensed(S20). A security driver is registered in an interrupt descriptor table(S30). Keyboard input information is transmitted from the security driver(S40). The received keyboard input information is converted into character data, and then stored in a buffer(S50). A virtual window is created(S60). The converted character data is outputted into the virtual window(S70). The virtual window is removed, and the input characters are transmitted to a PKI(Public Key Infrastructure)(S80).

Description

응용프로그램 후킹을 방지하는 키보드 보안 방법{Keyboard security method preventing application hooking}Keyboard security method preventing application hooking}

도 1은 로그인 입력창에 아이디 및 암호를 입력할 수 있는 방법을 나타내는 도면.1 is a view showing a method for inputting an ID and password in the login input window.

도 2는 해킹툴이 응용프로그램 후킹을 통해 인터넷 뱅킹 로그인 정보를 획득한 상태를 나타내는 도면.2 is a view showing a state in which the hacking tool obtained the Internet banking login information through the application hooking.

도 3은 키보드 입력 정보가 전달되는 경로를 나타내는 도면.3 is a diagram illustrating a path through which keyboard input information is transmitted.

도 4는 본 발명의 일실시예에 따른 응용프로그램 후킹을 방지하는 키보드 보안 방법이 적용되는 보안 솔루션의 구성도.4 is a configuration diagram of a security solution to which a keyboard security method for preventing application hooking according to an embodiment of the present invention is applied.

도 5는 본 발명의 일실시예에 따른 응용프로그램 후킹을 방지하는 키보드 보안 방법을 나타내는 순서도.5 is a flowchart illustrating a keyboard security method for preventing application hooking according to an embodiment of the present invention.

도 6은 도 5에 도시된 가상 윈도우 생성 단계에서 생성된 가상 윈도우를 예시하는 도면.FIG. 6 is a diagram illustrating a virtual window generated in the virtual window generating step shown in FIG. 5. FIG.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

100 : 보안 드라이버 200 : 제어부100: security driver 200: control unit

210 : 데이터 수신부 220 : 드라이버 등록부210: data receiver 220: driver register

230 : 데이터 저장부 240 : 가상 출력부230: data storage unit 240: virtual output unit

241 : 가상 윈도우 250 : 데이터 발신부241: virtual window 250: data transmission unit

본 발명은 키보드 입력 정보를 해킹으로부터 보호해주는 보안 방법에 관한 것으로서, 더욱 상세하게는 응용프로그램의 입력창에 키보드 입력이 발생하였을 때, 커널 영역의 보안 키보드 드라이버로부터 사용자 영역의 보안 프로그램까지 연결된 보안 경로를 통해 키보드 입력 정보를 전송하고, 입력된 문자를 해당 입력창과 동일한 위치 및 크기를 가지는 투명한 가상 윈도우를 통해 출력하여 응용프로그램 후킹을 원천적으로 차단함으로써, 키보드 레벨과 응용프로그램 레벨의 보안을 모두 보장해주는 키보드 보안 방법에 관한 것이다.The present invention relates to a security method for protecting keyboard input information from hacking, and more particularly, when a keyboard input occurs in an input window of an application, a security path connected from a secure keyboard driver in a kernel area to a security program in a user area. Sends keyboard input information through and outputs inputted characters through transparent virtual window having the same position and size as the corresponding input window to block application hooking, which ensures both keyboard level and application level security. Keyboard security method.

최근 인터넷과 컴퓨터 기술이 급속도로 발전함에 따라 인터넷 뱅킹이나 주식 거래 등 중요한 개인 정보를 담고 있는 다양한 업무들이 개인 컴퓨터(PC)를 통해서 이루어지고 있다.Recently, with the rapid development of the Internet and computer technology, various tasks containing important personal information such as internet banking and stock trading are being performed through personal computers (PCs).

이러한 개인 정보를 보호하기 위하여 기존의 많은 보안 기술들이 주로 서버 보안과 사용자 컴퓨터와 서버 간의 데이터 전송 보안 영역에 집중적으로 개발되어, 인터넷을 통한 전송 경로 상에서의 데이터 보안은 상당 수준 보장이 되는 단계에 이르렀다.In order to protect such personal information, many existing security technologies have been mainly developed in the area of server security and data transmission security between user computer and server, and data security on the transmission path through the Internet has reached a level of guarantee. .

그러나, 상대적으로 보안 수준이 취약한 PC에서는, 스파이웨어(spyware)나 키스트로크 로거(keystroke logger)를 이용하여 키보드 입력 정보를 획득함으로써 개인 정보를 취득 및 도용하는 사례들이 증가하고 있다.However, on relatively insecure PCs, there are increasing cases of acquiring and stealing personal information by obtaining keyboard input information using spyware or keystroke loggers.

이러한 해킹 문제를 해결하기 위한 방법으로는 PC에 바이러스 백신, 스파이웨어 제거 도구 등을 설치하여 스파이웨어 등의 악성 프로그램을 탐지 및 제거하는 방법이 있다. 그러나, 이러한 방법은 변형 또는 신종 악성 프로그램이 발생한 경우에는 그 피해 상황이 보고된 이후에만 대처가 가능하므로, 사전에 피해를 예방하는 데에는 한계가 있다는 문제점이 있다.One way to solve this hacking problem is to install antivirus and spyware removal tools on your PC to detect and remove malicious programs such as spyware. However, when the modified or new malicious program occurs, it is possible to cope only after the damage situation is reported, and thus there is a limit in preventing the damage in advance.

이러한 문제점을 해결하기 위한 종래의 키보드 보안 방법으로는 한국등록특허공보 제 0378586호에 기재된 "엑티브엑스 기반의 키보드 해킹 방지 방법 및 장치"가 있다. 상기 문헌에는 키보드 입력 정보를 버퍼링한 후 키보드 포트에 남아있는 키보드 흔적 데이터를 삭제한 후, 버퍼링된 키보드 입력 정보를 기존의 키보드 데이터 흐름이 아닌 별도의 전송 구간을 통하여 응용프로그램(application)으로 전달하여 응용프로그램의 입력창에 출력되도록 하는 방식으로 키보드 입력 정보를 보호하는 방법이 기재되어 있다.Conventional keyboard security method for solving this problem is the "ActiveX-based keyboard hacking prevention method and apparatus" described in Korea Patent Publication No. 0378586. The document deletes the keyboard trace data remaining in the keyboard port after buffering the keyboard input information, and then transfers the buffered keyboard input information to the application through a separate transmission section instead of the existing keyboard data flow. A method of protecting keyboard input information is described in such a manner as to be output to an input window of an application program.

그러나, 이와 같은 키보드 보안 방법은 키보드 입력 정보가 응용프로그램에 전달되기 전까지의 보안은 가능하지만, 응용프로그램 자체에 대한 해킹 위험으로부터 키보드 입력 정보를 보호할 수 없다는 문제점이 있다.However, such a keyboard security method has security until keyboard input information is transmitted to an application, but there is a problem that keyboard input information cannot be protected from a hacking risk for the application itself.

도 1은 로그인 입력창에 아이디 및 암호를 입력할 수 있는 방법을 나타내는 도면이다.1 is a view illustrating a method of inputting an ID and a password in a login input window.

도 1에 도시된 바와 같이, 응용프로그램의 입력창에는 키보드를 통한 직접 입력 이외에도 카피앤패이스트(copy & paste)를 통해 입력하고자 하는 텍스트를 간접적으로 복사하여 붙여 넣는 방법과, 자동입력기능을 이용하여 서버에서 자동으로 입력되게 하는 방법 등이 있다. 여기서, 키보드를 통한 직접 입력 방법을 통해 키보드 입력 정보가 응용프로그램에 전달되기 전까지는 상기한 종래의 키보드 보안 방법에 의한 보호가 가능하지만, 상기한 다양한 방법을 통해 입력 정보가 응용프로그램으로 전달되어 입력창 등에 출력된 이후에 대한 응용프로그램 보안은 현재 전혀 이루어지지 않고 있는 실정이다.As shown in Figure 1, in addition to the direct input via the keyboard in the input window of the application program using a method of indirectly copying and pasting the text to be input through copy and paste, and using the automatic input function There is a way to automatically enter the server. Here, the keyboard can be protected by the conventional keyboard security method until the keyboard input information is transmitted to the application through the direct input method through the keyboard, but the input information is transmitted to the application through the various methods described above. Application security is not currently performed at all after being output to a window.

도 2는 해킹툴이 응용프로그램 후킹을 통해 인터넷 뱅킹 로그인 정보를 획득한 상태를 나타내는 도면이다.2 is a diagram illustrating a state in which a hacking tool acquires Internet banking login information through application program hooking.

도 2의 좌측에서와 같이, 인터넷 뱅킹을 위한 로그인 화면에 아이디와 비밀번호 정보를 입력하면, 웹브라우저는 입력된 문자 정보를 입력창에 출력하여 사용자가 인지할 수 있도록 해준다. 그러나, 소스 분석기나 해킹툴을 사용하면, 도 2의 우측에 도시된 바와 같이, 아이디 입력창 및 비밀번호 입력창의 속성과 각 입력창에 입력된 아이디와 비밀번호 정보를 용이하게 획득할 수 있다.As shown in the left side of Figure 2, when entering the ID and password information on the login screen for Internet banking, the web browser outputs the input character information to the input window so that the user can recognize. However, using the source analyzer or the hacking tool, as shown in the right side of FIG. 2, the attributes of the ID input window and the password input window and the ID and password information input to each input window can be easily obtained.

따라서, 키보드 입력 정보가 키보드로부터 응용프로그램으로 전달되는 과정에서의 키보드 보안 뿐만 아니라, 응용프로그램으로 입력 정보가 전달된후 응용프로그램 자체에 대한 보안을 제공해주는 보안 방법에 대한 연구 및 개발이 필수적으로 요구되고 있다.Therefore, not only keyboard security in the process of transferring keyboard input information from the keyboard to the application program, but also research and development on a security method that provides security for the application program itself after the input information is transmitted to the application program is essential. It is becoming.

본 발명은 상기한 종래 기술에 따른 키보드 보안 방법의 문제점을 해결하기 위한 것이다. 즉, 본 발명의 목적은, 키보드 입력 정보를 보안 키보드 드라이버로부터 보안 프로그램까지 연결된 보안 경로를 통해 키보드 입력 정보를 전송하고, 입력된 문자를 해당 입력창과 동일한 위치에 생성된 가상 윈도우를 통해 출력하여 응용프로그램 후킹을 원천적으로 차단함으로써, 입력된 정보를 키보드 레벨은 물론 응용프로그램 레벨에서도 안전하게 보호하는데에 있다.The present invention is to solve the above problems of the keyboard security method according to the prior art. That is, an object of the present invention is to transmit the keyboard input information through a secure path connected from the secure keyboard driver to the secure program, and output the input characters through a virtual window generated at the same position as the corresponding input window. By inherently blocking program hooking, it is intended to secure input information at the keyboard level as well as the application level.

상기의 목적을 달성하기 위한 기술적 사상으로서의 본 발명은,The present invention as a technical idea for achieving the above object,

웹 페이지 로딩 시, 웹 페이지를 분석하여 웹 페이지의 구성 정보를 생성 및 저장하는 제1 단계와; 웹 브라우저의 입력창으로의 포커스 이동을 감지하는 제2 단계와; 보안 드라이버를 인터럽트 디스크립터 테이블에 등록하는 제3 단계와; 사용자의 키보드 입력에 대응하여 보안 드라이버로부터 해당 키보드 입력 정보를 전송받는 제4 단계와; 수신된 키보드 입력 정보를 인식 가능한 문자 데이터로 변환한 후 버퍼에 저장하는 제5 단계와; 상기 제1 단계에서 저장된 웹 페이지 구성 정보 정보를 기반으로 해당 입력창의 위치에 가상 윈도우를 생성하는 제6 단계와; 상기 생성된 가상 윈도우에 상기 제5 단계에서 변환된 입력 문자를 출력하는 제7 단계와; 사용자로부터의 입력 종료 시, 상기 제6 단계에서 생성된 가상 윈도우를 제거하고, 버퍼에 저장된 입력 문자열을 PKI(Public Key Infrastructure)로 전송하는 제8 단계를 포함하여 구성되는 것을 특징으로 하는 응용프로그램 후킹을 방지하는 키보드 보안 방법을 제공한다.A first step of generating and storing configuration information of the web page by analyzing the web page when the web page is loaded; Detecting a focus movement to an input window of a web browser; Registering a security driver in an interrupt descriptor table; A fourth step of receiving corresponding keyboard input information from the security driver in response to the user's keyboard input; Converting the received keyboard input information into recognizable character data and storing it in a buffer; A sixth step of creating a virtual window at a position of a corresponding input window based on the web page configuration information stored in the first step; A seventh step of outputting the input character converted in the fifth step to the generated virtual window; And an eighth step of removing the virtual window created in the sixth step and transmitting the input string stored in the buffer to the public key infrastructure (PKI) when the input from the user is terminated. Provides a keyboard security method to prevent this.

이하, 본 발명의 바람직한 실시예를 첨부 도면에 의거하여 상세하게 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 3은 키보드 입력 정보가 전달되는 경로를 나타내는 도면으로서, 도 3의 (a)는 종래의 키보드 보안 방법에 의한 경로를, 도 3의 (b)는 본 발명의 일실시예에 따른 응용프로그램 후킹을 방지하는 키보드 보안 방법에 의한 경로를 보여주고 있다.3 is a diagram illustrating a path through which keyboard input information is transmitted, (a) of FIG. 3 illustrates a path according to a conventional keyboard security method, and FIG. 3 (b) illustrates hooking an application program according to an embodiment of the present invention. It shows the path by keyboard security method to prevent the error.

종래의 키보드 보안 방법은 키보드 하드웨어에서부터 커널 레벨의 키보드 드라이버와 유저 모드의 보안 프로그램을 거쳐 웹 브라우저의 텍스트 박스에 이르는 경로까지 키보드 입력 정보를 보호한다. 또한, 웹 브라우저의 텍스트 박스에 입력된 정보를 웹에 연결된 서버로 전송하는 경로에 대한 보안은 PKI(Public Key Infrastructure)가 별도로 담당한다. 여기서, 키보드 입력 정보에 해당하는 텍스트 내용이 웹 브라우저의 텍스트 박스에 그대로 입력되기 때문에 전술한 응용프로그램 해킹툴에 의해 텍스트 박스의 내용이 해킹당할 수 있는 위험이 있다.The conventional keyboard security method protects the keyboard input information from the keyboard hardware to the path from the kernel level keyboard driver and the user mode security program to the text box of the web browser. In addition, the Public Key Infrastructure (PKI) is responsible for securing the path for transmitting information entered in the text box of the web browser to the server connected to the web. Here, since the text content corresponding to the keyboard input information is directly input into the text box of the web browser, the content of the text box may be hacked by the aforementioned application hacking tool.

한편, 본 발명의 일실시예에 따른 응용프로그램 후킹을 방지하는 키보드 보안 방법은, 키보드 입력 정보를 커널 레벨의 키보드 드라이버로부터 PKI로 보안 경로를 통하여 바로 전송하고, 키보드 입력 정보에 대응하는 텍스트를 웹 브라우저의 텍스트 박스가 아닌 별도로 생성한 가상 윈도우 상에 출력해주기 때문에 응용프로그램 해킹툴에 의한 해킹을 원천적으로 차단할 수 있다.On the other hand, the keyboard security method for preventing application hooking according to an embodiment of the present invention, the keyboard input information is transmitted directly from the kernel-level keyboard driver to the PKI via a secure path, and the text corresponding to the keyboard input information is web Since it is displayed on the virtual window created separately instead of the text box of the browser, hacking by the application hacking tool can be basically blocked.

도 4는 본 발명의 일실시예에 따른 응용프로그램 후킹을 방지하는 키보드 보 안 방법이 적용되는 보안 솔루션의 구성도이다.4 is a block diagram of a security solution to which a keyboard security method for preventing application hooking according to an embodiment of the present invention is applied.

도 4에 도시된 바와 같이, 본 발명의 일실시예에 따른 응용프로그램 후킹을 방지하는 키보드 보안 방법이 적용되는 보안 솔루션은, 커널 모드(ring 0)에 설치되어 키보드(10)를 통한 입력 데이터를 처리하는 보안 드라이버(100)와, 사용자 모드(ring 3)에 설치되어 상기 보안 드라이버(100)로부터 키보드 입력 정보를 전송받아 키보드 입력 정보에 대한 보안 기능을 수행하는 제어부(200)를 포함하여 구성된다.As shown in FIG. 4, a security solution to which a keyboard security method for preventing application hooking according to an embodiment of the present invention is applied is installed in a kernel mode (ring 0) to receive input data through the keyboard 10. It is configured to include a security driver 100 for processing, and a control unit 200 installed in the user mode (ring 3) to receive keyboard input information from the security driver 100 to perform a security function for the keyboard input information. .

상기 제어부(200)는 보안 드라이버(100)를 인터럽트 디스크립터 테이블(interrupt descriptor table)에 등록해주는 드라이버 등록부(220)와, 보안 드라이버(100)로부터 키보드 입력 정보를 전송받는 데이터 수신부(210)와, 데이터 수신부(210)를 통해 수신된 키보드 입력 정보를 해당하는 문자 데이터로 변환하여 버퍼링하는 데이터 저장부(230)와, 웹 브라우저의 입력창 위에 가상 윈도우(241)를 생성하고 여기에 입력된 문자 데이터를 출력해주는 가상 출력부(240)와, 데이터 저장부(230)에 저장된 입력 정보를 외부의 PKI(20)에 전송해주는 데이터 발신부(250)를 포함하여 구성된다. 여기서, 가상 출력부(240)에서 가상 윈도우(241)를 생성하여 입력 문자를 출력하는 방법에 대해서는 후술하여 상세히 설명하기로 한다.The controller 200 may include a driver register 220 that registers the security driver 100 in an interrupt descriptor table, a data receiver 210 that receives keyboard input information from the security driver 100, and data. The data storage unit 230 converts and buffers the keyboard input information received through the receiver 210 into corresponding character data, and creates a virtual window 241 on the input window of the web browser, and then inputs the character data input thereto. It includes a virtual output unit 240 for outputting, and a data transmitter 250 for transmitting the input information stored in the data storage unit 230 to the external PKI 20. Here, a method of outputting an input character by generating the virtual window 241 in the virtual output unit 240 will be described in detail later.

도 5는 본 발명의 일실시예에 따른 응용프로그램 후킹을 방지하는 키보드 보안 방법을 나타내는 순서도이다.5 is a flowchart illustrating a keyboard security method for preventing application hooking according to an embodiment of the present invention.

이하, 상술한 바와 같이 구성된 보안 솔루션에 적용되는 본 발명의 일실시예 에 따른 응용프로그램 후킹을 방지하는 키보드 보안 방법에 대하여, 도 5를 참조하여 상세히 설명하기로 한다.Hereinafter, a keyboard security method for preventing hooking of an application program according to an embodiment of the present invention applied to the security solution configured as described above will be described in detail with reference to FIG. 5.

먼저, 키보드 보안을 적용할 웹 페이지가 로딩되면, 제어부(200)는 웹 페이지를 분석하여 웹 페이지를 구성하는 각 요소 즉, 입력창, 폼(form) 정보, 프레임(frame) 정보 및 아이프레임(iframe) 정보 등이 포함된 페이지 구성 정보를 생성하여 저장한다(S10). 상기 페이지 구성 정보는 각 구성 요소의 크기 및 위치 등의 속성 정보를 포함하며, 특히 입력창에 대해서는 해당 입력창이 일반 텍스트 입력창인지, 또는 비밀번호 입력창인지에 대한 정보도 포함할 수 있다. 여기서, 페이지 구성 정보는 페이지의 각 구성 요소를 트리 구조로 표현한 DOM(Document Object Model) 정보인 것이 바람직하다.First, when a web page to which keyboard security is to be loaded is loaded, the controller 200 analyzes the web page to configure each element constituting the web page, that is, an input window, form information, frame information, and an iframe. iframe) generates and stores page configuration information including information (S10). The page configuration information may include attribute information such as the size and location of each component. In particular, the input window may include information on whether the corresponding input window is a general text input window or a password input window. Here, the page configuration information is preferably DOM (Document Object Model) information representing each component of the page in a tree structure.

이후, 사용자의 마우스 클릭 등에 의하여 웹 브라우저의 특정 입력창으로 포커스(focus)가 이동하면, 제어부(200)는 해당 입력창으로의 포커스 이동을 감지하고(S20), 보안 드라이버(100)의 저장 주소를 인터럽트 디스크립터 테이블(interrupt descriptor table)의 키보드 처리용 인터럽트 서비스 루틴으로 등록한다(S30).Subsequently, when the focus moves to a specific input window of the web browser by a user's mouse click, the control unit 200 detects the focus movement to the corresponding input window (S20), and stores the storage address of the security driver 100. Is registered as an interrupt service routine for keyboard processing of an interrupt descriptor table (S30).

여기서, 인터럽트 디스크립터 테이블은 시스템의 운영체제에서 제공되는 영역으로서, 내외부 인터럽트 및 예외 처리를 담당하는 함수 주소에 대한 목록을 저장하고 있다. 키보드를 통하여 키보드 데이터가 입력되면 인터럽트가 발생하게 되고, 운영체제는 인터럽트 디스크립터 테이블에서 키보드를 처리하는 인터럽트 서비스 루틴(interrupt service routine)의 주소를 찾아서 해당 인터럽트 서비스 루틴 을 실행하게 된다. 따라서, 제어부(200)가 보안 드라이버(100)의 인터럽트 서비스 루틴 주소를 인터럽트 디스크립터 테이블에 등록하면, 키보드 입력에 의한 인터럽트가 발생했을 때 기존의 인터럽트 서비스 루틴, 즉 기존 키보드 드라이버가 아닌 상기 보안 드라이버(100)가 실행되어 키보드 입력 정보를 처리하게 된다.Here, the interrupt descriptor table is an area provided by the operating system of the system, and stores a list of function addresses that handle internal and external interrupts and exceptions. When keyboard data is input through the keyboard, an interrupt occurs. The operating system finds the address of the interrupt service routine that processes the keyboard in the interrupt descriptor table and executes the interrupt service routine. Therefore, when the control unit 200 registers the interrupt service routine address of the security driver 100 in the interrupt descriptor table, when the interrupt caused by keyboard input occurs, the security driver (not the existing keyboard driver), that is, the existing interrupt service routine ( 100) is executed to process the keyboard input information.

이후, 사용자가 키보드를 입력하면 상기 등록된 보안 드라이버(100)가 구동되고, 제어부(200)는 보안 드라이버(100)로부터 해당 키보드 입력 정보를 직접 연결된 보안 경로를 통하여 전송받는다(S40).Thereafter, when the user inputs the keyboard, the registered security driver 100 is driven, and the controller 200 receives the corresponding keyboard input information from the security driver 100 through a directly connected security path (S40).

이어서, 제어부(200)는 수신된 키보드 입력 정보를 인식 가능한 문자 데이터(readable character)로 변환한 후 버퍼에 저장한다(S50). 여기서, 수신된 키보드 입력 정보 중 입력된 키의 스캔 코드(scan code)를 그에 대응하는 인식 가능 문자 데이터로 변환한다.Subsequently, the controller 200 converts the received keyboard input information into readable character data and stores the received keyboard input information in a buffer (S50). Here, the scan code of the input key among the received keyboard input information is converted into recognizable character data corresponding thereto.

이후, 제어부(200)는 상기 DOM 생성 및 저장 단계(S10)에서 저장된 DOM 정보로부터 현재 입력창의 속성 정보를 독출하여 해당 입력창의 위치에 가상 윈도우를 생성하고(S60), 생성된 가상 윈도우에 상기 변환된 입력 문자를 출력시킨다(S70). 여기서, 생성된 가상 윈도우는 그 하부에 위치한 웹 브라우저의 입력창을 그대로 투영할 수 있도록 바탕색이 투명한 투명 윈도우인 것이 바람직하다. 즉, 도 6의 (a)에서와 같이 웹 브라우저 상에 존재하는 아이디 또는 비밀번호 입력창이나, 도 6의 (b)에서와 같이 공인인증서 비밀번호 입력창의 위치에, 투명한 가상 윈도우를 생성하고 여기에 실제 입력창에 출력되는 형태와 동일하게 입력 문자를 출력해줌으로써, 사용자로 하여금 실제 웹 브라우저로 문자가 입력되고 있는 것으로 인식하도 록 할 수 있다.Thereafter, the control unit 200 reads the property information of the current input window from the DOM information stored in the DOM generation and storage step S10, generates a virtual window at the position of the corresponding input window (S60), and converts the generated virtual window into the converted virtual window. The input character is output (S70). In this case, the generated virtual window is preferably a transparent window having a transparent background color so that the input window of the web browser located below the projector can be projected as it is. That is, a transparent virtual window is created at the location of the ID or password input window existing on the web browser as shown in FIG. 6A or the authentication certificate password input window as shown in FIG. By outputting the input text in the same way as the output on the input window, the user can recognize that the text is being input to the actual web browser.

이후, 제어부(200)는 사용자로부터의 입력이 종료되었는지를 판단하여(S80), 입력이 종료된 경우 상기 가상 윈도우 생성 단계(S60)에서 생성된 가상 윈도우를 제거하고(S90), 상기 입력 문자 변환 및 저장 단계(S50)에서 저장된 입력 문자열을 PKI로 전송해준다(S100).Thereafter, the controller 200 determines whether the input from the user is terminated (S80), and when the input is terminated, removes the virtual window generated in the virtual window generating step (S60) (S90), and converts the input text. And transmits the input string stored in the storage step (S50) to the PKI (S100).

여기서, 상기 입력 종료 판단 단계(S80)는 사용자가 아이디 및 패스워드를 모두 입력한 후 '확인' 버튼을 클릭하여, PKI에서 해당 아이디 및 패스워드 정보를 요청하는 시점에 해당한다.In this case, the input termination determination step (S80) corresponds to the point in time when the user inputs both the ID and password, clicks the 'confirm' button, and requests the corresponding ID and password information from the PKI.

이어서, 제어부(200)는 기존의 키보드 드라이버 주소를 인터럽트 디스크립터 테이블의 키보드 처리용 인터럽트 서비스 루틴으로 등록하여, 보안 드라이버의 등록을 해제한다(S110).Subsequently, the controller 200 registers an existing keyboard driver address as an interrupt service routine for keyboard processing in the interrupt descriptor table, and deregisters the security driver (S110).

한편, 상기 입력 종료 판단 단계(S80)에서 사용자의 입력이 종료되지 않은 상태이면 상기 키보드 입력에 따른 키보드 입력 정보 전송 단계(S40)로 되돌아가서 그 이후의 단계들을 계속 수행한다.On the other hand, if the user's input is not terminated in the input end determination step (S80), the process returns to the keyboard input information transmission step (S40) according to the keyboard input and continues the subsequent steps.

상술한 본 발명의 일실시예에서는 웹 페이지의 로딩시에 PKI가 구동되고, 제어부(200)와 PKI가 서로 연동하도록 구성된 경우에 대하여 설명하였으나, 아이디 및 비밀번호 입력이 완료된 시점에 PKI 대신 웹 브라우저가 입력된 아이디 및 비밀번호 정보를 수집하여 네트워크 전송을 수행하는 경우, 상기 S100 단계에서 PKI가 아닌 웹 브라우저로 입력 문자열을 전송해주도록 구성할 수도 있다.In the above-described embodiment of the present invention, the PKI is driven when the web page is loaded, and the controller 200 and the PKI are configured to interwork with each other. When performing the network transmission by collecting the input ID and password information, it may be configured to transmit the input string to the web browser, not the PKI in step S100.

이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것은 아니며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백하다 할 것이다.The present invention described above is not limited to the above-described embodiments and the accompanying drawings, and various substitutions, modifications, and changes are possible in the art without departing from the technical spirit of the present invention. It will be clear to those of ordinary knowledge.

이상에서와 같이, 본 발명에 따른 응용프로그램 후킹을 방지하는 키보드 보안 방법은, 입력된 문자를 응용프로그램의 입력창이 아닌 해당 입력창과 동일한 위치에 생성된 가상 윈도우를 통해 출력하여 응용프로그램 후킹을 원천적으로 차단함으로써, 입력된 정보를 응용프로그램 레벨까지도 안전하게 보호해줄 수 있는 표과가 있다.As described above, the keyboard security method for preventing application hooking according to the present invention, by outputting the input character through the virtual window created in the same position as the input window, not the input window of the application program, the application hooking is fundamentally By blocking, there is a table of contents that can protect the entered information even at the application level.

Claims (8)

커널 모드에 설치된 보안 드라이버와, 사용자 모드에 설치되어 키보드 입력 정보에 대한 보안 기능을 수행하는 제어부가 구비된 컴퓨터 시스템 상에서, 상기 제어부를 이용하여 키보드 입력 정보를 보호하기 위한 보안 방법에 있어서,A security method for protecting keyboard input information using the control unit on a computer system having a security driver installed in a kernel mode and a control unit installed in a user mode and performing a security function on the keyboard input information, 웹 페이지 로딩 시, 웹 페이지를 분석하여 웹 페이지의 구성 정보를 생성 및 저장하는 제1 단계와;A first step of generating and storing configuration information of the web page by analyzing the web page when the web page is loaded; 웹 브라우저의 입력창으로의 포커스 이동을 감지하는 제2 단계와;Detecting a focus movement to an input window of a web browser; 보안 드라이버를 인터럽트 디스크립터 테이블에 등록하는 제3 단계와;Registering a security driver in an interrupt descriptor table; 사용자의 키보드 입력에 대응하여 보안 드라이버로부터 해당 키보드 입력 정보를 전송받는 제4 단계와;A fourth step of receiving corresponding keyboard input information from the security driver in response to the user's keyboard input; 수신된 키보드 입력 정보를 인식 가능한 문자 데이터로 변환한 후 버퍼에 저장하는 제5 단계와;Converting the received keyboard input information into recognizable character data and storing it in a buffer; 상기 제1 단계에서 저장된 웹 페이지 구성 정보 정보를 기반으로 해당 입력창의 위치에 가상 윈도우를 생성하는 제6 단계와;A sixth step of creating a virtual window at a position of a corresponding input window based on the web page configuration information stored in the first step; 상기 생성된 가상 윈도우에 상기 제5 단계에서 변환된 입력 문자를 출력하는 제7 단계와;A seventh step of outputting the input character converted in the fifth step to the generated virtual window; 사용자로부터의 입력 종료 시, 상기 제6 단계에서 생성된 가상 윈도우를 제거하고, 버퍼에 저장된 입력 문자열을 PKI(Public Key Infrastructure)로 전송하는 제8 단계;An eighth step of removing the virtual window generated in the sixth step and transmitting an input string stored in a buffer to a public key infrastructure (PKI) when the input from the user is terminated; 를 포함하여 구성되는 것을 특징으로 하는 응용프로그램 후킹을 방지하는 키보드 보안 방법.Keyboard security method for preventing the hooking application, characterized in that configured to include. 제 1항에 있어서,The method of claim 1, 입력 종료시, 기존의 키보드 드라이버 주소를 인터럽트 디스크립터 테이블의 키보드 처리용 인터럽트 서비스 루틴으로 등록하여, 보안 드라이버의 등록을 해제하는 제9 단계를 더 포함하여 구성되는 것을 특징으로 하는 응용프로그램 후킹을 방지하는 키보드 보안 방법.And a ninth step of deregistering the security driver by registering an existing keyboard driver address as an interrupt service routine for keyboard processing in the interrupt descriptor table when the input is terminated. Security method. 제 1항에 있어서,The method of claim 1, 상기 제8 단계는,The eighth step, 사용자가 아이디 및 패스워드를 모두 입력한 후 '확인' 버튼을 클릭하여, PKI에서 해당 아이디 및 패스워드 정보를 요청하는 시점에 사용자의 입력이 종료된 것으로 판단하는 것을 특징으로 하는 응용프로그램 후킹을 방지하는 키보드 보안 방법.After the user enters both the ID and password, click the 'OK' button, the keyboard to prevent the application hooking, characterized in that it is determined that the user's input is terminated when the PKI requests the ID and password information Security method. 커널 모드에 설치된 보안 드라이버와, 사용자 모드에 설치되어 키보드 입력 정보에 대한 보안 기능을 수행하는 제어부가 구비된 컴퓨터 시스템 상에서, 상기 제어부를 이용하여 키보드 입력 정보를 보호하기 위한 보안 방법에 있어서,A security method for protecting keyboard input information using the control unit on a computer system having a security driver installed in a kernel mode and a control unit installed in a user mode and performing a security function on the keyboard input information, 웹 페이지 로딩 시, 웹 페이지를 분석하여 웹 페이지의 구성 정보를 생성 및 저장하는 제1 단계와;A first step of generating and storing configuration information of the web page by analyzing the web page when the web page is loaded; 웹 브라우저의 입력창으로의 포커스 이동을 감지하는 제2 단계와;Detecting a focus movement to an input window of a web browser; 보안 드라이버를 인터럽트 디스크립터 테이블에 등록하는 제3 단계와;Registering a security driver in an interrupt descriptor table; 사용자의 키보드 입력에 대응하여 보안 드라이버로부터 해당 키보드 입력 정보를 전송받는 제4 단계와;A fourth step of receiving corresponding keyboard input information from the security driver in response to the user's keyboard input; 수신된 키보드 입력 정보를 인식 가능한 문자 데이터로 변환한 후 버퍼에 저장하는 제5 단계와;Converting the received keyboard input information into recognizable character data and storing it in a buffer; 상기 제1 단계에서 저장된 웹 페이지 구성 정보 정보를 기반으로 해당 입력창의 위치에 가상 윈도우를 생성하는 제6 단계와;A sixth step of creating a virtual window at a position of a corresponding input window based on the web page configuration information stored in the first step; 상기 생성된 가상 윈도우에 상기 제5 단계에서 변환된 입력 문자를 출력하는 제7 단계와;A seventh step of outputting the input character converted in the fifth step to the generated virtual window; 사용자로부터의 입력 종료 시, 상기 제6 단계에서 생성된 가상 윈도우를 제거하고, 버퍼에 저장된 입력 문자열을 웹 브라우저로 전송하는 제8 단계;An eighth step of removing the virtual window generated in the sixth step and transmitting the input string stored in the buffer to the web browser when the input from the user is terminated; 를 포함하여 구성되는 것을 특징으로 하는 응용프로그램 후킹을 방지하는 키보드 보안 방법.Keyboard security method for preventing the hooking application, characterized in that configured to include. 제 4항에 있어서,The method of claim 4, wherein 입력 종료시, 기존의 키보드 드라이버 주소를 인터럽트 디스크립터 테이블의 키보드 처리용 인터럽트 서비스 루틴으로 등록하여, 보안 드라이버의 등록을 해제하는 제9 단계를 더 포함하여 구성되는 것을 특징으로 하는 응용프로그램 후킹을 방지하는 키보드 보안 방법.And a ninth step of deregistering the security driver by registering an existing keyboard driver address as an interrupt service routine for keyboard processing in the interrupt descriptor table when the input is terminated. Security method. 제 4항에 있어서,The method of claim 4, wherein 상기 제8 단계는,The eighth step, 사용자가 아이디 및 패스워드를 모두 입력한 후 '확인' 버튼을 클릭하여, 웹 브라우저에서 해당 아이디 및 패스워드 정보를 수집하는 시점에 사용자의 입력이 종료된 것으로 판단하는 것을 특징으로 하는 응용프로그램 후킹을 방지하는 키보드 보안 방법.After the user enters both the ID and password, click the 'OK' button, to prevent hooking the application, characterized in that it is determined that the user's input is terminated at the time when the user ID and password information is collected by the web browser Keyboard security method. 제 1항 또는 제 4항에 있어서,The method according to claim 1 or 4, 상기 제1 단계에서 생성되는 페이지 구성 정보는, 페이지의 각 구성 요소를 트리 구조로 표현한 DOM(Document Object Model) 정보인 것을 특징으로 하는 응용프로그램 후킹을 방지하는 키보드 보안 방법.The page configuration information generated in the first step, the DOM (Document Object Model) information that represents each component of the page in a tree structure, the keyboard security method to prevent the hooking application. 제 1항 또는 제 4항에 있어서,The method according to claim 1 or 4, 상기 제6 단계에서 생성되는 가상 윈도우는, 상기 가상 윈도우의 하부에 위치한 웹 브라우저 입력창을 투영할 수 있는 투명 윈도우인 것을 특징으로 하는 응용프로그램 후킹을 방지하는 키보드 보안 방법.And a virtual window generated in the sixth step is a transparent window capable of projecting a web browser input window positioned below the virtual window.
KR1020060071613A 2006-07-28 2006-07-28 Keyboard security method preventing application hooking KR100835224B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060071613A KR100835224B1 (en) 2006-07-28 2006-07-28 Keyboard security method preventing application hooking

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060071613A KR100835224B1 (en) 2006-07-28 2006-07-28 Keyboard security method preventing application hooking

Publications (2)

Publication Number Publication Date
KR20080010918A true KR20080010918A (en) 2008-01-31
KR100835224B1 KR100835224B1 (en) 2008-06-05

Family

ID=39222833

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060071613A KR100835224B1 (en) 2006-07-28 2006-07-28 Keyboard security method preventing application hooking

Country Status (1)

Country Link
KR (1) KR100835224B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010038913A1 (en) * 2008-10-02 2010-04-08 Softcamp Co., Ltd Preservation method about data in ie memory altered without leave
CN106033523A (en) * 2015-03-07 2016-10-19 汪风珍 A physical and virtual keyboard password input system
KR20190101120A (en) * 2018-02-22 2019-08-30 주식회사 알파비트 System for security using encryption mode in self-protected javascript and method thereof
CN111857667A (en) * 2020-07-23 2020-10-30 平安普惠企业管理有限公司 Input method based on Hybird framework and related equipment

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100447777B1 (en) * 2002-07-24 2004-09-08 주식회사 잉카인터넷 Hacking prevention of key stroke data
KR100959638B1 (en) * 2004-03-09 2010-05-26 주식회사 하우리 Method for preventing key input from hacking, computer-readable storage medium recorded with program for preventing key input from hacking

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010038913A1 (en) * 2008-10-02 2010-04-08 Softcamp Co., Ltd Preservation method about data in ie memory altered without leave
CN106033523A (en) * 2015-03-07 2016-10-19 汪风珍 A physical and virtual keyboard password input system
KR20190101120A (en) * 2018-02-22 2019-08-30 주식회사 알파비트 System for security using encryption mode in self-protected javascript and method thereof
CN111857667A (en) * 2020-07-23 2020-10-30 平安普惠企业管理有限公司 Input method based on Hybird framework and related equipment

Also Published As

Publication number Publication date
KR100835224B1 (en) 2008-06-05

Similar Documents

Publication Publication Date Title
JP5451857B2 (en) Active X-based keyboard hacking prevention input window
RU2610254C2 (en) System and method of determining modified web pages
US7870610B1 (en) Detection of malicious programs
US8307435B1 (en) Software object corruption detection
JP4838505B2 (en) Providing safe inputs and outputs to trusted agents in systems with highly guaranteed execution environments
US20120240224A1 (en) Security systems and methods for distinguishing user-intended traffic from malicious traffic
US9886576B2 (en) Security box
US9361460B1 (en) Detecting malware through package behavior
US11288376B2 (en) Identifying hard-coded secret vulnerability inside application source code
US8122518B2 (en) Secure input method based on virtual machine
JP2005509214A5 (en)
US20100082843A1 (en) Method and System for Implementing Automatic Installation of Key Device
US20130104220A1 (en) System and method for implementing a secure USB application device
KR101780764B1 (en) An unauthorized command control method by the access control system for enhancing server security
CN104243475B (en) The method and system of dynamic obfuscation based on WEB reverse proxys
KR100835224B1 (en) Keyboard security method preventing application hooking
US8001173B2 (en) Information processing apparatus, selector, remote operation system, scan code transmission method, and program product therefor
KR100985076B1 (en) Apparatus and method for protecting data in usb devices
KR102482044B1 (en) some kind of data processing
US20140068771A1 (en) Transforming User-Input Data in Scripting Language
CN116192493A (en) Online banking safety protection method, system, medium, equipment and terminal
JP2013506185A (en) Windows Kernel Modification Detection Method
WO2009104720A1 (en) Resource usage control system, method of controlling resource usage, program for controlling resource usage
WO2018053988A1 (en) Secure input system and method, intelligent terminal, and storage medium
KR100854301B1 (en) Keyboard security method using the security channel

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
J206 Request for trial to confirm the scope of a patent right
J121 Written withdrawal of request for trial
FPAY Annual fee payment

Payment date: 20130313

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140609

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee