보안 토큰

보안 토큰(HSM, Hardware Security Module)은 전자 서명 생성 키 등 비밀 정보를 안전하게 저장 및 보관할 수 있고 기기 내부에 프로세스 및 암호 연산 장치가 있어 전자 서명 키 생성, 전자 서명 생성 및 검증 등이 가능한 하드웨어 장치로써 기기 내부에 저장된 전자 서명 생성 키 등 비밀 정보는 장치 외부로 복사 또는 재생성되지 않으며 스마트 카드, USB 토큰 등 다양한 형태로 제작 및 구현한 것으로 이러한 보안토큰을 구현하는 기반지식 및 주요 기술 구조는 다음과 같다.

보안토큰 개요

보안토큰은 공인인증서 등의 고객 비밀정보를 안전하게 보관하기 위해 중요정보의 암호처리 등이 기기 내부에서 처리되도록 구현된 장치로, 현재 USB 메모리 방식의 보안토큰이 주류를 이루고 있다.

USB 개요

USB(Universal Serial Bus)는 CTI(Computer Telephony Integration) 산업의 성장을 위해 상호접속(Interconnection)의 필요성을 인식한 정보통신의 선두 격인 인텔, 마이크로소프트, 컴팩, IBM, NEC, DEC 및 Nortel등이 모여서 USBO란 협체를 만들어 규격화 작업을 통하여 개발하였다. 이러한 USB는 표준 포트와 플러그 조합을 사용하여 프린터, 모뎀, 스캐너, 디지털 카메라 같은 장치를 연결한다. 이 버스의 장점은 장치를 쉽게 추가하거나, 삭제하거나, 옮길 수 있는 기능을 제공하는 것이다.

보안 USB 개요

보안토큰의 중요 요구사항은 비밀정보를 안전하게 저장할 수 있는 기기 내부의 Security Module이 존재하는 것이다. 이러한 방식 중에서도 보안USB의 형태가 가장 주류를 이루고 있는데, 이는 휴대용 메모리 스틱은 속도가 빠르고 대용량이며 사용하기 간단하면서도 작은 크기로 휴대성이 높은 장점이 있어 최근 가장 보편적인 휴대용 저장 장치가 되었다. 이러한 장점으로 인해 내부 기밀자료의 외부유출의 매체로 악용되는 사례가 크게 증가하고 있다. 이에 국가정보원은 2007년 초, 국가와 공공기관의 기밀 유출 방지를 위해 보안USB사용에 관한 ‘USB메모리 등 보조기억매체 보안관리 지침’을 발표했다. 이후, 1년간의 유예기간이 끝나는 2008년 4월부터는 각급 공공기관들은 보안USB를 의무적으로 사용해야만 한다.

2007년 11월 30일 「금융IC카드 보안토큰(공인인증서기반 거래용) 규격(안)」표준이 확정 되면서 이러한 USB 형태의 보안장치 (보안토큰)을 사용하여 공인인증서 등을 저장하도록 협의되었다.

보안USB 필수 기능

보안 USB 관련하여 국가정보원에서 정의한 필수기능은 다음과 같다.

  1. 사용자 식별•인증
  2. 지정데이터 암•복호화
  3. 지정된 자료의 임의복제 방지
  4. 분실 시 데이터보호를 위한 삭제


국가정보원 보안 요구기준을 갖추기 위한 보안USB 세부 기능은 다음과 같이 정의할 수 있다.

규정 사항 세부 기능
사용자 식별 인증 • PC 또는 노트북에 매체를 삽입하면 보안 S/W가 자동으로 가동
• 보안 S/W는 강제 종료하거나 삭제할 수 없음
• 취급자 식별 및 인증은 공인인증서 또는 ID/PW 방식으로 이루어짐
• 사용자 인증 후 매체 접근 제어 가능
지정데이터 암/복호화 • KCDSA (Korean Certificate-based Digital Signature Algorithm)등의 암호화 표준 준수
지정된 자료의 임의복제 • 사용자 인증 및 매체 인증 없이 매체에 접근 불가
• USB내의 비밀문서를 매체 내에 암호화
분실 시 데이터보호를 위한 삭제 • 지정된 횟수 이상 패스워드 잘못 입력 시 USB 내 파일 완전 삭제
기타 • 보안 USB 메모리에 대한 사용 횟수, 사용기간, 사용가능 PC에 대한 설정 기능
• USB 사용 시 접속한 PC 및 네트워크 정보를 개인 E-mail과 서버로 전송하여 분실, 도난 시 추적할 수 있는 정보 제공 기능

