보안

기고 | 공인인증서 문제와 PKI, 그리고 안전한 공인인증 기술

김용대 교수 한국과학기술원 전기및전자공학과/정보보호대학원 | ITWorld 2014.05.27


그럼에도 공인인증서는 필요하다
이런 다양한 취약점에도 불구하고 필자는 공인인증서, 혹은 PKI(Public Key Infrastructure) 관점에서 개인용 인증서는 꼭 필요한 기술이며, 우리의 보안을 향상시키며 우리네 삶을 편안하게 할 수 있는 핵심기술이라고 단언한다.

공인인증서 혹은 PKI 관점에서의 개인용 인증서와 다양한 대체 기술을 비교, 설명해본다.

- 공인인증서 vs. 비밀번호 + SSL
공인인증서와 비밀번호+SSL. 이런 비교는 많은 사람들이 해 왔다.

그간 비교 설명을 한 대부분의 문서는 안전하지 않은 공인인증서 구현과 비교적 안전한 비밀번호+SSL의 구현을 비교했기 때문에 공정하지 않았다고 생각한다.

따라서 안전하고 편리한 공인인증서의 구현과 안전하고 편리한 비밀번호+SSL의 구현을 비교하고자 한다.

비밀번호 기반의 시스템들은 먼저 사용자가 복잡한 많은 비밀번호를 기억해야 하는 어려움이 있다. 대부분의 사람들은 이 부분을 귀챦게 생각하고 비밀번호를 컴퓨터에 저장하거나 같은 비밀번호를 다양한 시스템에 쓴다는 사실은 매우 잘 알려져 있다.

우리나라와 같이 웹서비스가 취약한 나라에서 비밀번호의 노출은 매우 빈번하게 일어나고 있으며, 이와 같은 동일 비밀번호를 다양한 웹사이트에서 사용하는 것은 매우 위험하다.

암호화나 해시가 된 비밀번호가 노출이 된다고 하더라도 우리나라의 경우 레인보우 테이블(Rainbow table) 등을 이용해 비밀번호를 복구하는 것은 어렵지 않다. 또한 비밀번호 기반 시스템들은 그 특성상 온라인/오프라인 사전 공격(dictionary attack)에 취약하다.

마지막으로 비밀번호 기반 시스템들은 루팅이 될 경우 키로깅(keylogging)에 의해 비밀번호가 쉽게 노출될 수 있다.

이와 달리 비밀키를 안전하게 저장하고 사용할 수 있는 공인인증서를 구현할 경우 공개키 암호 알고리즘에 안전성을 담보할 수 있다. 사전 공격이 존재하지 않으며 레인보우 테이블을 이용해도 비밀키를 얻을 수 없다.

외국의 경우 비밀번호+SSL을 쓰기 때문에 우리나라보다 사고가 적다고 주장하는 사람들이 있는데, 이는 사실과 다르다. 이미 제우스 등 악성코드에 의해 이미 엄청난 해킹 사건들이 발생했으며, 현재까지 훔쳐간 돈만 하더라도 7,000만 달러에 이른다.

- 공인인증서 vs. 비밀키를 사용한 인증
또한 사람들은 우리나라의 교통카드같이 스마트카드에 비밀키를 저장하는 방식을 제안하기도 한다. 사실 아직까지 비밀키를 사용하는 교통카드는 큰 문제없이 잘 사용되어 왔다(물론 작은 사고들은 보고된 적이 있긴 하다).

그러나 이에 대해 좀더 자세히 살펴보면 큰 문제를 발견할 수 있다. 비밀키를 인증에 사용하기 위해서는 사용자가 인증해야 할 시스템이 사용자의 비밀키를 또한 알아야 한다.

예를 들어, 우리나라 마을버스에서는 교통카드를 사용할 수 있다. 일반적으로 마을 버스의 교통카드 시스템이 서버와 온라인 통신을 한다고 생각하는가?

아마 불가능할 것이며 그렇다고 하더라도 이는 통신의 낭비다. 그럼 이런 경우 어떻게 인증이 가능할까?

우리나라의 교통카드 시스템을 자세히 들여다 볼 수는 없지만 쉽게 시스템을 유추를 할 수 있다. 사용자의 개인키는 Ku = HMAC(MK, U), 즉, 사용자의 ID U를 마스터 키(Master key) MK를 키로 사용해 HMAC 혹은 암호화한 결과로 계산하고 사용자 교통카드에 저장된다.

이 경우, 어떻게 통신이 불가능한 마을 버스 카드리더가 사용자의 U의 개인키를 유추할 수 있을까? 모든 사용자의 비밀키를 카드리더에 저장하는 것은 매우 비효율적임을 쉽게 알 수 있다.

이를 효율적으로 구현하기 위해서는 마스터 키 MK가 마을버스의 카드리더에 저장돼야 한다. 즉, 폐차된 마을버스의 카드리더기를 분석할 경우 MK를 구할 수 있고 MK가 노출되는 순간 우리나라 전체 교통카드 시스템은 마비되는 결과를 가지고 온다.

이와 달리 공개키 시스템에서는 마을버스의 비밀키는 따로 저장이 되며 이 비밀키가 노출이 되더라도 마을버스 한 대의 비밀키만 노출될 뿐이다. 그리고 마을버스의 공개키는 인증서를 이용하여 보호할 수 있으며 개인의 비밀키는 스마트 카드에 저장되고 인증서는 기존의 PKI와 같이 처리할 수 있다.

이 경우, 어떤 실체(entity)가 해킹이 되더라도 비밀키의 노출은 그 실체에 한정된다. 따라서 해킹이 성공하더라도 그 영향은 매우 적다. 이런 구현은 또한 공격자에게 싱글 포인트(single-point-of-attack)를 제공하지 않고 따라서 해킹의 효과를 최소화할 수 있다. 가장 유명한 OTP(One Time Password)로 알려진 RSA의 시큐어ID 또한 중국의 해킹 공격으로 마스터 키가 노출되어 매우 곤란한 점을 겪었다는 점 또한 주목할 만하다.

지금까지 설명한 것을 요약해보면, 제대로 구현이 될 경우 공인인증서(개인용 인증서)는 경쟁 솔루션에 비해 훨씬 더 안전하고 편리한 AAA(Authentication, Authorization, Accounting) 방식이다.

Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.