| [기고] 토큰화 기술에 대한 보안성 고려① | 2012.05.25 |
토근화 기술의 구성과 보안 요구 사항 [보안뉴스=심상규 펜타시큐리티 신기술개발팀장] 토큰화 기술(Tokenization)은 금융 거래 정보를 보호하기 위해 2005년에 제안되었으며 최근에는 개인정보 보호를 위한 DB암호화 기술로 많은 주목을 받고 있다. 토큰화 기술 자체는 이론상으로 안전한 기술이지만, 토큰화 기술의 핵심인 토큰 생성 방법을 실제로 구현하는 데에 있어서 많은 보안 문제가 야기될 수 있다. 본 고에서는 의사난수로 토큰을 생성하는 방법의 문제점들을 살펴보고 안전한 토큰 생성법인 속성유지 암호화 방법에 대해서 2회로 나누어 살펴보고자 한다.
토큰화(Tokenization) 기술이란 토큰화 기술은 유출되지 않도록 보호되어야 하는 데이터를 토큰(token)으로 치환한 뒤에 원본 데이터를 대신하여 토큰을 사용하는 기술이다. 유출로부터 보호되어야 하는 데이터는 주민등록번호, 은행 계좌 번호나 신용 카드 번호 등의 금융 거래 정보, 의료 기록, 범죄 기록, 운전면허나 차량 등록번호 등의 자동차 관련 정보, 주식 거래 정보 등이 이에 해당된다. 이러한 정보들은 개인정보를 담고 있기 때문에 통신 과정에서 유출되거나 혹은 서버 내부에 저장된 데이터가 유출되었을 경우에 큰 피해를 가져올 수 있다. 토큰화 기술은 개인 정보의 유출 위험이 있는 전송 과정과 저장 단계에서 개인정보 데이터를 치환한 토큰 데이터만을 전송하고 저장함으로써 개인 정보를 보호하는 접근법이다. 이러한 토큰화 기술은 2005년 미국 회사인 Shift4에 의해서 발표되었고 Voltage, SafeNet, AtoS, VeriFone, Akamai, Securosis 등 굴지의 보안회사들이 채용하고 있다. 다양한 금융 카드에 대해서 카드 소유자의 정보보안을 제공하기 위해 제안된 PCI-DSS(Payment Card Industry Data Security Standard)는 12개 항목의 주요 보안 요구사항과 220개 이상의 세부 요구사항을 제시하고 있다. PCI-DSS는 카드 정보를 저장, 연산, 전송함에 있어서 보호 조치가 강구되어야 함을 명시하고 있는데 토큰화 기술은 카드 정보를 대체하여 토큰 데이터를 저장, 연산, 전송함으로써 이에 대응한다는 논리로 PCI-DSS에 규정한 요구사항을 만족하는 기술로 인식되고 있다. 토큰화 기술의 구성 신용카드 번호를 예로 들어 토큰화 기술이 어떻게 구성되는지를 살펴보자. 신용카드를 소유하고 있는 소비자가 상점에게 신용카드를 제시하면, 상점의 단말기(POS; Point Of Sale)는 토큰 서버에게 암호화를 통해 신용카드 번호를 전송한다.
더불어 분산되어 저장되는 개인정보들이 토큰 서버에 통합 관리됨에 따라 보안의 노력을 토큰 서버에만 집중하면 된다는 장점이 있다. 반면에, 개인정보가 토큰 서버에 집중되기 때문에 토큰 서버에서 보안 취약점으로 인해 정보가 유출될 경우 큰 피해가 발생할 수 있다는 단점이 있다. 위의 그림은 상점이 소비자의 카드 정보를 수신한 경우에 대한 서비스 구성을 도식으로 표현한 것이다. 1단계에서 소비자의 카드 번호는 안전한 채널 또는 데이터 암호화를 채용하여 안전한 방법으로 전달되어야 한다. 마찬가지로, 9단계에에서도 소비자의 카드 번호는 안전한 방법으로 전송되어야 한다. 아래의 그림에서 응용 서버와 거래 서버는 다른 것으로 구분되어 있으나 실제 구현에 있어서는 동일할 수도 있다. 토큰화 기술의 보안 요구사항 개인정보 데이터를 대체하는 토큰 데이터와 이에 대응하는 개인정보 데이터가 토큰 서버에 저장되기 때문에 토큰 서버는 개인정보가 유출될 수 있는 유일한 창구가 된다. 이러한 위협을 막기 위해서는 토큰 서버에 접속하는 통신에 대한 인증, 권한관리, 감사 등의 보안 기술이 필수적이다. 또한 토큰 서버에 저장되는 개인정보 데이터에 대해서는 별도의 암호화 기술이 요구된다. 그러면, 시스템 측면에서 토큰 서버에 대한 보안 요구사항들이 만족된다면 토큰화 기술은 안전한 것일까? 토큰화 기술의 보안성 토큰화 기술의 보안성은 크게 3가지 측면에서 주장된다. 첫째, 토큰화 기술이 PCI-DSS가 명시한 보안 요구사항에 부합하는 기술이기 때문에 안전하다는 주장이다. PCI-DSS는 신용카드 등의 금융 카드 이용에 관한 최소한의 보안 요구사항만을 정한 것이기 때문에 PCI-DSS에 부합한다고 안전성을 보장받을 수 있는 것은 아니다. Heartland Payment Processing System, Hannaford Brothers, TJX Companies 등은 PCI-DSS를 잘 따르는 것으로 평가 받은 기업이었지만 2008년 대규모의 개인정보 유출 사고가 있었다. 둘째, 개인정보는 토큰 서버에서 안전하게 보관되고 관리되기 때문에 안전하다는 주장이다. 이것은 개인정보를 저장하는 저장소의 안전성에 대한 논의일 뿐, 토큰화 기술 자체에 대한 보안성을 설명하지는 못한다. 마지막으로, 토큰이 난수로 얻어지는 값이기 때문에 토큰으로부터 노출되는 개인정보가 없으므로 안전하다는 주장이다. 이 주장은 이론상으로 옳은 말이지만 현실에서 옳지 않을 수도 있다. 전자서명, 암호화, 키 교환 등의 많은 보안 기술들이 안전한 암호학적 알고리즘에 기반하기 때문에 안전한 것처럼 인식된다. 그러나 현실에서의 취약점은 암호에 쓰이는 키와 난수에서 발생하는 경우가 많다. 안전한 암호 알고리즘을 채용하더라도 키 관리에서 문제가 있거나, 난수를 쓰더라도 안전하지 않은 난수를 쓰는 것은 심각한 보안 위협을 야기시킨다. 이와 마찬가지로 토큰이 난수로 얻어지더라도 어떠한 방법으로 얻어진 난수를 채용하느냐에 따라 토큰화 기술은 안전할 수도 있고, 보안에 취약할 수도 있다. 토큰의 생성에 대한 요구사항 그렇다면 토큰은 어떻게 생성해야 하는 것일까? 개인정보를 토큰으로 치환하는 것이 토큰화 기술의 핵심이기 때문에 개인정보를 대체하는 토큰을 어떻게 생성하는가가 토큰화 기술의 핵심 사항이 될 수 있다. 토큰을 생성할 때에는 토큰으로부터 원본 데이터인 개인정보에 대한 어떠한 정보도 얻을 수 없어야 하며 서로 다른 개인정보는 서로 다른 토큰으로 대체되어야 하며 동일한 토큰에 연결되는 두 개 이상의 개인정보가 존재해서는 안된다. 이와 더불어 구현을 위한 요구사항도 있다. 개인정보를 저장하고 관리하던 기존 업무시스템에 적용을 용이하도록 하기 위하여 토큰은 개인정보와 같은 형태를 가지는 것이 보통이다. 가령, 신용카드 번호인 16자리 숫자의 토큰은 12자리 가량의 난수와 신용카드 번호 중 4자리를 합한 것으로 쓴다. 최근 개인정보 보호법의 발효로 기존 업무시스템에서 개인정보 보호를 위한 기술 채용에 대한 요구가 증가하고 있다. 기존 업무시스템의 서비스 연속성을 위해서 개인정보의 속성(형태, 데이터 타입, 길이 등)과 동일한 속성을 갖는 토큰에 대한 요구사항은 반드시 필요한 요구사항으로 자리 잡고 있다. [글_심상규 펜타시큐리티 신기술개발팀 팀장(sgsim@pentasecurity.com)] <저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지> |
|
|
|