안전한 전자서명을 위하여

2009.02.21 글쓴이 youknowit

가장 먼저 해소되어야 할 오해는, 전자서명(electronic signature)은 금융거래에만 사용되는 것이 아니라는 것이다. 전자서명은 전자적으로 찍는 ‘인감도장’이라고 생각하면 된다. 금융거래에서만 인감도장을 찍는 것이 아니라, 온갖 종류의 문서에 인감도장을 찍을 일이 있다는 점을 이해한다면, 전자서명제도는 금융기관이 좌지우지할 제도가 아니라는 점은 당연하다.

또 한가지 분명히 해 둘 점은, 전자서명과 보안 접속(secure connection)은 전혀 별개의 개념이라는 점이다. 인감도장이 찍힌 문서라고 해서 모두가 비밀스럽게 처리되어야 하는 것은 아니다. 인감이 날인된 문서 중에는 모든 사람에게 오히려 공개되어야 할 것들도 많다. 예를 들어, 작성 기관의 인감이 날인된 ‘공문’이라면 말그대로 누구든지 볼 수 있어야 할 것이다. 요컨대, 전자서명을 구현하는 프로그램과 보안접속을 구현하는 프로그램은 완전히 별개의 원리와 구조를 가지고 있다.

그러나, 우리 보안 업계는 이 두가지를 짬뽕으로 얼버무려 엉거주춤한 하나의 프로그램으로 제시하고 있다. 각 기능을 수행하는 구성요소(컴포넌트)를 정확히 규정하고, 각 구성요소들을 독립된 모듈로 개발해야, 이들 요소들을 각각 다양한 맥락에서 다양한 주체가 불러와서 효율적으로 재사용 할 수 있게 되는데, 국내 보안 업체들은 소프트웨어 및 서비스 설계에 관한 이러한 기초적 원리에 대한 인식이 미약하다. 전자서명도 하고, 보안 접속도 하는 묘기 대행진 수준의 “짬뽕 플러그인” 하나를 여기 저기 마구 들이대는 접근방법을 취해 왔기 때문에, 플러그인이 전혀 필요도 없는 ssl 보안 접속마저 덩달아 “전자서명 플러그인”으로 해대는 결과가 빚어지는 것이다. 참고로, 전자서명법은 ‘보안접속’에 관한 규정이 전혀 없다. 기술적으로 너무나 당연하고 바람직 한 것이다. 그 법에는 전자금융에 관한 규정도 물론 없다. 공인인증제도는 금융기관만이 사용하는 제도가 아니기 때문이다.

불행하게도, 한국에서는 ‘금융결제원’이라는 사단법인(은행들이 결성한 사적-私的-단체이며, ‘금융감독원’과는 전혀 관련이 없다)이 공인인증기관으로 지정받아, 공인전자서명 제도를 마치 금융권의 사유물처럼 만들어 버렸다. 그 뿐 아니라, 금융결제원은 공인인증제도가 도입되기 전에 시중 은행들이 개별적, 사적(私的)으로 시작했던 ‘사설인증’ 체제를 거의 그대로 유지하면서, 그것이 마치 ‘공인인증’제도인 것처럼 얼버무려 왔다.

예를 들어, 공인인증서 발급과정에서부터 가입자에게 제공되어야 하는 소프트웨어(가입자 설비)의 경우, 법령은 감독관청의 심사를 받은 것만을 사용하도록 규정하고 있다. 그러나, 지금껏 이 소프트웨어는 시중 은행들이 사적(私的)으로 마련하여 감독관청의 심사도 받지 않은 채 마구 배포한 것이 사용되고 있다. 금융결제원은 오픈웹과의 소송에서 시중 은행들이 배포하는 이 소프트웨어는 자신들과는 전혀 무관한 것이라고 법원에 진술하고 있다.

