공인인증/보안프로그램에 관한 제안(technical)

2009.03.29 글쓴이 youknowit

우리의 개발자분들이 겪는 어려움과 한국의 웹환경에 대해서는 모두 나름의 문제 의식이 있으실 것입니다.

그러나, 공무원을 탓하고 보안업계 과점 사업자들의 부도덕을 한탄하며 무기력감에 빠져 있을 것이 아니라, 뚜렷한 기술적 논거로 뒷받침된 합리적 정책 대안을 명시적, 구체적으로 제시, 설명하는 노력이 어느 때 보다도 필요한 시점이라고 생각합니다.

저는 선진적 기술과 국제적 안목을 가진 고급 기술 인력 분들이 제대로 그 견해를 관철 할 수 있고, 그 역량에 맞는 대우를 받는 상황을 만들어 내고 싶습니다. 행정권한을 행사하는 분들이 양심적인 기술전문가들의 조언, 객관적이고 투명하게 검증된 해법을 채택하도록 그 대안을 제시하고 설명할 필요가 있습니다.

“전자금융거래에서의 공인인증/보안프로그램 설계 및 운용 원칙”을 KLDPWiki 페이지로 만들었습니다. 직접 수정, 개선해 주시기 바랍니다. http://kldp.org/node/104111 도 참조 바랍니다.


이하에서는 전자서명과 보안접속에 대한 간단한 배경설명을 드리겠습니다.

전자서명은 거래당사자의 본인확인과 거래내역의 부인방지에 사용되는 기술입니다. 그러나, 이 기술은 보안접속과는 무관합니다. 한국을 제외한 전세계의 모든 전문가들이 이점은 알고 있고, 우리 전자서명법도 보안접속에 관한 내용은 전혀 없을 뿐 아니라, KISA역시 보안접속 문제는 (공인) 인증/전자서명과는 무관하다는 점을 거듭 확인하고 있습니다.

세계적 기술경향은, PKI client 는 순수히 전자서명 기능만을 구현하고, 보안접속은 ssl/tls 로 구현합니다. 한국에서는 90년대 후반의 특수한 사정(ssl 이 저급한 수준에서만 가능했던 상황) 하에서 개발된 “전자서명/보안접속 통합 plugin”이라는 10년 전 기술이 아직까지 사용되는 안일함과 기술적 타성(정체성)이 지배하고 있다는 것이 문제의 핵심입니다.

이론의 여지 없이 당연히, 당장 시정되어야 할 사항은, 전자서명이 필요 없고 보안접속만 필요한 서비스에서도 ‘전자서명/보안접속 통합 plugin’를 마구 들이대는 한국의 기술 관행입니다.

ssl/tls 가 “해킹에 취약하다”는 견해는 10년 전에 개발한 ‘통합 plugin’을 어떻게 해서라도 계속 팔아보려는 국내 보안업체 입장을 대변하는 것입니다. ssl/tls는 전세계의 무수한 서비스 제공자들이 민감한 서비스에 이용하고 있으며, 공개적 검증을 통하여 그 안전성을 가늠할 수 있는 방법입니다. 오히려 한국에서만 사용하는 ‘통합 plugin’이 과연 어떤 방식으로 shared key 를 서버와 클라이언트 간에 전달하는지에 대해서는 documentation 조차 없습니다. 즉, 아무도 그 각 step의 구체적 단계에서 있을지 모를 보안위험을 객관적으로 검증해 볼 기회조차 없는 해법입니다. 보안 소프트웨어는 공개적 검증이 가능해야 안전하다는 점은 전세계의 보안전문가들이 동의합니다(국내 보안업체들과 국정원 보안인증사무국 관계자만이 “technical specs 이 공개되면 위험하다”는 특이한 견해를 유지하고 있을 뿐입니다).

(공인)인증서, 즉, 이용자 인증서(user certificate)가 수행하는 신원확인/부인방지 기능은 보안에 관련된 이슈라기보다는 법률적 이슈입니다. 전자거래와 관련된 분쟁이 발생했을 때, 일방당사자(고객)는 그 거래가 자신이 수행한 거래가 아니라거나, 자신이 수행한 거래와는 내용이 다르다고 주장하고, 상대방 당사자(서버)는 그 주장을 다투는 상황에서 서버가 자기 주장을 뒷받침할 용도로 법원에 제시할 수 있는 것이 바로 전자서명 데이터입니다.

물론, 이 서명데이터가 오로지 거래의 일방 당사자가 자체적으로 마련한, 그 내막을 법원도 알 수 없고, 감독관청도 알 수 없고, 상대방 당사자도 알 수 없는 私製소프트웨어로 생성시킨 데이터라면, 그 데이터는 증명력이 없습니다. 이러한 서명데이터는 “공인전자서명 외의 전자서명”으로 우리 법은 규정하고, 일방이 그 효력을 부인하면 서명/날인으로서의 효력이 없습니다.

공인인증서(와 쌍을 이루는 개인키)가 사용되기만 하면, 어떤 소프트웨어로 만들어 내더라도 무조건 공인전자서명이 되는 것은 아닙니다. 예를 들어, 이미 깨진 해쉬 알고리즘으로 생성된 서명데이터를 믿을 수는 없습니다. 거래의 당사자들로부터 중립적 지위에 있는 공인인증기관이 감독관청의 심사를 받고 제공하는 “공인” 가입자 설비(accredited client software)로 생성시킨 서명데이터가 “공인전자서명”입니다.

은행이 제 멋대로 제공하는 私製소프트웨어가 난무하는 현 사태는 시정되어야 합니다.

