KR100561218B1 - 외부 저장장치를 통한 정보 유출 방지시스템 및 그 방법 - Google Patents

외부 저장장치를 통한 정보 유출 방지시스템 및 그 방법 Download PDF

Info

Publication number
KR100561218B1
KR100561218B1 KR1020040112139A KR20040112139A KR100561218B1 KR 100561218 B1 KR100561218 B1 KR 100561218B1 KR 1020040112139 A KR1020040112139 A KR 1020040112139A KR 20040112139 A KR20040112139 A KR 20040112139A KR 100561218 B1 KR100561218 B1 KR 100561218B1
Authority
KR
South Korea
Prior art keywords
file
storage device
encryption
encryption key
external storage
Prior art date
Application number
KR1020040112139A
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 KR1020040112139A priority Critical patent/KR100561218B1/ko
Application granted granted Critical
Publication of KR100561218B1 publication Critical patent/KR100561218B1/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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers

Landscapes

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

Abstract

본 발명은 정보 유출 방지시스템 및 그 방법에 관한 것으로, 보다 상세하게는 외부 저장장치에 기업의 정보 등을 암호화하여 저장함으로써, 외부 저장장치의 사용에 따른 정보의 유출을 방지하도록 한 외부 저장장치를 통한 정보 유출 방지시스템 및 그 방법에 관한 것이다.
이를 위한, 본 발명의 외부 저장장치를 통한 정보 유출 방지시스템의 구성은, 암호화 키 관리서버에 접속하는 해당 사용자를 사용자 인증을 통해 인증하는 동시에, 서버 암호화 키 저장소에 저장된 해당 암호화 키를 수신받아 내부 암호화 키 저장소에 저장하는 암호화 키 수신부와; 시스템에 저장장치가 설치되는 경우 상기 저장장치에 할당된 드라이브가 외부 저장장치인지를 판단하여, 외부 저장장치로 판단되면 해당 드라이브 경로를 내부 암호화 대상 저장소에 저장하는 외부 저장장치 판별부와; 파일 시스템 필터 드라이버를 통해 파일 I/O(Input/Output)를 감시하고, 상기 파일 I/O로부터 파일의 전체 경로와 Write 또는 Read하고자 하는 파일의 내용 및 크기를 얻는 파일 시스템 I/O 감시부와; 상기 파일 시스템 I/O 감시부로부터 전달받은 파일의 전체 경로를 내부 암호화 대상 저장소에 저장된 항목과 비교하여 상기 파일의 전체 경로가 암호화 대상인 경우, 파일 I/O 정보에 따라 암호화할 것인지 복호화할 것인지의 여부를 결정하는 파일 암복호화부를 포함하는 것을 특징으로 한다.
또한, 본 발명의 외부 저장장치를 통한 정보 유출 방지방법의 구성은, 암호 화 키 관리서버에 접속하는 해당 사용자를 사용자 인증을 통해 인증하는 동시에, 서버 암호화 키 저장소에 저장된 해당 암호화 키를 수신받아 내부 암호화 키 저장소에 저장하는 암호화 키 수신단계와; 시스템에 저장장치가 설치되는 경우 상기 저장장치에 할당된 드라이브가 외부 저장장치인지를 판단하여, 외부 저장장치로 판단되면 해당 드라이브 경로를 내부 암호화 대상 저장소에 저장하는 외부 저장장치 판별단계와; 파일 시스템 필터 드라이버를 통해 파일 I/O를 감시하고, 파일 시스템 필터 드라이버를 통해 파일 I/O(Input/Output)를 감시하고, 상기 파일 I/O로부터 파일의 전체 경로와 Write 또는 Read하고자 하는 파일의 내용 및 크기를 얻는 파일 시스템 I/O 감시단계와; 상기 파일 시스템 I/O 감시단계에서 전달받은 파일의 전체 경로를 내부 암호화 대상 저장소에 저장된 항목과 비교하여 상기 파일의 전체 경로가 암호화 대상인 경우, 파일 I/O 정보에 따라 암호화할 것인지 복호화할 것인지의 여부를 결정하는 파일 암복호화단계를 포함하는 것을 특징으로 한다.
상기한 구성에 따라, 서버 정보를 갖는 파일을 암호화하여 외부 저장 장치에 저장함으로써, 접근 통제장치가 설치되지 않은 시스템에 상기 외부 저장 장치를 설치하여 사용하는 경우, 사용자 인증이 되지 않는 한 암호화한 파일의 내용을 알 수 없어 서버 정보가 유출되는 것을 원천적으로 차단할 수 있는 효과가 있다.
서버, 시스템, 하드 디스크, 암호화, 복호화

Description