USB 형태의 보안장치(보안토큰)

USB 보안 장치의 핵심은 보안칩으로서 Interface Controller, Crypto Coprocessor 그리고 EEPROM으로 구성되어 있다. USB 컨트롤러는 USB Spec. 2.0에 맞춰 설계되어 있으며, USB Interface 엔진, USB 송수신장치, 8bit RISC 마이크로 컨트롤러, Clock Oscillator, 타이머 그리고 프로그램 메모리 등을 내장하고 있다. 또한 USB 컨트롤러는 USB 통신과 함께 암호 코프로세서와 EEPROM의 컨트롤을 수행하며, DRM인증서 및 사용자 정보 등을 EEPROM을 통하여 관리한다. DRM Chip은 AES, E-DES, SEED 등의 대칭키 암호알고리즘 블록과 RSA의 비대칭키 블록 그리고 DRM을 위한 Hash와 Scrambler 블록으로 구성된다. 또한 보안토큰의 암호알고리즘은 표준화되어 있고 범용으로 쓰이는 AES, SEED, RSA, SHA 등의 알고리즘과 보안을 강화하기 위해 자체 개발한 암호 알고리즘인 E-DES 등의 암호화 알고리즘을 사용한다.

Crypto Processor

Crypto Coprocessor의 예

Crypto Coprocessor(암호 코프로세서)는 크게 다음의 기능별 블록을 갖는다.

기능별 블록 설명
암호화 블록
(AES, E-DES, SEED)
• 첫째, AES, E-DES, SEED 암호화 블록을 이용하여 실행코드를 보호한다. 보조저장매체에 저장되어 있는 실행코드는 프로그램의 개발자에 의해 미리 암호화되어 있으며 최종사용자는 보호 모듈에 내장되어 있는 복호화 블록에 의해 프로그램의 실행단계에서 복호화 작업을 수행함으로써 인증된 사용을 하게 된됨
코드의 변경 감시
(Hash)
• 둘째,실행코드의 변경을 검사한다.보호 된 프로그램이 실행을 위하여 메모리에 적재되어 있을 때 가장 취약한 부분은 적재된 프로그램의 변경이며, 이것을 방지하기 위한 방법으로 실행코드의 변경을 감시하기 위한 코드를 삽입하는 방법이 사용됨
• 보호된 프로그램은 보조 메모리에 적재될 때에 저장된 코드에 대한 Hash값을 함께 저장하고 있게 되며 코프로세서 내에서 보조저장매체에 존재하는 Hash값과 코프로세서 내부에서 계산된 Hash값을 비교 수행함으로써 코드의 변경 유무를 검사하게 됨
Scrambler • 셋째,복호화 된 실행코드는PC로 전송되어 지기 전에 다시 암호화되어짐
• 이는 보호 모듈로부터 반환되는 값이 일정할 경우 보호 모듈을 하드웨어적으로 에뮬레이션 하는 것이 가능하기 때문이며, 이를 방지하기 위한 방법으로 Scrambler를 사용함

이와 같은 블록과 이를 제어하기 위한 제어 블록과 데이터 입․출력을 위한 버퍼로 구성된 암호 코프로세서의 블록도는 아래 그림과 같다.

Crypto Coprocessor 기능별 블록

Interface Controler의 예 (USB 컨트롤러)

USB 마이크로 컨트롤러는 다음 4개의 주요 블록으로 구성되어 있으며 블록다이어그램은 아래 그림과 같다. USB_SIE은 Tx Logic과 Rx Logic으로 구성된다. Tx Logic은 uRISC에 의해 메모리에 생성된 데이터 패킷을 전송하는데 이 패킷은 병렬 데이터 스트림에서 시리얼 데이터 스트림으로 변환된다. 필요한 모든 USB 데이터의 포맷팅은 Tx Logic에 의해 수행되며 NRZI 엔코딩, bit-stuff, CRC 계산, SYNC 필드와 EOP의 추가가 수행된다.

