2014.05.27

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

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

우리나라의 공인인증서는 많은 질타를 받아왔고 이제는 사라질 위기를 맞고 있다. 이번 기고에서는 먼저 공인인증서의 원천적인 문제점이 무엇인지, 그리고 개인용 PKI가 주는 장점들, 그리고 마지막으로 안전한 공인인증 기술에 대해 알아본다.

공인인증서의 문제점
사실 공인인증서의 문제점은 공인인증서의 배포 당시 윈도우 운영체제의 다양한 취약점, 그리고 스마트카드 리더(reader)의 사용에 대해 반대했던 금융권의 설계 원칙에서부터 시작됐다. 공인인증서의 문제점은 대체로 암호학적 문제, 액티브X 문제, 운영체제 문제, 보안 3종 세트 문제, 그리고 UI, UX의 문제점 등이 다양한 측면에서 산재되어 있는데, 이를 하나씩 살펴보도록 하자.

- 암호학적 문제점: 설계부터 잘못된 시스템
대부분의 정보보호 교과서에서는 비밀키는 안전하게 저장돼야 한다고 이야기를 하고 그 방법으로 하드웨어에 저장하며 비밀키를 이용한 연산은 하드웨어 내부에서 일어나야 한다고 설파한다.

교과서의 이런 가르침과 달리 우리나라의 공인인증서는 처음부터 NPKI 디렉토리에 사용자의 비밀키로 암호화되어 저장되어 왔다. 이런 설계로 인해 공인인증서의 안전성은 전적으로 메모리 해킹의 가능성 여부와 비밀번호의 안전성에 의존하게 됐으며, 공개키의 안전성과는 동떨어지게 됐다. 즉, 국내 공인인증서는 암호학적으로 처음부터 잘못 설계된 시스템이다.

- 액티브X 문제점: 사용자 UX의 관성
액티브X(ActiveX) 또한 설계 초기부터 많은 논란을 가져왔었고 지금도 논란 속에 있다. 이런 논란의 핵심은 크게 두 가지로 나눠 볼 수 있다.

먼저 액티브X 자체의 취약점이다. 액티브X의 취약점이 있을 경우 공인인증서의 비밀키가 노출될 위험이 있다고 주장한다. 하지만 필자는 액티브X의 가장 큰 문제점은 UI와 UX에 있다고 생각한다.

즉, 모든 사용자가 서드파티 애플리케이션 프로그램을 설치하겠냐는 질문을 윈도우 운영체제에서 물어볼 때 확인을 누르는 '관성'이 생긴다는 점이다. 끊임없이 새로운 소프트웨어를 깔라고 강요하고 새로운 사이트에 들어갈 때마다 새로운 소프트웨어들을 설치하라고 강요함으로써 사용자들은 '확인' 버튼을 누르는 것을 매우 자연스럽게 생각하게 되었다.

즉, 하나의 소프트웨어를 다양한 애플리케이션에 적용할 수 있지 않고 모든 애플리케이션마다 다른 소프트웨어를 깔아야 하는 것이 문제의 핵심이라고 생각한다. 이런 소프트웨어의 숫자가 늘어나면 취약점은 늘어날 수 밖에 없고 취약점이 늘어나면 다양한 공격 또한 가능하다.

- 운영체제의 문제점: 윈도우와 안드로이드 자체의 많은 취약점
공인인증서 개발 초기부터 가장 많이 사용되어 왔던 윈도우, 그리고 최근에 점차 사용이 늘어가고 있는 안드로이드, 이 두 운영체제는 많은 취약점을 노출해 왔다.

먼저 안드로이드는 루팅(rooting)을 허용해야 하는 시스템이다. 또한 웹키트(webkit), 브라우저 등 다양한 취약점이 계속 존재해 왔고 ASRL(address space layout randomization) 또한 최근에 도입이 됐지만 여전히 취약점은 존재하고 있다.

뿐만 아니라 안드로이드 운영체제 위에 개발되는 애플리케이션들의 취약점은 이런 문제를 악화시키고 있다. 윈도우는 최근 보안이 과거에 비해 많이 강화됐지만 여전히 새로운 운영체제의 도입이 지연되고 있으며, 특히 우리나라의 다양한 공인인증용 소프트웨어는 보안성을 약화하라고 강요하고 있다.

여기에 앞에서 언급한 액티브X의 취약점, 그리고 그 기반 위에 개발되는 공인인증용 소프트웨어의 취약점들은 다양한 개발 과정 상에서 완벽한 구현을 요구하고 있다.

따라서 현재 운영체제의 안전성에 근간을 둔 공인인증용 소프트웨어 개발은 원천적인 문제를 갖고 있다. 마지막으로 루팅이 될 경우 최근 이슈가 되고 있는 메모리 해킹, 그리고 키보드 로깅 등은 전문적 해커에게는 어려운 기술이 아니다.

