kkamagi's story

IT, 정보보안, 포렌식, 일상 공유

IT 용어 사전

보안토큰이란?

까마기 2021. 11. 24. 00:02
반응형


1.   보안토큰이란?
얼마전 한국정보보호진흥원(KISA)에서HSM이라는 용어를 보안토큰으로 부르기로 표준을 정했다. 지금까지는 아래와 같은 USB형 HSM 토큰을 통상 HSM이라는 용어로 불러 왔다.

KISA에서 이와 같이 용어를 표준화한 이유는 HSM(Hardware Secuiry Module)이란 장비는 여러 가지 형태를 취할 수 있기 때문이다. 먼저 HSM이라는 용어는 하드웨어 내에서 암호화 키를 생성하고 저장하는 장비를 모두 지칭한다. HSM은 USB 토큰 형태 이외에도 칩 형태, PCMCIA 토큰 형태, PCI카드 또는 네트워크 서버의 형태를 갖출 수도 있다. 보통 보안업계에서 HSM이라고 하면 네트워크 서버 형태의HSM만을 지칭하는 경우도 많다.
 
       


  
따라서 KISA에서는 USB 형태의 HSM을 보안토큰으로 부르기로 했으며 이에 따라 국내 보안토큰 업체에서도 소프트웨어와 매뉴얼에서 기존에 여러 가지 이름으로 부르던 것을 모두 보안토큰으로 통일했다.
HSM은 보안에서 핵심적인 역할을 담당하는 장치이다. 보안은 암호학과 밀접한 관련이 있고 고대의 시저 시대로부터 2차 세계 대전, 현대의 정보전에 이르기까지 수많은 암호화 알고리즘이 만들어지고 발전되어 왔다. 암호화의 요점은 적에게 들키지 않고 아군과 안전하게 통신을 하는 것이다. 아군에게 보낼 내용을 암호화(encrypt)하려면 암호화 키가 필요하다. 그리고 암호화된 메시지를 복호화(decrypt)하려 해도 암호화 키가 필요하다.
따라서 이러한 암호화 키를 생성하고 안전하게 보관하는 것이 보안의 핵심 요소가 된다. 하지만 아무리 안전하게 암호화 키를 생성/보관한다고 해도 소프트웨어적으로 암호화 키를 다루는 것은 잠재적 위협 요소가 너무도 많다. 즉 해킹된 PC의 하드디스크나 메모리에 암호화 키를 보관하는 것은 아무런 소용이 없다.
따라서 독립적인 하드웨어 장치 내부에서 암호화 키를 생성하고 보관하는 것이 가장 안전한 방법이라고 결론지어졌다. 혹자는 암호화 키가PC의 하드디스크나 메모리에 있는 것과 USB 형태(또는 다른 형태)의 HSM에 있는 것에 어떤 차이가 있느냐고 질문할 것이다.
암호화 키가 하드디스크, 메모리 또는 일반 USB 메모리에 있는 것은 암호화 키가 그대로 복제될 수 있고 일반적인 파일로 읽을 수 있다는 것을 의미한다. 하지만 HSM 내부에 있는 암호화 키는 비록 HSM 장비가 PC에 연결이 되어 있다 하더라도 결코 암호화 키를 HSM 장비 바깥으로 가져갈 수 없다. 즉 HSM 장비 내부에서 암호화 키로 암호화, 복호화, 전자서명을 할 수는 있지만 암호화 키 자체를 바깥으로 빼낼 방법은 없는 것이다.
HSM은 RSA사에서 정한 PKCS#11 이라는 표준 API를 통해 PC와 통신하게 된다. 이것은 HSM이 USB, PCI, 네트워크 서버 형 어떤 것이나 마찬가지이다. 정해진 API를 통해서만 HSM과 통신할 수 있고 이 API는 한정된 동작만 허용한다. 암호화 키를 생성하는 것은(물론HSM 내부에) C_GenerateKey, 암호화는 C_Encrypt, 전자서명은 C_Sign과 같은 표준 API를 사용한다. PKCS#11 표준 API를 통해서 또는 그 외의 어떤 방법을 동원하더라도 암호화 키를 HSM 내부에서 꺼내는 동작은 허용되지 않는다.
USB형태의 HSM 즉 보안토큰은 주로 인증서를 발급받아 저장하는 용도로 사용된다. 인증서 (Certificate)라는 것은 개인의 주민등록증 또는 회사의 사업자등록증과 같은 것이다. 이미 우리나라에서는 인터넷 뱅킹이나 증권 프로그램 사용을 위해 공인인증서를 발급받는 사용자들이 많다.
인증서는 기본적으로 RSA라는 알고리즘의 암호화 키(한 쌍을 이룬 공개키, 개인키)로 이루어진다. 따라서 보안토큰에 인증서를 담는다는 것은 HSM의 기본 용도인 암호화 키를 생성하고 저장한다는 것과 동일한 의미이다.
현재 대부분의 사용자들은 인증서를 하드디스크에 발급받아 저장한다. 그리고 회사와 집에서 모두 인터넷 뱅킹을 이용하기 위해 회사와 집에 있는 PC 모두에 같은 인증서를 백업받아 하드디스크에 저장해 사용한다. 사용 편의를 위해서 여러 PC의 하드디스크에 같은 인증서를 보관해 사용할 수도 있지만 이것은 편의를 위해 자신의 주민등록증을 여러 개 복제해서 사용한다는 것과 마찬가지의 의미이다.
이보다는 보안토큰에 오직 하나의 인증서만을 발급받아 보안토큰을 휴대하면서 어떤 PC에서나 사용할 수 있도록 하는 것이 올바른 접근이다. 이런 의미에서 보안토큰을 간단히 정의하자면 디지털 세계의 신분증이라고 할 수 있는 인증서를 담는 제품이라고 할 수 있다.
 
