기사 공유하기

broken_glass_2
broken glass 2, Nesster (CC BY 2.0)

유례가 없는 대형 사고가 거듭되는 국내 보안의 현 상황은 더는 ‘예전 방식대로’ 계속될 수는 없는 시점에 왔다고 생각한다. 13년 넘게 계속된 공인인증/액티브엑스에 의존한 국내 보안 체제의 연착륙(soft landing)을 고민해야 할 때다. 다음과 같은 해결 방향을 제시하고자 한다.

첫째, 공인인증서는 ‘선택(option) 사항’으로 전환되어야 한다. 더 이상 정부가 특정 보안 기술 사용을 ‘강요’해서는 안 된다. 다양한 보안기술이 활발히 경쟁할 수 있어야 보안 기술이 발달한다.

둘째, 공인인증서 ‘저장 위치’는 NPKI 폴더가 아니라 웹 브라우저가 인식할 수 있는 키 저장소(keystore)를 사용해야 한다. 그러면 부가 프로그램(액티브엑스 등) 설치하지 않고 공인인증서를 이용할 수 있다. 조금 더 설명하면,

  • 인증기관은 낡고 위험한 플러그인 방식을 이제는 탈피하고, HTML5에 기반을 두어 공인인증서를 발급해야 한다. (예제 1 링크)
  • HTML5를 제대로 지원하지 못 하는 웹 브라우저(예컨대 인터넷 익스플로러, IE)를 사용하는 분들에게는 공인인증서를 p12 파일형식으로 제공하면 된다. 이런 브라우저 사용자들은 p12 파일을 ‘열기(Open)’만 하면 화면에 나타나는 안내에 따라서 인증서를 자신의 웹브라우저에 쉽게 가져오기(import)할 수 있다. (예제 2 링크)
  • 인증서를 웹 브라우저에 가져오기 하는 방법은 (때로는 컴퓨터를 리부팅까지 해야 하는) 액티브엑스 설치 과정과 비교해 보면, 훨씬 쉽고 편하다. 액티브엑스 외에는 모든 것이 “어려워서 어르신들이 못한다”고 믿는 자는 자신의 정신상태를 의심해 볼 필요가 있다. ‘컴맹 어르신의 편의’가 여태껏 한국 ‘보안’의 지상 과제였나, 액티브엑스 마구 뿌려대게? ‘보안’이 ‘편의’를 위한 서비스였던가? 궤변은 좀 그만하시라.

셋째, 공인인증서 로그인은 사용자가 원할 때 선택할 수 있도록 옵션(option)으로 제공한다. 하지만 공인인증서‘만’으로 조회/이체 거래 등을 할 수 있게 해서는 안 된다. 공인인증서는 이미 대량으로 유출되었다고 보아야 하며, 인증서는 사용자의 “ID를 확인”하는 정도의 의미만을 부여하고, 계좌 조회, 이체 등에는 일회용 비밀번호가 사용되어야 한다. (예제 3 링크)

[box type=”note”]

사용하는 브라우저에 따라 예제 1 혹은 예제 2 둘 중 하나의 방법으로 공인인증서 발급을 해 보신 다음, 예제 3에 접속해 보시면 됩니다. 예제 3의 일회용 비밀번호 입력창은 예제로 만들어 둔 것으로 실제 입력은 해 볼 수 없습니다. (편집자)

[/box]