USB Interface

USB 보안 기법 설계

USB 보안 기능 및 프로토콜 설계

구분 설명
데이터 및 SW 불법 복제 방지 기능 데이터 및 SW 불법 복제 방지는 두 가지의 과정을 거쳐 이루어지게 됨
• 데이터나 SW의 실행시 모듈의 유무를 점검하는 것으로 기존의 복제방지 시스템과 유사함
• 암호화되어져 있는 콘텐츠 파일을 복호화하여 실행 가능 상태로 만드는 것임
- 보안장치가 존재하지 않으면 콘텐츠의 실행은 원천적으로 불가능
- 실행파일의 암호화는 소프트웨어의 불법적인 코드 변경을 불가능하게 하는 것을 목적으로 함
프로그램 복제 방지 기능
파일 복호화 기능 • 소프트웨어에 의한 복호화의 단점인 저속과 monitoring에 의한 hacking의 가능성 등을 모두 해결한 기능
• USB 장치에서 이루어지므로 외부의 불법적인 hacking을 원천적으로 봉쇄할 수 있음
파일 복호화 기능
외부포트를 통한 복호화된 파일의 수신 • 외부 통신 포트로부터의 콘텐츠 접근에 자동적으로 동작하게 시스템을 제작하는 것을 목표로 함
• 콘텐츠가 암호화되어 있는지 등을 자동감지 및 제어할 수 있도록 함(이 과정은 소프트웨어에 의해 실행되도록 한다.)
외부포트를 통한 암호화 데이터의 수신

USB 보안 패킷 설계

패킷은 총 32 Byte로 구성되어 있으며 입력패킷과 출력패킷 두 가지로 구성되어있다. 출력패킷은 Endpoint 1을 사용하며, 보안칩 초기화, Fake Master Code, 기타코드, 콘텐츠 전송, User String 요구 등의 명령을 수행할 수 있다. 입력패킷은 Endpoint 2를 사용하며, 복호화 된 데이터 또는 User String을 받을 때 사용된다.

  • 명령별 패킷의 구성
보안칩 Reset 여러종류의 Code를 보안칩으로 전송 데이터를 보안칩으로 전송 모듈정보 요구 모듈내부의 Protector Code를 보안칩으로 전송

보안 USB와 일반 USB의 차이점

가장 큰 차이점은 USB 메모리의 보안 콘트롤러의 유무에 있다. 콘트롤러는 H/W적으로 또는 S/W적으로 구성할 수 있고, 콘트롤러를 통해서 OS에서 보안USB가 식별이 되며 전용 드라이버가 mount되고 전용 application을 통해 데이터 송수신이 가능해진다. 보안 USB와 일반 USB의 작동 차이점은 다음과 같다.

일반적인 USB 메모리 작동 개요

  1. USB를 컴퓨터에 꽂으면 interrupt가 발생하고 OS는 USB의 Control Endpoint를 호출하여 장비를 식별
  2. USB에 맞는 드라이버 mount
  3. Application은 USB의 Bulk In, Bulk Out를 통해 Memory와 데이터 교환


일반 USB 작동 개요

보안 USB 메모리 작동 개요

  1. USB를 컴퓨터에 꽂으면 interrupt가 발생하고 OS는 USB의 Control Endpoint를 호출하여 장비를 식별
  2. 보안솔루션에 의해 보안USB에 맞는 드라이버 mount(붉은 색)
  3. 일반적인 Application은 USB에 접근할 수 없고 보안솔루션을 통해서 콘트롤러(붉은 색 Con)가 내장된 보안 USB Memory와 데이터 교환


보안 USB 작동 개요

보안 USB 사용의 이점

보안 USB를 사용함으로 얻을 수 있는 이점은 크게 두가지를 꼽을 수 있다.

구분 설명
관리즉 측면 • 보조기억장치의 등록으로 구역 내 사용현황 파악이 용이하며 분실에 따른 정보 유출 방지, 보안정책 수립 및 시행의 효율적 관리체계 구축이 가능
보안성 측면 • USB를 통한 문서유출 경로 차단, USB 이용 내역 기록, 미등록 보조기억장치 사용 차단이 가능