본문
스마트카드와 공개키 인증 - 대체기술
공개키 인증의 대체기술에는 암기해 놓은 패스워드, 일회용 패스워드 (OTP) 인증 토큰과 생체 측정 인증 등 세 가지가 있다.
여러 상황에서 암기해 놓은 패스워드는 적절한 수준의 보안을 제공할 수 있다. 이러한 패스워드는 보안조치가 취해진 사무실 환경에서 신뢰할 만한 네트워크를 통해 정보 시스템에 접속할 때 또는 사용자의 워크스테이션과 웹 서버 사이의 연결이 보안 소켓 계층 (SSL)과 같은 것을 사용해 암호화한 상태에서 인터넷을 통해 접속할 경우에 암기해 놓은 패스워드가 유용하다. 하지만 기업이 이를 사용할 경우 기술적이거나 직원들의 부주의로 문제가 발생할 우려가 없는지 유의해야 한다.
토큰과 같이 사용자가 갖고 있는 것과 4∼8자리 PIN과 같이 사용자가 알고 있는 것과 결합해 사용자 인증을 할 수 있는 제품을 공급하는 업체가 많이 있다. 여기에서 토큰은 소형 포켓용 계산기나 신용카드 만하면서 그보다 약간 두꺼운 금속카드 또는 키 주머니 등과 같은 것이 될 것이다.
이들은 특별한 판독기가 필요 없고 한 사람의 사용자를 위해서만 키가 작용한다.
이런 토큰의 시스템은 다양하겠지만 이들은 한번만 사용할 수 있는 인증 코드인 일회용 패스워드 (OTP)를 생성하는 데 사용된다. OTP 토큰은 강력하고 저렴한 보안수단이지만 사용절차가 약간 복잡하다. 일부 업체는 이러한 복잡한 절차를 자동화할 수 있는 소프트웨어를 공급하고 있다. 또 사용자의 PC가 토큰이 되는 경우에는 공용키 인증에서와 마찬가지로 휴대가 어려운 것이 문제가 되는데 이 경우는 팜 OS 장치나 스마트카드 또는 USB키를 사용해 사용자의 개인키를 PC 이외의 장치에 저장함으로써 문제를 해결할 수 있다.
생체 측정 시스템은 지문, 홍채무늬, 얼굴, 음성 등 여러가지를 이용하는데 이들 시스템은 어느 것을 사용하느냐에 따라 가격과 성능이 다양하다. 생체 측정 방법은 스마트카드보다 쉽지만 스마트카드보다 기술이 덜 성숙돼 있다. 그렇지만 가장 효과적인 생체 측정 시스템은 스마트카드만큼 가격이 비싸다. 일부 지문과 음성 측정 시스템은 가격이 좀 낮지만 그만큼 취약하다. 그런데 생체 측정 인증 방식도 개인 비밀 유출에 대한 우려와 문화적•종교적 이유로 사용을 기피한다는 문제가 있다.
또 생체 측정 방식은 사용자가 시스템에 접근할 수 있도록 인증을 할 수는 있으나 시스템이 사용자에 접근하도록 하는 인증은 못하며 증명과 키를 저장하거나 데이터를 암호화할 능력이 없다. 생체 측정을 스마트카드나 USB키와 함께 사용하면 보안과 휴대성에서 몇 가지 이점이 있다. 생체 측정 방식은 스마트카드를 유효화하기 위해 PIN대신 사용할 수 있으며 생체 측정 데이터는 사용자의 워크스테이션이나 서버대신 스마트카드에 안전하게 보관할 수 있을 뿐 아니라 생체는 스마트카드로 판독할 수 있다.
스마트카드와 공개키 인증 - 사용 현황 • 표준
기업체들은 원거리 접속에 대한 보안 강화를 위해 공개키 인증을 사용할 수 있다. 유닉스시큐어셸 (SSH:Unix Secure Shell)을 포함한 인증방법은 사용될 때마다 독특한 인증정보를 산출함으로써 네트워크 탐색과 회신에 대한 공격의 위험성에 대처한다. 하지만 핀 (PIN)으로 보호된 스마트 토큰이 없이 시행하는 공개키 인증은 강력한 인증을 제공하지 못한다. PIN으로 보호된 스마트 토큰으로 하는 공개키의 인증은 사용자로 가장한 침입자의 침투 위험을 줄이기 위한 강력한 이중 인증이 필요할 때 사용할 수 있다.
이중 인증을 필요로 하는 사람들은 기업의 시스템, 네트워크 및 보안관리자, 기업의 인력자원, 건강 또는 금융정보와 같이 민감한 정보를 취급하는 담당자, 온라인뱅킹과 같이 금융서비스에 접속하는 고객 등이라 할 수 있다.
스마트 토큰은 공개키 인증을 강화하는 외에 몇 가지 다른 용도로 유용하게 사용할 수 있다. 우선 스마트 토큰은 ‘패스워드 금고’로 사용할 수 있다.
대부분의 대기업이나 기관은 사용자가 로그인 해야 할 여러 종류의 시스템이 많이 있다. 이런 상황에 적절히 대처할 만한 사용자 인증방법이 없을 뿐 아니라 많은 각기 다른 ID와 패스워드가 필요하게 된다. 여기에 적합한 소프트웨어만 있으면 스마트 토큰이 이들 ID와 패스워드를 안전하게 저장할 수 있다. 게다가 이동이 가능하고 PC 외부 저장에 대한 추가적인 보안이 가능하다. 또 스마트 토큰은 공개키 암호에 기반한 다양한 보안 응용 프로그램을 지원한다.
또한 스마트 토큰, 특히 스마트 카드는 사무실이나 방, 시설, 데이터센터, 서버룸 등과 같은 시설물에 대한 접근확인에 사용할 수 있다. 표준 스마트 카드는 판독기에 삽입, 처리된 다음 뽑아내는 데 시간이 많이 걸리지만 비접촉 스마트 카드는 이러한 경우에 매우 효율적이다. 복합카드는 시설물과 정보시스템에 모두 사용할 수 있을 것이며 기업 직원의 ID카드로도 사용할 수 있을 것이다.
공개키와 스마트 토큰에는 몇 가지 유리한 점과 위험성이 있다. 먼저 공개키 인증은 외부 침입자를 막을 수 있다. 기존의 인증 토큰에서 만들어낸 1회용 패스워드 (OTP:One-Time Password)와 마찬가지로 공개키 인증시에 교환되는 인증정보는 독특하고 예측이 불가능하다. 따라서 공개키 인증방법은 어느 공개된 공공 네트워크에서도 사용자 인증에 사용할 수 있다.
스마트 카드나 USB 키에는 공개키기반구조 (PKI:Public Key Infrastructure) 인증서를 안전하게 저장할 수 있다. 또 이들은 외부에 정보를 노출시키지 않고 안전하게 정보를 처리할 수 있는 장소다. 이들은 전자적이나 기계적 또는 화학적 간섭을 막아주고 카드에 저장된 데이터를 암호화하며 PIN에 의한 이중 인증 등을 통해 정보의 안전성을 확보해 준다.
신용카드, 현금차감 카드, 고객우대 카드 등 각종 카드가 널리 사용되고 있어 스마트 카드도 매우 눈에 익은 형태의 카드가 돼 사용자들이 쉽게 수용할 수 있다. USB도 이와 비슷하게 유리하다. 또 스마트 카드는 기업체 직원 신분증에 채용, 여러 가지 목적에 사용하게 함으로써 정보보안에 도움을 준다. 뿐만 아니라 스마트 토큰은 사회공학적 공격을 방지할 수 있다. 일반적으로 사람들은 남을 도와주려는 마음을 갖고 있는데 정보시스템 침입자들은 이러한 심성을 악용하는 경우가 있다. 하지만 사용자들은 스마트 토큰이나 PIN을 요구하는 사람을 믿지 않을 것이므로 이러한 형태의 침입시도는 성공하지 못할 것이다.
반면 여기에는 키 관리 및 증명절차의 취약성, 스마트 토큰 없는 공용키 인증의 취약성, 사용자 부주의, PKI 호환성 등의 여러 가지 문제가 있다.
공개키 인증은 부분적으로 사용자의 신분과 관련이 있는 공개키에 의존하게 되는데 PKI가 없으면 사용자의 공개키를 보관하고 있는 서버파일을 철저하게 관리하고 보호해야 한다. PKI 환경에서는 이런 관련 사항들은 공개키 증명과정에서 처리되는데 인증기관이 처리해야 신뢰할 수 있다.
공개키 인증에서 또 하나의 강점은 개인키를 사용자가 갖고 있다는 것인데 개인키가 사용자의 PC에 있을 때는 안심할 수 없다. 또 사용자가 스마트 토큰을 워크스테이션에 남겨 놓는다든지 분실하는 등의 부주의로 외부에 노출될 가능성이 있다. 만일 사용자가 스마트 카드를 판독기에 남겨두거나 USB키를 포트에 그대로 두고 책상을 떠나면 그 사무실에 있는 다른 사람이 쉽게 동일 사용자로 가장할 수 있다. PIN이 어느 정도의 보호를 할 수 있으나 PIN도 역시 다른 사람이 찾아낼 수 있다. 기업의 직원이 스마트 토큰을 분실했을 경우 기업은 임시 토큰을 발급하든가 그 사용자로 하여금 대체 인증방식을 사용할 수 있도록 허용해야 한다.
또 스마트 토큰은 논리적이거나 물리적 또는 트로이 목마 방식의 공격에 약하다. 보안 응용 프로그램에 스마트 토큰을 사용하는 기업체는 스마트 토큰 및 응용 프로그램 공급업체가 이들 제품에 적절한 논리적 또는 구조적 대응조치를 취했는지를 확인해야 한다. 그러나 이런 대응조치는 스마트 토큰의 편리성을 약화시킬 가능성이 있다. 강력한 공개키 인증을 시행하려면 사용자의 신원을 그의 공개키와 묶어주는 공개키 증명이 있어야 한다. 따라서 공개키 인증을 사용하려고 하는 기업은 PKI를 설치해야 한다. 하지만 PKI는 구조가 복잡하고 가격이 비싸 설치에 제한을 받는다. 또 여러 공급업체 제품 사이의 호환성이 없고 기존 플랫폼이나 응용 프로그램과 통합이 불완전하다는 문제도 있다. 그뿐 아니라 증명 기반 공개키 인증이 윈도2000이나 IBM의 z/OS 등을 비롯한 상용화된 OS에서는 지원되지만 모든 OS에서 지원되는 것은 아니다. 모든 OS에서 지원되려면 적합한 인증 미들웨어나 각기 다른 플랫폼 사이에 커버로스 (Kerberos) 응용 프로그램을 설치해야 한다.
◆ 표준 기술
공개키 인증 관련 표준기술에는 국제표준, 미국표준, 인터넷 엔지니어링 태스크포스 (IETF) 표준, ISO 표준과 업계 표준 등이 있다.
◇ 국제표준 = ISO/IEC (International Electrotechnical Commission: 국제전자기술위원회) 9798과 ISO/IEC 9798-3: 1998 이 있다. ISO/IEC9798 은 정보기술, 보안기술 및 실체 인증을 규정한 것이고 ISO/IEC9798-3 는 디지털 서명기술을 사용하는 체계를 정한 것이다.
◇ 미국표준 = ANSI (American National Standards Institute:미국국립표준원) X9.30, -X9.30.1-1997, -X9.30.2-1997, -X9.30.3, ANSI X9.31, ANSI X9.45, FIPS (Federal Information Processing Standards: 미국연방정보처리표준) PUB (Publication) 186, FIPS PUB 190, FIPS PUB 196 등이 있다. 이 중 ANSI X9.30은 금융서비스산업을 위한 공개키 암호화에 관한 표준이며 -X9.30.1-1997 은 디지털서명알고리듬 (DSA) 관련 표준이고 -X9.30.2-1997과 -X9.30.3은 각각 시큐어해시알고리듬 (Secure Hash Algorithm:SHA-1)과 DSA를 위한 증명관리에 관한 표준이다. 또 ANSI X9.31은 금융서비스산업을 위한 취소 가능 공개키 암호를 사용한 디지털 서명의 표준을 규정한 반면 ANSI X9.45는 디지털 서명과 특성 증명을 사용한 향상된 관리 제어에 관한 표준을 정한 것이다. 한편 FIPS PUB 186, 190, 196은 각각 디지털 서명 표준, 최신 인증 대체기술의 사용지침, 공용키 암호를 사용한 실체 인증의 표준을 정한 것이다.
◇ IETF 표준 = 시큐어셸인터넷 (Secure Shell Internet:www.ietf.org/html.charters/secsh-charter.html)으로서 아직 정식 표준으로 채택되지 않고 검토안 상태에 있다. 시큐어셸워킹그룹은 현재 SSH 프로토콜이 강력하고 효과적인 보안기능을 제공할 수 있도록 성능을 향상하고 표준화하는데 노력을 기울이고 있다.
◇ ISO는 여러 산업분야가 사용할 수 있는 스마트 카드 표준을 제정했고 이를 바탕으로 산업계는 분야별로 각기 관련업계에 적합하면서도 호환성이 있는 스마트 카드 응용제품을 지원할 수 있는 기술을 개발하고 있다. 접촉성 스마트 카드의 기본 표준은 ISO 7816 시리즈이고 비접촉성 스마트 카드 표준은 ISO14443이다. 이들 표준은 ID카드 표준에 근거한 것으로서 물리적, 전기적 및 기계적 특성과 응용 프로그램 인터페이스 (API:Application Programming Interface)를 구체적으로 규정하고 있다.
◇ 업계 주요 표준사양에는 PC/SC (Personal Computer/Smart Card) 스페시피케이션 (Specification) 1.0과 PKCS (Public Key Cryptography Standards) 시리즈가 있다. 지난 97년에 제정된 PC/SC 스페시피케이션 1.0 사양은 플랫폼에 상관없이 모든 OS에서 사용할 수 있다. 현재 PC/SC 워크그룹 기술위원회가 PC/SC 스페시피케이션 1.0의 성능을 향상시키는 2.0을 개발중에 있다. PKCS 사양은 RSA연구소가 각국 관련기관과 협조, 지난 91년 제정한 것으로 ANSI X9, PKI (Public Key Infrastructure) X.509, SET (Secure Electronic Transaction), S/MIME (Secure Multipurpose Internet Messaging Extensions), SSL (Secure Sockets Layer) 등 여러 가지 업계 표준의 기초가 되고 있다. 이 중 PKCS#11은 API, 암호 토큰 인터페이스, 암호화된 정보를 갖고 암호 기능을 수행하는 장치 등의 사양을 규정하는 사양이고 PKCS#15는 암호 토큰 정보포맷을 규정하는 사양이다.
스마트카드와 공개키 인증 - 정보시스템 접근 차단 황금 좌물쇠
공개키 인증은 승인 서비스나 회계감사 서비스와 같은 여러 가지 보안 서비스의 핵심이다. 인증은 정보 시스템을 통해 요청된 신원을 자동으로 확인하는 방법으로 ‘로젠버그’의 ‘젤로 (Jell-O:미국 제너럴포드사 디저트 식품의 일종)’ 상자만큼 복잡 미묘하다.
줄리어스와 에텔 로젠버그는 미국의 원자탄 개발계획을 소련으로 넘긴 스파이로 지난 53년 사형당했는데 이들이 당시 일종의 ‘패스워드’로 젤로 상자를 사용했던 것이다. 이들은 이 종이 상자를 두 쪽으로 찢어서 서로 모르는 두 사람에게 따로 따로 전달하고 추후 톱니 모양으로 찢어진 부분과 색깔을 서로 맞추면 암호가 풀리도록 했던 것이다.
현재 가장 널리 사용되는 보안 방식은 패스워드인데 이는 매우 취약하다. 정보 시스템 침입자는 사용자의 이름과 패스워드만 알면 정보에 접근할 수 있는데 사용자 이름은 비밀이 아니므로 확인하는 데 별 문제가 없고 패스워드는 추측, 사회공학, 메모리나 네트워크의 탐색 등 여러 가지 방법으로 알아낼 수 있다.
이런 취약점을 보안하는 방법은 여러 가지가 있지만 각기 다른 인증 방식을 사용하지 않으면 위험을 방지하기 어렵다.
그 중 확실한 인증 방법은 스마트 카드나 유니버설시리얼버스 (USB)키 같은 하드웨어로서 이들은 공개키기반구조 (PKI:Public Key Infrastructure) 안에서 이루어지는 공개키 암호를 사용하고 있다. 하지만 공개키 인증은 스마트 카드나 PKI 없어도 가능하다. 공개키 암호화로 알려진 비대칭 암호화 기술은 알고리듬에 공개키와 개인키로 이루어진 한 쌍의 키를 적용하고 여기에 각기 다른 단계의 암호화와 복호화 처리를 하는 과정이다. 이들 한 쌍의 키는 복잡한 수학적 관계를 갖고 있다. 이는 침입자가 공개키를 요행히 해독한다 하더라도 개인키는 해독하지 못하도록 하기 위한 것인데 그렇다고 개인키의 해독이 전혀 불가능한 것은 아니다. 이를 막기 위한 수단으로 키의 길이를 늘리는 방법이 사용되고 있다.
공개키 암호는 전통적인 대칭 암호나 비밀키 암호에 비해 키를 관리하기가 유리하다. 우선 한 쌍의 키 중 하나는 그 소유주 이외에는 알릴 필요가 없으므로 비밀을 유지하기가 쉽다. 또 다른 하나는 알고리듬을 사용하는 모든 사람이나 기관이 공유하기 때문에 다른 사용자에게 비밀을 지킬 필요가 없으므로 관리하기가 쉽다.
공개키 암호기술은 암호화와 디지털 서명에 사용할 수 있으며 이들 두 가지 처리 과정은 공개키 인증 방법으로 사용되고 있다. 로젠버그의 찢어진 젤로 상자와 마찬가지로 사용자의 개인 및 공개키는 정보 시스템에서 사용자를 인증하는 데 사용된다. 이런 방법의 기본 원리는 사용자만이 개인 키를 가지고 특정 암호 절차를 밟은 다음 인증 서버가 사용자에게 해당되는 공용키를 확인하는 절차를 거쳐 신원을 확인하는 것이다.
유닉스시큐어셸 (SSH:Unix Secure Shell) 프로토콜은 공개키 암호에 기반한 인증을 제공한다. SSH는 유닉스 운용체계 (OS)에서의 인증에 공개키 암호를 사용한다. 또 SSH의 클라이언트인 ssh는 로그인해 원거리에 있는 서버에 대한 명령을 실행하는 프로그램이다. 사용자는 프로토콜에 따라 다음 몇 가지 방법 중 하나를 이용해 서버에 대한 인증을 받아야 한다.
SSH1은 RSA (Rivest-Shamir-Adelman) 기반 인증을 지원한다. 서버 파일에는 로그인이 허용된 사용자의 공개키 목록이 기록돼 있는데 사용자가 로그인하면 ssh 프로그램이 서버에 그 사용자를 인증하는 데 적합한 키를 제시해 준다. 그러면 서버는 이 키가 허용된 것인지 확인한 다음 사용자의 공개키에 의해 암호화된 신원 확인 표시를 사용자에게 보낸다. 그런 다음 사용자의 클라이언트는 개인키를 사용해 신원확인 표시를 복호화한다.
SSH2는 RSA나 표준 디지털 서명 알고리듬 (DSA:Digital Signature Algorithm)을 사용한다. 여기에서는 사용자가 개인키에 서명해 서버로 보내면 서버는 거기에 맞는 공개키가 파일에 들어 있는지 조회한 다음 두 개의 키가 확인되고 서명이 일치하면 접속을 허용한다.
SSH는 사용자 공개키의 관리가 허술한데 PKI를 사용하면 이를 보완할 수 있다. PKI의 주요 목적은 사용자들의 개인 및 공개키가 적절히 관리되고 있는지 확실히 하는 데 있다. 사용자의 신원과 공개키와의 연관성은 일종의 디지털 증명 (certificate)인 공개키 증명으로 입증돼야 하며 또 그 공개키 증명은 공인된 인증기관의 확인을 받아야 한다.
증명 기반의 인증은 신원 확인-응답 방식으로 이루어진다. 사용자는 개인키를 사용해 인증 서버에서 온 신원 확인에 디지털로 서명하면 응답이 생성되는데 사용자는 이를 공개키 증명과 함께 서버로 다시 보낸다. 그러면 인증서버는 공개키 증명을 유효화하고 디지털 서명을 확인함으로써 사용자를 인증하게 된다.
현재 OS, 인증 미들웨어, 엑스트라넷 접속관리 (EAM:Extranet Access Management) 프로그램과 일부 상용화된 SSH 프로토콜 등 증명 기반 인증을 지원하는 제품이 많이 나와 있다. 이 중 가장 널리 사용되는 프로그램은 마이크로소프트의 윈도2000 서버 OS로서 이것은 자사의 커버로스 (kerberos) 인증 환경에서 PKINIT (Public Key Initial Authentication)를 사용해 증명 기반 인증을 통합한다.
윈도2000 서버 OS의 인증 과정은 △커버로스 티켓 그랜팅 티켓 (TGT:Ticket Granting Ticket) 요청사항에 사용자의 공개키 증명 사본이 들어오면 사용자의 개인키가 여기에 서명한다. △윈도2000 키 분배 센터 (KDC:Key Distribution Center)는 공개키 증명이 공인된 인증기관에서 발급한 것임을 확인하면 그 증명을 유효화한 다음 디지털 서명을 검증하고 또 요청사항에 시간 도장을 찍는다. △KDC는 사용자와 그가 속해 있는 단체를 위한 보안 확인요소로 구성된 윈도2000 전용 인증 데이터를 포함하는 TGT를 작성한다. △KDC는 사용자의 공개키 증명에 있는 공개키에 대한 반응을 암호화하고 자체의 개인키로 서명한다. △사용자의 워크스테이션은 그 결과를 접수해 이를 복호화한 다음 반응을 확인하고 TGT를 사용해 커버로스 프로토콜에 맞춰 다른 서비스에 접속할 것을 요청한다.
여기에서 PKINIT는 사용자를 인증하는 데 있어 KDC의 역할을 변경함으로써 KDC는 전적으로 사용자 공개키 증명에 의존하게 된다. 고용키 증명을 발급하는 인증기관은 ‘등록’할 때 사용자의 신원을 확인한 데 대한 책임을 진다. 하지만 윈도2000을 통해 공개키 인증을 받는 업체들은 윈도2000 서티피케이션 어서리티 (Certification Authority) 컴포넌트를 통해 증명을 자체적으로 발급할 수 있기 때문에 번거로운 과정을 피할 수 있다.
공개키 인증 관련 표준 기술에는 국제 표준, 미국 표준, 인터넷엔지니어링태스크포스 (IETF) 표준, ISO 표준 및 업계 표준이 있다. 또 주요 관련 업체는 시큐어 셸 (secure shell) 부문에 SSH 커뮤니케이션스시큐리티 (Communications Security http://www.ssh.com), 반다이크소프트웨어 (VanDyke Software Inc. http://www.vandyke.com), 네트워크심플리시티 (Network Simplicity http://www.networksimplicity.com) 등이 있고 스마트 카드 부문에는 젬플러스 (Gemplus S.A. http://www.gemplus.com), 기섹앤드데브리엔트 (Giesecke & Devrient[G&D] http://www.gdm.de), 리트로닉 (Litronic Inc. http://www.litronic.com), 슐렘버저세마 (SchlumbergerSema http://www1.slb.com/smart cards/products/index.html) 등이 있으며 USB 토큰 업체에는 알라딘 (Aladdin http://www.eAladdin.com), 유트론 (Eutron http://www.eutron.com), 레인보우테크놀로지스 (Rainbow Technologies http://www.rainbow.com), 스파이러스 (Spyrus) 등이 있다.
스마트카드와 공개키 인증 - 스마트 카드 및 토큰
공개키 암호기술이 사용자를 인증해준다 하더라도 사용자의 개인키는 사진이 없는 여권과 마찬가지다. 소유주의 PC 하드디스크 드라이브에 있는 개인키는 직접 또는 네트워크를 통해 도용될 가능성이 있다. 어느 정도 숙달된 침입자는 사용자 개인키를 가로채 소유주로 가장하고 이를 사용할 수 있다. 개인키를 패스워드로 보호할 수도 있으나 패스워드도 침입 공격에 약하기 때문에 더 안전한 저장 장치가 필요하다.
안전 저장 장치에는 스마트 카드와 스마트 토큰이 있다. 신용카드와 같은 크기의 스마트 카드는 고정고객 우대카드, 현금 차감 카드, 학생 신분증, GSM 전화 등 광범위한 분야에 응용된다. 그 중에서 GSM 전화와 금융 서비스 분야에 가장 많이 적용되고 있다.
스마트 카드를 읽고 사용할 수 있는 PC 연결 단말기나 인터페이스 장치는 시리얼 포트, PC 카드, PS2 키보드 포트, 디스켓, USB, PC 내장 장치 등이다. 이밖에 스마트 카드 같은 수준의 저장 및 처리 능력을 가진 반도체 내장 ‘스마트 토큰’이 몇 가지 있다.
이들 ‘토큰’은 일부 틈새시장을 차지하고 있지만 ISO 7816 표준에 부합하는 스마트 카드와 같이 널리 사용되지는 않고 있다.
USB 포트가 점차 새로운 PC의 표준 기능이 돼감에 따라 일부 업체는 USB키를 채용하기 시작했다. 하지만 여기에는 어느 정도의 제약이 따른다. 일부 PC업체는 키보드에 USB 포트 기능을 제공하고 있지만 이들 포트는 언제나 연결 가능하지도 않고 하루에 몇 번씩 키를 꽂았다 뽑았다 하면 고장날 가능성도 있다. 또 USB포트는 제품이 스마트 카드만큼 다양하지 않다.
스마트 카드와 USB 키를 포함한 스마트 토큰은 PKI 서비스를 더욱 강화시켜준다. 즉 스마트 카드는 사용자의 개인키를 안전하게 저장하는 데 사용할 수 있고 때로는 암호화를 안전하게 처리할 수도 있다. 비록 스마트 토큰이 절대적인 보안을 보장하지는 않지만 데스크톱PC보다는 훨씬 강력한 보안 기능을 수행할 수 있다. 개인키를 저장, 사용하는 데는 몇 가지 방법이 있으며 공급업체에 따라 접근 방식이 다르다. 가장 단순하게 사용하는 방법은 디스켓처럼 사용하는 것이다. 이 경우 스마트 카드는 필요할 때 개인키를 워크스테이션으로 보내서 암호 처리하게 한다. 하지만 이 방법은 완전한 보안을 기대하기 어렵다.
다른 두 방법은 암호처리가 스마트 토큰에서 이루어지기 때문에 보안성이 더 우수하다. 먼저 사용자는 워크스테이션에서 키를 만든 다음 그 중 개인키를 토큰에 저장한다. 그 다음에는 사용자가 키를 토큰에서 만든다. 이 방식에서 일단 개인키가 저장되면 토큰에서 이를 검색할 수 없도록 해야 하며 그렇지 않으면 노출될 위험성이 있다.
많은 공급업체들은 스마트 토큰에 대해 이중 인증을 실시한다. 대개 토큰은 개인식별숫자 (PIN:Personal Identification Number)를 결합해 사용하는데 이때 사용자는 카드가 암호처리를 하기 전에 PIN을 제공해야 한다. 일부 제품은 또 단독 또는 PIN과 결합한 다음 거기에 생체측정 기술을 적용해 삼중 인증을 제공한다.
스마트카드와 공개키 인증 - 주요업체•제품
기업이 공개키 인증체제를 구축하려면 몇가지 주요 요소와 관련제품을 선택해야 한다. 우선 공개키 기반구조 (PKI:Public Key Infrastructure)가 있는 방법을 사용할 것인지 아니면 PKI가 없는 방법을 택할 것인지를 결정하고 스마트 토큰의 사용 여부와 스마트 토큰을 사용한다면 스마트카드를 사용할 것인지 또는 USB 키를 사용할 것인지를 결정해야 할 것이다.
사용자 인증 업무만을 위해 PKI를 설치한다면 투자비용 효율성이 없지만 암호화나 디지털 서명과 같은 PKI의 다른 서비스를 필요로 한다면 PKI가 없는 공개키보다 증명 기반 인증을 가능하게 하는 PKI를 사용하는 것이 유리하다. 또 공개키 인증을 광범위하게 사용하려면 플랫폼의 지원이 있어야 한다. 유닉스 시큐어 셸 (SSH:Unix Secure Shell)은 유닉스와 윈도 OS에서만 사용이 가능한 반면 증명 기반 인증은 이보다 광범위한 OS 지원이 가능하다.
가령 어느 기업체가 IBM의 z/OS를 사용해 증명 기반 인증을 하려고 한다면 거기에 적합한 PKI가 있어야 하는데 그렇지 않으면 인증 미들웨어나 윈도2000 및 커버로스를 사용해야 한다.
만일 기업체가 공개키 인증을 자체 직원만을 위해 시행한다면 사용자들의 컴퓨터 구성과 인터페이스 (스마트카드 판독기나 USB 포트 등)를 쉽게 설치할 수 있다. 스마트 토큰으로 공개키 인증 체제를 구축할 수 있는 것이다. 하지만 기업은 고객이나 원거리에 있는 직원이 ‘본사’ 컴퓨터에 접속하는데 인증 토큰을 사용하려고 한다면 컴퓨터의 구성을 통제하거나 OS를 선택할 수 없다. 이런 경우는 대개 안전한 저장장치 없이 공개키 인증을 하게 하거나 전혀 다른 종류의 인증 토큰을 사용해야 한다.
집과 같이 안전한 위치에서 하나의 컴퓨터를 사용하는 경우는 안전한 저장장치가 없어도 공개키 인증을 사용해도 무방하다. 여러 사람이 컴퓨터를 사용하는 사무실이나 노트북 PC를 가지고 이동하면서 사용해 분실이나 도난의 위험이 있는 경우는 스마트 토큰이 필요하다. 또 디지털 서명이 펜으로 하는 ‘젖은’ 서명과 같은 효력을 갖게 하려면 스마트 토큰을 사용해야 하며 서명자가 자신의 개인키를 갖고 있어야 한다. 뿐만 아니라 그 개인키는 핀 (PIN)으로 보호된 스마트 토큰에서 만들어지고 그 스마트 토큰을 벗어나서는 안된다.
스마트카드와 USB키 중 어느 것을 사용할 것인지는 간혹 사용자의 워크스테이션 인터페이스에 따라 정해지기도 한다. 스마트카드는 워크스테이션에 탑재돼 있거나 또는 부착할 수 있는 판독기가 있어야 하는데 이는 추가비용을 필요로 한다. 이에 비해 USB키는 USB 포트만 있으면 되는데 이런 포트는 PC 신제품에는 대개 다 있다. 하지만 그 포트가 프린터나 짚 (zip) 드라이브와 같은 다른 주변기기를 위해 이미 사용되고 있으면 추가비용을 부담, PC에 USB 허브를 설치해야 한다.
주요 관련업체를 부문별로 보면 시큐어 셸 업체에 SSH커뮤니케이션스시큐리티 (Communications Security http://www.ssh.com), 반다이크소프트웨어 (VanDyke Software, Inc. http://www.vandyke.com), 오픈BSD프로젝트 (OpenBSD Project http://www.openbsd.org), 네트워크심플리시티 (Network Simplicity http://www.networksimplicity.com) 등이 있고 암호화 스마트 카드 업체로는 젬플러스 (Gemplus S.A. http://www.gemplus.com), 기섹앤드데브리엔트 (Giesecke & Devrient[G&D] http://www.gdm.de), 리트로닉 (Litronic Inc. http://www.litronic.com), ORGA카르텐시스템 (ORGA Kartensysteme GmbH http://www.orga.com), 슐렘버저세마 (SchlumbergerSema http://www1.slb.com/smart cards/products/index.html), 스파이러스 (Spyrus http://www.spyrus.com) 등이 있다.
또 USB 토큰업체에는 알라딘 (Aladdin http://www.eAladdin.com), 유트론 (Eutron http://www.eutron.com), 레인보테크놀로지스 (Rainbow Technologies http://www.rainbow.com), 스파이러스 (Spyrus) 등이 있고 인증 토큰 업체로는 액티브카드 (ActivCard S.A. http://www.activcard.com), RSA시큐리티 (RSA Security Inc. http://www.rsasecurity.com) 등이 있다.
SSH 커뮤니케이션스시큐리티는 시큐어 셸 프로토콜을 개발한 업체로 워크스테이션용, 서버용, 윈도 서버용, 핸드헬드 단말기용 SSH 시큐어 셸 등 네가지 제품이 있다.
이들 제품은 모두 증명 기반 인증과 스마트카드의 선택적 사용을 지원한다. 반다이크소프트웨어는 윈도 95/98, ME, NT 4.0 워크스테이션, 윈도2000 프로페셔널 및 윈도 XP를 위한 SSH 클라이언트 소프트웨어인 시큐어 CRT를 제공하고 있다. 시큐어 CRT는 스마트카드를 사용해 증명 기반 인증을 선택적으로 지원한다. 오픈SSH는 SSH 프로토콜 슈트의 부가 버전으로, 오픈BSD프로젝트가 개발한 것이다. 오픈SSH는 IBM AIX, HP-UX, 선의 솔라리스, 컴팩의 OSF/1 및 Tru64 유닉스, 실리콘그래픽스의 아이릭스 (Irix), 리눅스, 애플의 맥OS X 등 유닉스 OS에서 운용된다.
스마트카드 업체 중에서는 젬플러스와 슐렘버저세마가 가장 지배적인 업체다. 젬플러스는 개인 및 기업의 컴퓨팅 보안 솔루션인 젬세이프 (GemSAFE) 스마트카드를 공급하고 있으며 슐렘버저세마는 사이버플렉스액세스 (Cyberflex Access), 크립토플렉스 (Cryptoflex)를 포함한 다양한 스마트카드를 공급하고 있는데 사이버플렉스는 강력한 암호화 카드고 크립토플렉스는 PKI용 스마트카드다. 이밖에 리트로닉은 32비트 스마트카드인 포르테 (Forte), 스파이러스는 로제타 (Rosetta) 스마트카드, ORGA는 다기능 스마트카드를 각각 공급하고 있고 G&D는 보안기능이 강력한 맞춤 스마트카드 솔루션과 응용 프로그램을 제공하고 있다.
USB 토큰 제품은 알라딘의 이토큰 (eToken), 유트론의 웹아이덴티티 (WebIdentity), 레인보테크놀로지스의 아이키 (iKey), 스파이러스의 로제타 USB 등이 있다.
또 광범위한 인증 토큰을 제공하는 액티브카드의 주요 제품은 액티브카드 골드 스마트카드와 액티브키 (ActivKey) USB키 등이며 RSA 시큐리티의 주요 제품은 RSA 시큐어ID 인증 토큰이다. 이들 두 업체가 공급하는 제품은 기업체들이 공용키 인증과 다른 PKI 서비스로 쉽게 이행할 수 있는 인프라 컴포넌트다.
공개키 인증은 효과적인 인증방법이다. 특히 증명 기반의 인증방법은 더욱 효과가 있지만 이를 위해서는 PKI와 스마트카드 등에 상당한 투자를 해야 한다. 기업체들이 인증 하나만을 위해 투자하는 것은 별 의미가 없으며 공개키 인증 체제를 갖춰야 비용 효율성이 있다. 공개키 인증에 있어서 스마트 토큰은 인증을 강화해 주는데, 스마트 토큰 중에서는 스마트카드가 가장 널리 사용되고 있을 뿐 아니라 종류도 다양하다. 그러나 기업이 PKI 서비스를 광범위하게 사용할 계획이 없다면 일회용 패스워드 (OTP:One Time Password) 인증방법을 사용하는 것이 비용 효율적일 것이다.
※ 출처 - 전자신문 테마특강 (http://www.etimesi.com)