외부 저장장치를 통한 정보 유출 방지시스템 및 그 방법{Method and system for preventing to get of information by outside storage}
도 1은 일반적으로 사용되는 마이크로소프트사의 윈도우즈 엑스피의 운영체제를 도시한 개략도,
도 2는 본 발명에 따른 외부 저장장치를 통한 정보 유출 방지시스템을 나타낸 개략도,
도 3은 본 발명에 따른 외부 저장장치를 통한 정보 유출 방지방법을 순차적으로 나타낸 블록도,
도 4는 본 발명에 따른 외부 저장장치 판별단계를 나타낸 흐름도,
도 5는 본 발명에 따른 파일 시스템 I/O 감시단계를 나타낸 흐름도,
도 6은 본 발명에 따른 파일 암복호화단계를 나타낸 흐름도.
*도면중 주요 부호에 대한 설명*
S10 - 암호화 키 수신단계 S20 - 외부 저장장치 판별단계
S30 - 파일 시스템 I/O 감시단계 S40 - 파일 암복호화단계
S42 - 암호화단계 S44 - 복호화단계
본 발명은 정보 유출 방지시스템 및 그 방법에 관한 것으로, 보다 상세하게는 외부 저장장치에 기업의 정보 등을 암호화하여 저장함으로써, 외부 저장장치의 사용에 따른 정보의 유출을 방지하도록 한 외부 저장장치를 통한 정보 유출 방지시스템 및 그 방법에 관한 것이다.
오늘날 산업의 발달과 더불어 사람들의 생활 패턴 및 여건은 보다 빠르고 편리하게 진보되어 가고 있다. 이와 같은 생활을 영위할 수 있는 원인 중의 하나로 인터넷의 발달을 들 수 있는데, 상기한 인터넷은 개개인의 편리한 생활을 영위할 목적 뿐만 아니라, 산업체 및 기업체에서도 영업, 마켓팅, 관리 등의 목적으로 다양하게 이용되고 있는 실정이다.
특히, 기업체와 같은 경우에는 자사의 영업비밀이나 기술개발 및 기술현황 등의 회사 기밀을 기존에는 문서화하여 보관 및 사용하였으나, 대부분의 회사 기밀을 컴퓨터의 하드 디스크 드라이브 등에 보관함으로써, 공간에 대비해 많은 양의 정보를 보관할 수 있었다.
그러나, 이처럼 유용하게 사용되는 컴퓨터는 그 사용의 편리함만큼 치명적인 문제가 있었다. 즉, 컴퓨터에 저장된 기업의 정보가 인터넷을 통해 유출되거나, CD-WRITER 또는 USB 저장장치와 같은 외부 저장 장치를 통해 외부로 유출될 수 있는 것이다.
이 중에서 인터넷을 통한 정보 유출은 컴퓨터에 보안 프로그램 등을 설치하여 외부로부터 침입하는 해커의 공격을 막아 정보가 유출되는 것을 방지할 수 있었 으나, 외부 저장장치를 통한 정보의 유출은 막아내기 어려운 문제가 있었다.
이에 따라, 외부 저장 장치를 통해 유출되는 정보를 막기 위해, 최근에는 FDD와 CD-WRITER 그리고 USB 외장형 저장장치 같은 매체를 사용하지 못하도록 하거나, 사용을 원하는 경우에는 사용 허가를 받은 후에 저장장치를 사용하도록 통제하고 있다.
그러나, 상기와 같은 방법은 저장장치를 사용하지 못하게 하는 경우, 컴퓨터에 저장된 자료를 별도로 저장하려고 할 때 매우 번거러운 문제점이 있었고, 사용 허가를 받아 사용하는 경우에는, 비록 사용허가를 받더라도 정보가 유출되는 것을 장담할 수 없어 현실적으로 유용하지 못한 폐단이 있었다.
본 발명은 전술한 바와 같은 종래의 문제점을 해결하기 위하여 안출한 것으로, 기업의 정보를 외부 저장장치에 저장하는 경우 암호화하여 저장함으로써, 외부 저장장치에 저장된 정보를 사용자의 인증 없이는 알 수 없어 정보의 유출을 차단하도록 한 외부 저장장치를 통한 정보 유출 방지시스템 및 그 방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 외부 저장장치를 통한 정보 유출 방지시스템의 구성은, 암호화 키 관리서버에 접속하는 해당 사용자를 사용자 인증을 통해 인증하는 동시에, 서버 암호화 키 저장소에 저장된 해당 암호화 키를 수신받아 내부 암호화 키 저장소에 저장하는 암호화 키 수신부와; 시스템에 저장장치 가 설치되는 경우 상기 저장장치에 할당된 드라이브가 외부 저장장치인지를 판단하여, 외부 저장장치로 판단되면 해당 드라이브 경로를 내부 암호화 대상 저장소에 저장하는 외부 저장장치 판별부와; 파일 시스템 필터 드라이버를 통해 파일 I/O(Input/Output)를 감시하고, 파일 I/O로부터 파일의 전체 경로와 Write 또는 Read하고자 하는 파일의 내용 및 크기를 얻는 파일 시스템 I/O 감시부와; 상기 파일 시스템 I/O 감시부로부터 전달받은 파일의 전체 경로를 내부 암호화 대상 저장소에 저장된 항목과 비교하여 상기 파일의 전체 경로가 암호화 대상인 경우, 파일 I/O 정보에 따라 암호화할 것인지 복호화할 것인지의 여부를 결정하는 파일 암복호화부를 포함하는 것을 특징으로 한다.
또한, 본 발명의 외부 저장장치를 통한 정보 유출 방지방법의 구성은, 암호화 키 관리서버에 접속하는 해당 사용자를 사용자 인증을 통해 인증하는 동시에, 서버 암호화 키 저장소에 저장된 해당 암호화 키를 수신받아 내부 암호화 키 저장소에 저장하는 암호화 키 수신단계와; 시스템에 저장장치가 설치되는 경우 상기 저장장치에 할당된 드라이브가 외부 저장장치인지를 판단하여, 외부 저장장치로 판단되면 해당 드라이브 경로를 내부 암호화 대상 저장소에 저장하는 외부 저장장치 판별단계와; 파일 시스템 필터 드라이버를 통해 파일 I/O를 감시하고, 파일 I/O로부터 파일의 전체 경로와 Write 또는 Read하고자 하는 파일의 내용 및 크기를 얻는 파일 시스템 I/O 감시단계와; 상기 파일 시스템 I/O 감시단계에서 전달받은 파일의 전체 경로를 내부 암호화 대상 저장소에 저장된 항목과 비교하여 상기 파일의 전체 경로가 암호화 대상인 경우, 파일 I/O 정보에 따라 암호화할 것인지 복호화할 것인 지의 여부를 결정하는 파일 암복호화단계를 포함하는 것을 특징으로 한다.
본 발명의 바람직한 실시예를 첨부된 도면에 의하여 상세히 설명하면 다음과 같다.
먼저 본 발명의 배경 기술을 간단하게 설명하면, 마이크로소프트사의 운영체제인 윈도우즈 엑스피(Windows XP)는 일반 응용 프로그램이 실행되는 유저모드(User Mode)와 운영체제의 커널(Kernel)과 장치 드라이버(Driver)들이 실행되는 커널모드(Kernel Mode)로 구분된다.
그리고, 파일 I/O(Input/Output)를 감시하기 위해서는 상기 커널모드의 파일 시스템 필터 드라이버(File System Filter Driver)를 통해 작성되고, 안전한 운영체제 역시 상기 파일 시스템 필터 드라이버를 통해 작성된다.
도 1은 상기와 같은 마이크로소프트사의 윈도우즈 엑스피의 파일 시스템 전체 구조를 보인 것으로, 커널모드에서의 파일 시스템 I/O를 감시하기 위해서는 상기 파일 시스템 필터 드라이버를 작성해야 한다.
이와 같은 파일 시스템 필터 드라이버는 윈도우즈 파일 시스템 자체에 IoAttachDevice() API 나 IoAttachDeviceByPointer() API, 또는 IoAttachDeviceToDeviceStack() API 등을 사용하여 어태치(attach)함으로써, 필터 드라이버로 적용하는 방법이나, 또는 윈도우즈 파일 시스템 드라이버의 드라이버 오브젝트(Driver Object)에 있는 디스패치 테이블(Dispatch Table)을 바꿔치기해서 파일 I/O를 후킹하는 널리 알려진 방법 등을 기반으로 한다.
이러한, 상기 파일 I/O는 파일을 생성하거나 오픈하는 IRP_MJ_CREATE, 파일 을 쓰는 IRP_MJ_WRITE, 파일을 읽는 IRP_MJ_READ와 같은 파일 I/O를 포함한다.
도 2는 본 발명의 외부 저장장치를 통한 정보 유출 방지시스템을 개략적으로 도시한 것으로, 크게 암호화 키 수신부와, 외부 저장장치 판별부와, 파일 시스템 I/O 감시부와, 파일 암복호화부를 포함하여 구성된다.
먼저, 암호화 키 수신부는 암호화 키 관리 서버와 내부 암호화 키 저장소에 연결된 것으로, 서버 암호화 키 저장소에 저장된 암호화 키를 암호화 키 관리 서버로부터 요청한다. 그리고, 사용자 인증을 통하여 해당 사용자를 인증한 후, 상기 해당 사용자의 암호화 키를 내부 암호화 키 저장소에 전달한다.
여기서, 상기 암호화 키는 모든 사용자에 대해 동일한 암호키를 적용할 수 있고, 더 적절하게는 각 사용자마다 다른 암호키를 작용할 수도 있으며, 더욱 적절하게는 암호화 키를 내부 암호화 대상 저장소에 있는 암호화 대상마다 다른 암호화 키를 적용할 수도 있다.
아래의 표 1은 상기 서버 암호화 키 저장소에 저장된 파일의 일예를 나타낸 것으로, 사용자의 서버에 따라 암호키를 다르게 한 것을 알 수 있다.
사용자 암호화 키
LEE SIOU5Y89S0P0EWERW24GYH1
PARK S0PGYH10EWERSIOU5Y89W24
KIM H10Y8E4WERSS0PGYIOU59W2
또한, 아래의 표 2는 내부 암호화 키 저장소의 일예를 도시한 것으로, 암호화 관리 서버로부터 수신한 암호화 키가 저장되어 있다.
종류 내용
암호화 키 SIOU5Y89S0P0EWERW24GYH1
한편, 외부 저장장치 판별부는 시스템에 고정된 하드 디스크 드라이브가 아닌 CD-WRITER, USB 외장 저장장치와 같은 저장장치를 시스템에 설치한 경우, 저장장치에 할당된 드라이브가 외장 저장장치인지를 판단하여, 그 결과 외부 저장장치로 판단되면 해당 드라이브 경로를 내부 암호화 대상 저장소에 저장하게 된다.
계속해서, 파일 시스템 I/O 감시부는 파일 시스템 필터 드라이브를 통해 파일 I/O를 감시한다. 그리고, 상기 파일 I/O로부터 파일의 전체 경로와 Write 또는 Read하고자 하는 파일의 내용 및 크기를 얻게 된다.
그리고, 파일 암복호화부는 파일 시스템 I/O 감시부로부터 전달받은 파일의 전체 경로를 내부 암호화 대상 저장소에 저장된 항목과 비교하여 상기 파일의 전체 경로가 암호화 대상인 경우, 파일 I/O 정보에 따라 암호화할 것인지 복호화할 것인지의 여부를 결정한다.
아래의 표 3은 상기 내부 암호화 대상 저장소에 저장되는 일예를 나타낸 것이다.
순서 암호화 대상 드라이브 종류
1 D: CD-WRITER
2 E: USB HDD
3 F: USB FLASH
이와 같이 구성된 본 발명의 작용 및 효과를 상세하게 설명하면 다음과 같다.
본 발명의 시스템을 이용하여 서버 정보의 유출을 방지하기 위해서는 첨부도 면 도 3과 같이 암호화 키 수신단계(S10)와, 외부 저장장치 판별단계(S20)와, 파일 시스템 I/O 감시단계(S30)와, 파일 암복호화부(S40)를 거쳐야 하는데, 그 방법으로는 먼저 암호화 키 관리서버에 접속해서 사용자 인증을 통해 해당 사용자임을 인증 받고, 서버 암호화 키 저장소에 있는 해당 암호화 키를 수신하여 상기 암호화 키를 내부 암호화 키 저장소에 저장하는 암호화 키 수신단계(S10)를 실행한다.
이때, 암호화 키 관리서버에 연결을 요청한 사용자를 인증하는 방법으로는 간단하게는 사용자의 아이디와 패스워드를 통해 인증하거나, 양호하게는 암호화 알고리즘을 통해 인증하거나, 더 양호하게는 범용으로 사용되는 공인인증서를 통해 인증할 수 있다.
한편, 도 4와 같이 시스템에 저장장치가 설치되는 경우 상기 저장장치에 할당된 드라이브가 외부 저장장치인지를 판단하여, 외부 저장장치로 판단되면 해당 드라이브 경로를 내부 암호화 대상 저장소에 저장하는 외부 저장장치 판별단계 (S20)를 실행한다.
이때, 상기한 외부 저장장치를 판별하는 방법으로는 드라이브의 타입을 얻어서 확인할 수 있는게 되는데, 보다 상세하게 설명하면 먼저 C드라이브인 경우 'C'와 같은 각 드라이브를 나타내는 문자를 GetDriveType() API의 인자로 넘겨서 DRIVE_FIXED, DRIVE_REMOVABLE, DRIVE_REMOTE, DRIVE_CDROM과 같은 각 드라이브의 타입을 얻어온다.
그리고, 상기와 같이 얻어온 드라이브의 타입이 DRIVE_FIXED가 아닌 경우, 현재 드라이브를 외부 저장장치로 판단하게 된다.
만일, 상기와 같이 얻어온 드라이브 타입이 DRIVE_FIXED인 경우, DeviceIoControl() API로 IOCTL_STORAGE_QUERY_PROPERTY 쿼리를 요청해서 BusTypeScsi, BusTypeAtapi, BusTypeAta, BusType1394, BusTypeSsa, BusTypeFibre, BusTypeUsb와 같은 저장 장치의 버스 타입을 얻어온다. 이때, 얻어온 버스 타입이 BusTypeScsi나 BusTypeAtapi 또는 BusTypeAta가 아닌 경우에는 외부 저장장치로 판단하게 되는 것이다.
한편, 첨부도면 도 5와 같이 파일 시스템 필터 드라이버를 통해 파일 I/O를 감시하고, 상기 파일I/O로부터 파일의 전체 경로와 Write 또는 Read하고자 하는 파일의 내용 및 크기를 얻는 파일 시스템 I/O 감시단계(S30)를 실행한다.
이때, 상기 파일 시스템 I/O 감시단계(S30)에서 파일의 전체경로를 얻는 방법을 살펴보면, 파일 I/O시에 각각의 인자로 넘어오는 IRP(I/O Request Packet)와 IoGetCurrentIrpStackLocation() API를 통해서 IO_STACK_LOCATION 타입의 IRP Stack을 얻고 상기 IRP Stack으로부터 FILE_OBJECT 타입의 FileObject를 얻게 됨으로써 얻어온 FileObject->FileName.Buffer를 통해 접근하려는 파일의 전체경로를 얻게 된다.
여기서, FileObject->RelatedFileObject가 존재하는 경우에는, FileObject->FileName은 FileObject->RelatedFileObject에 대한 상대로 경로가 되고, FileObject->RelatedFileObject.FileName.Buffer와 FileObject->FileName.Buffer를 합치게 됨으로써, 파일의 전체 경로를 얻게 된다.
그리고, Write 또는 Read하고자 하는 파일의 내용을 얻는 방법을 살펴보면, 상기 IRP Stack으로부터 IRP_MJ_WRITE I/O 경우에는 Parameters.Write.ByteOffset을 통하고 IRP_MJ_READ I/O 경우에는 Parameters.Read.ByteOffset을 통하여 파일의 내용을 얻게 된다.
계속해서, Write 또는 Read하고자 하는 파일의 크기를 얻는 방법을 살펴보면, 상기 IRP Stack으로부터 Parameters.Write.Length 또는 Parameters.Read.Length를 통하여 파일의 크기를 얻게 된다.
이때, FileObject->FsContext에 있는 FileSize로부터 파일의 전체 크기를 얻을 수 있는 것이다.
계속해서, 상기 파일 시스템 I/O 감시단계(S30)에서 전달받은 파일 I/O를 내부 암호화 대상 저장소에 저장된 항목과 비교하여, 상기 파일 I/O가 암호화 대상인 경우 파일 I/O 정보에 따라 암호화할 것인지 복호화할 것인지의 여부를 결정하는 파일 암복호화단계(S40)를 실시한다.
도 6을 통하여 보다 상세하게 설명하면, 파일 시스템 I/O 감시부로부터 현재의 파일 I/O 정보와 접근하려는 파일의 전체 경로 및 Write 또는 Read하고자 하는 파일의 내용 및 크기를 얻어온다.
그리고, 상기 얻어온 파일의 전체 경로와 내부 암호화 대상 저장소 항목과 비교하게 된다. 즉, 파일의 전체 경로로부터 드라이버 문자를 얻어오고, 얻어온 드라이버 문자가 내부 암호화 대상 저장소 항목에 있는지를 비교하는 것이다.
예를 들어, 파일의 전체 경로가 "D:\Data\Source.doc"이고, 내부 암호화 대상 저장소에 있는 항목 중의 하나가 "D:"라면, 이 파일의 전체 경로는 암호화 대상 인 것이다.
이와 같이 상기 파일이 암호화 대상인 경우 파일 I/O정보에 따라 암호화 할 것인지 복호화 처리 할 것인지 결정한다. 즉, 파일 시스템 I/O 감시단계(S30)에서 받은 파일 I/O가 IRP_MJ_WRITE일 경우 암호화단계(S42)를 실시하고, 파일 시스템 I/O 감시단계(S30)에서 받은 파일 I/O가 IRP_MJ_READ일 경우 복호화단계(S44)를 실시하는 것이다.
이하 설명하면, 먼저 암호화단계(S42)는 파일 시스템 I/O 감시단계(S20)에서 받은 파일 I/O가 IRP_MJ_WRITE인지 여부를 확인하고, 만일 상기 파일 I/O가 IRP_MJ_WRITE가 아닌 경우 현재의 IRP를 통과시킨다.
반면, 상기 파일 I/O가 IRP_MJ_WRITE인 경우에는 내부 암호화 키 저장소에 있는 암호화 키를 이용하여 파일의 내용을 암호화한다.
여기서, 상기 암호화단계(S42)에서는 암호화 알고리즘을 사용하여 암호화 처리를 하게 되는데, 상기 암호화 알고리즘은 스트림 암호화 알고리즘 또는 블록 암호화 알고리즘을 사용하게 된다.
먼저 스트림 암호화 알고리즘을 사용하여 파일을 암호화하기 위해서는 파일 시스템 I/O 감시단계(S30)에서 받은 파일의 내용을 상기 파일의 크기만큼 내부 암호화 키 저장소에 있는 암호화 키를 이용한 RC4 알고리즘 등을 사용하여 스트림 암호화를 실시한다.
그러나, 상기한 스트림 암호화 알고리즘은 비트 혹은 바이트 단위로 순차적으로 파일을 암호화함으로써 블록 암호화 알고리즘에 비해 빠른 속도로 암호화를 실시할 수 있는 반면, 동일한 키로 반복적으로 암호화하는 특성으로 인해, 암호 해독이 블록 암호화에 비해 쉽게 될 수 있어 보안성이 떨어지는 단점이 있다.
이에 따라 사용되는 블록 암호화 알고리즘은 그 사용 특성상 파일의 크기를 변경시켜야 하므로 여러가지 기술이 필요하게 되는데, 상기 파일의 크기를 변경시키지 않고 블록 암호화 알고리즘을 적용하여 암호화할 수 있는 방법으로 널리 알려진 카운터 모드(Counter(CTR) Mode)와 같은 운용 기법이 있다.
상기한 카운터 모드를 적용하여 암호화 하는 방법을 살펴보면, 먼저 파일 시스템 I/O 감시단계(S20)에서 얻은 Write하려고 하는 대상 파일의 전체 크기를 구한 후, 이를 암호화 블록 크기로 나누어 블록 개수를 결정한다.
그리고, 전체 파일에 대한 Write하려고 하는 파일 내용의 위치를 카운터로 사용하고, 상기 카운터를 블록 암호화 알고리즘을 통해 암호화한다. 이때, 상기와 같이 암호화된 카운터값과 암호화하려고 하는 파일의 내용을 XOR(exclusive or)한 후, 앞서 구해진 블록의 개수만큼 상기한 과정을 되풀이하고, 이에 따라 파일의 크기를 변경시키지 않고 보안성을 높이는 블록 암호화를 적용할 수 있게 된다.
이처럼, 설명한 암호화 방식은 파일의 크기를 변경시키지 않고 어떠한 정보도 파일에 추가하지 않으므로, 파일이 암호화되었는지 판단하기가 용이하지 않다. 이에 따라, 암호화된 파일과 암호화 되지 않은 파일이 공존하는 경우 양자를 구분하는 정보가 필요하게 되는데, 암호화된 파일 앞 또는 뒤에 암호화가 되었다는 정보를 갖는 헤더를 붙이게 됨으로써 구분이 가능하게 된다.
그러나, 상기와 같이 헤더를 붙이게 되는 경우, 파일의 크기가 늘어나므로 파일의 크기를 헤더를 붙이기 전의 파일의 크기로 속여야한다.
이처럼, 파일의 크기를 속이는 방법으로는 파일 I/O를 감시하고 있다가 FastIoQueryStandardInfo() 함수가 호출될 때, 상기 함수의 인자인 FILE_STANDARD_INFORMATION 구조체의 EndOfFile을 실제 파일 크기로 고쳐준다. 따라서, 상기와 같은 방법을 이용하여 파일에 특정 정보를 추가함으로써, 해당 파일이 암화화가 되었는지를 판단할 수 있게 되는 것이다.
한편, 복호화단계(S44)를 설명하면, 먼저 파일 시스템 I/O 감시단계(S30)에서 받은 파일 I/O가 IRP_MJ_READ인지 여부를 확인하고, 만일 상기 파일 I/O가 IRP_MJ_READ가 아닌 경우 현재의 IRP를 통과시킨다.
그리고, 상기 파일 I/O가 IRP_MJ_READ인 경우 내부 암호화 키 저장소에 있는 암호화 키를 이용하여 파일의 내용을 복호화한다. 이때, 복호화는 스트림 암호화 알고리즘 또는 블록 암호화 알고리즘을 사용하게 되는데, 파일 시스템 I/O 감시단계(S30)에서 받은 파일의 내용을 상기 파일의 크기만큼 복호화하게 된다. 그리고, 상기 복호화는 암호화단계(S42)에서 암호화된 정보의 헤더를 붙은 파일만을 복호화하게 되는 것이다.
한편, 본 발명은 상기한 구체적인 예에 대해서만 상세히 설명되었지만 본 발명의 기술사상 범위 내에서 다양한 변형 및 수정이 가능함은 당업자에게 있어서 명백한 것이며, 이러한 변형 및 수정이 첨부된 특허청구범위에 속함은 당연한 것이다.
이상에서와 같이 본 발명은 기업의 정보 등이 담긴 중요한 파일을 외부 저장장치에 저장하는 경우 암호화 키를 이용해 암호화하여 저장하는 동시에 저장된 파일을 읽는 경우 자동으로 복호화를 실시함으로써, 사용자의 인증없이는 외부 저장장치에 저장된 파일의 내용을 알 수 없어 저장된 파일이 외부로 유출되는 것을 원천적으로 차단할 수 있는 효과가 있다.
특히, 중요한 파일들을 외부 저장장치에 암호화하여 저장함으로써, 정보 유출을 위한 의도적인 외부 저장장치의 도난을 당한 경우에도 기업의 보안을 철저하게 유지할 수 있는 효과도 있는 것이다.