실제로 이 소프트웨어들은 제각각 규격이 다르고, 전자서명법령이 정한 핵심적 보안 요구 사항마저 지키지 않고 있다. 법령이 정한 기술 규격에 따르면, 가입자가 가입자 설비를 자신의 컴퓨터에 최초로 설치할 때, 국내 최상위 인증기관(KISA)의 인증서를 신뢰할 것인지 여부를 가입자가 판단할 수 있도록 그 인증서의 해쉬값을 육안으로 대조하는 기능을 반드시 제공 해야한다. 기술규격6.1, 제9면 참조. 최상위 인증기관의 인증서를 가입자가 신뢰하고 나면, 그 인증체계 내의 나머지 모든 인증서의 신뢰여부는 기계적으로 판단되어 버리기 때문에 이 요건은 매우 중요하다. 그러나, 대부분의 시중 은행이 마구잡이로 배포하는 가입자 설비는 이 기능을 아예 제공하지 않을 뿐 아니라, 정체 불명의 인증서를 “루트인증서”로 가입자의 컴퓨터에 가입자 몰래 심고 있다. 여기 참조. 이런 행위는 형법상 범죄로 될 수도 있다고 생각한다.

더욱 심각한 문제는, 각각의 금융기관, 카드사, 쇼핑몰 등이 제멋대로 마련한(국내 보안업체들로부터 구입한) 가입자 설비들이 “여러 개” 존재하므로, 공인인증서를 최초로 발급받을 때 한번 설치한 가입자 설비를 두루(매번 새로 설치할 필요 없이) 사용하게 되는 것이 아니라, 각 은행이나 쇼핑몰과 거래를 개시할 때마다 별도의 가입자 설비를 거듭해서 설치해야 한다는 점이다. 바로 이 상황 때문에 국내의 컴퓨터 사용자들은 끊임 없이 “이 소프트웨어를 설치하시겠습니까?”라는 보안 경고에 시달리게 되고, 이제는 아예 “파블로프의 개”가 되어 기계적으로 “OK”를 누르게 되어버린 것이다.

그러나, 전자서명법령은 공인인증기관이 가입자 설비를 제공하도록 규정한다. 여기. 가입자 설비 제공 의무에는 그 설비(소프트웨어)의 사용법을 알려줄 의무도 당연히 포함되어 있다(사용법을 알려주지 않으면, 결국은 그 소프트웨어를 사용할 수 없게 되기 때문이다). 전자서명용 가입자 설비는 웹브라우저 플러그인 형태를 취하므로(ActiveX건, 파이어폭스 확장이건, 자바 애플렛이건), 이 설비의 사용법은 웹서버가 그 플러그인을 호출, 구동하는 방법을 말한다(가입자가 자기 컴퓨터에 설치된 웹브라우저 플러그인을 스스로 구동할 수는 없다). 즉, 공인인증기관은 자신이 제공한 플러그인의 설치 및 구동 방법(매뉴얼)을 웹서버들에게 알려주라는 의미이다. 실제로 외국의 인증기관들은 그러한 매뉴얼을 공개적으로 제공하며, 어떤 웹서버라도 그 플러그인을 자유롭게 채용할 수 있도록 되어 있다. 여기 참조.

따라서, 현 제도 하에서 공인인증기관이 법령을 준수한다면 다음과 같은 방법으로 전자서명이 이루어 질 수 있다.

  • 첫째, 공인인증서를 최초로 발급받을 때, 감독관청의 심사를 받은 안전한 가입자 설비를 공인인증기관이 가입자에게 제공한다.
  • 둘째, 공인인증기관은 이 가입자 설비를 호출, 구동하는 방법을 웹서버들에게 알려주어야(제공 해야) 한다. 전자서명법 제22조의2 참조(그 조항에 언급된 “이용자”는 고객과 전자서명거래를 하고자 하는 웹서버를 말한다).
  • 셋째, 대부분의 웹서버(카드사, 쇼핑몰, 결제대행사, 기타 전자서명 거래를 하고자 하는 모든 웹서버)들은 공인인증기관이 인증서를 발급해 줄때 가입자들에게 제공하여, 가입자의 컴퓨터에 이미 설치되어 있는 가입자 설비를 호출, 구동하기로 선택할 것이다.
  • 넷째, 공인인증기관이 인증서를 발급해 줄때 배포하여 가입자의 컴퓨터에 이미 설치된 공인(公認)소프트웨어를 웹서버가 단순히 호출, 구동하는 경우에는 (아무런 추가적 위험도 없으므로) 보안 경고창이 뜨지 않고 전자서명 거래가 가능하게 된다.
  • 자신이 별도로 돈을 들여 가입자 설비를 사적(私的)으로 만들어 또다시 배포하려는 (돈은 남아 돌고, 개념은 모자라는 은행과 같은) 웹서버는 물론 그렇게 할 수 있겠지만, 그런 웹서버에 접속하는 가입자는 “이 프로그램을 설치하시겠습니까?”라는 보안 경고창을 또 한번 직면하게 될 뿐 아니라, 그 소프프트웨어를 설치해 본들, 그것으로 생성하는 전자서명은 “공인전자서명”으로 인정받지도 못할 우려가 있다. 감독관청의 심사도 받지 않은 사제(私製)소프트웨어로 생성시킨 전자서명은 ‘사설전자서명’일뿐, 공인전자서명이 아니다.