2.   금융권의 보안 토큰 사용예
세계적으로 인터넷뱅킹이 가장 대중화된 나라는 우리 나라이다. 또한 국가에서 공인한 인증서인 “공인인증서”가 있는 곳도 우리 나라를 제외하고서는 들어 본 적이 없다. 우리 나라가 이처럼 인터넷 뱅킹 분야에서 앞서가는 이유는 빠른 인터넷 속도와 국가가 주도하는 정책 때문인 것 같다. 해외에서 온라인으로 뱅킹 서비스를 사용할 때는 보통 다음의 방식 중 하나를 사용한다.
첫째는 보통의 웹 사이트에 접속하는 것처럼 ID와 암호로 로그인한다. 그리고 자금을 이체하는 등의 중요한 단계로 넘어갈 때는 OTP(One Time Password) 장치를 사용해 일회용 비밀번호를 입력해 본인임을 인증한다.
둘째는 우리나라처럼 공인인증서가 없어서 Verisign등의 사설 기관에서 발급하는 사설인증서를 사용해 뱅킹 서비스를 이용한다. 다만 사설 인증서이기 때문에 모든 금융기관에서 공통적으로 사용할 수 없는 불편함이 있다.
또 한가지 방법은 ID와 암호로 로그인한 뒤 자금이체 신청을 인터넷에서 하면 다음날 은행 직원에게 전화가 걸려와 본인확인을 한 뒤 은행에서 자금이체를 실행한다.
우리 나라는 이미 하드디스크나 이동식디스크에 공인인증서를 발급받아 인터넷 뱅킹을 하는 방식이 일반화되어 있기 때문에 이 공인인증서를 보안토큰에 발급받는 방식으로 강화되기만 한다면 인터넷 뱅킹에 있어 더 이상의 보안위협은 없다고 생각한다.
이미 금융감독원에서는 인터넷 뱅킹에서 보안1등급을 갖출 수 있는 조건으로 보안토큰에 저장된 인증서와 보안카드를 함께 사용해야 한다고 발표했다. 따라서 앞으로 한도 이상의 자금을 이체하는 은행 고객은 필수적으로 1등급 보안 기준을 충족하는 제품을 사용해야 한다.
이에 맞추어 얼마전 금융권 최초로 농협에서 개인 인터넷 뱅킹에 보안 토큰을 사용하기 시작했다. 다음 화면은 인터넷 뱅킹에서 하드디스크가 아닌 보안토큰에 저장된 인증서로 뱅킹 서비스에 로그인하는 화면이다.
 

 
인터넷 뱅킹 사용자들은 보통 하드디스크나 일반 USB 메모리에 인증서를 담아 사용하는 것이 일반적이다. 하지만 보안 기능이 없는 일반 하드디스크나 USB 메모리에 인증서를 담는 것은 보안에서 가장 중요한 암호화 키(인증서는 암호화 키로 이루어져 있다)를 외부 세계에 공개하는 것이나 마찬가지이다. 컴퓨터 세계에서는 하드디스크에 저장된 파일은 얼마든지 복사하거나 외부로 가져갈 수 있다.
보안토큰에 인증서를 발급받는다는 말은 인증서를 구성하는 암호화 키가 외부(PC의 메모리나 CPU)에서 만들어져 보안토큰으로 옮겨진다는 의미가 아니다. 보안토큰에 인증서를 발급받으면 인증서를 구성하는 암호화 키가 보안토큰 내부의 암호화 프로세서에서 만들어져 보안토큰 메모리에 저장된다. 즉 보안토큰 외부에는 전혀 암호화 키가 유출되지 않는다.
보안토큰은 보안 기능이 강화된 인증서 저장도구이기는 하지만 하드디스크나 플로피 디스크와 마찬가지로 포맷 과정이 필요하다. 일반적으로 포맷은 보안토큰에서 초기화라고 부른다. 보안토큰을 초기화하면 내부에 저장된 인증서 등 모든 데이터가 삭제된다. 따라서 보안토큰을 초기화한 이후에는 인증서를 갱신 또는 재발급받아야 한다.
보안토큰은 “보안토큰 비밀번호(PIN)”로 보호되기 때문에 인터넷 뱅킹 등 어떤 용도로 사용하더라도 가장 먼저 자신의 비밀번호로 보안토큰에 로그인해야 한다.
 
 
3.   기업의 보안토큰 사용 예
우리 나라는 세계에서 가장 인터넷 뱅킹이 대중화되어 있는 나라이며 개인이 인터넷 뱅킹을 위해 보안토큰을 사용하는 몇 안 되는 나라 중에 하나이기도 하다. 우리를 제외한 다른 나라에서는 보안토큰을 기업의 내부 인증을 위해서 주로 사용하고 있다.
외국의 기업 컴퓨팅 환경이 국내와 가장 큰 차이를 보이는 것 중 하나는 마이크로소프트 AD(Active Directory)의 사용 여부이다. 외국에서는 기업 내부에 윈도 서버가 구축되고 이것이 AD 서버가 되어 직원들의 모든 PC를 중앙에서 관리한다. 이러한 AD 환경에는 스마트카드 또는 보안토큰 사용에 대한 지원이 기본으로 탑재되어 있다. 즉 보안토큰 구동 소프트웨어를 설치하기만 하면 이 보안토큰에 AD 인증서버가 발급하는 인증서로 개인 PC의 윈도에 로그인할 수 있다. 이렇게 윈도 서버 환경에 보안토큰에 발급된 인증서로 로그인하는 것은 인터넷 뱅킹에 로그인하는 것과 유사한 메커니즘이다.
개인PC에 로그인할 때 아이디와 암호를 입력하는 것이 아니라 인증서를 담은 보안토큰으로 로그인하는 것은 기본적인 보안 요구사항을 충족한다. 왜냐하면 아이디와 암호를 타인과 공유하지 못할 뿐 아니라 개인에게 발급된 보안토큰이 아니면 PC에 로그인할 방법이 없기 때문이다.
또한 보안토큰을 USB 포트에서 빼면 PC 윈도는 자동 로그아웃되거나 잠겨 버리게 된다. 따라서 PC에 로그인한 채 자리를 비움으로 해서 일어나는 보안 사고가 방지된다.
기업 컴퓨팅 환경에서 유용한 보안토큰의 또 한 가지 기능은 SSO(Single Sign On)이다. SSO 기능은 일반적으로 이야기하는 SSO 서버와는 다른 기능이다. SSO 기능은 AD 관리자가 보안토큰을 사용자들에게 배포하기 전에 미리 설정하여 기업내 인트라넷이나 그룹웨어에 자동으로 로그인 할 수 있는 기능을 제공한다.
다음은 기업용 그룹웨어의 예이다.
 

 
어떤 기업의 직원들이 위와 같은 그룹웨어에 자주 로그인해야 한다면 보안토큰을 이용해 PC 로그인만 하는 것이 아니라 그룹웨어 로그인을 자동화하는 기능도 보안토큰에 넣을 수 있다.
기업 전산 관리자는 위 그룹웨어를 보안토큰의 SSO 리스트에 추가해 배포하면 사용자가 보안토큰을 처음 사용할 때 위 그룹웨어에 대한ID와 암호를 입력하게 된다. 이렇게 최초 입력된 ID와 암호는 보안토큰 내부에 저장되어 다음부터는 로그인 과정을 자동화한다.
 