Claims (12)

  1. 암호화 키 관리서버에 접속하는 해당 사용자를 사용자 인증을 통해 인증하는 동시에, 서버 암호화 키 저장소에 저장된 해당 암호화 키를 수신받아 내부 암호화 키 저장소에 저장하는 암호화 키 수신부와;
    시스템에 저장장치가 설치되는 경우 상기 저장장치에 할당된 드라이브가 외부 저장장치인지를 판단하여, 외부 저장장치로 판단되면 해당 드라이브 경로를 내부 암호화 대상 저장소에 저장하는 외부 저장장치 판별부와;
    파일 시스템 필터 드라이버를 통해 파일 I/O(Input/Output)를 감시하고, 상기 파일 I/O로부터 파일의 전체 경로와 Write 또는 Read하고자 하는 파일의 내용 및 크기를 얻는 파일 시스템 I/O 감시부와;
    상기 파일 시스템 I/O 감시부로부터 전달받은 파일의 전체 경로를 내부 암호화 대상 저장소에 저장된 항목과 비교하여 상기 파일의 전체 경로가 암호화 대상인 경우, 파일 I/O 정보에 따라 암호화할 것인지 복호화할 것인지의 여부를 결정하는 파일 암복호화부를 포함하는 것을 특징으로 하는 서버 정보 유출 방지시스템.
  2. 암호화 키 관리서버에 접속하는 해당 사용자를 사용자 인증을 통해 인증하는 동시에, 서버 암호화 키 저장소에 저장된 해당 암호화 키를 수신받아 내부 암호화 키 저장소에 저장하는 암호화 키 수신단계(S10)와;
    시스템에 저장장치가 설치되는 경우 상기 저장장치에 할당된 드라이브가 외 부 저장장치인지를 판단하여, 외부 저장장치로 판단되면 해당 드라이브 경로를 내부 암호화 대상 저장소에 저장하는 외부 저장장치 판별단계(S20)와;
    파일 시스템 필터 드라이버를 통해 파일 I/O를 감시하고, 상기 파일 I/O로부터 파일의 전체 경로와 Write 또는 Read하고자 하는 파일의 내용 및 크기를 얻는 파일 시스템 I/O 감시단계(S30)와;
    상기 파일 시스템 I/O 감시단계(S30)에서 전달받은 파일의 전체 경로를 내부 암호화 대상 저장소에 저장된 항목과 비교하여 상기 파일의 전체 경로가 암호화 대상인 경우, 파일 I/O 정보에 따라 암호화할 것인지 복호화할 것인지의 여부를 결정하는 파일 암복호화단계(S40)를 포함하는 것을 특징으로 하는 서버 정보 유출 방지방법.
  3. 제 2항에 있어서, 상기 암호화 키 수신단계(S10)의 암호화 키 관리 서버에서는 아이디와 패스워드를 이용하거나 암호화 알고리즘을 이용하거나 공인인증서를 이용하여 암호화 키 수신을 요청한 사용자를 인증하는 것을 특징으로 하는 서버 정보 유출 방지방법.
  4. 제 2항에 있어서, 상기 외부 저장장치 판별단계(S20)는 할당된 외부 저장장치의 드라이브가 나타내는 문자를 GetDriveType() API의 인자로 넘겨 DRIVE_FIXED, DRIVE_REMOVABLE, DRIVE_REMOTE, DRIVE_CDROM과 같은 각 드라이브의 타입을 얻어오고, 상기 얻어온 드라이브의 타입이 DRIVE_FIXED가 아닌 경우, 현재 드라이브를 외 부 저장장치로 판단하고,
    상기 얻어온 드라이브의 타입이 DRIVE_FIXED인 경우, DeviceIoControl() API로 IOCTL_STORAGE_QUERY_PROPERTY 쿼리를 요청해서 BusTypeScsi, BusTypeAtapi, BusTypeAta, BusType1394, BusTypeSsa, BusTypeFibre, BusTypeUsb와 같은 저장 장치의 버스 타입을 얻어오고, 상기 얻어온 버스 타입이 BusTypeScsi, BusTypeAtapi, BusTypeAta가 아닌 경우에 외부 저장장치로 판단하는 것을 특징으로 하는 외부 저장장치를 통한 서버 정보 유출 방지방법.
  5. 제 2항에 있어서, 상기 파일 시스템 I/O 감시단계(S30)는 파일 I/O시에 각각의 인자로 넘어오는 IRP(I/O Request Packet)와 IoGetCurrentIrpStackLocation() API를 통해서 IO_STACK_LOCATION 타입의 IRP Stack을 얻고 상기 IRP Stack으로부터 FILE_OBJECT 타입의 FileObject를 얻게 됨으로써 얻어온 FileObject->FileName.Buffer를 통해 접근하려는 파일의 전체경로를 얻게 되고,
    상기 IRP Stack으로부터 IRP_MJ_WRITE I/O 경우에는 Parameters.Write.ByteOffset을 통하고 IRP_MJ_READ I/O 경우에는 Parameters.Read.ByteOffset을 통하여 Write 또는 Read하고자 하는 파일의 내용을 얻게 되며,
    상기 IRP Stack으로부터 Parameters.Write.Length 또는 Parameters.Read.Length를 통하여 Write 또는 Read하고자 하는 파일의 크기를 얻게 되는 것을 특징으로 하는 서버 정보 유출 방지방법.
  6. 제 2항에 있어서, 상기 파일 암복호화단계(S40)는 파일 시스템 I/O 감시단계(S30)에서 받은 파일 I/O가 IRP_MJ_WRITE일 경우 암호화단계(S42)를 실시하고, 파일 시스템 I/O 감시단계(S30)에서 받은 파일 I/O가 IRP_MJ_READ일 경우 복호화단계(S44)를 실시하는 것을 특징으로 하는 서버 정보 유출 방지방법.
  7. 제 6항에 있어서, 상기 암호화단계(S42)는
    파일 시스템 I/O 감시단계(S30)에서 받은 파일 I/O가 IRP_MJ_WRITE인지 여부를 확인하고,
    상기 파일 I/O가 IRP_MJ_WRITE가 아닌 경우 현재의 IRP를 통과시키며,
    상기 파일 I/O가 IRP_MJ_WRITE인 경우 내부 암호화 키 저장소에 있는 암호화 키를 이용하여 파일의 내용을 암호화하는 것를 특징으로 하는 서버 정보 유출 방지방법.
  8. 제 7항에 있어서, 상기 암호화단계(S42)에서의 암호화는 스트림 암호화 알고리즘이나 블록 암호화 알고리즘을 사용하는 것을 특징으로 하는 서버 정보 유출 방지방법.
  9. 제 7항에 있어서, 상기 암호화단계(S42) 이후에는 암호화된 파일과 암호화되지 않은 파일을 구분하기 위해 상기 암호화된 파일의 앞 또는 뒤에 암호화 된 정보 를 갖는 헤더를 더 붙이는 것을 특징으로 하는 서버 정보 유출 방지방법.
  10. 제 6항에 있어서, 상기 복호화단계(S44)는
    파일 시스템 I/O 감시단계(S30)에서 받은 파일 I/O가 IRP_MJ_READ인지 여부를 확인하고,
    상기 파일 I/O가 IRP_MJ_READ가 아닌 경우 현재의 IRP를 통과시키며,
    상기 파일 I/O가 IRP_MJ_READ인 경우 내부 암호화 키 저장소에 있는 암호화 키를 이용하여 파일의 내용을 복호화하는 것를 특징으로 하는 서버 정보 유출 방지방법.
  11. 제 10항에 있어서, 상기 복호화단계(S44)에서의 복호화는 스트림 암호화 알고리즘이나 블록 암호화 알고리즘을 사용하는 것을 특징으로 하는 서버 정보 유출 방지방법.
  12. 제 9항 또는 제 11항에 있어서, 상기 복호화단계(S44)에서는 암호화된 정보의 헤더를 붙인 파일만을 복호화하는 것을 특징으로 하는 서버 정보 유출 방지방법.
