스마트폰 보안정책 – 해설2 (“전자서명 등”의 사용)

2010.01.10 글쓴이 youknowit

1. 현행 공인인증서의 문제점 및 개선 방안

이용자의 컴퓨터(PC/스마트폰)가 뚫리지만 않으면, 현행 공인인증서도 부인방지 기능을 가질 수 있습니다. 하지만, 이용자의 컴퓨터가 뚫리면 공인인증서(개인키) 파일부터 유출되고 인증서 암호도 쉽게 노출되므로 현행 공인인증서로는 부인방지 효과를 기대하기 어렵습니다. 자세한 내용은 여기.

단순 파일 형태로 일반 폴더(C:\Program Files\NPKI)에 그냥 저장되는 한국의 공인인증서는 무단복제가 너무 쉽도록 되어 있습니다. 그뿐 아니라, 인증서를 그런 “괴상한” 위치에 “괴상한 형태”로 저장해 둘 경우, 인증서 이용 거래를 구현하려면 한국에서만 통하고 한국에서만 필요한 별도 프로그램(플러그인)을 반드시 배포하고 이용자 컴퓨터에 설치해야만 됩니다. 한국 IT가 “갈라파고스행 One way 티켓”을 거머쥐게 된 결정적 원인은 바로 여기에 있었습니다.

세계적으로 통용되는 PKCS#11 규격에 따라 하드웨어 token이나 소프트웨어적 token에 인증서를 저장하면 대부분의 웹브라우저/이메일 프로그램은 별도 플러그인/프로그램 없이도 인증서를 사용할 수 있습니다(아래에 좀 더 자세한 설명이 있습니다). 무단 복제 위험도 대폭 줄일 수 있습니다. 인증서의 무단복제가 어렵게 되면, 부인방지 효과도 생깁니다.

따라서 현행 공인인증서 기술규격(6.1 및 6.6) 중, 일반 폴더(NPKI)에 단순 파일형태로 공인인증서를 저장하도록 규정된 부분은 삭제하고, 앞으로는 PKCS#11 규격에 따라 공인인증서를 저장하도록 개선되면 좋겠습니다.

물론, 공인인증 제도는 금융감독원이 어떻게 할 수 있는 사안이 아닙니다. 행정안전부 장관이 공인인증 제도의 감독관청이고, 기술적 측면은 KISA가 사실상 모든 결정을 내리도록 되어있습니다. KISA는 90년대 후반의 특이한 사정 하에서 궁여지책으로 도입된 “공인인증서 별도 폴더 저장 해법”이 이제는 부작용만 가득한 “한국 IT의 족쇄”로 작용하고 있다는 점을 감안하셔서 이 문제를 조속히 개선해 주시면 좋겠습니다. 웹브라우저가 이미 256bit 암호화를 기본으로 제공하는 마당에 굳이 별도 위치에 일반 폴더/파일 형태로 인증서를 마구 베껴갈 수 있게 저장할 기술적 이유도 명분도 없습니다.

현재로는, 불행하게도, 공인인증서는 신뢰성 있는 인증수단도 못되고, 한국 IT를 전세계로부터 고립시키는 일만 하고 있습니다.

2. “전자서명 등”을 사용

그런 사정을 감안하여 금융감독원은 부인방지를 전자서명에만 의존하지 않고, “전자서명 등“을 사용하도록 보다 유연한 가이드라인을 제시하고 있습니다. 즉, 전자서명 맹신론에서 이제는 벗어난 것으로 보입니다. “전자서명 “을 사용하라는 것은 전자서명에 더하여 추가적 수단이 필요하다는 의미일 수도 있고, 전자서명에 준하는 대체 수단을 사용할 여지도 있다는 의미일 수도 있습니다. 이 부분은 앞으로 금감원이 보다 분명히 그 입장을 밝혀 주실 것으로 생각합니다.

3. “전자서명”을 사용한 범용적 해법 (예시)

전자서명은 인증서 로그인(클라이언트 인증 https 접속)에 사용될 수도 있고, 거래내역을 서명하는데 사용될 수도 있습니다. 그러나 이 두가지를 모두 사용하는 것은 기술적으로 불필요한 중복이고, “옥상 옥” 입니다. 고객이 인증서 개인키로 전자서명을 해 보내야 비로소 개시되는 인증서 로그인 https세션에 공격자가 중간에 끼어드는 것은 현실적으로 불가능합니다. 만일 인증서 로그인 세션을 통과할 수 있는 공격자라면, 이미 고객의 인증서와 인증서 암호를 모두 입수한 자이므로, 거래 내역에 대한 전자서명도 문제없이 해치울 수 있습니다(즉, 거래내역 서명을 아무리 요구해 본들, 보안에 “추가적” 도움이 되지는 않습니다).