4.   보안토큰 인터페이스
보안토큰은 겉으로만 보기에는 일반 USB 메모리와 별 차이가 없어 보인다. 그러나 표면적으로 느낄 수 있는 가장 큰 차이는 메모리 용량의 차이다. 일반 USB 메모리는 용량이 보통 1GB, 2GB 정도가 많은 반면 보안토큰의 메모리는 보통 32KB으로, 인증서를 약 10개 정도 담을 수 있는 용량이다. 용량이 크지 않은 이유는 보안토큰이 일반 USB메모리와 달리 오로지 인증서, 다시 말해 암호화 키만을 담기 위한 주목적을 가지고 있기 때문이다.
또 한 가지 기술적으로 보안토큰과 일반 데이타 저장용 USB메모리와 차이나게 하는 것은 PC가 어떻게 USB 슬롯에 삽입된 장치를 바라보는가 하는 점이다. PC는 USB메모리를 하나의 파일 시스템(FAT 등)으로 인식하고 하드디스크와 똑같이 파일 단위로 쓰고 읽는다. 하지만 보안토큰은 단순한 메모리가 아니라 프로세서와 OS와 펌웨어까지 탑재한 하나의 독립 시스템이다. 보안토큰은 USB 슬롯에 삽입한 순간USB 슬롯으로부터 전기를 공급받아 부팅한다. 부팅 과정은 순간적이지만 일반 PC가 부팅하는 과정과 기술적으로는 동일하다.
보안토큰은 순식간에 이루어지는 부팅이 모두 끝나면 그 때부터는 하나의 독립시스템으로서 PC와 USB를 통해 통신을 시작한다. 이것은 두 대의 PC가 TCP/IP를 통해 통신하는 것과 유사하다고도 할 수 있다. PC에 설치된 보안토큰 구동 소프트웨어는 보안토큰이 이해할 수 있는 APDU 명령을 보내고 보안토큰에서 응답하는 내용을 해독한다.
예를 들어 공인인증서를 보안토큰에 발급하는 경우 은행의 웹 사이트에서 함께 구동되는 PKI 모듈(인터넷 뱅킹시 뜨는 작은 팝업 윈도우에서 인증서를 선택하고 암호를 넣은 뒤 로그인하는 모듈)이 보안토큰 구동 라이브러리를 로드한후 표준 API를 이용해 암호화 키 생성 명령을 내린다. 이 명령은 몇 개의 레이어를 거쳐 가장 아랫 단계에서는 보안토큰이 알아들을 수 있는 명령으로 바뀌고 이 명령은 USB 슬롯을 통해 보안토큰에 보내진다. 보안토큰에 암호화 키를 생성하는 명령이 전해지면 보안토큰에 탑재된 프로세서가 이 명령을 해석하고 암호화 보조 프로세서를 이용해 암호화 키를 생성한다. 암호화 키를 생성하는 것은 고도의 수학적 계산을 요하므로 수 초가 걸린다. 공인인증서를 보안토큰에 발급받을 때 그 속도가 너무 빠른 경우에는 실제 보안토큰의 암호화 보조프로세서에서 암호화 키를 발생하는 것이 아니라 PC의 CPU로 암호화 키를 발생시켜 단순히 토큰에 복사해 넣는 것이 아닌지 의심해 봐야 한다. 이처럼 PC의 CPU로 암호화 키를 발생시켜 토큰에 복사한다면 이것은 HSM이라 할 수 없으며 보안 레벨도 낮은 것이다. 왜냐하면 암호화 키는 HSM 외부에 잠시라도 머물면 잠재적인 보안 위험이 있기 때문이다.
보안토큰에 접근하는 인터페이스는 다음 그림과 같이 여러 계층이 있다.
 

 
 
 
대부분의 경우 보안토큰을 사용하기 위해 PKCS#11 라이브러리를 사용한다. PKCS#11 API는 RSA사가 제정한 것으로 USB 형식의 보안토큰뿐 아니라 모든 형태의 HSM의 API를 정의한다. 이 라이브러리는 윈도 시스템에 하나의 동적 라이브러리 파일로 제공된다. 인터넷 뱅킹을 할 때 역시 은행의 뱅킹 소프트웨어가 이 라이브러리를 사용해 보안토큰의 인증서를 읽게 된다.
하지만 모든 응용프로그램에서 PKCS#11 라이브러리를 사용하는 것은 아니다. CSP라는 형식을 사용해 보안토큰을 사용할 수도 있다. CSP는 마이크로소프트의 규격으로 PKCS#11과 마찬가지인 하나의 동적 라이브러리 파일로 보안토큰 제작 업체에서 제공한다.
CSP와 PKCS#11의 아래에는 PC/SC 계층이 존재한다. 이 계층을 사용하려면 라이브러리 파일의 필요없이 보안토큰의 하드웨어 드라이버만 설치하면 된다. 그리고 PKCS#11과 같은 고수준 API가 아닌 보안토큰이 직접 해석할 수 있는 기계적 명령을 보낼 수 있다. 실제로 많은 수는 아니지만 보안토큰을 사용하는 몇몇 기업 고객에서는 PC/SC 방식을 사용해 직접 보안토큰 응용프로그램을 만들어 사용하기도 한다.
  