넷째, 인증서 로그인과는 달리, 거래 내역 전자서명은 플러그인(부가 프로그램)을 설치하지 않으면 불가능하다. 따라서 거래 내역 서명은 사용자가 희망하는 때에만(선택 사항) 플러그인을 제공하되, 다음과 같은 방식으로 진행할 필요가 있다.

  • API 공개/표준화: 거래 내역 서명에 필요한 ‘클라이언트 플러그인’은 금융권과 보안업계가 공동 개발하고 API를 투명하게 제공해야 한다. 특히 전자서명 API 는 국제 표준을 목표로 여러 논의가 진행되고 있다. (예를 들어 Web Crypto API  프로젝트) 따라서 국제적인 프로젝트로 수행할 필요가 있고, 한국이 이 논의를 선도하기를 희망한다.
  • 클라이언트 소스 공개: 내역 서명에 필요한 ‘클라이언트 플러그인’은 소스가 공개되어야 한다. 소스 공개를 통하여 전 세계 전문 인력의 검증을 받을 수 있으므로 프로그램의 안전을 담보하는 의미도 있고, 이 방식이 국제적으로 채용되는 것을 촉진하는 의미도 있다.
  • 클라이언트 일괄 배포: 내역 서명에 필요한 ‘클라이언트 플러그인’은 믿을 수 있는 하나의 배포 주체가 일괄 배포해야 한다. 그렇게 해야, 사용자가 한 번만 이 플러그인을 설치하면 어떤 금융기관과 거래하더라도 내역 서명 플러그인을 다시는 중복 설치하지 않아도 된다.
  • 분리(de-coupling): 반면에, 서버 측의 서명검증 솔루션은 국내, 국외의 각 보안 업체가 클라이언트 API를 참조하여 만들면 된다. 서버 플러그인과 클라이언트 플러그인을 이렇게 ‘분리’하는 것은 보안상 매우 필요하고 중요하다. 이렇게 해야 서버가 이상한 짓을 고객의 컴퓨터에 함부로 못하게 되며, 다양한 국내,국외 업체들이 서버 플러그인(내역서명 검증 솔루션) 판매 영업을 경쟁적으로 할 수 있게 보장된다.
  • 플러그인 다운로드 시점: 내역 서명에 필요한 ‘클라이언트 플러그인’을 사용자가 최초로 내려받는 시점은, 반드시 인증서 로그인 이후여야 한다. 인증서 로그인도 하지 못한 사용자에게 거래내역 서명 플러그인을 내려줄 이유도 없을 뿐 아니라, 서버의 정체성(identity)도 불확실한 단계에서 플러그인을 유저에게 내려주는 것은 옳지 않다.

PKI 인증서 기술은, 비록 원리 자체는 이미 20년 전에 확립된 것이긴 하지만, 실제로 수많은 사용자들에게 인증서를 어떻게 안전하게 배포하고, 어디에 어떤 방식으로 사용자 인증서를 저장하는 것이 바람직한지와 관련해서는 아직 무수히 많은 문제가 있는 미숙한 보안 기법이다. 하드웨어 보안토큰 형태로 배포하는 것도 많은 현실적 문제가 있다. 거래 내역 전자서명에 대하여는 아직 아무런 국제표준도 없는 실정이다.

이러한 미숙/허술한 보안 기법을 플러그인으로 대충 땜빵질하여 전 국민에게 10여 년간 무식하게 강제한 결과 한국의 보안 상황은 이 지경이 되었다고 생각한다. 공인인증서를 더는 강제하지 말고 ‘선택 사항’으로 전환하는 것이 지금 우리에게 시급하게 필요한, 유일한 해결책이다.

[box type=”note”]

한국의 보안 환경과 공인인증서의 관계, 문제점 등에 관해 “미닉스의 작은 이야기들 | IT 이야기-시즌2“를 참고하시기 바랍니다. 웹툰을 통해 쉽고 재미있게 이해하실 수 있으리라 생각합니다. (편집자)

[/box]

관련 글

3 댓글

  1. 훌륭한 시도 입니다. 코드에 대해 자세한 검토는 하지 않았지만 많은 고민과 노력이 있었음이 느껴집니다. 저는 보안 전문가는 아니지만 key pair system에서 private key의 보관과 관리,절차 등이 관건이라고 생각합니다. 실제로는 거의다 관리의 허점에서 뚫리는 것같습니다. 그리고 이번 보안 사건의 가장 큰 이유는… MBC에서 사용하던 1000여대의 PC가 부팅이 안되었다는 것으로 보아 서버 보다 각 개인의 컴퓨터가 해를 입은 것으로 보입니다. 이는 Microsoft 의 Windows의 보안 취약성 때문이라 생각합니다. 주로 ActivX의 문제인데 이는 MS의 고의적 판매 전락으로 봅니다. 몇년 안가서 PC가 느려지고 심지어 정지해 버리는 것. 그래야 또 새 것을 팔 수 있으니까. 이제는 보안성이 더 우수한 Linux로 바꾸어야 한다고 생각합니다. Linux는 Open Source(또 완전 무료)이기에 더 많이 사용되고 즉 데스트되고 문제가 있으면 기술만 있으면 고칠 수 있습니다. 수많은 유명 사이트들이 서버로 Linux를 사용하며 Apple사의 OS도 Linux처럼 Unix계열 인 것이 Linux의 우수성을 증명하는 것이라 생각합니다. 마음만이라도 응원하겠습니다. 고맙습니다.

댓글이 닫혔습니다.