인증서 로그인 기능은 주요 웹브라우저에 기본으로 구비되어 있습니다. 하지만, 한국의 공인인증서는 “괴상한 위치”에 저장되어 있으므로, 현재 상태로는 웹브라우저가 그것을 이용할 수 없습니다. 그래서 별도 플러그인을 배포하고 이용자가 플러그인을 자기 컴퓨터에 일일이 설치해야 하는 사태가 벌어졌던 것입니다. 플러그인 배포는 워낙 “고비용 해법”입니다. 그래서 MS IE 에서만 겨우 플러그인을 배포해 왔던 것입니다.

하지만, 공인인증서도 내보내기/가져오기 기능을 지원합니다. 인증서 “내보내기”를 하면 인증서 꾸러미 파일(*.p12)이 만들어 지는데, 이 파일을 웹브라우저로 “가져오기”하면 안전한 저장장치(소프트웨어적 토큰)에 설치할 수 있습니다. 예를 들어, 아래 링크를 클릭하시면, 오픈웹이 테스트 용도로 발급한 개인 인증서를 자기 컴퓨터의 소프트웨어 토큰에 설치할 수 있습니다:

test_user_3.p12 (비밀번호는 “password”입니다. 따옴표 없이)

아이폰/아이팟터치로도 위 링크를 클릭하면, 테스트 유저의 인증서를 자신의 아이폰/아이팟터치로 “가져오기”할 수 있습니다. 윈도우 모바일도 이미 이 기능을 지원합니다. 공인인증서도 물론 이런 방식으로 아이폰 등에 “가져오기”할 수 있습니다. 여기 참조.

이렇게만 되면, PC상의 모든 OS/웹브라우저; 아이폰, 윈도우 모바일 등 스마트폰 이용자들은 별도 프로그램 설치 없이도 “인증서 로그인 보안접속”으로 금융거래를 수행할 수 있게 됩니다. 전자서명을 사용하면서도 대부분의 이용자 지원을 “한방에” 해결하는 방법이 됩니다. 앞서 말씀드린 바와같이, 인증서 로그인에 더하여 거래내역 서명까지를 요구하는 것은 쓸데없는 군더더기에 불과합니다.

요컨대, 공인인증서/전자서명을 PC/스마트폰에서 이용한다고 해서 반드시 별도의 플러그인/프로그램을 설치해야 되는 것은 아닙니다. 유일하게 남는 문제는, 대부분의 일반 이용자들이 공인인증서 내보내기/가져오기를 어떻게 하는지 모르기 때문에, 이분들께 이 과정을 안전하고, 쉽게 해주는 모종의 해법이 필요하겠지요. 곧 나오지 않겠습니까? :)

4. 거래내역 서명의 용도 및 사례

거래 내역을 담은 개별 문서를 전자서명하는 일은 웹기반의 전자금융거래에 사용될 이유도, 필요도 없습니다. 웹기반의 전자금융거래에서는 위에 설명드린 것처럼 인증서 로그인 과정에 전자서명을 사용하면 족하고, 거기에 더해서 거래내역을 서명하게 해 본들 아무런 추가적 보안 효능도 없습니다.

개인들 간에 주고 받는 이메일이나 파일을 전자서명하는 기능은 개별 프로그램(워드프로세서, 이메일, pdf 리더 등)이 이미 구비하고 있습니다. 예를 들어, 오픈오피스는 전자서명 기능을 이미 다음과 같이 제공하고 있습니다(아래 그림들을 클릭하면 확대됩니다).

전자서명 메뉴

전자서명 메뉴

메뉴에서 “파일” –> “전자 서명…” 을 선택하면, 서명에 사용할 개인키를 선택하는 창이 다음과 같이 뜹니다. 물론 위에 설명드린 것처럼 개인 인증서를 “가져오기”해서 표준적 위치에 설치해 두어야 겠지요.

서명하는 데 사용할 개인 인증서를 선택하는 광경

서명하는 데 사용할 개인 인증서를 선택하는 광경

서명에 사용할 개인인증서를 선택하고 “OK”를 누르면 이 문서에 전자서명이 됩니다.

문서에 전자서명이 된 상태입니다.

문서에 전자서명이 된 상태입니다.

국내의 공인인증서는 “괴상한 위치”에 저장되어 있으므로, 개인들이 계약서 등을 작성해서 이렇게 전자서명하여 상대방에게 이메일 등으로 보내는 작업이 불가능합니다. 진작에 표준적 위치에 표준적 방법으로 공인인증서를 저장했더라면, (보안업체는 별도의 인증 프로그램 장사를 접어야 했겠지만) 전자서명은 지금쯤 매우 활발하게 사용되고 있었을 것입니다. 주요 이메일 프로그램(예를 들어 썬더버드)도 이미 전자서명 기능을 구비하고 있습니다. (아래아 한글이야 워낙 “IT 강국 한국형”이라서 모르겠습니다만…)