보안접속(secure connection)은 별도 프로그램 없이 구현될 수 있고, 그래야 되는 것이 당연하다(https 접속). 그러나, 인증서 발급과 전자서명(electronic signature)을 위해서는 별도의 플러그인이 필요하다. 그렇다고 해서, 시도 때도 없이 별도 프로그램을 자꾸 설치해야 되는 것은 아니다. 공인인증기관이 법령을 제대로 준수한다면, 가입자들은 공인인증서를 발급받을 때 “단 한번” 플러그인을 설치하면 된다. 이때 최상위 인증기관 인증서의 신뢰 여부도 가입자가 직접 판단할 기회가 주어진다. 그러고 나면 다시는 “이 프로그램을 설치하시겠습니까?”라는 위험 천만한 사태를 가입자가 반복해서 경험할 필요가 없게 된다.

금융결제원은 가입자 설비를 왜 제공하지 않을까? 없어서 못하는 것은 아니다. 금융결제원은 분명히 가입자 설비를 만들어 감독관청의 심사도 받았다(가입자 설비를 마련하여 감독관청의 심사를 받지 않으면, 공인인증기관으로 지정될 수가 없다). 그러나, 이렇게 심사까지 받은 공인(公認) 가입자 설비를 금결원은 어딘가에 꽁꽁 감추어 두고 아무에게도 제공하지 않고 있다. 그렇기 때문에, 전자금융거래를 해야 하는 웹서버들은 자의든 타의든(공인인증서 사용을 법이 강제하고 있으므로) 보안 업체들로부터 사제(私製)가입자 설비를 제각각 구입하여 뿌리고 있고, 가입자는 시도 때도 없이 뜨는 “이 프로그램을 설치하시겠습니까?”라는 보안경고창에 대하여 “무조건 OK”를 누르는 것이 이제 국민적 스포츠로 자리잡게 된것이다.

문화체육부는 태권도에 이어, “ActiveX OK 하기”를 국기(國技)로 지정하기 바란다.

각각의 은행들, 카드사, 쇼핑몰 결제대행사들이 똑 같은 프로그램을 사고 또 사고 하는 현 사태는 보안 업체들에게는 “편하게 장사할 수 있는” 환경임에는 분명하다. 그러나, 이 사태가 무슨 경쟁을 촉진하거나, 기술 개발에 도움이 되는 것은 아니다. 10년 전에 한번 개발한 인증 클라이언트를 그저 울궈먹고 있는데 불과하다. 공인인증기관이 전자서명법을 지켰다면, 보안 업체들이 인증 클라이언트로 재탕 삼탕 장사해먹는 현재와 같은 안일한 사태는 아예 오지 않았을 것이며(“클라이언트는 무료”로 제공한다는 업체도 있지만, 그런 제안을 마치 무슨 디스카운트인 것처럼 써먹을 수 있다는 것 자체가 클라이언트로 장사하는 것이다), 참신한 보안 업체들은 서버측의 인증 솔루션을 보다 창의적, 효율적으로 가다듬거나, 인증서비스를 이용한 새로운 거래 솔루션을 창안해 내는 새로운 사업 영역, 새로운 기술을 개발하기 위하여 노력했을 것이다.

