인증서와 부인방지 – 건설적 해법

2010.01.03 글쓴이 youknowit

보안업체 관계자들이 마치 “신앙”처럼 내세우는 것이 인증서의 “부인방지” 기능입니다. 부인방지의 논리는 다음과 같습니다:

  • 너의 인증서(개인키)는 너만 가지고(관리하고) 있고,
  • 이 거래에는 전자서명이 되어 있는데,
  • 그 전자서명은 너가 관리하는 인증서(개인키) 없이는 만들 수 없으므로,
  • 이 거래는 네가 한 것이 맞다

는 것입니다.

대 전제(개인키의 배타적 관리)가 충족되지 않으면, 부인방지 논리는 물론 성립되지 않습니다. 현재와 같이 아무나 손쉽게 복제 가능한 “싸구려” 인증서를 사용하는 경우에는, 개인키를 이용자가 배타적으로 지배, 관리하고 있다는 대 전제가 충족되기 어렵습니다. 설사 거래내역이 전자서명 되어 있다 한들, “내가 서명한 것이 아니라, 공격자가 나의 개인키와 인증서 암호를 입수해서 서명한 것이다”라는 피해자의 주장이 쉽게 수긍이 가기 때문에, 부인방지 효과는 애초에 기대할 수도 없습니다.

인증서의 부인방지 효과는 “네 도장이 찍힌 서류니까 네가 작성한 것이 맞다”는 논리와 동일합니다. 그러나, 이 도장이 수십번, 수백번 쉽게 복제 가능한 “단순” 전자파일로 되어 있어 여러 공격자 수중에 나돌 뿐 아니라, 그 파일로 서명하는데 필요한 암호 또한, 은행이 키보드보안 프로그램을 아무리 설치 해도 이용자가 다른 웹사이트에서 입력하는 비밀번호가 인증서 암호와 동일한 경우가 대부분 이므로, 암호 유출을 막기도 어려운 실정입니다. 따라서 복제 가능한 국내의 공인인증서가 부인방지 기능을 가지기는 어렵습니다. 이용자의 컴퓨터가 뚫린 상태(사고는 이런 상태에서 발생합니다)라면, 인증서와 암호는 이미 유출된 것이기 때문입니다. 실제로도, “전자서명이 되어 있다”는 이유로 은행이 사고거래의 책임을 고객에게 지우는데 성공한 사례도 없습니다.

그 뿐 아니라, 2007.1. 경부터 공인인증서가 대량으로 유출되었습니다. 이른바 파밍(pharming)이라는 이름의 공격 방법인데, 확인된 것만도 수천장의 공인인증서가 유출된 바 있고, 지금도 꾸준히 인증서 입수를 위한 다양한 공격이 이루어지고 있습니다.

이런 상황에서 국내의 보안업체는 “이용자의 컴퓨터가 뚫리지만 않으면, 공인인증서가 부인방지 효과를 가질 수 있다”는 궤변에 가까운 주장을 늘어놓으며(이용자 PC가 뚫리지 않으면, 나머지 여러 보안프로그램도 애초에 설치할 필요도 없지요) 인증서 사용을 고집하는 동시에, “이용자 PC가 다 뚫렸다고 전제해야 된다”면서 키보드보안 등의 프로그램을 강제 설치하고 있습니다. 앞뒤가 안맞는 소리를 하며, 프로그램(인증서 프로그램 + 보안프로그램) 판매에만 골몰하는 형국입니다.

보안 업계의 이해관계에 구애받지 않는 오픈웹이 제안하는 해법은 이렇습니다.

첫째, 인증서 사용을 강제하는 현행 규정은 폐지되어야 합니다. 이용자의 컴퓨터가 “뚫리지 않은 경우에만” 부인방지 기능을 가질 수 있다는 현재의 공인인증서는 하나마나한 것입니다(보안업체 스스로의 주장 – 이용자 컴퓨터가 모두 “뚫린 것으로 전제해야 된다” – 에 따르더라도).

둘째, 공인인증서 저장 규격을 변경해야 합니다. 보안토큰에 설치하거나, 웹브라우저에 내장된 object token 에 설치해야 합니다. 단순 파일 형태로 폴더(C:\Program Files\NPKI)에 저장하는 현행 방식은 보안 상식을 벗어난 것입니다.