- 보안 3종 세트의 문제점
이렇게 취약한 운영체제의 문제점을 보완하기 위해 국내 보안업체들은 이른바 보안 3종 세트를 내세웠다. 보안 3종 세트는 키보드해킹방지 플러그인, 개인방화벽, 바이러스스캔 플러그인으로 구성된다.

먼저 키보드 해킹방지 플러그인은 이미 게임업계에도 도입됐으나 게임을 좋아하는 학생들 사이에서 이를 우회하는 방법은 매우 쉬운 것으로 알려져 있다. 또한 운영체제 루팅 시 큰 도움을 주지 못한다.

또한 바이러스스캔의 경우 잘 알려져 있듯이 이미 공개된, 그리고 시그니처가 존재하는 공격에만 적용이 가능하다. 따라서 패치가 존재하지 않는 제로데이 취약점에 대해서는 아무 기능을 할 수 없다.

엄청나게 많은 액티브X 소프트웨어가 나오는 상황에서 각각에 대해 제로데이 취약점이 존재하는 것을 방지하는 것은 불가능한 상황이다.

즉, 바이러스 스캐너는 공인인증서의 관점에서는 사후약방문이 될 수 밖에 없는 솔루션이다. 개인방화벽 또한 마찬가지다. 교과서에 나와 있듯이 의태(mimicry) 공격, 즉, 많이 사용되는 포트에 많이 사용되는 트래픽과 유사하게 통신할 경우 쉽게 우회할 수 있다.

뿐만 아니라 다양한 액티브X 소프트웨어에 다양한 3종 세트를 설치하다 보니 앞서 언급한 UX 문제를 악화시키는 결과를 낳고 있다. 또한 운영체제 루팅 시 이런 솔루션들은 큰 도움을 주지 못한다.

- 다른 UX, UI 문제들: 사용 불편, 책임 전가
국내 공인인증용 소프트웨어들은 사용하기가 매우 불편하다. 많은 경고문들은 사고가 터졌을때 모두 사용자의 문제인양 설명하고 있으며, 쓸데없이 많은 클릭 유도와 입력을 강요하고 있다. UX의 개선이 없을 경우 안전해지기 위해서는 불편할 수 밖에 없다는 보안에 대한 나쁜 인상을 줄 수 밖에 없다.

요약하건대, 국내 공인인증용 소프트웨어들은 불편하면서도 안전하지 않다. 안전성의 문제는 이론, 구현, UX 등 다양한 부분에 존재하며 새로운 구현이 필요한 시점이다.



2014.05.27

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

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

우리나라의 공인인증서는 많은 질타를 받아왔고 이제는 사라질 위기를 맞고 있다. 이번 기고에서는 먼저 공인인증서의 원천적인 문제점이 무엇인지, 그리고 개인용 PKI가 주는 장점들, 그리고 마지막으로 안전한 공인인증 기술에 대해 알아본다.

공인인증서의 문제점
사실 공인인증서의 문제점은 공인인증서의 배포 당시 윈도우 운영체제의 다양한 취약점, 그리고 스마트카드 리더(reader)의 사용에 대해 반대했던 금융권의 설계 원칙에서부터 시작됐다. 공인인증서의 문제점은 대체로 암호학적 문제, 액티브X 문제, 운영체제 문제, 보안 3종 세트 문제, 그리고 UI, UX의 문제점 등이 다양한 측면에서 산재되어 있는데, 이를 하나씩 살펴보도록 하자.

- 암호학적 문제점: 설계부터 잘못된 시스템
대부분의 정보보호 교과서에서는 비밀키는 안전하게 저장돼야 한다고 이야기를 하고 그 방법으로 하드웨어에 저장하며 비밀키를 이용한 연산은 하드웨어 내부에서 일어나야 한다고 설파한다.

교과서의 이런 가르침과 달리 우리나라의 공인인증서는 처음부터 NPKI 디렉토리에 사용자의 비밀키로 암호화되어 저장되어 왔다. 이런 설계로 인해 공인인증서의 안전성은 전적으로 메모리 해킹의 가능성 여부와 비밀번호의 안전성에 의존하게 됐으며, 공개키의 안전성과는 동떨어지게 됐다. 즉, 국내 공인인증서는 암호학적으로 처음부터 잘못 설계된 시스템이다.

- 액티브X 문제점: 사용자 UX의 관성
액티브X(ActiveX) 또한 설계 초기부터 많은 논란을 가져왔었고 지금도 논란 속에 있다. 이런 논란의 핵심은 크게 두 가지로 나눠 볼 수 있다.

먼저 액티브X 자체의 취약점이다. 액티브X의 취약점이 있을 경우 공인인증서의 비밀키가 노출될 위험이 있다고 주장한다. 하지만 필자는 액티브X의 가장 큰 문제점은 UI와 UX에 있다고 생각한다.