KR1020040112139A 2004-12-24 2004-12-24 외부 저장장치를 통한 정보 유출 방지시스템 및 그 방법 KR100561218B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040112139A KR100561218B1 (ko) 2004-12-24 2004-12-24 외부 저장장치를 통한 정보 유출 방지시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040112139A KR100561218B1 (ko) 2004-12-24 2004-12-24 외부 저장장치를 통한 정보 유출 방지시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR100561218B1 true KR100561218B1 (ko) 2006-03-15

Family

ID=37179628

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040112139A KR100561218B1 (ko) 2004-12-24 2004-12-24 외부 저장장치를 통한 정보 유출 방지시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR100561218B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100948502B1 (ko) 2007-10-08 2010-03-23 프롬투정보통신(주) 파일 시스템 필터 드라이버를 통한 휴대형 및 비 휴대형장치 접근 통제
KR101023805B1 (ko) * 2008-10-15 2011-03-21 (주)씨디네트웍스 파일 입출력정보를 이용한 디지털 콘텐츠 보호 방법 및 장치
KR20160024265A (ko) * 2014-08-25 2016-03-04 (주)블루문소프트 필터 드라이버 기반의 파일 보안 시스템 및 파일 보안 방법
KR102615556B1 (ko) * 2022-11-08 2023-12-21 펜타시큐리티 주식회사 키 관리 서버를 이용한 데이터의 실시간 암복호화 보안 시스템 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020016701A (ko) * 2000-08-26 2002-03-06 박태규 커널모드에서 파일을 자동으로 암호화, 복호화하는 방법,이를 이용한 파일 포인터 이동방법, 및 이들을프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020016701A (ko) * 2000-08-26 2002-03-06 박태규 커널모드에서 파일을 자동으로 암호화, 복호화하는 방법,이를 이용한 파일 포인터 이동방법, 및 이들을프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100948502B1 (ko) 2007-10-08 2010-03-23 프롬투정보통신(주) 파일 시스템 필터 드라이버를 통한 휴대형 및 비 휴대형장치 접근 통제
KR101023805B1 (ko) * 2008-10-15 2011-03-21 (주)씨디네트웍스 파일 입출력정보를 이용한 디지털 콘텐츠 보호 방법 및 장치
KR20160024265A (ko) * 2014-08-25 2016-03-04 (주)블루문소프트 필터 드라이버 기반의 파일 보안 시스템 및 파일 보안 방법
KR101699046B1 (ko) * 2014-08-25 2017-01-23 (주)블루문소프트 필터 드라이버 기반의 파일 보안 시스템 및 파일 보안 방법
KR102615556B1 (ko) * 2022-11-08 2023-12-21 펜타시큐리티 주식회사 키 관리 서버를 이용한 데이터의 실시간 암복호화 보안 시스템 및 방법