셋째, 인증서가 위와 같은 방법으로 안전하게 관리될 것을 전제로, 인증서 로그인은 웹브라우저에 내장된 방법으로 수행해야 합니다. 주요 웹브라우저는 이미 인증서 로그인 기능을 내장하고 있습니다. 아이폰/아이팟터치에서 구동하는 모바일 사파리도 이미 그런 기능을 탑재하고 있습니다. 여기 참조. 웹브라우저에 이미 오래전부터 내장되어 있는 인증서 로그인 기능을 구현한답시고 별도 프로그램을 고객 컴퓨터에 설치하는 관행은 중단되어야 합니다. 별도의 보안프로그램을 설치하는 순간, 온갖 악성프로그램도 그틈을 비집고 들어오게 되어 있습니다(“이 프로그램을 설치하시겠습니까?” “예”). 보안업체 돈벌이를 위해서 전국민의 컴퓨터를 망가뜨릴 이유는 없습니다.

넷째, 거래 내역 서명(form signing)은 “이론상으로는” 그럴듯 하고, 보기에도 폼은 나지만, 웹 기반의 전자거래에 일반적으로 사용하는 것은 무의미 합니다. 인증서의 관리가 제대로 되지 않은 현재 상황에서는 아무리 거래 내역에 서명이 되어 있다한들, 부인방지 효과를 거둘 수는 없습니다. 반면에 인증서 관리가 철저히 되어 있는 상황이라면, 인증서 로그인으로 개시된 세션에서 이루어진 거래를 이용자가 부인하기도 어렵습니다.

요컨대, 마구 복제되는 공인인증서로는 아무리 거래내역 서명을 해도 어차피 부인방지 효과도 없는 반면, 복제가 어렵게 운용되는 인증서로는 인증서 로그인만 하게 해도 (즉, 거래내역 서명은 요구하지 않더라도) 부인방지 효과를 충분히 거둘 수 있습니다.

거래내역 서명은 개인들 간에 이메일 등으로 교환되는 계약서 등의 전자문서에 이메일 클라이언트가 수행하거나, pdf 클라이언트가 수행하면 됩니다(이미 이런 기능이 장착되어 있습니다). 웹 기반의 전자거래에서 거래내역 서명을 굳이 강제할 실익은 없고, 오히려 엄청난 부작용만 생깁니다(내역서명에 필요한 별도 플러그인을 설치해야 하는데, 그렇게 되면 또다시 악성 프로그램이 비집고 들어올 틈을 열어주는 것이 됩니다)

요약하면, (1) 인증서 저장방법을 안전하게 개선하고, (2) 인증서 로그인은 웹브라우저에 이미 탑재된 기능을 사용하여 수행하며, (3) 별도의 보안 프로그램을 이용자 PC나 스마트폰에 설치하지 않아도 되도록 하면, 한국의 전자금융 거래 보안은 지금보다 훨씬 안전하게 되고, 다양한 이용환경 지원도 동시에 이룩할 수 있게 됩니다.

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

