read

식목일입니다. 출근하니 인터넷이 전자정부 와일드카드 인증서때문에 시끌시끌하네요.

인증서는 전 세계를 대상으로하는 주민등록증이라고 할 수 있는데 정부에서 운영을 잘 해주었어야 한다고 생각합니다.

오늘의 사건에 대해서 쉽게 풀어보겠습니다.

인증서

인터넷 통신의 많은 부분이 프라이버시를 위하여 암호화 통신을 합니다. 인터넷으로 물건을 사고 송금을 하고 메세지를 보낼 때 통신 대상을 제외한 타인이 볼 수 없도록 되어있습니다. 그러면 이제 ‘내가 이야기하는 사람이 정말 내가 이야기하려는 사람이 맞나’만을 확인하면 안전한 통신을 할 수 있습니다.

“저는 갑돌이와 이야기 하고 싶어요. 갑돌이에게만 돈을 보내야해요” 라는 을순이가 “안녕 나야, 갑돌이, 나 지금 돈이 필요한데 백만원만 보내줄래?”라는 메세지를 받는다고 돈을 부쳐서 발생하는 사건들은 잘 아시지요? 인증서는 이 때 주민등록증처럼 제시할 수 있습니다. 이 인증서는 그에 상응하는 암호키를 가진 사람만 암호화 통신에서 사용할 수 있어요. 즉, 암호화 통신을 할 때 받은 인증서를 보면 상대방이 누군지 확실히 알 수 있는겁니다. “아, 너 갑돌이 맞구나. 무슨일이야, 백만원 보내줄께”

인증기관 (CA: Certificate Authority)

을순이가 너그럽다는 것을 안 병태는 메신저상에서 을순이를 속이려고 해요.

“을순아 나 갑돌인데, 교통사고를 냈어. 급히 백만원이 필요해.”

을순이가 상대방의 인증서를 봤더니 이름이 갑돌이인거에요. 을순이는 너그럽기는 했지만 꼼꼼한 성격이었기 때문에 인증서의 발급기관을 확인합니다. 보니까 발급기관이 대한민국이 아니고 버뮤다라고 되어 있네요?

“너 갑돌이 아니구나, 이 얌생이! 사기치지말아” 하면서 을순이는 메신저를 꺼버리게 되었습니다.

인증서 자체는 누구나 만들 수가 있어요. 그럼 그것을 어떻게 믿을까요? 대한민국이 발급한 주민등록증만 믿는 것 처럼, 인증서 역시 신뢰된 소수의 기관이 발급한 인증서만을 믿도록 인터넷은 구성되어 있어요.

인증서를 발급해 주는 기관을 CA라고 합니다. CA는 인증서 발급 요청을 받으면 요청받은 인증서에 인감도장을 찍어줘요. 즉 전자 서명을 붙여주는 것이에요. 사용자는 그 전자 서명을 보고 “나, 이 CA는 믿고 있어. 그러니까 이 CA의 인감도장이 찍혀 있으니 이 인증서도 믿을래” 라고 생각하게 되는 것이에요. 그래서 인증기관의 역할은 굉장히 중요하고, 인증기관은 자신의 신뢰도를 유지하기 위하여 노력을 하고 있죠.

사고치는 인증기관들

인증기관도 사람이 운영하기 때문에 실수도 있을 수 있고, 의도적으로 사고를 칠 수도 있습니다. 병태가 정식으로 갑돌이 인증서를 발급받을 수 있다면 어떻게 되겠어요?

그런데 그것이 실제로 일어났습니다.

  • 2017년 1월에 Symantec사가 도메인 소유자가 아닌 사람에게 인증서를 발급해준다는 리포트가 나옵니다. (이 사건에도 우리나라가 등장합니다. 해당 인증서는 Symantec이 인증한 기관인 우리나라의 Crosscert사에서 발급한 것입니다. 으음..) 관련정보
  • 그래서 사람들이 Symantec사를 들여다보았더니, Crosscert이외에도 다른 여러 기관에 특별한 관리감독 없이 인증서를 발급할 권리를 주었고, 그 결과로 발급된 인증서들의 수가 30,000에 이른다고 합니다.

이 사건이 어떻게 끝났냐고요? 구글과 모질라사는 시만텍사가 발급한 인증서를 모두 취급정지하였고 (관련기사)그 여파로 시만텍사는 자사의 인증서 사업부를 Digicert사에 매각하게 됩니다.

오늘의 사건

우리나라에도 전자정부 서비스를 위하여 인증기관이 있습니다.

행정전자서명 인증관리센터 (GPKI: Government Public Key Infrastructre) https://www.gpki.go.kr

이 GPKI에서 교육부에 아래의 인증서를 발급하였습니다. 인증서는 2015년 6월부터 2017년 9월까지 유효한 인증서이며, 발급기관(Issuer)이 대한민국 정부(Government of Korea)의 GPKI라고 명시되어 있죠. Subject를 보면 support.gne.go.kr을 대표할 도메인으로 만든 것입니다.

문제의 인증서

문제는 이 인증서가 support.gne.go.kr 말고도 다른 여러 도메인을 대표하고 있고, 그 안에 *.co.kr*.go.kr, *.or.kr등이 포함되어 있다는 것입니다.

문제의 인증서가 대표하는 도메인들

그러면 이 인증서를 탑재한 사이트는 https://president.go.kr(청와대), https://kait.or.kr(한국정보통신진흥협회), https://lgcns.co.kr(LGCNS) 등을 자처할 수 있게 됩니다. DNS를 이용한 피싱이나 중간자공격(Man-In-The-Middle)등이 가능해지는 등 인터넷상의 보안 사고의 가능성이 열리게 되는 거에요.

CA/Browser 포럼은 인증기관이 이런 문제가 있을만한 와일드카드 도메인의 발급 요청을 허락하여서는 절대로 아니된다(MUST NOT)고 규정하고 있습니다. (Baseline Requirements 문서의 3.2.2.6 Wildcard Domain Validation 참고) *.mycompany.co.kr은 발급해 줄 수 있으나, *.co.kr은 안된다는 거에요.

인증기관 업무의 중요성이 간과되었기에 발생한 일일 것이라고 생각합니다. 오늘 인터넷에 회자되어서 그렇지 이것은 과거에 벌어진 일이고 위의 인증서는 이미 만료되었습니다. 그러나 다른 인증서들에 문제가 없는지 점검하여 문제가 있다면 폐기하고, 유사한 일이 다시 생기지 않도록 앞으로 잘 운영해 나가는 것이 중요하겠죠.

잘못된 인증서의 발급을 어떻게 알 수 있었나요

인증서 운영의 투명화를 위하여 여러 인증기관은 인증서를 발급할 때에 인증서 투명 로그 (Certificate Transparency Log)에 발급한 인증서를 등록하고 있습니다. 이번 사건과 같이 잘못된 형태의 도메인에 대해서 인증서가 발급이 되는지, 혹은 내 회사 도메인에 대해서 다른 제3자가 발급을 하는지에 대한 모니터링이 가능합니다.

또한 브라우저마다, 인증서를 투명하게 공개하지 않은 인증서에 대해 경고를 하는 기능이 탑재될 예정에 있습니다.

잘못된 인증서를 슬그머니 발급하려고 해도 이제 안돼요.

blog ssl tls work certificate transparency GPKI

Blog Logo

양철웅

Chul-Woong Yang


Published