KR100549646B1 - 인터럽트 처리함수 교체에 의한 키보드 입력정보의무단유출을 차단하는 방법 - Google Patents

인터럽트 처리함수 교체에 의한 키보드 입력정보의무단유출을 차단하는 방법 Download PDF

Info

Publication number
KR100549646B1
KR100549646B1 KR1020050071995A KR20050071995A KR100549646B1 KR 100549646 B1 KR100549646 B1 KR 100549646B1 KR 1020050071995 A KR1020050071995 A KR 1020050071995A KR 20050071995 A KR20050071995 A KR 20050071995A KR 100549646 B1 KR100549646 B1 KR 100549646B1
Authority
KR
South Korea
Prior art keywords
keyboard
processing function
interrupt processing
security
function
Prior art date
Application number
KR1020050071995A
Other languages
English (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 KR1020050071995A priority Critical patent/KR100549646B1/ko
Application granted granted Critical
Publication of KR100549646B1 publication Critical patent/KR100549646B1/ko

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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 키보드 입력정보의 무단유출을 방지하는 키보드 입력정보 보안방법에 관한 것이며, 보다 상세하게는 키보드 입력정보의 유출을 목적으로 인터럽트 백터테이블을 임의로 교체함으로서 키보드를 통해 입력되는 정보의 처리과정에서 필요한 정보를 빼내게 되는 해킹을 차단하여 키보드 입력정보의 보안을 실현할 수 있는 인터럽트 처리함수 주소교체 차단방법에 관한 것으로, 키보드 보안드라이버가 사용자의 키보드 조작으로 제공되는 인터럽트 처리함수 주소의 인터럽트 처리함수를 명령어 단위로 분류하는 단계; 및 상기 주소의 인터럽트 처리함수 중 최초로 실행되는 인터럽트 처리함수가, 상기 키보드 보안드라이버가 다른 위치에 배치한 보안용 처리함수로 안내하여 상기 보안용 처리함수가 실행되도록 하는 보안용 JUMP 함수로 대체되고, 대체된 해당 인터럽트 처리함수는 키보드 보안드라이버가 설정한 임시 메모리에 위치되는 단계;를 포함하는 것이다.

Description

인터럽트 처리함수 교체에 의한 키보드 입력정보의 무단유출을 차단하는 방법{Intercepting method for the keyboard in-put information's flow without permission by altering interrupt handling function}
도 1은 인터럽트 처리함수 저장주소를 정보침입도구 또는 키보드 보안드라이버가 교체하는 모습을 도시한 도면이고,
도 2는 정보침입도구가 인터럽트 처리함수의 저장주소를 변경하여 키보드 입력정보 발생 시 정보침입도구가 설치한 인터럽트 처리함수가 실행될 수 있도록 된 모습을 도시한 도면이고,
도 3은 본 발명에 따른 키보드 보안드라이버가 키보드 입력정보를 보안하기 위해 인터럽트 처리함수를 재 설치하는 모습을 도시한 도면이고,
도 4는 본 발명에 따른 보안방법에 따라 인터럽트 발생 이후의 처리모습을 도시한 도면이고,
도 5는 본 발명에 따른 키보드 입력정보의 무단유출을 차단하는 방법을 순차 도시한 플로우차트이고,
도 6은 본 발명에 따른 키보드 입력정보의 무단유출을 차단하는 방법의 다른 실시예를 보인 플로우차트이고,
도 7은 도 6에 따라 진행되는 키보드 보안의 처리과정을 개략적으로 도시한 도면이다.
본 발명은 키보드 입력정보의 무단유출을 방지하는 키보드 입력정보 보안방법에 관한 것이며, 보다 상세하게는 키보드 입력정보의 유출을 목적으로 인터럽트 백터테이블을 임의로 교체함으로서 키보드를 통해 입력되는 정보의 처리과정에서 필요한 정보를 빼내게 되는 해킹을 차단하여 키보드 입력정보의 보안을 실현할 수 있는 인터럽트 처리함수 교체에 의한 키보드 입력정보의 무단유출을 차단하는 방법에 관한 것이다.
키보드 하드웨어에서 키보드 버튼을 누르면(Key Press Event) 전기적 신호가 발생되어 메인보드에 설치된 8042 칩 셋(Chip Set)으로 신호가 전달된다. 이때 키보드하드웨어 위에 키들은 모두 회로모양의 배선 교점(matrix) 위에 있기 때문에, 키가 눌러졌을 때 전류변화가 생기는 가로와 세로축의 라인을 조사하여 어느 키가 눌러졌는지 알아낼 수 있다.
8042 칩 셋을 제어하는 8042 키보드 컨트롤러는 중앙처리장치(CPU)로 키보드 입력정보를 전달하거나 중앙처리장치로부터 하드웨어 제어명령을 전달받기 위하여 사용하는 양방향의 키보드 입출력포트(IO port)에 키보드 스캔코드 형태의 키보드 입력정보를 기록하고, 중앙처리장치에게 인터럽트를 발생시킨다.
양방향의 키보드 입출력 포트는 60h와 64h로 구성되어 있으며, 포트 60h는 키보드 입력정보 및 하드웨어 제어명령을 처리하고, 포트 64h는 포트 60h에 대한 상태 및 명령을 내린다.
키보드 스캔코드는 키를 누르는 순간에 발생하는 메이크코드(Make Code)와 키에서 손을 떼는 순간에 발생하는 브레이크코드(Break Code)로 구성된다. 만약 키를 계속 누르고 있으면 화면에 연속해서 문자가 출력되는데 이것은 일정키가 눌러져 있을 때 메이크코드를 연속으로 출력하고 키에서 손을 떼는 순간 브레이크코드 1개만 출력함으로써 키 반복 과정을 끝내기 때문이다.
계속해서, 인터럽트(Interrupt)란 어떠한 프로세스를 수행하는 도중에 그 일을 잠시 멈추고 중앙처리장치의 업무처리를 위하여 중앙처리장치의 주의를 끄는 방법을 말한다. 물리적인 키보드 입력으로 인하여 발생한 전기적 신호를 전달받은 8042 키보드 컨트롤러는 8259 칩 셋을 제어하는 8259 인터럽트 컨트롤러에게 인터럽트 발생을 요청한다. 8259 인터럽트 컨트롤러는 중앙처리장치에게 해당 인터럽트가 발생했음을 알려주게 되며(Interrupt Request) 중앙처리장치는 해당 인터럽트 처리함수(Interrupt Handler)를 호출하기 위하여 메모리에 적재되어 있는 인터럽트 벡터 테이블을 읽어 당해 인터럽트의 처리함수 주소값을 얻는다.
이 주소값은 인터럽트가 발생될 때 호출되는 함수가 저장된 주소값을 나타내는 것으로서 하드웨어 장치가 중앙처리장치에게 어떠한 연산이나 일을 요구할 때 이 주소의 위치로 이동하여 인터럽트 처리함수를 수행하게 된다. 따라서 인터럽트 벡터 테이블에 기록되어 있는 인터럽트 처리함수가 키보드 하드웨어에 대한 연산을 처리하는 과정에서 볼 때 가장 먼저 수행되는 것이라 볼 수 있다.
일반적으로, 키보드 보안이 적용된 웹 페이지가 활성화될 경우 기존의 키보드 인터럽트 처리함수의 주소가 키보드 보안드라이버에서 정의한 인터럽트 처리함수의 주소로 교체된다. 또한, 정보침입도구(해킹프로그램)도 키보드 입력정보의 무단유출을 목적으로 키보드 보안 드라이버와 동일한 방식, 즉 인터럽트 처리함수의 주소를 정보침입도구에서 정의한 인터럽트 처리함수의 주소로 교체한 후 키보드 입력정보의 처리과정에서 필요한 정보를 빼낸다.(도 1 참조)
따라서, 키보드 보안드라이버에서는 키보드 인터럽트 처리함수의 변경된 주소를 정보침입도구가 교체하지 못하도록 0.05초 간격으로 검사하고, 만약 주소가 변경되었을 경우에는 실행을 중단하고 원래의 주소로 되돌리게 된다.
그러나 이와 같은 방법은 정보침입도구도 인터럽트 벡터테이블 내 인터럽트 처리함수의 주소를 주기적으로 변경하여 자신의 주소로 대체하는 기능을 갖고 있다. 결과적으로, 키보드 보안드라이버와 정보침입도구가 인터럽트 처리함수의 주소를 계속적으로 교체하는 상황이 발생하여 키보드 입력이 제대로 처리되지 못하게 되는 문제가 있었다.
이에 본 발명은 상기와 같은 문제를 해소하기 위하여 안출된 것으로, 키보드 보안드라이버와 정보침입도구가 보안 및 해킹을 목적으로 인터럽트 처리함수의 변경여부를 수시로 확인하고, 확인결과에 따라 키보드 입력정보의 처리를 중단시킨 후 주소변경 과정을 반복적으로 수행하게 됨으로서 입력정보의 원활한 처리가 방해를 받게 되는 문제를 해소할 수 있는 인터럽트 처리함수 교체에 의한 키보드 입력 정보의 무단유출을 차단하는 방법의 제공을 기술적 과제로 한다.
상기의 기술적 과제를 달성하기 위하여 본 발명은,
키보드 보안드라이버가 사용자의 키보드 조작으로 제공되는 인터럽트 처리함수 주소의 인터럽트 처리함수를 명령어 단위로 분류하는 단계; 및
상기 주소의 인터럽트 처리함수 중 최초로 실행되는 인터럽트 처리함수가, 상기 키보드 보안드라이버가 다른 위치에 배치한 보안용 처리함수로 안내하여 상기 보안용 처리함수가 실행되도록 하는 보안용 JUMP 함수로 대체되고, 대체된 해당 인터럽트 처리함수는 키보드 보안드라이버가 설정한 임시 메모리에 위치되는 단계;
를 포함하는 인터럽트 처리함수 교체에 의한 키보드 입력정보의 무단유출을 차단하는 방법이다.
상술한 바와 같은 본 발명에 따른 인터럽트 처리함수 교체에 의한 키보드 입력정보의 무단유출을 차단하는 방법에 있어서,
상기 임시 메모리에, 상기 보안용 JUMP 함수 다음에 위치한 차순위 인터럽트 처리함수로 안내하여 상기 차순위 인터럽트 처리함수가 실행되도록 하는 비보안용 JUMP 함수가 삽입되는 단계;
키보드 조작으로 발생하는 키보드 입력정보가 특수키 조작에 의한 것인지, 일반키 조작에 의한 것인지 여부를 확인하는 단계;
확인을 통해 해당 키보드 입력정보가 특수키 조작에 의한 것으로 확인되면, 상기 키보드 보안드라이버가 해당 특수키에 의한 키보드 입력정보를 키보드 입출력포트로 재전송한 후 인터럽트가 재 발생되도록 하는 단계;
재 발생된 인터럽트로서 상기 특수키에 의한 키보드 입력정보를 재 처리할 경우, 상기 임시 메모리에 위치한 인터럽트 처리함수가 실행된 후, 상기 비보안용 JUMP 함수에 의해 상기 차순위 인터럽트 처리함수가 실행되는 단계;
를 더 포함하는 것이다.
상술한 바와 같은 본 발명에 따른 인터럽트 처리함수 교체에 의한 키보드 입력정보의 무단유출을 차단하는 방법에 있어서,
상기 보안용 JUMP 함수와 상기 최초로 실행되는 인터럽트 처리함수를 대체할 경우, 상기 보안용 JUMP 함수의 바이트가 상기 최초로 실행되는 인터럽트 처리함수의 바이트보다 작을 경우 해당 인터럽트 처리함수 하나만을 대체하고 빈 바이트는 의미없는 코드로 채우며, 상기 보안용 JUMP 함수의 바이트가 상기 최초로 실행되는 인터럽트 처리함수의 바이트보다 클 경우 차순위 인터럽트 처리함수까지 대체하는 것을 특징으로 하는 것이다.
일반적으로 키보드 입력정보 처리방법은 키보드 하드웨어의 종류와 운영체제의 종류에 따라 분류된다. 키보드 하드웨어 종류는 연결 방식에 따라 PS/2 방식과 USB(Universal Serial Bus) 방식으로 나뉘며, 운영체제는 윈도우즈 버전에 따라 Windows 9X(95, 98, ME) 계열과 Windows NT(2000, XP)로 나뉜다.
본 발명에 따른 실시예는 Window XP 운영체제에서 작동하는 PS/2 키보드 하드웨어를 기반으로 하고 있으나 이에 한정되지 않으며, 이하의 청구범위를 벗어나지 않는 한도 내에서 보다 다양하게 실시될 수 있을 것이다.
이하 본 발명을 첨부된 예시도면에 의거하여 상세히 설명한다.
도 1은 인터럽트 처리함수 저장주소를 정보침입도구 또는 키보드 보안드라이버가 교체하는 모습을 도시한 도면이고, 도 2는 정보침입도구가 인터럽트 처리함수의 저장주소를 변경하여 키보드 입력정보 발생 시 정보침입도구가 설치한 인터럽트 처리함수가 실행될 수 있도록 된 모습을 도시한 도면이다.
키보드 입력정보 발생 시 활성화되는 인터럽트의 처리과정과 이 처리과정에서 이루어지는 보안 또는 해킹 과정에 대해서는 이미 상술한 바 있다.
즉, 도 1을 참조하여 보면, 키보드를 통해 입력된 정보는 키보드 입출력포트를 통해 레지스터에 임시저장되고, 한편으로 인터럽트 컨트롤러는 인터럽트를 발생시켜 중앙처리장치로 키보드 입력정보가 발생했음을 알린다. 이때, 상기 인터럽트는 지정된 인터럽트 번호(INT 9h)로서 이에 연결되는 값인 인터럽트 처리함수 저장주소를 불러오게 되고, 해당 처리함수 저장주소를 통해 상기 키보드 입력정보를 처리할 수 있는 처리함수를 확인할 수 있게 된다.
한편, 도 2를 참조하여 보면, 도 1에 도시된 바와 같이 정보침입도구가 기존에 셋팅된 인터럽트 처리함수 저장주소를 정보침입도구가 임의로 설정한 인터럽트 처리함수의 저장주소로 변경함으로서, 키보드를 통한 입력정보 발생 시 해당 인터 럽트 번호(INT 9h)에 대응하는 처리함수의 주소가 바뀐다. 결과적으로 키보드 입력정보가 발생되면 기존에 셋팅된 인터럽트 처리함수 저장주소인 '100h'가 아닌 정보침입도구가 임의로 설정한 인터럽트 처리함수 저장주소인 '200h'로 이동하여서 이곳에 설치된 처리함수를 실행한다.
본 발명은 인터럽트 처리함수 저장주소가 기존에 셋팅된 것인지, 다른 키보드 보안드라이버에 의해 재 셋팅된 것인지, 아니면 정보침입도구가 재 셋팅한 것인지에 관계없이, 셋팅된 현재의 인터럽트 처리함수 저장주소를 그대로 유지하면서도 실질적으로 실행되는 인터럽트 처리함수는 본 발명에 따른 키보드 보안드라이버가 설정한 것이 되도록 함으로서, 키보드 입력정보의 보안은 물론 정보침입도구와 키보드 보안드라이버 간에 인터럽트 처리함수 저장주소를 바꾸기 위해 지속적으로 실행되면서 키보드 입력정보 처리를 지연시키는 문제를 해소시킨다.
이를 위한 본 발명에 따른 보안방법은 다음과 같다.
도 3은 본 발명에 따른 키보드 보안드라이버가 키보드 입력정보를 보안하기 위해 인터럽트 처리함수를 재 설치하는 모습을 도시한 도면이고, 도 4는 본 발명에 따른 보안방법에 따라 인터럽트 발생 이후의 처리모습을 도시한 도면이고, 도 5는 본 발명에 따른 인터럽트 처리함수 교체에 의한 키보드 입력정보의 무단유출을 차단하는 방법을 순차 도시한 플로우차트 인바, 이를 참조하여 설명한다.
본 발명에 따른 보안방법은 다음과 같은 인터럽트 처리함수의 주소교체 차단방법을 통해 이루어진다.
S10 ; 키보드 입력정보 발생단계;
사용자는 키보드를 통해 정보를 입력하게 되며, 이렇게 입력되는 정보는 키보드 하드웨어(미 도시됨)를 통해 각각의 자판에 상응하는 전기신호로 변환되어 키보드 컨트롤러로 전송된다.
이렇게 전송된 키보드 입력정보는 전기신호는 컴퓨터에서 알 수 있는 코드인 스캔코드 형태로 변환되어 키보드 입출력포트에 임시 저장된다.
S20 ; 인터럽트 발생단계;
한편, 키보드 컨트롤러는 키보드 입력정보가 입력되면 인터럽트로서 중앙처리장치에 키보드 입력정보가 발생했음을 알린다. 일반적으로 상기 인터럽트에는 IRQ(Interupt Request)가 첨부되어서, 해당 인터럽트가 주변장치의 하나인 키보드 조작에 의한 발생 인터럽트임을 인식하도록 한다. 일반적으로, 키보드의 IRQ번호는 IRQ1이다.
S30 ; 인터럽트 처리함수 주소안내단계;
상기 인터럽트 발생단계에서 발생된 인터럽트를 중앙처리장치에서 확인하고, 이에 해당하는 인터럽트 처리함수의 저장주소를 안내한다.
안내된 상기 저장주소는 이미 존재하는 인터럽트 처리함수의 저장주소이며, 본 발명에 따른 키보드 보안드라이버는 상기 저장주소를 변경하지 않는다.
S40 ; 처리함수 분류단계;
키보드 보안드라이버는 상기 인터럽트 처리함수의 저장주소로 접근하여 해당 처리함수의 데이터를 분석한다. 상기 처리함수는 메모리에 바이너리(binery) 형태의 데이터로 스트링 되 적재되므로 키보드 보안드라이버는 해당 데이터를 분석하며 이를 명령어 단위로 분류한다.
이러한 분류단계는 상기 인터럽트 처리함수의 일부를 JUMP 함수를 교체하기 위해 반드시 요구되는 과정으로, 중앙처리장치의 연산과정이 충돌없이 원활히 이루어질 수 있도록 하기 위함이다. 이에 대한 보다 상세한 설명은 아래에서 재언급하도록 한다.
S50 ; JUMP 함수 교체단계;
인터럽트 처리함수 중 최초 처리함수를 JUMP 함수로 교체한다. 도 3에 도시된 바와 같이, 기존 처리함수 중 'A Command'와 'B Command'가 JUMP 함수로 교체되고 있다. 이는 상기 분류단계에서 각 처리함수 단위로 구분되므로 JUMP 함수로 교체될 처리함수가 그 크기에 따라 하나 또는 다수개가 될 수 있다. 이는 각 처리함수의 크기가 다르고 그 순서도 일정치 않은 한편, 상기 JUMP 함수는 일정한 크기로 제작되어서 JUMP 함수로 교체되는 처리함수의 내용이 매번 변할 수 있기 때문이다.
상기 처리함수는 순서대로 처리된다. 따라서, 인터럽트 처리함수의 저장주소가 안내하는 위치로 이동한 중앙처리장치는 최초 처리함수부터 실행하기 시작한다. 따라서, 본 발명에 따른 차단방법에서는 상기 JUMP 함수를 기존 처리함수의 최초 처리함수와 교체한다. 물론, 교체되는 기존 처리함수는 하나 또는 둘 이상이 될 수 있다.
계속해서, JUMP 함수가 차지하는 바이트가 기존 인터럽트 처리함수의 최상위 명령어가 차지하는 바이트보다 작을 경우에는 해당 명령어 하나만을 교체하고, 빈 공간을 의미없는 코드로 채운다. 반대로 JUMP 함수가 차지하는 바이트가 기존 인 터럽트 처리함수의 최상위 명령어보다 클 경우에는 기존 인터럽트 처리함수에서 그 다음 명령어까지 포함한 크기로 비교하여 코드를 교체한다.
S60 ; 교체된 기존 처리함수의 임시저장단계;
JUMP 함수로 교체된 기존 처리함수는 임시 메모리(stub memory)에 저장된다. 이는 보안이 해제되면 기존 처리함수를 원 위치로 복귀시켜야 하기 때문이다. 이렇게 임시로 저장되는 기존 처리함수는 키보드 입력정보를 처리하는 과정에서는 실제로 실행되지는 않는다.
S81 ; 키보드 보안드라이버의 인터럽트 처리함수 실행단계;
도 4에 도시된 바와 같이, JUMP 함수는 실행될 처리함수를 키보드 보안드라이버가 설정한 처리함수로 안내한다. 즉, 상기 JUMP 300을 통해 인터럽트 처리함수 주소 200h에서 키보드 보안드라이버가 설정한 처리함수 주소 300h으로 처리함수가 변경된다.
결과적으로, 키보드 입력정보는 그 처리를 위한 처리함수 주소가 누구에 의해 변경되더라도 최종적인 처리함수는 키보드 보안드라이버가 설정한 처리함수에 의하므로, 인터럽트 처리함수가 실행되면서 키보드 입력정보가 무단유출되는 문제를 해소한다.
S90 ; 보안해제 여부 확인단계;
사용자가 임의로 키보드 보안드라이버를 정지시키거나, 보안 대상인 웹페이지와의 접속을 끊을 경우 키보드 보안드라이버는 그 실행을 정지한다.
한편, 키보드 보안드라이버의 실행으로 인해 인터럽트 처리함수가 교체되면 이후 키보드 보안드라이버가 정지되지 않는 한 그 상태를 그대로 유지한다. 이는 정보침입도구가 인터럽트 처리함수의 저장주소가 변하지 않은 것으로 인식하므로 인터럽트 처리함수의 저장주소를 변경하기 위한 구동이 일어나지 않기 때문이다.
S100 ; 원 처리함수 복귀단계;
보안이 해제되면 임시 메모리에 저장된 기존 처리함수는 원 위치로 복귀한다. 일반적으로, 기존 처리함수는 JUMP 함수의 적재위치에 덮어 씌워지는데, 상술한 바와 같이, JUMP 함수의 크기에 따라 기존 처리함수가 교체된 것이므로, 시스템 에러없이 기존 처리함수는 원 위치로 복귀될 수 있다.
도 6은 본 발명에 따른 인터럽트 처리함수 교체에 의한 키보드 입력정보의 무단유출을 차단하는 방법의 다른 실시예를 보인 플로우차트이고, 도 7은 도 6에 따라 진행되는 키보드 보안의 처리과정을 개략적으로 도시한 도면인바, 이를 참조하여 설명한다.
키보드는 문자와 숫자는 물론 각종 부호를 표시하는 다수의 키로 이루어지며, 이외에도 함수키 또는 특수한 내용을 입력시킬 수 있는 특수키 등이 더 포함된다.
특수키는 문자키 또는 숫자키와 같이 사용자의 사상을 컴퓨터에 알리는 수단이 아닌 입력된 사상을 어떻게 처리할 것인지를 지시하는 명령키의 기능을 수행한다. 이러한 성질을 지닌 특수키는 상기 문자키 또는 숫자키로서 발생한 키보드 입력정보와는 중앙처리장치 차원에서 별도 처리되므로 이를 함께 처리한다는 것은 키보드를 통한 안정적인 정보 입력에 문제가 될 수 있다.
따라서, 본 발명에 따른 차단방법에서는 키보드를 통해 입력되는 정보의 내용, 즉, 해당 스캔코드가 특수키인지, 아니면 문자키 및 숫자키와 같은 일반키인지를 확인하여 그 처리방식을 달리하도록 한다.
당해 다른 실시예를 설명함에 있어 도 5를 통해 앞서 설명한 중복 내용은 이하에서는 생략하도록 한다.
S70 ; 임시저장된 처리함수의 차순위로 JUMP 함수를 삽입하는 단계;
상기 교체된 기존 처리함수의 임시저장단계(S60)를 통해 임시 메모리에 저장되는 기존 처리함수의 차순위로, 키보드 보안드라이버가 설정한 처리함수의 저장주소로 실행위치를 변경하는 JUMP 함수가 삽입된다.
즉, 도 7에 도시된 바와 같이, 200 h 주소를 갖는 처리함수에 키보드 보안드라이버의 처리함수로 실행위치를 변경하는 JUMP 함수가 삽입된 후, JUMP 함수 위치에 있던 기존 처리함수는 임시 메모리로 이전되는데, 이전된 임시 메모리에도 상기 JUMP 함수의 차순위의 처리함수의 위치로 실행위치를 변경하는 JUMP 함수가 삽입되는 것이다.
도 7을 통해 제시된 실시예에는 200 h 주소를 갖는 처리함수에서 JUMP 함수의 차순위 주소는 204 h로서, 임시 메모리에 더 삽입된 JUMP 함수는 204 h로 실행위치가 변경되도록 하였다.
S80 ; 특수키/일반키 확인단계;
키보드 보안드라이버는 키보드 입출력포트에 저장되는 키보드 입력정보인 스캔코드를 확인하여 당해 입력정보가 특수키의 정보인지 일반키의 정보인지를 확인 한다. 일반적으로 키보드를 구성하는 키들은 고유한 스캔코드를 가지므로 키보드 보안드라이버는 해당 스캔코드를 읽어 관련된 입력정보가 특수키의 조작을 통해 입력된 것인지 일반키 조작을 통해 입력된 것인지를 즉시 판단할 수 있다.
만일, 상기 확인단계(S60)에서 해당 입력정보가 일반키로 확인되면 앞서 상술한 과정을 통해 해당 입력정보를 처리한다.
상기 확인단계(S90)에서 해당 입력정보가 특수키로 확인되면 다음과 같은 과정으로 입력정보를 처리한다.
S82 ; 키보드 입출력포트로 특수키 스캔코드 재입력단계;
키보드 보안드라이버는 특수키를 통한 입력정보를 일반키를 통한 입력정보와는 달리 보안을 하지 않는 상태로 처리되도록 한다. 일반적으로 키보드 입력정보 중 보안대상은 사용자의 사상을 담는 일반키일 것이므로 명령키의 일종인 특수키를 통한 입력정보는 보안가치가 떨어지기 때문이다. 또한, 앞서 설명한 바와 같이, 특수키는 중앙처리장치의 처리를 위한 명령키로, 그 처리과정에 있어 보안을 목적으로 새로운 단계를 추가하면 중앙처리장치의 원활한 실행이 방해를 받을 수 있으므로, 보안없이 일반적인 처리과정을 거치도록 하는 것이 바람직하다.
이를 위해, 키보드 보안드라이버는 특수키의 스캔코드를 키보드 입출력포트인 60h로 보내고 하드웨어 제어명령을 키보드 입출력포트인 64h로 전송하여 키보드 컨트롤러가 새로운 키보드 입력정보가 입력된 것으로 인식되도록 한다. 결과적으로 인터럽트 컨트롤러는 키보드 조작에 의한 새로운 인터럽트를 발생시키고 앞서 기술한 과정에 따라 인터럽트 처리함수 저장주소를 제공받는다.
그런데, 당해 과정은 특수키/일반키 여부 확인 후 특수키임이 판명되면 곧바로 진행되는 것이므로, 키보드 보안드라이버는 상기 과정 이후 새롭게 발생된 인터럽트는 특수키를 통한 입력정보를 처리하기 위한 과정으로 인식하여 임시 메모리에 저장된 기존 인터럽트 처리함수가 실행되도록 한다.
상기 임시 메모리에 저장된 처리함수의 주소는 이미 키보드 보안드라이버 상에 기록된 상태이므로, 특수키 처리를 위해 키보드 입력과정을 재순환하는 경우 곧바로 상기 임시 메모리에 저장된 처리함수의 주소로 이동하여 처리된다.
S83 ; 교체된 처리함수 실행
특수키를 통한 키보드 입력정보는 기존 인터럽트 처리함수의 실행으로 처리된다. 한편, 상기 임시 메모리 내에 위치된 기존 인터럽트 처리함수도 순차적으로 실행되므로, 상기 기존 인터럽트 처리함수의 차순위에 삽입된 JUMP 함수를 통해 최초 인터럽트 처리함수 주소로 그 실행위치가 변경되어 임시 메모리에 위치된 인터럽트 처리함수 이후의 나머지 인터럽트 처리함수를 순차 실행한다.
이러한 과정을 통해 본 발명에 따른 키보드 보안드라이버는 일반키과 특수키를 통한 각각의 입력정보를 원활히 처리할 수 있다.
이상 상기와 같은 본 발명에 따르면, 키보드 입력정보 처리를 위한 인터럽트 처리함수의 주소를 정보침입도구와 키보드 보안드라이버가 수시로 변경하면서 키보드 입력정보 처리를 지연시키던 문제를 해소하는 한편, 인터럽트 처리함수가 저장된 주소 변경이 빈번하여도 이에 상관없이 키보드 입력정보의 무단유출을 최소화 하는 효과가 있다.

Claims (3)

  1. 키보드 보안드라이버가 사용자의 키보드 조작으로 제공되는 인터럽트 처리함수 주소의 인터럽트 처리함수를 명령어 단위로 분류하는 단계; 및
    상기 주소의 인터럽트 처리함수 중 최초로 실행되는 인터럽트 처리함수가, 상기 키보드 보안드라이버가 다른 위치에 배치한 보안용 처리함수로 안내하여 상기 보안용 처리함수가 실행되도록 하는 보안용 JUMP 함수로 대체되고, 대체된 해당 인터럽트 처리함수는 키보드 보안드라이버가 설정한 임시 메모리에 위치되는 단계;
    를 포함하는 것을 특징으로 하는 인터럽트 처리함수 교체에 의한 키보드 입력정보의 무단유출을 차단하는 방법.
  2. 제 1 항에 있어서,
    상기 임시 메모리에, 상기 보안용 JUMP 함수 다음에 위치한 차순위 인터럽트 처리함수로 안내하여 상기 차순위 인터럽트 처리함수가 실행되도록 하는 비보안용 JUMP 함수가 삽입되는 단계;
    키보드 조작으로 발생하는 키보드 입력정보가 특수키 조작에 의한 것인지, 일반키 조작에 의한 것인지 여부를 확인하는 단계;
    확인을 통해 해당 키보드 입력정보가 특수키 조작에 의한 것이면, 상기 키보드 보안드라이버가 해당 특수키에 의한 키보드 입력정보를 키보드 입출력포트로 재전송한 후 인터럽트가 재 발생되도록 하는 단계;
    재 발생된 인터럽트로서 상기 특수키에 의한 키보드 입력정보를 재 처리할 경우, 상기 임시 메모리에 위치한 인터럽트 처리함수가 실행된 후, 상기 비보안용 JUMP 함수에 의해 상기 차순위 인터럽트 처리함수가 실행되는 단계;
    를 더 포함하는 것을 특징으로 하는 인터럽트 처리함수 교체에 의한 키보드 입력정보의 무단유출을 차단하는 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 보안용 JUMP 함수와 상기 최초로 실행되는 인터럽트 처리함수를 대체할 경우, 상기 보안용 JUMP 함수의 바이트가 상기 최초로 실행되는 인터럽트 처리함수의 바이트보다 작을 경우 해당 인터럽트 처리함수 하나만을 대체하고 빈 바이트는 의미없는 코드로 채우며, 상기 보안용 JUMP 함수의 바이트가 상기 최초로 실행되는 인터럽트 처리함수의 바이트보다 클 경우 차순위 인터럽트 처리함수까지 대체하는 것을 특징으로 하는 키보드 입력정보의 무단유출을 목적으로 한 인터럽트 처리함수 교체에 의한 키보드 입력정보의 무단유출을 차단하는 방법.
KR1020050071995A 2005-08-06 2005-08-06 인터럽트 처리함수 교체에 의한 키보드 입력정보의무단유출을 차단하는 방법 KR100549646B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050071995A KR100549646B1 (ko) 2005-08-06 2005-08-06 인터럽트 처리함수 교체에 의한 키보드 입력정보의무단유출을 차단하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050071995A KR100549646B1 (ko) 2005-08-06 2005-08-06 인터럽트 처리함수 교체에 의한 키보드 입력정보의무단유출을 차단하는 방법

Publications (1)

Publication Number Publication Date
KR100549646B1 true KR100549646B1 (ko) 2006-02-06

Family

ID=37178665

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050071995A KR100549646B1 (ko) 2005-08-06 2005-08-06 인터럽트 처리함수 교체에 의한 키보드 입력정보의무단유출을 차단하는 방법

Country Status (1)

Country Link
KR (1) KR100549646B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100909891B1 (ko) 2007-10-02 2009-07-31 소프트캠프(주) 커널영역의 키보드 보안을 위한 입력정보 암호화 처리방법
CN108416233A (zh) * 2018-01-19 2018-08-17 阿里巴巴集团控股有限公司 获取输入字符的方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100909891B1 (ko) 2007-10-02 2009-07-31 소프트캠프(주) 커널영역의 키보드 보안을 위한 입력정보 암호화 처리방법
CN108416233A (zh) * 2018-01-19 2018-08-17 阿里巴巴集团控股有限公司 获取输入字符的方法及装置

Similar Documents

Publication Publication Date Title
JP5032663B2 (ja) キーボードコントローラの直接制御によるキーボード入力情報保安方法
JP5160722B2 (ja) アクティブx基盤のキーボードハッキング防止入力窓
CN102591736B (zh) 用于在实时操作系统的实施中识别错误的方法
CN105247485A (zh) 用于中断处理的方法和装置
CN106933567B (zh) 一种图形用户界面gui系统
US8359443B2 (en) Secure memory access system and method
US5301276A (en) Method and device for assigning I/O address in data processing apparatus
KR960015311A (ko) 데이타 처리 시스템 및 데이타 처리 방법
KR100549647B1 (ko) 키보드 입력정보 보안방법
KR100549646B1 (ko) 인터럽트 처리함수 교체에 의한 키보드 입력정보의무단유출을 차단하는 방법
CN117234729B (zh) 动态内存保护方法、装置、计算机设备及存储介质
US6697959B2 (en) Fault handling in a data processing system utilizing a fault vector pointer table
KR20090019484A (ko) 클립보드 보안방법
US20100325444A1 (en) Document encrypting system and method thereof
JP7010110B2 (ja) 情報処理装置および画像形成装置
CN1122220C (zh) 键盘输入系统异常的检错方法
US6687845B2 (en) Fault vector pointer table
EP3274895B1 (en) System management mode trust establishment for os level drivers
KR100589529B1 (ko) 디버그 예외처리에 의한 키보드 입력정보 보안방법
CN101789061A (zh) 信息处理装置及其控制方法、和计算机程序
JP2010086387A (ja) キーボード装置及びその制御方法
JP4739206B2 (ja) 2つのメモリー間でのセキュリティデータの転送
US6452513B1 (en) Nodal point arrangement for keys on a keyboard
JPH04205219A (ja) ポインティングデバイス制御装置
JP2837457B2 (ja) オンライン画面における入力禁止フィールドの操作性向上方式

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121129

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140203

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150130

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170109

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20200106

Year of fee payment: 15