5.   보안토큰을 통한 인증
결국 보안토큰을 사용하는 가장 큰 목적은 안전한 사용자 인증이다. 실제로 인증서가 사용자 인증의 모든 역할을 하고 보안토큰은 사용자 인증에 있어 강력한 보안 기능을 제공한다.
다음 그림은 보안토큰을 통한 인증 과정을 보여준다.
 

 
 
보안토큰을 통한 인증은 공개키 시스템(PKI, Public Key Infrastructure)에 기반한다. PKI에서 가장 핵심적인 역할을 하는 것은 쌍을 이루는공개키와 개인키이다. 가장 많이 쓰이는 알고리즘은 RSA이며 키 길이는 1024bit로 몇 년 후에는 2048bit가 많이 쓰일 예정이다.
우선 인증서를 발급받게 되면 보안토큰 내부에 RSA 공개키, 개인키가 한 쌍 생긴다. 이렇게 생성된 키 중 개인키는 결코 보안토큰 밖으로 유출되지 않는다는 것이 HSM 즉 보안토큰의 핵심 개념이다. 하지만 공개키는 이름에서 추측할 수 있는 것처럼 외부에 공개된다. 위 그림에서 공개키는 인증서버에게까지 전달된다.
보안토큰을 통한 인증은 크게 두 가지 경우가 있다. 한 가지는 사설인증서를 사용하는 경우, 또 하나는 공인인증서를 사용하는 경우이다.
사설인증서를 사용하는 경우 사설인증 서버가 사내에 있을 것이며 이 서버가 최초 로그인시 인증된 사용자인지를 검사한다. 인증된 사용자인지를 알 수 있는 방법은 서버에서 보안토큰에 데이터를 보내 그 데이터를 전자서명(전자서명은 주어진 데이터를 축약한 뒤 개인키로 암호화하는 것을 말한다)하게 한 뒤 전자서명된 값을 공개된 공개키로 확인해 보는 것이다. 이렇게 확인한 값이 서버에서 보낸 원본 데이타와 같다면 서버에서 알고 있는 인증된 사용자임이 맞다고 판단한다. 왜냐하면 고유한 개인키로 서명 또는 암호화된 데이터는 일치하는 공개키로만 확인 또는 복호화가 가능하기 때문이다.
보안토큰에 담긴 사설인증서는 사내망 로그인 외에도 전자결제, 이메일과 전자문서의 서명 및 암호화를 위해서도 사용할 수 있다. 실제 많은 고객들이 전자결제를 위해 사설인증서와 보안토큰을 사용하며 이러한 일처리는 기업에 효율성을 증진한다.
보안토큰에 공인인증서를 탑재해 사용하는 경우도 메커니즘은 동일하다. 다만 국가에서 공인하는 인증서이기 때문에 뱅킹, 증권, 보험, 발주, 결제 등의 업무에 사용할 수 있다. 실제로 국내 한 은행에서 이미 보안토큰을 개인 인터넷 뱅킹에 도입했으며 금융감독원 보안1등급 지침에 따라 많은 은행들이 도입을 검토중이다. 공인인증서를 보안토큰에 탑재하게 되면 어떤 PC에서건 인증서에 대한 도난의 위협 없이 안심하고 뱅킹, 결제, 인증 기능을 수행할 수 있다. 공인인증서를 사용함으로 해서 업무의 신속성 및 효율성이 높아지는 것은 말할 것도 없다. 예를 들어 거래 업체에 견적을 내고 주문을 하고 세금계산서를 발행하는 업무 등도 공인인증서를 통해 서로 상대방을 확인할 수 있다면 모든 것을 전자적으로 처리해 종이로 된 서류가 사라지고 불필요한 이메일 업무도 줄어든다. 이미 대기업에서는 공인인증서를 이용한 결제, 주문, 검수 작업 시스템이 갖추어져 있다.
다만 현재까지는 하드디스크에 공인인증서를 담는 시스템이 주류이지만 개인의 신분을 나타내는 인증서가 복제되고 유출될 수 있다는 점에서 앞으로 보안토큰이 대세를 이루게 될 것이다. 
 
 
6.  보안토큰을 사용하지 않을 때의 위험성
보안토큰은 기본적으로 인증서를 안전하게 담는 용도이며 인증서는 개인의 신분을 보장하는 인증 수단이 된다. 인터넷 뱅킹에서 거액의 돈을 타인의 계좌로 이체할 때 공인인증서로 전자서명, 즉 본인이 확실하다는 서명을 하며 사내망에 접속할 때도 사설인증서로 본인임을 증명한다. 인증 과정을 처리하는 서버에서는 인증서를 구성하는 개인키와 쌍을 이루는 공개키로 서명된 데이터를 확인함으로써 정말로 본인이 맞는지 확인한다.
그렇다면 인증서, 더욱 기술적으로 표현해 개인키가 외부로 유출된다면 심각한 일이 벌어질 수 있다는 것을 예상할 수 있다. 인증서 즉 개인키는 하드디스크에 저장되었을 때는 손쉽게 복사할 수가 있다. PC가 해킹되었다면 해커가 원격에서도 인증서를 복사해 갈 수 있다. 인증서와 함께 인증서 암호마저 키보드를 모니터링해 알아냈다면 인터넷 뱅킹으로 거액의 돈을 이체해 갈 수 있다. 물론 이런 일 때문에 보안카드가 있어 한번 더 안전 장치를 보장하기는 하지만 보안카드마저 복사해 갔다면 거액의 돈이 이체되는 것은 피할 수 없는 위험이 된다.
더욱이 하드디스크 또는 USB 메모리에 저장된 인증서는 복사해 간다고 해도 아무런 증거가 남지 않는다. 보안토큰에 발급받은 인증서는 보안토큰을 분실하거나 도난당하면 인증서 역시 분실, 도난 당한 것이지만 하드디스크의 인증서는 분실시에도 원본은 그대로 남아 있기 때문에 위험한 상황을 인지조차 못할 수 있다. 보안토큰에 한번 발급된 인증서는 결코 사본으로 카피될 수 없다. 왜냐하면 한 쌍의 개인키, 공개키가 보안토큰 내부에서 발생하며 개인키가 외부로 빠져나올 수 없기 때문이다. 즉 내보내기(export) 기능이 없다. 실제 내보내기가 동작하는 것처럼 보이는 경우에도 공개키만 나올 뿐이며 개인키는 유출되지 않는다.
보안토큰은 분실 또는 도난당했다고 해도 보안토큰 비밀번호를 모르면 사용할 수 없다. 또한 보통 5회에서 10회 정도 보안토큰 비밀번호를잘못 입력하면 보안토큰이 영원히 잠겨 버린다. 한번 잠긴 보안토큰은 올바른 비밀번호를 넣거나 관리자에게 가져가도 풀 방법이 없다. 유일한 방법은 초기화(포맷)를 하는 것이다. 이렇게 초기화를 하는 경우에는 내부 인증서가 삭제되므로 인증서가 악용되지 않는다.
 
