| [기고] 토큰화 기술에 대한 보안성 고려② | 2012.05.31 |
안전한 토큰 생성과 의사 난수 사용법 [보안뉴스=심상규 펜타시큐리티 신기술개발팀장] 토큰화 기술(Tokenization)은 금융 거래 정보를 보호하기 위해 2005년에 제안되었으며 최근에는 개인정보보호를 위한 DB암호화 기술로 많은 주목을 받고 있다. 토큰화 기술 자체는 이론상으로 안전한 기술이지만, 토큰화 기술의 핵심인 토큰 생성 방법을 실제로 구현하는 데에 있어서 많은 보안문제가 야기될 수 있다.
이번에는 지난 기고에 이어서 안전한 토큰 생성법인 속성유지 암호화 방법에 대해서 나누어 살펴보고자 한다. 안전한 토큰 생성법 ◇암호학적으로 안전한 난수 생성기를 사용하는 방법 가장 안전한 토큰 생성 방법은 암호학적으로 안전한 난수 생성기(SRNG; Secure Random Number Generator)를 이용하는 방법이다. SRNG는 암호화 키 등과 같은 사용자의 의도된 입력값을 입력으로 하지 않으며, 주변 환경으로부터 독립하여 난수를 생성한다. 생성된 난수는 난수기로서 통계학적 특성을 가져야 하며, 이전에 생성된 난수들로부터 앞으로 생성될 난수를 추정하는 것이 암호학적으로 충분히 어려움이 증명될 수 있어야 한다. SRNG가 생성하는 난수를 토큰으로 생성하고 주어진 개인정보를 토큰으로 대체하는 것이 SRNG를 이용한 토큰 생성법이다. 그러나 SRNG는 이상적인 기술이며 현실에서 구현하는 것은 거의 불가능하기 때문에 이를 실제에서 구현하기 위해서 SRNG를 대체하는 기술이 안전한 의사난수 생성기(SPRNG; Secure Pseudo-Random Number Generator)이다. 토큰이 주위 환경이나 입력값으로 부터 독립된 SPRNG로부터 얻어진 난수에만 기반하고 주어진 개인정보와 무관하다면 SPRNG를 이용한 토큰 생성법은 안전한 방법이라 할 수 있다. 토큰이 개인정보와 무관하게 얻어진 값이고 이전의 다른 토큰들과도 아무런 연관성을 가지지 않기 때문이다. 그러나 개인정보 보호를 위한 DB암호화에서는 개인정보와 토큰이 같은 속성을 갖는 데이터이어야 하므로 SPRNG가 원하는 속성을 갖는 난수를 생성할 때까지 많은 난수를 얻어야 한다. SPRNG는 안전성을 위해 사용자나 시스템의 제어를 받지 않으므로 난수가 주어진 개인정보와 동일한 속성을 갖는다는 것은 생성된 난수가 우연히 주어진 조건을 만족하는 것과 동일하기 때문에 이러한 방법은 비효율적일 수 밖에 없다. 그리고 SPRNG가 SRNG보다 실제에서 용이한 기술이라고 하더라도 새로운 SPRNG를 설계하는 것은 DES, AES 등과 같은 암호화 알고리즘을 새롭게 만드는 것 이상의 어려움이 따르는 것으로 알려져 있다. 이러한 어려움은 SPRNG를 이용하여 개인정보를 보호하는 데에 큰 장애가 된다.
SPRNG를 사용하는 방법은 실제에서 어렵고 비효율적인 방법이기 때문에 SPRNG가 갖는 난수성의 안전성을 포기하고 개인정보와 동일한 속성의 난수를 생성하여 이를 토큰으로 사용하는 방법이 있다. 생성된 난수는 SPRNG가 생성하는 난수와는 달리 난수가 가져야 하는 최소한의 통계적 특성만을 갖기 때문에 이러한 난수 생성기를 안전하지 않은 의사난수(WPRNG; Weak Pseudo-Random Number Generator)로 정의하자.
WPRNG의 의사난수가 개인정보 보호용 토큰으로 이용되기 위해서는 주어진 임의의 서로 다른 개인정보에 대해서 서로 다른 토큰(혹은 의사난수)가 생성됨을 보장하는 결정론적 알고리즘(deterministic algorithm)이 존재해야 한다. 이러한 알고리즘은 주어진 개인정보를 입력으로 삼고 치환(substitution), 순열(permutation), 분활(partitioning), 조합(combination) 등의 단순 변환에 기반하여 구성된다. 단순 변환은 DES, AES 등의 대칭키 암호 알고리즘의 내부에서도 사용되는 방법이지만 암호화 키를 사용하지 않는 단순 변환은 안전하지 않다. 이해를 돕기 위해 간단한 예를 들자면, 100~199범위에 있는 숫자를 300~399의 범위에 있는 숫자들로 일대일 변환(1-to-1 permutation)하는 것과 동일하기 때문에 안전성이 없을 뿐만 아니라, 안전도가 증명되는 방법이나 알고리즘이 제시된 예는 찾아볼 수 없다. 안전성이 보장될 수 없는 문제점은 WPRNG를 사용하는 기법이 개인정보 보호를 위한 DB암호화에 적용되기에 부적합한 가장 큰 단점이다. 또한, 대량의 개인정보가 있을 때 서로 중복되지 않는 의사난수를 생성하는 결정론적 알고리즘을 설계하는 것은 매우 어려운 일이고 한 가지 종류의 개인정보에 대해서 그러한 알고리즘을 설계하더라도 다른 종류의 개인정보에 적용하는 것이 어렵다. 이 때문에 WPRNG에 기반한 의사난수를 사용하는 방법은 대량의 개인정보나 다양한 종류의 개인정보를 다루는 DB암호화에는 부적합한 방법이라 할 수 있다. 이러한 기법은 개인정보와 토큰의 쌍들로부터 알고리즘 자체를 추정하고 개인정보가 알려지지 않은 토큰들로부터 개인정보를 추정하는 공격법들을 찾는 것이 가능해진다. ◇속성유지 암호화를 사용하는 방법 암호학적인 난수성을 보장할 수 있으면서 개인정보의 속성과 동일한 속성의 토큰을 효율적으로 얻을 수 있는 방법은 무엇일까? 이러한 필요성으로 등장한 기술이 속성유지 암호화 방법(FPE; Format Preserving Encryption)이다.
FPE는 평문을 암호문으로 변환하는 암호화를 수행할 때 평문과 암호문이 같은 형태와 길이를 갖도록 하는 특징이 있는 암호화 기법이다. 개인정보가 주어졌을 때 이를 평문으로 하여 FPE로 얻어지는 암호문은 개인정보를 대체할 수 있는 안전한 토큰으로 이용될 수 있다. FPE를 이용한 토큰 생성법은 개인정보와 동일한 형태의 토큰을 안전하게 생성할 수 있다는 장점이 있다. 아울러 FPE는 암호화 알고리즘이기 때문에 개인정보에 따라 다른 암호화 키를 사용할 수 있으므로 더욱 안전도를 강화할 수 있을 뿐만 아니라, 암호문(토큰)과 암호화 키로부터 원문(개인정보)를 복호화할 수 있기 때문에 토큰과 개인정보를 별도의 공간인 토큰 서버에 저장하고 안전하게 관리할 필요가 없다. 보안도의 비교 앞서 살펴본 다양한 토큰 생성법들을 보안도의 측면에서 비교하여 보자. 안전한 난수 생성기(SRNG)를 사용한 방법은 보안 취약점이 없는 이상적인 방법이지만 SRNG를 구현하는 것 자체가 현실적으로 불가능에 가깝다. 이를 대체하기 위한 안전한 의사난수 생성기(SPRNG)는 실제로 구현하기에 여전히 어렵기는 하지만 현실에서 추구할 수 있는 가장 높은 수준의 보안도를 가진다고 할 수 있다. 일반적으로 SPRNG는 대칭키 암호인 블록 암호화 알고리즘들과 해쉬 함수 등의 복잡한 조합에 기반하므로 블록 암호화보다 더 높은 보안도를 가지는 것으로 볼 수 있다. 이에 반해 WPRNG는 암호화 키를 전혀 사용하지 않고 통계학적인 난수성만을 가지기 때문에 보안도의 측면에서는 매우 취약하다. FPE는 블록 암호화에 기반하여 블록 암호화의 운영기법(Mode of Operation)의 형태로 적용되기 때문에 블록 암호화도 거의 동일한 수준의 보안도를 가지며, 현실에서 추구할 수 있는 최고의 보안 수준인 SPRNG의 수준과 근접할 수 있다. FPE의 표준화 FPE는 개인정보를 보호하는 기술로서 효율성과 안전성 측면에서 가장 신뢰할 수 있는 기술로 인정받으며 글로벌 선진 기업과 연구팀에 의해서 연구가 이루어지고 있다.
미국 표준화 기관인 NIST(National Institute of Standards and Technology)에서는 대칭키 암호화 알고리즘의 운영 기법(Mode of Operation)의 제안을 받고 있다. 이 중에서 FPE의 분류에 속하는 기법은 5가지가 제안되었다. -FCEM: Format Controlling Encryption Mode, U. Mattsson -FFX: Format-preserving Feistel-based Encryption Mode, M. Bellare, P. Rogaway, T. Spies -BPS: Format Preserving Encryption Proposal, E. Brier, T. Peyrin, J. Stern -VFPE: VISA Format Preserving Encryption, VISA USA -CSPEM: Character Set Preserving Encryption Mode, Gary S. Sarasin 공개된 5가지의 FPE 기법에 대해서 많은 전문가들이 보안성과 효율성 등의 검증을 계속하고 있다. 국내에서는 별도의 표준화가 이루어지지 않고 있다. 그러나 블록 암호화 알고리즘의 운영 모드에 대한 표준화는 NIST의 표준이 전 세계에서 준용되기 때문에 이를 따르는 것으로 국내 표준화가 대체될 수 있을 것이다. 맺음말 토큰화 기법은 개인정보를 대체정보인 토큰으로 대체하여 사용함으로써 개인정보의 전송과 저장에서 발생할 수 있는 정보유출 사고에도 개인정보를 안전하게 보호할 수 있는 기술이다. 토큰화 기술은 이론적으로 안전한 기법일 수 있으나 개인정보를 대체하는 토큰을 어떻게 생성하느냐에 따라 보안이 취약할 수 있다. 토큰과 토큰에 대응하는 개인정보를 안전하게 보관한다고 하더라도 토큰을 생성하는 방법이 보안적으로 취약성이 있다면 시스템 전체의 위험으로 직결되기 때문이다. 현실에서 추구할 수 있는 최고의 안전한 토큰 생성 방법은 안전한 의사난수 생성기(SPRNG: Secure Pseudo-Random Number Generator)를 이용하는 방법이지만, SPRNG를 설계하고 구현하는 것이 현실적으로 대단히 어려운 문제이며 이를 바탕으로 토큰을 생성하는 데에도 효율성이 떨어진다. SPRNG를 사용하는 안전도의 수준에 근접하면서 개인정보 보호를 위한 토큰의 생성을 효율적으로 할 수 있는 방법은 속성유지 암호화(FPE: Format Preserving Encryption)을 이용하는 방법이다. 속성유지 암호화는 주어진 개인정보의 속성(형태, 데이터 타입, 길이 등)과 동일한 속성을 갖는 토큰을 효율적으로 생성할 수 있다. 또한, 블록 암호화 알고리즘에 기반하기 때문에 블록 암호화 알고리즘과 거의 동일한 수준의 보안도를 제공할 수 있으며 그 생성 방법의 보안성을 암호학적으로 증명할 수 있다. 또한, 개인정보에 따라 다른 암호화키를 이용하고 그 키를 관리함으로써 시스템 전체의 안전도를 높일 수 있다. 효과적으로 제어할 수 있고 개인정보를 저장할 필요가 없어지기 때문에 토큰 서버에 개인정보를 보관함에 따른 잠재적 위협에서도 자유롭다. 속성유지 암호화는 전세계 블록 암호화 알고리즘의 표준화를 주도하는 NIST에 의해서 표준화가 진행되고 있으며, 향후 개인정보 보호를 위해서 필수 불가결의 기술로 자리 잡을 것으로 보인다. [글 _ 심상규 펜타시큐리티 신기술개발팀 팀장(sgsim@pentasecurity.com)] <저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지> |
|
|
|