정부가 올해 HTTPS 기반 공공 웹사이트에서 모바일·비윈도 브라우저를 쓰는 방문자에게 보안 경고를 띄우는 문제를 해결하는 데 실패했다.
HTTPS는 인터넷 홈페이지 방문자와 웹서버간 통신을 암호화하는 보안 기법이다. 구글, 마이크로소프트(MS), 모질라, 애플 등 브라우저 및 운영체제(OS) 개발업체 주도로 세계 민간 인터넷에 이 방식이 보급, 확산되고 있다. 수년간 한국 공공 웹사이트에도 HTTPS 통신이 적용되고 있다. 하지만 MS 브라우저와 OS를 제외한 타사 이용 환경을 지원하지 못하는 문제가 있다.
지금도 안드로이드 및 iOS 기반 모바일 기기나 맥OS 및 리눅스 운영체제(OS) PC를 이용하는 방문자에게 HTTPS 통신을 지원하지 않는 대국민 공공사이트를 쉽게 찾아볼 수 있다. HTTPS 서비스를 애플 사파리, 모질라 파이어폭스, 안드로이드 및 리눅스용 크롬에서는 이용할 수 없고 MS 윈도 기반 크롬, 인터넷익스플로러(IE), 엣지(Edge) 등에서만 이용할 수 있는 곳이 상당수다.
이처럼 HTTPS 서비스가 지원하지 않는 브라우저 및 OS 사용자는 해당 공공 웹사이트에 방문하는 단계부터 가로막힐 수 있다. 필요한 행정 정보 열람이나 민원 신청 서비스를 이용하지 못한단 얘기다. 일반 HTTP 방식으로 접속시 방문과 정보 열람이 가능할 수도 있지만, 해당 기관에 개인정보 또는 민감정보 제공시 유출 우려가 커진다. 또 국민들이 해당 기관을 사칭한 피싱 웹사이트의 위협에도 노출된다.
구글과 모질라 등 브라우저 개발업체가 HTTPS 미지원 및 부실지원 사이트 방문시 보안 경고를 강화하는 추세다. 한국에서도 공공 웹사이트가 HTTPS 서비스를 제공하는 것은 사실상 필수가 되고 있다. 이런 가운데 정부가 공공 웹사이트 방문자 브라우저에 나타나는 HTTPS 보안 경고 문제를 해결하지 못하는 것은 전자정부 서비스에서 대국민 신뢰성 손실과 글로벌 트렌드에 미달하는 보안 수준을 방증한다.
1년전 전자정부 주무부처인 행정안전부 담당자로부터 2018년중 이 문제를 해결할 수 있다는 답을 들었지만, 이는 '공수표'가 됐다. 당시 행정안전부는 관련 업무를 맡던 산하기관을 통해, 주요 브라우저 개발업체 중 모질라 측에 한국 공공 웹사이트에 쓰이는 HTTPS 구현용 인증서 발급 및 관리체계의 검증을 신청하고 필요한 절차를 밟는 중이었다. [관련기사]
하지만 검증 절차는 올하반기 중단됐고, 2018년 12월 27일 현재까지 재개되지 않았다. 정부가 여전히 대국민 공공사이트에 플랫폼 차별 없이 HTTPS 서비스를 제공할 의지를 갖고 있다 해도, 연내 실현할 가능성은 없다.
■ 공공사이트 HTTPS 서비스의 대국민 차별 이유는
대국민 서비스를 보편적으로 제공하는 것은 정부의 의무다. 그런데 지금처럼 중앙정부부처, 산하기관, 지방자치단체 등 공공기관이 대국민 웹사이트에서 HTTPS를 지원하지 않을 경우, 이런 의무를 다 하지 못하는 셈이 된다. 정부가 일부러 특정 브라우저나 OS 기반 기기 이용 국민을 차별하는 건 아니다. 원인은 대다수 공공사이트에서 HTTPS 서비스를 위해 쓰고 있는 '인증서(certificate)'에 있다.
HTTPS 통신을 지원하려면 웹서버가 시큐어소켓레이어(SSL)라는 기술을 써야 한다. 이를 위해 인증기관(CA)이 발급한 'SSL인증서'가 필요하다. 그리고 주요 브라우저 업체는 각 최신 브라우저 인증서 저장소에 검증된 CA가 발급한 SSL인증서를 포함시켜 이용자에게 제공해야 한다. 브라우저는 내장한 인증서 저장소 정보와 방문한 웹사이트의 인증서를 대조해, 검증된 인증서를 쓰는 웹서버와 HTTPS 통신을 한다.
공공사이트도 HTTPS 서비스를 위해 SSL인증서를 쓴다. 행정안전부가 발급하는 'G-SSL 인증서'다. 문제는 G-SSL 인증서와 이를 발급하는 한국 정부의 CA 자격을 인정하는 브라우저 및 OS 개발 업체가 제한적이란 점이다. [관련기사1] [관련기사2]
MS는 윈도 OS의 인증서 저장소의 신뢰목록에 G-SSL 인증서를 포함하고 있다. 그래서 그간 MS 윈도 기반 IE, 엣지, 구글 크롬은 공공사이트 HTTPS 접속이 가능했다. 반면 구글, 모질라, 애플은 그러지 않고 있다. 이 때문에 윈도를 제외한 리눅스 및 맥OS 등 PC 환경과 안드로이드 및 iOS 등 모바일 환경에서 크롬, 파이어폭스, 사파리 등 브라우저로 G-SSL 인증서 기반 HTTPS 서비스를 정상 이용할 수 없다.
■ 3년 전 '행정자치부' 때부터 모질라 측 검증 추진
지난 2015년말부터 행정안전부(당시 '행정자치부')는 G-SSL 인증서를 MS 외 다른 업체의 브라우저 인증서 저장소에 탑재시키기 위한 절차를 밟기 시작했다. 그 일환으로 모질라의 CA인증서프로그램(CA Certificate Program, 이하 '프로그램')을 신청했다. [신청·검증이력1 보기]
CA 역할을 하려는 조직이 모질라의 프로그램을 신청하면 이후 검증 절차가 무난하게 진행되더라도 최종 통과하기까지 통상 2년 이상 기간이 걸린다고 알려져 있다. 이 검증을 통과하더라도 PC 및 모바일용 모질라 파이어폭스 브라우저 환경에 한해 문제가 해결되는 것이었다.
모질라 프로그램을 통한 실제 검증 작업은 2015년 11월 신청 후 2016년 초부터 2018년 초까지 약 2년간 진행됐다. 행정안전부 산하기관인 한국지역정보개발원(KLID)의 담당자가 실무를 맡았다. KLID가 실질적인 G-SSL 인증서 발급 및 관리체계 운영 조직이었다.
2년간 KLID 실무자 3명이 릴레이로 프로그램에서 단계별로 요구하는 문서를 제출하고 확인받는 작업을 반복했다. 당시 상급기관인 행정안전부 담당 공무원은 검증 통과를 낙관하고 있었다. 그러나 현재 상황은, 통과는 커녕 그간 밟아 온 검증 자체가 기각 처리된 상태다.
모질라는 한국 정부의 G-SSL 인증서 발급 및 관리 체계가 프로그램 검증을 위해 내걸고 있는 '루트저장소정책(Root Store Policy)' 등 준칙의 기준에 맞지 않는다고 판단했다. 이런 판단을 낳게 한 일련의 몇 가지 사건이 발생했다. 그 이력을 아래에 정리했다.
■ 사건1: 2016년 2월 모든 GPKI 인증기관 인증서 검증 신청 기각
첫 번째 사건은 2016년 2월부터 2017년 상반기까지 진행된 KLID의 최초 검증 신청 내용을 처리하면서 발생했다.
최초 신청 내용상 행정자치부는 부처 스스로를 포함해 교육부, 대검찰청, 병무청, 대법원, 5개 인증기관(CA)이 발급하는 인증서를 위한 '최상위(Root) CA' 역할을 수행하는 조직으로 제시됐다. 이는 전자정부법을 근거로 하는 '행정전자서명 인증체계(GPKI)'를 따른 것이었다.
GPKI는 행정자치부가 자신을 비롯해 5개 '하위(sub) CA'의 인증서를 최종적으로 보증하는 체계다. 행정자치부 측은 부처가 Root CA 역할로 서명한 인증서가 모질라의 검증을 통과하면, 5개 기관의 sub CA의 인증서가 모두 파이어폭스 환경에서 효력을 얻을 수 있을 거라 기대했을 것으로 짐작된다. KLID 측의 최초 신청시 검증을 요청한 대상이 행정자치부 Root CA로 표현된 곳 하나뿐이었던 이유다.
하지만 모질라의 루트저장소정책은 GPKI 체계상의 행정자치부와 같은 역할을 일반적인 Root CA라 보지 않았다. sub CA 중 행정자치부는 GPKI 기반의 인증서를, 교육부는 EPKI라는 별도 인증체계 기반의 인증서를 발급하기 때문에, 이들은 별개의 Root CA로 여겨진다. 그리고 이처럼 다른 Root CA의 상위에서 그 CA를 인증하는 역할은 '수퍼(Super) CA'라는 표현으로 별도 취급된다.
모질라 측은 수퍼 CA 하나만이 아니라 실질적인 Root CA 역할을 하는 모든 기관이 개별적으로 검증을 받든지, 현행 GPKI 구조를 재설계해야 한다고 지적했다. KLID와 행정자치부 입장에서, 법이나 시행령 개정을 전제하는 GPKI 재설계는 쉽지 않은 선택이었다. 결국 KLID는 행정자치부와 교육부가 각각 독립적인 CA로서 개별 검증을 받기로 했다.
■ 2017년 6월 행정자치부 인증서만으로 검증 재신청
KLID는 2017년 6월 행정자치부의 G-SSL인증서 검증을 재신청했다. [신청·검증이력2 보기] 당시 KLID 측 담당자는 이를 신청하면서 "교육부는 웹트러스트(WebTrust) 인증을 마치는 2017년 12월 인증서 검증을 신청할 것"이라고 언급했다. 웹트러스트 인증은 어떤 CA의 운영 및 관리능력에 대한 인증제도다. 외부감사를 통해 신뢰서비스원칙(Trust Services Principles)이란 기준을 통과한 조직에 인증이 부여된다.
행정자치부는 2017년 7월 행정안전부로 개편됐다. 이후 2017년 8월부터 KLID는 행정안전부가 CA 자격으로 발급한 G-SSL 인증서의 테스트 페이지를 개설하고 모질라 측 검증 담당자와 실제 온라인 테스트를 진행했다. 더불어 2017년 11월 모질라의 프로그램에 신청한 CA가 갖춰야 하는 인증서정책(CP) 및 인증업무준칙(CPS) 문서의 공식 영어판을 작성해 제출했다.
KLID의 재신청 내용에선 먼젓번에 sub CA로 포함됐던 대법원, 대검찰청, 병무청에 관한 언급이 빠졌는데, 몇 가지 이유가 있었다. 이 세 기관이 모질라 측 프로그램 검증 절차상 요구되는 CP 및 CPS 문서를 제출하지 않고, 외부기관 감사도 받지 않는 것을 전제로 sub CA 목록에 들어 있었기 때문이었다. 하지만 모질라는 어떤 지위의 CA든 인증서를 발급하는 주체는 검증 대상이라고 못박고 있다.
이후 2018년 2월까지 KLID의 재신청 검증 절차가 지속됐다. 행정안전부의 담당 공무원은 지난해 12월까지 이 과정이 순조롭게 진행되면 올해 검증을 통과할 수 있을 것으로 봤다. 당시 관련 문의에 KLID 실무자가 모질라를 포함한 브라우저 업체별 인증서 검증 업무를 진행 중이며, 이를 마치면 모질라를 시작으로 구글, 애플 등의 브라우저에까지 G-SSL 인증서를 탑재할 수 있을 것이라 답했다. [관련기사]
■ 사건2: 2018년 3월 행정안전부·교육부 인증서 부실관리 실태 노출
두 번째 사건은 이렇게 요약된다. 모질라는 올해 초부터 대략 3월까지 검증 절차를 진행 중이었다. 그런데 올해 4월초 행정안전부와 교육부, 두 정부부처의 인증서 발급 관리가 부실했음이 드러났다. 모질라 측은 4월 중순 한국 정부에 해명을 요구했고, 결국 8월 검증 절차를 중단했다.
이 사건을 자세히 보면, 먼저 지난 3월 구글의 관련 온라인 포럼에 크롬65 정식판으로 확인한 한국 정부부처 인증서가 규격에 맞지 않게 발급됐고, 정상 동작하지 않는다는 제보가 들어갔다. 제보에 다음 두 가지 문제가 지적됐다. [구글 포럼 제보 바로가기]
첫째, 행정안전부 행정전자서명인증센터 사이트 인증서가 유효한 '온라인인증서상태프로토콜(OCSP)' 응답을 제공하지 않는다는 점. OCSP는 SSL 인증서가 정상적으로 생성, 갱신, 폐기된 것인지 확인할 때 필요하다.
둘째, 교육부 행정전자서명인증센터 사이트 인증서가 HTTP 인증서해지목록(CRL) 엔드포인트 및 OCSP HTTP 엔드포인트 정보를 갖춰 발급되지 않았다는 점. CRL은 효력이 없어진 인증서의 목록으로, CA가 주기적으로 발행하는 정보다.
쉽게 말해 이 제보는 CA가 인증서 발급과 관리라는 기본 업무를 제대로 수행하지 못하고 있다는 의미로 해석될 수 있는 내용이다. 이후 논의는 크롬 브라우저 사용자들을 보호하려면 이 행정안전부와 교육부의 SSL 인증서를 신뢰해선 안 된다는 쪽으로 이어졌다.
모질라와 구글은 이런 이슈에 비슷한 대응을 취할 가능성이 있다. 업계에 따르면 구글 소속 엔지니어 라이언 슬리비(Ryan Sleevi)는 오랫동안 모질라의 인증서 검증 프로그램에 관여해 온 'Mozilla crypto contributor'였다. 그리고 크롬 브라우저는 리눅스같은 OS에서 모질라 인증서 저장소를 사용하고 있기도 하다.
따라서 이는 모질라 프로그램의 검증 절차를 밟고 있는 행정안전부에 악재였다.
■ 사건3: 2018년 4월 인증서 부정발급 실태 노출
행정안전부의 인증서 신뢰성 문제는 여기에서 끝나지 않았다. 지난 4월초 모질라의 온라인 포럼인 '버그질라'에는 또다른 두 가지 인증서 관련 문제가 추가로 제보됐다. [모질라 버그질라 제보 바로가기]
첫째, 행정안전부와 교육부가 도메인검증을 하지 않은 인증서를 발급해 왔다. 둘째, 교육부가 교육기관용으로 각 기관별 도메인이 아닌 최상위도메인(TLD) 범주를 지정한 '와일드카드' 인증서를 발급해 왔다. 둘 다 만들어져서도 사용돼서도 안 될 형태의 인증서가 만들어졌고, 그 인증서 자체뿐아니라 그 존재를 허용한 CA의 인증관리 신뢰성을 손상시키는 일이 벌어진 것이었다.
행정안전부는 이 내용이 국내 언론에 보도되자 즉각 해명자료를 배포했다.
행정안전부는 자료에서 "교육부 산하의 경남지역교육청에서 기준에 맞지 않게 발급한 인터넷 보안용 인증서와 관련해, 행안부와 교육부는 문제가 된 인증서를 6일 즉시 폐기, 교육부에서 발급된 모든 인터넷 보안용 인증서에 대해 긴급점검을 실시하고 있다"고 밝혔다.
부처는 또 "인증업무에 대한 각 행정·공공기관의 이해도를 높이고자 정기적으로 담당자 교육을 실시하고 인증기관간 협의회도 운영하고 있으며, 매년 국제기준에 부합하는지 확인받는 등 행정전자서명의 신뢰도를 유지해 오고 있다"고 강조했다.
당시 문제가 된 인증서들은 곧 폐기됐다. 실제 사용되면서 문제를 일으키지는 않았다는 뜻이다. 하지만 규격에 맞지 않는 인증서 발급과 사용 자체가 당장 모질라의 CA인증서프로그램 신청 내용을 검증하는 담당자에게 부정적인 인상을 주기엔 부족하지 않았을 것으로 보인다.
■ 웹트러스트 인증 감사법인 신뢰성에도 문제제기
행정안전부와 교육부가 웹트러스트 인증을 받기 위해 동일한 감사법인을 거쳤다는 사실도 원초적인 문제로 작용했다.
버그질라에 제보된 인증서 관련 문제 가운데 좀 더 심각한 것은 교육부의 와일드카드 인증서 발급 사건이었다. 이는 교육부 또한 웹트러스트 인증을 받은 시점에 발생했다. 교육부는 '딜로이트안진'을 통해 인증을 위한 외부감사를 받았다.
딜로이트안진은 문제가 있었을 교육부 CA를 대상으로 문제가 없었다고 판정한 셈이었다. 감사 결과에 신뢰성 문제가 제기됐다. 역시 딜로이트안진의 감사를 받은 행정안전부의 감사 결과와, 나아가 그 CA의 인증업무 수행능력에도 같은 의심이 작용하게 됐다.
이런 상황을 인지한 모질라 측은 일단 4월 중순께 한국 정부 측에 해명을 요구했다. 이후 KLID 또는 한국 정부로부터 어떤 공식 해명이 있었는지는 불분명하다. 다만 모질라의 검증 업무를 수행해 온 캐틀린 윌슨 프로그램 매니저는 지난 8월 행정안전부 대상 자료요청과 검증상황을 게시해 온 버그질라 사이트의 글타래 상태를 'Won't fix'로 변경했다.
당시 윌슨 매니저는 "이 신청을 'WONTFIX'로 마감하겠다"며 "이 CA가 모질라 루트저장소정책 및 CA브라우저포럼 기본요건(BR)을 온전히 따르면서 새로운 루트로 포함해 달라는 새로운 신청을 제출하는 것은 환영한다"고 밝혔다.
관련기사
- 크롬 주소창에서 '보안 연결' 문구 빠졌다2018.12.27
- 모질라, 루트저장소 정책 개정…SSL인증서 수용절차 강화2018.12.27
- 구글 크롬의 주소창 낙인, 어떻게 봐야 할까2018.12.27
- 정부, 공공사이트 HTTPS 보안경고 없앤다2018.12.27
여기서 WONTFIX. 즉 'Won't fix'는 일반적으로 소프트웨어 버그 제보와 해결을 위한 의사소통 공간인 버그질라에서 '제보된 해당 내용(문제)을 고치지 않겠다'는 표시다. 윌슨 매니저는 이 표시를 함으로써 과거 3년간 진행된 절차를 무효화한 셈이다.
또 윌슨 매니저가 말한 CA브라우저포럼 BR은 여러 브라우저별 인증서 저장소 검증을 위한 최저 기준선 같은 역할을 한다. 여기에 웹트러스트 인증이 포함된다. 정부가 검증을 재신청할 경우, 부실감사 이력을 남긴 딜로이트안진이 아니라 다른 감사법인이 필요할 수 있다.