One Pingback/Trackback

    08 January 2010 at 4:01pm
    전자정부 인터넷증명서발급 과연 제대로된 ...
  • MrKiss on Making
  • Yoseobi

    잘 알겠습니다 요는 말미에 언급된 데로만 된다면 더이상 바랄 것이 없겠군요 올해 스마트폰 관련 모바일 뱅킹규정을 정한다고 하니 언급하신 데로 바뀌길 기대해 봅니다

  • http://www.dt.co.kr 조성훈

    교수님 디지털타임스의 조성훈기자라고 합니다. 방통위출입하며 스마트폰 관련 기사를 쓰는데 최근 금감원 스마트폰 금융거래 가이드라인 발표관련 논란에대해 기사화하려고하는데 코멘트가 필요합니다. 지금 영국계신것으로 아는데 혹시 가능하시다면 콘텍가능한 메일주소를 좀 부탁드립니다. hoon21@dt.co.kr

  • DW

    인증서를 개인키라고 하셨는데 인증서는 공개키라고 해야하지 않나요.

  • http://openweb.or.kr youknowit

    좋은 지적 감사합니다.

    흔히 “인증서”라고 할때는 공개키를 인증기관이 서명한 파일(인증서 자체)과 그 공개키와 쌍을 이루는 개인키를 모두 포함하는 뜻으로 사용되기도 합니다.

    “인증서 암호”라는 표현도, 실은 개인키를 읽는데 필요한 암호를 말합니다. 공개키를 인증기관이 서명한 인증서 자체는 암호가 필요없이 누구나 읽을 수 있습니다.

    전자서명은 개인키로 암호화 한 값입니다. 공개키는 말 그대로 “공개”적으로 누구나 입수할 수 있지만, 그것과 쌍을 이루는 개인키는 오직 해당 user 만이 관리하는 상황이 보장되어야 PKI 체제가 제대로 기능할 수 있습니다.

    개인키가 수천장씩 마구 유출되는 한국과 같은 상황에서는, PKI 체제 자체의 신뢰성은 이미 무너진 것입니다. 공무원이나, 특정 이익 집단만이 이 사실을 외면, 부인하고 있지만. (“부인 방지” 기능이 정말 필요할 듯 :) )

  • DW

    응답 감사합니다. 인증서에 공개키만 들어간다면 인증서가 복사될 수 있다는 사실이 말씀하신 것만큼 걱정스러운 것은 아니지 않나요? 어떻게 개인키가 수천장씩 마구 유출된다는 것인지 저는 이해가 되w;습니다. 그리고 전자서명은 인증서가 아닌 개인키를 가지고 만듭니다. 상대는 니의 전자서명을 나의 인증서에 포함된 인증서를 통해서 얻은 공개키로 점검하여 인증합니다. 위의 글에는 상당한 오해의 소지가 있어보입니다.

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

      상대가 나의 개인키를 입수하여 전자서명을 하여 그 상대방이 “나”의 행세를 할 가능성이 있습니다. 즉, 부인 방지가 되지 않는다는 거지요.
      그리고 인증서 디렉토리 보면 알겠지만 인증서 소유자의 이름이 나옵니다. 게임 사이트, 포탈 사이트 등에서 빼온 개인정보 파일을 구입하여 이와 대조하여 이메일, 주소, 패스워드 정보를 유추해낼 수도 있겠죠.

  • http://openweb.or.kr youknowit

    공격자는 당연히 인증서+개인키를 복사해 갑니다. “공인인증서 유출 사고”라는 것이 바로 이렇게 인증서와 개인키를 공격자가 복사해 간 것을 말하고, 이런 사례가 수천건이 넘었습니다(확인된 것만).

    USB 메모리 스틱이나 C:\Program Files 폴더 내에 있는 NPKI 폴더를 그냥 copy + paste 하면 인증서+개인키가 모두 복사됩니다.

  • DW

    네. 인증서와 개인키를 쉽게 복사할 수 있음으로해서 개인키 해킹의 가능성이 복사할 수 없는 경우 (또는 아무나 볼 수 없도록 숨겨둔 경우)에 비하여 훨씬 커졌다는 것을 말씀하려는 것으로 이해하면 될까요?

  • Pingback: MrKiss on Making

  • http://blog.whattomake.co.kr mrkiss

    말씀하신 이유 외에도, 인증서는 보안카드만 있으면 얼마든지 발급받을 수 있기 때문에 존재의미가 별로 없습니다. 보안카드와 별도 해킹의 방어막이 되는 것이 아니라 은행창구에서 받은 보안카드를 이용해서 다운받는 것이기 때문에 결국 보안카드를 한번 복사한것(?) 정도의 의미 밖에는 없죠. 한마디로 쓸데없는 중복이자 낭비인 셈이죠. 이외에도 여러 보안정책 관련 내용이 들어 있는 제 블로그 글도 트랙백 걸었습니다.

  • http://twitter.com/skrtntanf 낙숫물

    보안토큰 검색하다 여기까지 왔는데요.
    http://www.boannews.com/media/view.asp?idx=25340&kind=1
    링크 기사에 의하면 지적하신 요약 1), 2), 3)번이 모두 해결되는 것인가요? 특히 보안토큰의 경우 하드웨어가 아닌 소프트웨어 방식이 개발된다니 한층 더 나아간 모습인 것 같은데 어떻게 보시나요?

«

»