지난 10년간 “국내에서만 통용되는” 괴상한 방법으로 공인인증 제도를 운영한 결과는 무엇입니까? 과연 누구에게 도움이 되었습니까? 고립과 퇴행으로 일관한 국내 기술 경향이 시급히 수정되어야 모든 국민이 혜택을 보게 됩니다. 일부 업체들의 돈벌이(국제 시장 규모에 비하면, 푼돈 수준)를 위해서 모든 국민이 고통과 불편을 겪고 개인들의 PC가 거덜나는 지금과 같은 상황은 정의롭지 못합니다.

“IT 갈라파고스”에서 이제는 탈옥할 때도 되었습니다.



인증서 로그인 https 접속을 테스트 해보시려면,

Categories: 공인인증서, 보안, 인터넷 뱅킹, 정책제안, 표준화 | Tags: , , , , , | 10 comments  오픈웹 구독 메일로 받기

2 Pingbacks/Trackbacks

  • http://abnormalweb.blogspot.com/ 불편한웹

    무료 인증서에 대해서는 아래 링크를 참고하세요.
    제가 영어 실력이 미천한 관계로…
    링크 밖에 못드리는 점 죄송스럽게 생각합니다.

    http://www.cacert.org/
    http://wiki.cacert.org/InclusionStatus
    http://en.wikipedia.org/wiki/CAcert.org

    http://www.startssl.com/

  • youngdragon

    테스트 해 보니,
    “보안 연결 실패”란 경고창이 뜹니다.
    xp,파폭 3.5.7

  • http://openweb.or.kr youknowit

    본문에 링크된 개인 인증서가 미리 자신의 웹브라우저로 import 되어 있어야 합니다. 여기를 클릭하면 테스트용 개인인증서를 설치할 수 있습니다.

  • youknowit

    혹시 전에 ms-class-action.net 에 방문한 적이 있으면, 서버 인증서가 자신의 웹브라우저에 중복 설치되어 그런 오류가 생길 수 있습니다.

    파이어폭스 인증서 관리자에서 “서버인증서”, “인증기관 인증서” 부분을 살펴보시고, Keechang Kim 이나 ms-class-action.net 과 관련된 모든 인증서를 제거하고, 다시 본문에 안내된 순서대로 해 보시면 테스트가 될 것입니다. 혹시 문제가 계속되면 알려주세요.

  • 우분투

    윈도우즈에서 IE8, 오페라, 파이어폭스, 크롬에서 되구요. 사파리는 어떻게 인증서를 가져와야 하는지 모르겠네요.

    우분투 리눅스에서는 파이어폭스, 오페라에서 되구요. 크롬은 NSS tools를 설치해야 하는 것 같네요.

  • freeweb

    윈도우즈, 리눅스(우분투)에서 테스트하였습니다.
    아주 잘 되네요
    공인인증서 파일을 내보낸후 브라우저의 인증서 가져오기 기능으로 성공적으로 인증서를 설치하였습니다.

    그런데 의문은 브라우저에 인증서를 저장하더라고
    결국 소프트웨어 적인 방법으로 인증서를 저장한다고 하면
    금결원의 NPKI폴더에 저장하는 방식과 보안적으로는 유사하지 않을까요? 2가지 저장방식에 어떤 차이점이 있는지요?

    스마트카드와 같은 별도 하드웨어를 사용하지 않는다면 보안성에는 큰 차이가 없는게 아닐까 생각됩니다.

  • freeweb

    궁금한점이 2가지 더 있는데 글이 너무 길어 지는것 같아 댓글을 분리하였습니다. ^^

    첫째는
    openweb.or.kr/safe 에 로그인할때 공인인증서는 선택이 안되는군요, 집 서버에 환경을 구성해놓고 테스트를 해보려 했지만 금결원 인증서 링크가 깨진것 같았습니다. 제 개인서버에 접속하는 사용자들에게 공인인증서로 로그인하는 기능을 제공해 보고 싶었거든요.. ^^

    둘째는
    로그인 후 서명은 불필요하다고 말씀하셨는데
    혹 불가피하게 서명이 필요한 경우 오픈오피스 같은 프로그램을 사용하지 않고 브라우저에서 특정 내용을 서명해서 서버로 전송하는 방법은 없을까요?

    공인인증서를 가져와서 표준 저장소에 저장하고
    로그인 뿐만 아니라 서명하는 기능까지 별도의 플러그인 없이 수행할 수 있는 환경을 구성해서 은행에 보여준다면
    지금까지 인터넷뱅킹 환경이 얼마나 비표준적인 방법으로 구현되어 왔었는지 보여줄 수 있다고 생각되어서 나름대로 테스트 서버를 구축해 보다가 이렇게 질문 드립니다.

    추운 날씨에 감기 조심하세요

  • http://openweb.or.kr youknowit

    이제는 금결원 발급 인증서로도 로그인 할 수 있도록 개선하였습니다.
    그 자세한 방법은 별도로 포스팅하겠습니다.

  • Pingback: 별도 프로그램 없이 공인인증서 로그인을 구현하는 방법 « Open Web

  • Pingback: 오픈웹이 제안하는 인증서 발급 방식 » Open Web

«

»