Similar Documents

Publication Publication Date Title
JP4089171B2 (ja) 計算機システム
US8204233B2 (en) Administration of data encryption in enterprise computer systems
US7376968B2 (en) BIOS integrated encryption
KR100889099B1 (ko) 데이터 저장 장치의 보안 방법 및 장치
US5677952A (en) Method to protect information on a computer storage device
US7343493B2 (en) Encrypted file system using TCPA
US6976167B2 (en) Cryptography-based tamper-resistant software design mechanism
US7111005B1 (en) Method and apparatus for automatic database encryption
US8160247B2 (en) Providing local storage service to applications that run in an application execution environment
US20090187771A1 (en) Secure data storage with key update to prevent replay attacks
WO2021164166A1 (zh) 一种业务数据保护方法、装置、设备及可读存储介质
KR101613146B1 (ko) 데이터베이스 암호화 방법
US8060744B2 (en) Computer architecture for an electronic device providing single-level secure access to multi-level secure file system
US20070074038A1 (en) Method, apparatus and program storage device for providing a secure password manager
JPH11272561A (ja) 記憶媒体のデータ保護方法、その装置及びその記憶媒体
CN100378689C (zh) 一种计算机数据的加密保护及读写控制方法
KR20050014791A (ko) 인증 시스템 및 인증 방법
US20040064485A1 (en) File management apparatus and method
US20090077390A1 (en) Electronic file protection system having one or more removable memory devices
US20090067624A1 (en) System and method of protecting content of an electronic file using a computer
US8095966B1 (en) Methods and apparatus for password management
KR100561218B1 (ko) 외부 저장장치를 통한 정보 유출 방지시스템 및 그 방법
Huang The trusted PC: skin-deep security
KR101405915B1 (ko) 데이터의 암호화 저장 방법 및 암호화된 데이터의 판독방법
US20090077377A1 (en) System and method of protecting content of an electronic file for sending and receiving

Legal Events

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

Payment date: 20121228

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140115

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200302

Year of fee payment: 15