7.  보안토큰 인증과 표준
보안토큰을 평가하는 국제 인증으로는 CC(Common Criteria)와 FIPS(Federal Information Processing Standard)가 있다. 보통 CC를 더 강한 수준의 인증 표준으로 보며 보안 수준은 EAL로 구분한다. FIPS 140 역시 보안토큰을 평가하는 중요한 국제 인증이다. 시장에서 오래 사용된 보안토큰은 대체로 CC와 FIPS 두 인증을 모두 갖고 있는 경우가 많다.
국내 인증으로는 KISA에서 실시하는 보안토큰 구현적합성 평가가 있다. 2007년 11월에 두 개의 외산 보안토큰에 최초로 부여된 인증으로 국내에서 다양한 PKI 모듈과 연동하여 사용할 수 있는 것으로 평가된 제품에만 부여된다.
보안토큰 표준 즉 인터페이스 방식은 PKCS#11, MS CSP, PC/SC 방식이 있으며 대부분의 보안토큰들은 이 세 가지를 모두 지원한다. 호환성을 위해 이 세 가지를 모두 지원하는 것이 좋으며 때로는 이 중 부분적으로만 지원해도 그 용도로만 사용할 것이라면 큰 문제는 없다.
 
 
8.  차세대 보안 토큰
보안토큰에는 폐쇄형과 개방형의 두 가지가 있다. 폐쇄형은 보안토큰 제작사에서 제공한 기능만을 이용하여 보안토큰을 사용할 수 있으며 폐쇄적인 만큼 보안성도 더 크다. 반면 개방형 보안토큰은 보안토큰을 구매한 기업에서 더 많은 추가 기능을 보안토큰에 부여할 수 있는 장점이 있는 반면 기본적인 보안토큰의 보안성에 문제가 생길 여지가 생긴다.
폐쇄형은 토큰 제작사 자체의 COS(Chip Operating System)를 사용하는 반면 개방형은 자바 COS를 탑재하고 있다. 자바 COS는 PC에서의 JVM(Java Virtual Machine)과 비슷하다고 생각할 수 있다. 토큰을 사용하는 기업에서 Java Applet을 제작하여 보안토큰에 탑재함으로써 기업에서 원하는 방식으로 사용할 수 있는 장점이 있는 반면 보안토큰에 탑재되는 고객기업의 Java Applet의 보안성을 검증해야 하는 추가 고려 사항이 발생한다. 즉 고객기업의 개발자가 악의적인 의도로 Java Applet 일부를 수정해서 올릴 수도 있다는 말이다. 반면 폐쇄형은 보안토큰에 추가로 올릴 수 있는 프로그램은 보안토큰 제작사가 최종 전자서명을 해서 올리게 되므로 한 번 더 보안 검증을 거치게 되는 안전 장치가 있다.
일반적으로 과거에는 폐쇄형이 많이 사용되다가 최근에는 개방형으로 이동한다고 말할 수 있지만 용도에 따라 더 강한 보안을 위해서는 폐쇄형을, 고객 기업의 구미를 최대한 충족하고자 한다면 개방형이 낫다고 말할 수 있다.
이와 더불어 기존의 보안토큰에 플래시 메모리를 추가하여 일반인들이 많이 사용하는 USB 메모리 기능까지 추가한 제품이 있다. 이 제품은 인증서는 보안토큰에, 일반 파일(문서, 동영상, 그림 파일 등)은 수 GB의 플래시 메모리에 저장하는 제품이다.
USB 토큰은 하나이지만 내부적으로는 보안토큰과 USB 메모리 즉 두 개의 장치이다. PC에 삽입해도 PC는 이것을 보안토큰과 USB 메모리 두 개로 인식하게 된다.
이 제품을 사용하면 인터넷 뱅킹이나 인트라넷 접속 등 인증서를 사용할 때는 보안토큰을 사용하고 파일을 복사하고 이동시키는 용도로는USB 메모리를 사용하게 되므로 편리하다. 또한 최근의 보안토큰은 64KB의 보안 메모리를 가지고 있어서 약 2KB인 인증서를 32개나 담을 수 있으므로 용량도 충분하다고 할 수 있다. (보통의 사용자들은 많아도 5개 이상의 인증서를 사용할 일이 거의 없다.)
[출처] 보안토큰의 이해|작성자 choijo2

반응형