현행 법제를 전제로 수용할 경우에도, 사태를 교정하는 방법은 간단합니다.

  • i) 순수히 인증/서명 관련 기능만을 가진 공인가입자 설비를 공인인증기관이 감독관청의 심사/검증을 받고 일괄 제공하고,
  • ii) 보안접속은 ssl/tls 로 구현하고,
  • iii) 나머지 잡다한 ‘보안프로그램’을 자기 컴퓨터에 설치할지는 순전히 이용자의 자유로운 판단과 선택에 맡기면 됩니다.
  • eonil

    안녕하세요.
    현재 브라우저에 부재된 유일한 보안 기능이 인증계층기능(부인방지)으로 알고 있는데, 플러그인에 의존하기보다 국제표준화할 수 있는 방법은 없을까요? 각 브라우저 벤더들을 설득해 표준화가 되면 앞으로도 호환성을 보장받을 수 있게 되니 이게 가장 좋은 방법이 아닌가 하는데요.

  • http://openweb.or.kr youknowit

    오래전부터 이 문제가 “논의“는 되고 있는데, 별 진전은 없어 보입니다.

    제가 받는 인상은, 인증서가 “신통한 보안 효과”가 있다는 생각이 없으므로, 그리 절실한 문제라고 받아들이지 않는 것 같습니다.

    물론 보안토큰에 저장된 인증서는 훌륭한 보안 효과를 거둘 수 있겠지만, 배포가 쉽지 않으므로(비용 문제), 제한된 범위의 서비스에서만 별도의 해법으로 해결하라는 것 같습니다.

    한국처럼, 마구 무단 복제될 수 있는 “싸구려”인증서를 뿌려놓은 다음, 인증서가 마치 모든 것을 해결할 수 있다는 듯 착각하는 것은 좀 사리에 맞지 않습니다.

    인증서 클라이언트를 개발하고, 판매하는 업체들이야 “인증서 신통론”을 신봉하는 것은 당연하겠고, 부단복제가 되건말건, 전국민에게 인증서를 뿌린 현재 상황을 어떻게해서던 사업기회로 연결지어야 하겠지만…

    보안업체에게 도움이 된다고 해서 당연히 보안에 도움이 되는 것은 아닙니다.

  • http://openweb.or.kr youknowit

    그리고, 이용자인증서(client certificate)으로 로그인하는 기능은 이미 웹브라우저에 구현되어 있습니다.

    보안토큰에 설치된 인증서(즉, 개인키를 이용자가 배타적으로 지배, 관리하는 상황)를 사용할 경우라면,

    이용자 인증서로 로그인된 세션에서 이루어진 거래를, 해당거래에 대한 내역 서명(form signing)이 또한번 되지 않았다는 이유로 이용자가 부인하는데 성공하는 것은 현실적으로 불가능합니다.

    반면에 한국처럼 마구 복제가능한 “싸구려” 인증서를 사용하는 경우에는, 개인키를 이용자가 배타적으로 지배, 관리하고 있다는 전제 자체가 충족되기 어렵기 때문에, 아무리 거래내역 서명이 되어 있다 한들, 그것으로 부인방지 효과를 거두기는 어렵습니다. “내가 서명한 것이 아니라, 공격자가 나의 개인키와 인증서 암호를 입수해서 서명을 생성한 것이다”라는 주장이 쉽게 수긍이 가는 환경이기 때문입니다.

    인증서가 “무조건” 부인방지 기능이 있다고 생각하는 것은 착각입니다. 부인방지의 대 전제가 무엇인지를 이해하지 못한 견해입니다. 이용자가 자신의 개인키를 배타적으로 지배, 관리하는 상황이 합리적 수준에서 보장되지 않으면, 인증서는 부인방지 기능을 전혀 가질 수 없습니다.

    개인키의 배타적 지배, 관리 상황이 확보되면(보안토큰), 굳이 거래내역 서명을 하지 않더라도, 인증서 로그인(이 과정에도 서명은 이루어집니다)만 하더라도, 그 세션에서 이루어진 거래에 대하여 충분히 부인방지 효과를 거둘 수 있습니다.

  • youngdragon

    http://itnews.inews24.com/php/news_view.php?g_serial=470006&g_menu=020200&pay_news=0
    공인인증서 하드디스크 저장금지 ‘일파만파’

    공무원들이 또 삼천포로 빠지는 독창성을 발휘하는 듯.
    교수님 말씀 대로 브라우저 저장 방법이 있다는데도 구지 USB 저장을 밀고 나가려는 의도가 뭔지 ….
    일반적이고 범용적인 기술이 있는데도 모르쇠로 일관하며 엉뚱한 방법을 도모하는지 …. 남의 권유를 받아 들이면 자존심이 상해서 그런가?
    세벌식 자판이 표준에서 제외된 것도 공무원 개인의 되지않은 자존심 때문이었을거란 생각이 듭니다. 남의 의견에 따르면 그 사람에게 꿇린다는 생각 때문이 아니었을까? 난 행시에 합격한 사람이야!!

  • yjinchoi

    이야기에 대해 흐름이 조금 잘못된 방향으로 가고 있는 것 같습니다. 공개키 기법은 현재 컴퓨터에서 사용될 수 있는 보안 기법 중 가장 안전한 방법인 것은 분명한 사실입니다. 물론 현재 기술로는 완전할 수 없는 기술이지만 이의 안전성 자체를 부인하는 일은 어떤 자물쇠도 완벽하게 안전하지 않으니 문을 잠그지 말고 다니자는 것과 같은 주장입니다.
    그보다는 사용자의 선택의 자유를 조금 더 강조하는 것이 현명한 방법 같습니다. 조금 덜 안전한 방법밖에 사용할 수 없는 상황이라도 사용자의 선택에 의해 사용할 수 있도록 해주는 것이 문제 해결의 핵심이라고 생각합니다.