사이드바 영역으로 건너뛰기

뛰는 SPY 위에 나는 USB [제 772 호/2008-06-16]

요즘 손쉽게 데이터를 복사, 이동, 보관할 수 있는 USB 메모리 저장 장치에 대한 시선들이 곱지만은 않다. 지금 2년간 기업의 핵심정보 유출사고 중 52%가 USB같은 이동식 저장장치를 통해 빠져나가는 등 우리나라의 산업 기밀 정보 유출의 문제가 매우 심각한 상황에 직면했기 때문이다. 이런 가운데 최근 언론에 소개된 보안 USB는 분실시 데이터 해킹을 원천 차단하는 기능이 있어 많은 기업에서 앞다퉈 도입하려는 움직임을 보이고 있다. 특히, 중요한 자료를 취급하는 정부 기관들이 높은 관심을 보여 더욱 화제다.

마치 스파이 영화에서나 나올듯한 스파이 USB란 명칭은 철저한 보안 기능 위주의 USB 방식 저장 장치라고 설명할 수 있다. USB는 Universal Serial Bus의 약어로 한글로는 범용 직렬 버스라고 한다. 1994년도에 발표되어 PC 주변기기에 사용되는 표준 통신 방식중의 하나인 USB는 휴대가 간편한 저장 장치로 급속히 대중화되었다.

USB는 기본적으로 호스트와 디바이스의 구조를 가지고 있다. 호스트는 일반적으로 PC를 말하며, 디바이스는 스파이 USB와 같이 PC에 연결되는 여러 종류의 주변 장치들을 말한다.

스파이 USB의 내부는 암호화 칩과 마이크로프로세서, 그리고 SLC NAND 플래시 메모리로 구성되어 있다. SLC NAND 플래시 메모리는 메모리 셀의 구조가 싱글인 반도체의 한 종류이며, 플래시 메모리 내부 데이터를 읽고 쓰는 것을 수십만 회 반복해서 사용할 수 있도록 설계된 반도체를 말한다.

스파이 USB와 연결되는 PC는 특별하지 않으며 우리 주변에서 흔히 볼 수 있는 USB 호스트 기능을 가진 PC를 말한다. 스파이 USB에 암호화 칩이 있다고 해서 특수한 제3의 프로토콜을 사용하는 것은 아니다. 스파이 USB가 PC와 주고받는 데이터는 일반 USB에서 사용하는 프로토콜과 동일하다. 그러나 일반적인 USB 메모리는 암호화 칩이 필요하지 않기 때문에 마이크로프로세서와 NAND 플래시 메모리가 모두 하나의 칩에 포함된 SoC(System on Chip)형태의 칩셋으로 설계되었지만 스파이 USB는 그 특성상 SoC로 설계하지 못한다.

이렇게 호스트와 디바이스 간에 주고받게 되는 데이터는 호스트와 디바이스 사이에 프로토콜 분석장치와 몇 가지 소프트웨어를 이용하면 캡쳐가 가능하다. 그러나 스파이 USB는 하드웨어나 소프트웨어를 이용해서 데이터를 분석할 수 없도록 암호화 칩(Cryptography Chip)을 사용해 데이터만을 변·복조(Encode·Decode)하게 된다.

암호화 칩에서 가장 중요한 것은 어떤 알고리즘을 사용하는가이다. 암호화 알고리즘은 여러 종류가 있으나 최근에 칩으로 상용화되는 알고리즘은 AES-128을 많이 사용한다. AES(Advanced Encryption Standard)는 고급 암호화 표준으로 알고리즘 공모를 통해 2001년도에 채택되었다. AES-128의 128은 암호화 알고리즘에 사용되는 키의 크기를 말한다. AES-128은 암호화의 기본 요소인 혼란, 확산, 비선형성의 3가지 조건을 만족하는데다가 암호화 알고리즘과 복호화 알고리즘이 달라 효율성이 아주 높은 것으로 평가된다.

암호화된 데이터는 마이크로프로세서에 의해 SLC NAND 플래시 메모리에 저장이 된다. 스파이 USB는 PC와 연결된 후 데이터를 교환하기 위해 사용자에게 암호를 요구하게 된다. 이 때, 암호를 수차례 잘못 입력하게 되면 NAND 플래시 메모리를 로우-레벨로 포맷하게 된다. 이러한 과정은 스파이 USB 내부 마이크로프로세서에 기록된 펌웨어가 PC에 설치된 로그인 소프트웨어와 사용자의 암호를 확인하는 과정을 통해 정해진 로그인 횟수를 초과할 경우에 NAND 플래시 메모리를 포맷하도록 프로그래밍이 되어 있기 때문이다.

일부 스파이 USB에는 로그인이 실패할 경우에는 하드웨어까지 손상을 입히도록 설계되었는데 이러한 방법에는 3가지가 있다.

첫 번째 방법은 호스트로부터 제공되는 5V, 500mA의 전원을 스파이 USB의 마이크로프로세서가 회로에 사용된 특정 부품 쪽으로 스위칭함으로서 특정 소자를 파손시켜 동작되지 못하도록 하는 방법이다. 이 방법은 폭발음과 함께 연기가 발생하게 되며, 경우에 따라 화재와 같은 2차적인 큰 피해를 가져올 수 있다.

두 번째 방법은 첫 번째와 같이 마이크로프로세서의 스위칭 기능을 이용해 스파이 USB 내부에 저장된 PCB나 반도체에 손상을 입힐 수 있는 특수한 화학 약품(예:PCB 부식용액 등)이 유출되도록 하는 방법이다. 이 방법은 스파이 USB가 약품을 밖으로 유출되지 않도록 하는 방수 기능이 있을 경우에만 사용할 수 있다. 특히, 스파이 USB를 물리적으로 분해 하고자 시도할 경우 기구적으로도 화학 약품이 유출되도록 설계할 수 있어 가장 쉽게 적용이 가능한 방법이다. 이 방법 역시 약품을 통해 사람이나 또 다른 기기에 2차적인 피해를 입힐 수 있다.

세 번째 방법은 순수한 소프트웨어적인 방법으로 펌웨어 프로그램이 NAND 플래시 메모리를 로우-레벨로 포맷한 후 영구히 복구할 수 없는 루틴이나 코드로 빠지도록 하는 방법이다. 이 방법은 비용이 저렴하고, 기계적, 전기적, 화학적인 위험이 없다.

창이 있으면 방패가 있듯이 언뜻 보면 세상에 완벽한 보안이 존재하는 것으로 보이나 결코 그렇지는 않다. 분명 스파이 USB는 보안 통제의 목적으로 제작된 것이긴 하나 어딘가에 우리가 모르고 있는 허점은 있게 마련이다. 이것이 보안 통제를 위해 더 많은 비용과 시간이 투자된다고 해서 더 완벽한 보안이 지켜진다고 볼 수 없는 이유이다. 보안에 투자되고 있는 비용들은 원래 생산적인 시스템이나 환경에 투입되어야 할 비용이다.

보안은 시대가 빠르게 발전함에 따라 발생된 또 하나의 사회적인 현상이다. 이를 합리적으로 바로 잡는 것은 바로 우리 스스로가 어릴 적 도덕이나 윤리 교과서를 통해 배운 정직이라는 단어를 다시 한 번 떠올려 볼 때 가능하지 않나 싶다.

글 : 이정욱 USB개발전문가포럼운영자
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크