TLS

코코아 (토론 | 기여)님의 2017년 4월 5일 (수) 00:47 판 (→‎개요)
리브레 위키에 SSL 연결됨
  • Secure Socket Layer

개요

HTTP 연결을 암호화해 신뢰성을 보장하고, 보안을 지켜내는 방법. 이 방법으로 연결하는 HTTP 연결은 HTTPS 연결이라고 부른다. 비대칭 암호화(공개키 암호화) 방식을 이용해 웹 브라우저가 "이 서버에서 온 것이 맞는가?"를 판단하여 중간자 공격(MITM)을 예방할 수 있다.

넷스케이프에서 SSL(Secure Socket Layer)이란 이름으로 상용화되었으며, TLS라는 이름으로 표준에 채택되었으나 선점효과로 SSL이라고 불린다.

인증서

SSL 연결에는 인증서가 쓰인다. 인증서의 권위에 따라 몇 가지로 구분된다.

  • DV (Domain Validation) : "이 도메인에 맞는 웹서버임을 인증"하는 인증서이다. 중간자 공격 방지에는 충분하지만, 도메인 소유만 인증되면 발급되기 때문에 허위 도메인에 발급된 인증서들이 문제가 되었다.
  • OV (Orgazination Validation) : "이 기관의 웹서버가 맞습니다"라는 인증서. 이걸 받으려면 실 소유자의 인증이 필요하며, 발급기관에서 보증하나 EV만큼 확실하진 않다.
  • EV (Extended Validation) : OV의 강화판. 인증 기관에서도 철저하게 관리하며 이걸 받은 사이트에 접속하면 웹 브라우저가 파비콘 자리에 소유자 이름을 띄워줘 확실한 표식을 제공한다. 어떤 느낌인지 궁금하면 은행 사이트에 가보면 된다.

개인 사이트 정도면 자체 서명 인증서를 사용해도 무방하나, SOHO 이상은 신뢰를 보장받기 위해 공신력 있는 인증기관(CA)의 서명을 받은 인증서를 사용한다. Root CA라고도 불리는 인증기관들은 자신들의 서명을 웹 브라우저에 탑재하며, 웹 브라우저는 탑재된 서명과 인증서의 서명을 대조하여 SSL 인증서들의 진위를 판별하고 있다.

인증기관이 허위 인증서를 발급하는 등 신뢰해주기 어렵다고 판단되면 웹 브라우저 개발주체들은 해당 인증기관의 Root CA 서명을 제거하여 인증서의 신뢰 판별을 중단하고, 신뢰를 잃은 인증기관의 인증서는 '안전하지 않음' 상태가 되거나 웹 브라우저에서 연결을 거부한다. 특히 모질라 파이어폭스가 까다롭다.

인증기관의 서명이 탑재되지 않은 대표적인 사례는 다음과 같다.

  • 한국인터넷진흥원(KISA) : 인증서 관리를 제대로 하지 않아 모질라 파이어폭스에 자신들의 CA 서명을 탑재하지 못하고 있다.[1] 또한 행정, 교육 등의 목적으로 타 부처가 별도로 하위인증기관을 두고 있는 데, 이들은 제3자 인증을 받지 못해서 신뢰를 받지 못한다.
  • StartCom : 중국 회사에 인수된 이후 허위 인증서 발급이 발각되어 구글 크롬과 모질라 파이어폭스에서 CA 서명이 빠졌다. DV는 무료로 발급하기 때문에 많은 수가 발급되어 있다.[2]
  • 시만텍(Symantac) : 2016년 ~ 2017년간 허위 인증서 발급이 탄로나 신뢰 상실 위기에 놓였다. 구글과 시만텍 간의 진실게임이 지속되고 있으며, 시만텍은 대한민국 등록대행 파트너인 한국전자인증이 무단 발급한 127개만 인정했으나[3], 구글은 3만개가 넘는 인증서가 허위 발급되었다고 주장했다.[4]

홈 서버에 SSL 적용

날이 갈수록 SSL의 필요성이 증대됨에 따라, 개인 VPS홈 서버에 SSL을 적용하는 사람들이 있다. 도메인 소유만 확인하는 DV의 발급이 까다롭지 않고 저렴한 것도 있지만, 무료로 DV를 발급해주는 프로그램이 있기 때문이다. StartSSL과 Let's Encrypt 2개가 있다.

StartSSL은 위에서 부정발급 사례로 소개되었던 StartCom의 프로그램이므로 이쪽 사용을 권장하진 않는다. 다만 Let's Encrypt보다 발급절차가 쉽고 인증 기간이 3년으로 길게 나오기 때문에 Let's Encrypt가 어렵다면 어쩔 수 없는 선택이라 하겠다.

Let's Encrypt는 자체적인 Root CA를 가지고 있는 프로젝트이지만, 웹 브라우저 호환성을 위해 IdenTrust의 협조를 받고 있다. 이 프로젝트의 특징은 리눅스/유닉스 서버에서 직접 인증 절차를 거쳐야 한다는 점과, 유효기간이 90일에 불과하다는 점이다.

각주