금융결제원은, 법규정이 버젓이 있는데도, 공인(公認) 가입자 설비를 일부러 제공하지 않고 있고, 인증서 사용을 법으로 강제당하는 금융거래 서비스 제공자들은 보안 업체들로부터 사제(私製) 가입자 설비를 구입(서버 솔루션 구입 가격에 포함) 하도록 강요 당하는 현 사태는 조직적 강매 수법이나 마찬가지라고 할 수 밖에 없다. 그 와중에 전국민은 오늘도 “이 프로그램을 설치하시겠습니까?”라는 보안 경고창을 한두번 접하지 않으면 뭔가 허전한 느낌이 들 지경이 되었으니, 그저 신나는 세상(Brave New World)이라고 밖에는 더 할 말이 없다.

  • 우분투

    한자를 읽기가 힘든데 “한글(한자)”처럼 적어주시면 안 될까요?

  • viz

    흠.. 가끔 교수님의 금융결제원에 대한 의견은 감정적으로 보이기도 합니다. 사실 교수님의 고소에 대한 판결문을 읽어보았는데 제가 법적으로 무지하긴 하나 금융결제원의 책임이 없는 것은 분명해 보입니다. (판결문 아주 쉽고 명쾌하더군요) 아 물론 패소를 받아들이신다면 재판비용도 부담하셔야 하고 피해가 크실 듯 하여 상고를 하신 것도 이해가 되고 잘 합의가 되면 좋겠습니다. ^^;;

    제 입장에서는 뜬금없이 금융결제원을 물고 늘어질 것이 아니라 KISA 등에 요구하여 표준 구현을 내 놓을라고 하는게 더 좋을 듯 합니다. 국가기관의 만든 공인인증 가입자 설비라면 얼마나 믿음직 스럽겠습니까? 당연히 법도 잘 지키겠지요.

    그리고 전문적인 지식을 가지고 볼 때 ‘전자인증’과 ‘암호화’는 매우 상관도가 높은 기술입니다. 실제로 윈도우 등의 운영체제/JAVA 등의 프로그래밍 언어에서 두 가지 모두 ‘cryptography’ 를 담당하는 하위부분에 공통적으로 포함이 됩니다. 모든 암호화 교과서에서도 한두 단원 순서를 두고 나오는 내용입니다. 사용자 입장에서는 사실 달라 보일 수 있겠지만 기술적인 면에서는 아주 유사하고 관련되어 있는 부분들이고 하나의 플러그인이나 하나의 프로그램으로 구현되는 것은 매우 당연하다고 볼 수 있습니다

  • T. K.

    다양한 플랫폼에 대해 서비스를 제공할 수 없는 이유가 단지 비용문제때문인가요?
    그런데 왜 업계 관련자의 둘러대기로만 보이는지…제가 이상한 모양입니다.

  • http://openweb.or.kr youknowit

    서명 플러그인과 보안접속 플러그인을 “하나로 묶어서” 개발하는 외국의 사례는, 제가 과문한 탓이지, 아직 접한 바가 없습니다. 한두 단원을 사이에 두고 설명되어 있으니, 하나로 묶어서 개발하는 것이 ‘당연’하다는 것은 어째 좀 ‘두루뭉수리”한 접근 같이 들리네요.

    하긴, 보안 접속을 별도의 플러그인으로 구현하는 곳은 현재 한국 뿐이니…

    제가 글을 쓸 때, 미처 생각 못한 부분은, 지금의 “플래시 떡칠” 사이트를 죄다 ssl 채널로 보내려면, 지구온난화를 불러일으킬 수준의 전산자원 소비가 불가피 할 것이라는 점입니다.

    일면 공감이 가지만, 그렇다고 언제까지 전국민에게 “무조건 ActiveX OK” 주문하시렵니까? 현재의 뱅킹 사이트들이 “화려하다”고 생각할지, 천박하다고 생각할지는 개인의 취향문제입니다. 그러나, 파이어폭스를 사용한다고 해서 금융거래를 아예 못하게 하는 것은 차원이 다릅니다. 심미적 취향을 맞춰주기 위하여 ActiveX 로 보안접속을 계속해야 한다는 주장은 저로서는 쉽게 동의하기가 어렵네요. CSS를 제대로 구사하면 얼마든지 화려하고, 정말로 고상한 웹사이트를 구현할 수 있다고 저는 생각하고 있습니다. (viz 님은 모바일 웹브라우저는 아예 고려에 넣지도 않으시는 듯 하네요)

    금결원 사건 항소심(상고심은 아직 시작되지 않았지요) 구두 변론은 3월4일 4시로 예정되어 있습니다. 20분간의 구두 변론 시간이 특별히 할애되어 있습니다(각 당사자 10분). 혹시 시간 나시면 구경이라도 한번 오시기를 … 서울고등법원 서관 407호 법정입니다.

    “뜬금 없이 금융결제원을 물고 늘어지는 것”이 아니라고 저는 물론 믿고 있습니다. 제가 법을 선생님만큼 잘 몰라서 그럴 수도 있겠지만, 이 문제는 서울고등법원이 곧 현명하게 판단하겠지요.