즉, 모든 사용자가 서드파티 애플리케이션 프로그램을 설치하겠냐는 질문을 윈도우 운영체제에서 물어볼 때 확인을 누르는 '관성'이 생긴다는 점이다. 끊임없이 새로운 소프트웨어를 깔라고 강요하고 새로운 사이트에 들어갈 때마다 새로운 소프트웨어들을 설치하라고 강요함으로써 사용자들은 '확인' 버튼을 누르는 것을 매우 자연스럽게 생각하게 되었다.

즉, 하나의 소프트웨어를 다양한 애플리케이션에 적용할 수 있지 않고 모든 애플리케이션마다 다른 소프트웨어를 깔아야 하는 것이 문제의 핵심이라고 생각한다. 이런 소프트웨어의 숫자가 늘어나면 취약점은 늘어날 수 밖에 없고 취약점이 늘어나면 다양한 공격 또한 가능하다.

- 운영체제의 문제점: 윈도우와 안드로이드 자체의 많은 취약점
공인인증서 개발 초기부터 가장 많이 사용되어 왔던 윈도우, 그리고 최근에 점차 사용이 늘어가고 있는 안드로이드, 이 두 운영체제는 많은 취약점을 노출해 왔다.

먼저 안드로이드는 루팅(rooting)을 허용해야 하는 시스템이다. 또한 웹키트(webkit), 브라우저 등 다양한 취약점이 계속 존재해 왔고 ASRL(address space layout randomization) 또한 최근에 도입이 됐지만 여전히 취약점은 존재하고 있다.

뿐만 아니라 안드로이드 운영체제 위에 개발되는 애플리케이션들의 취약점은 이런 문제를 악화시키고 있다. 윈도우는 최근 보안이 과거에 비해 많이 강화됐지만 여전히 새로운 운영체제의 도입이 지연되고 있으며, 특히 우리나라의 다양한 공인인증용 소프트웨어는 보안성을 약화하라고 강요하고 있다.

여기에 앞에서 언급한 액티브X의 취약점, 그리고 그 기반 위에 개발되는 공인인증용 소프트웨어의 취약점들은 다양한 개발 과정 상에서 완벽한 구현을 요구하고 있다.

따라서 현재 운영체제의 안전성에 근간을 둔 공인인증용 소프트웨어 개발은 원천적인 문제를 갖고 있다. 마지막으로 루팅이 될 경우 최근 이슈가 되고 있는 메모리 해킹, 그리고 키보드 로깅 등은 전문적 해커에게는 어려운 기술이 아니다.

- 보안 3종 세트의 문제점
이렇게 취약한 운영체제의 문제점을 보완하기 위해 국내 보안업체들은 이른바 보안 3종 세트를 내세웠다. 보안 3종 세트는 키보드해킹방지 플러그인, 개인방화벽, 바이러스스캔 플러그인으로 구성된다.

먼저 키보드 해킹방지 플러그인은 이미 게임업계에도 도입됐으나 게임을 좋아하는 학생들 사이에서 이를 우회하는 방법은 매우 쉬운 것으로 알려져 있다. 또한 운영체제 루팅 시 큰 도움을 주지 못한다.

또한 바이러스스캔의 경우 잘 알려져 있듯이 이미 공개된, 그리고 시그니처가 존재하는 공격에만 적용이 가능하다. 따라서 패치가 존재하지 않는 제로데이 취약점에 대해서는 아무 기능을 할 수 없다.

엄청나게 많은 액티브X 소프트웨어가 나오는 상황에서 각각에 대해 제로데이 취약점이 존재하는 것을 방지하는 것은 불가능한 상황이다.

즉, 바이러스 스캐너는 공인인증서의 관점에서는 사후약방문이 될 수 밖에 없는 솔루션이다. 개인방화벽 또한 마찬가지다. 교과서에 나와 있듯이 의태(mimicry) 공격, 즉, 많이 사용되는 포트에 많이 사용되는 트래픽과 유사하게 통신할 경우 쉽게 우회할 수 있다.

뿐만 아니라 다양한 액티브X 소프트웨어에 다양한 3종 세트를 설치하다 보니 앞서 언급한 UX 문제를 악화시키는 결과를 낳고 있다. 또한 운영체제 루팅 시 이런 솔루션들은 큰 도움을 주지 못한다.

- 다른 UX, UI 문제들: 사용 불편, 책임 전가
국내 공인인증용 소프트웨어들은 사용하기가 매우 불편하다. 많은 경고문들은 사고가 터졌을때 모두 사용자의 문제인양 설명하고 있으며, 쓸데없이 많은 클릭 유도와 입력을 강요하고 있다. UX의 개선이 없을 경우 안전해지기 위해서는 불편할 수 밖에 없다는 보안에 대한 나쁜 인상을 줄 수 밖에 없다.

요약하건대, 국내 공인인증용 소프트웨어들은 불편하면서도 안전하지 않다. 안전성의 문제는 이론, 구현, UX 등 다양한 부분에 존재하며 새로운 구현이 필요한 시점이다.



X