유례가 없는 대형 사고가 거듭되는 국내 보안의 현 상황은 더 이상 “예전 방식 대로” 계속될 수는 없는 시점에 왔다고 생각한다. 13년 넘게 계속된 공인인증/액티브X에 의존한 국내 보안 체제의 소프트 랜딩(soft landing)을 고민해야 할 때다. 다음과 같은 해결 방향을 제시하고자 한다.
첫째, 공인인증서는 ‘선택(option) 사항’으로 전환되어야 한다. 더 이상 정부가 특정 보안 기술 사용을 ‘강요’해서는 안된다. 다양한 보안기술이 활발히 경쟁할 수 있어야 보안 기술이 발달한다.
둘째, 공인인증서 ‘저장 위치’는 NPKI폴더가 아니라 웹브라우저가 인식할 수 있는 키 저장소(keystore)를 사용해야 한다. 그러면 부가 프로그램(액티브X 등) 설치 안하고 공인인증서를 이용할 수 있다. 조금 더 설명하면,
- 인증기관은 낡고 위험한 플러그인 방식을 이제는 탈피하고, HTML5에 기반하여 공인인증서를 발급해야 한다. 예제: https://openweb.or.kr/html5
- HTML5를 제대로 지원 못하는 웹브라우저(예컨대, IE)를 사용하는 분들에게는 공인인증서를 p12 파일형식으로 제공하면 된다. IE 유저들은 p12 파일을 “열기(Open)”만 하면 화면에 나타나는 안내에 따라서 인증서를 자신의 웹브라우저에 쉽게 import할 수 있다. 예제: https://openweb.or.kr/cert/
- 인증서를 웹브라우저에 import하는 방법은 (때로는 컴퓨터를 reboot까지 해야하는) 액티브X 설치 과정과 비교해 보면, 훨씬 쉽고 편하다. 액티브X 외에는 모든 것이 “어려워서 어르신들이 못한다”고 믿는 자는 자신의 정신상태를 의심해 볼 필요가 있다. “컴맹 어르신의 편의”가 여태껏 한국 ‘보안’의 지상 과제였나, 액티브액스 마구 뿌려대게? ‘보안’이 ‘편의’를 위한 서비스였던가? 궤변은 좀 그만하시라.
셋째, 공인인증서 로그인은 유저가 원할 경우에 선택할 수 있도록 옵션(option)으로 제공한다. 하지만, 공인인증서”만”으로 조회/이체 거래 등을 할 수 있게 해서는 안된다. 공인인증서는 이미 대량으로 유출되었다고 보아야 하며, 인증서는 유저의 “id를 확인”하는 정도의 의미만을 부여하고, 계좌 조회, 이체 등에는 일회용 비밀번호가 사용되야 한다.
예제: https://openweb.or.kr/cert/auth (인증서를 자신의 웹브라우저에 import 한 상태에서 접속해 보시기 바람)
넷째, 인증서 로그인과는 달리, 거래내역 전자서명은 플러그인(부가 프로그램)을 설치하지 않으면 불가능하다. 거래내역 전자서명은 자바스크립트를 이용해서 처리할 수도 있고(부가프로그램 설치 불필요), 부가프로그램으로 수행할 수도 있다. 굳이 부가프로그램 방식을 선택하고자 할 경우, 거래내역 서명은 유저가 희망하는 경우에 한하여(=선택 사항) 플러그인을 제공하되, 다음과 같은 방식으로 진행할 필요가 있다.
- API 공개/표준화: 거래내역서명에 필요한 ‘클라이언트 플러그인’은 금융권과 보안업계가 공동 개발하고 API를 투명하게 제공해야 한다. 특히 전자서명API 는 국제 표준을 목표로 여러 논의가 진행되고 있다(예를 들어, http://html5.creation.net/webcrypto-api/ ) 따라서 국제적인 프로젝트로 수행할 필요가 있고, 한국이 이 논의를 선도하기를 희망한다.
- 클라이언트 소스 공개: 내역서명에 필요한 ‘클라이언트 플러그인’은 소스가 공개되어야 한다. 소스 공개를 통하여 전세계 전문 인력의 검증을 받을 수 있으므로 프로그램의 안전을 담보하는 의미도 있고, 이 방식이 국제적으로 채용되는 것을 촉진하는 의미도 있다.
- 클라이언트 일괄 배포: 내역서명에 필요한 ‘클라이언트 플러그인’은 믿을 수 있는 하나의 배포 주체가 일괄 배포해야 한다. 그렇게 해야, 유저가 한번만 이 플러그인을 설치하면 어떤 금융기관과 거래하더라도 내역서명 플러그인을 다시는 중복 설치 안해도 된다.
- de-coupling: 반면에, 서버측의 서명검증 솔루션은 국내, 국외의 각 보안 업체가 클라이언트 API를 참조하여 만들면 된다. 서버 플러그인과 클라이언트 플러그인을 이렇게 ‘분리(de-coupling)’하는 것은 보안상 매우 필요하고 중요하다(이렇게 해야, 서버가 이상한 짓을 고객의 컴퓨터에 함부로 못하게 된다). 그리고, 이렇게 해야 다양한 국내,국외 업체들이 서버 플러그인(내역서명 검증 솔루션) 판매 영업을 경쟁적으로 할 수 있게 보장된다.
- 플러그인 다운로드 시점: 내역서명에 필요한 ‘클라이언트 플러그인’을 유저가 최초로 내려받는 시점은, 반드시 인증서 로그인 이후여야 한다. 인증서 로그인도 못한 유저에게 거래내역 서명 플러그인을 내려줄 이유도 없을 뿐 아니라, 서버의 identity도 불확실한 단계에서 플러그인을 유저에게 내려주는 것은 옳지 않다.
PKI인증서 기술은, 비록 원리 자체는 이미 20년 전에 확립된 것이긴 하지만, 실제로 수많은 유저들에게 인증서를 어떻게 안전하게 배포하고, 어디에 어떤 방식으로 유저인증서를 저장하는 것이 바람직한지에 대해서는 아직 무수히 많은 문제가 있는 미숙한 보안 기법이다. 하드웨어 보안토큰 형태로 배포하는 것도 많은 현실적 문제가 있다. 거래내역 전자서명에 대하여는 아직 아무런 국제표준도 없는 실정이다.
이러한 미숙/허술한 보안 기법을 플러그인으로 대충 땜빵질하여 전국민에게 10여년간 무식하게 강제한 결과 한국의 보안 상황은 이지경이 되었다고 생각한다. 공인인증서를 더 이상 강제하지 않고 ‘선택 사항’으로 전환하는 것이 지금 우리에게 시급하게 필요한, 유일한 해결책이다.
0 Comments