인터넷 상 많은 서비스 및 시스템들이 5월 30일 오전 10시 48분(GMT)에 만료된 Sectigo(섹티고) 루트 인증서에 영향을 받아 정상적으로 작동하지 않는 상태임이 드러났다.
2017년 10월, Francisco Partners(프란시스코 파트너스)는 Comodo(코모도) CA를 인수하고, 2018년 11월 코모도 CA를 Sectigo(섹티고)로 리브랜딩했다. 이 과정에서 기존 '코모도'사의 루트 인증서 AddTrust External CA Root를 USERTrust RSA Certification Authority로 변경하기로 했으며, 기존 인증서는 예정대로 2020년 5월 30일에 만료되었다.
이에 따라 만료된 인증서에 있는 Sectigo 인증서 체인을 제공하는 TLS 서버와 통신하는, 브라우저가 아닌 오래된 클라이언트(특히 OpenSSL 1.0.x)가 영향을 받게 되었다.
라이언 슬리비(Ryan Sleevi)는 게시글을 통해 서버 운영자와 클라이언트 운영자(TLS 라이브러리 업그레이드 또는 AddTrust External CA Root를 제거) 관점에서 이 문제를 어떻게 해결할 수 있는지 설명한다.
사용자가 TLS 서버에 연결하면, 서버는 클라이언트에게 ID를 증명하는 인증서를 보낸다. 클라이언트는 신뢰하는 서버 인증서부터 루트 인증서까지 인증서 체인을 구축해야 한다. 클라이언트의 해당 체인 구축을 돕기 위해 서버는 자체 인증서 외에 한 개 이상의 중간 인증서를 보내야 한다.
이 인증서 시퀀스는 2000년에 만들어진 AddTrust External CA Root라는 다른 루트에 대한 체인을 형성하고, 이는 많은 클라이언트 플랫폼에서 신뢰한다. 또는 오늘 만료되기 전에 신뢰를 받았다.
다행히도 잘 작성된 인증서 유효성 검사기를 가진 모던 클라이언트는 인증서 만료에 영향을 받지 않는다. 이들은 USERTrust RSA 인증 기관 루트를 신뢰하므로 해당 루트에 체인을 구축한 후, 서버가 만료된 중간 인증서를 보냈다는 사실을 무시한다.
하지만 OpenSSL 1.0.x나 GnuTLS를 사용하는 다른 클라이언트에는 문제가 발생할 수 있다. USERTrust RSA 인증 기관 루트를 신뢰하고 원하는 경우 체인을 구축할 수 있다 하더라도, AddTrust External CA Root에 체인을 구축해 만료된 인증서 오류로 인해 유효성 검사가 실패하게 된다.
서버 운영자가 해당 문제점을 수정하기 위해서는 기본적으로 인증서 체인에서 AddTrust External CA Root에서 발급한 중간 인증서를 제거해야 한다.
SSLMate에서 인증서를 받으면 걱정할 필요가 없다. AddTrust External CA Root 없이 체인을 제공하도록 SSLMate를 구성했기 때문이다. 인증서가 갱신됨에 따라 SSLMate 사용자들은 새 체인을 받았고, SSLMate 인증서 수명이 1년까지 연장되어 이전 체인이 중간 만료되기 전에 만료되었다.
하지만 서버가 다른 소스의 Sectigo 인증서를 사용한다면 걱정할 필요가 있다. ‘What’s My Chain Cert?’ 사이트를 통해 서버가 영향을 받는지 신속하게 테스트해야 한다. 서버가 정상이면 ‘올바른 체인’이라고 표시되고, 만료된 중간 인증서를 전송하는 경우에는 ‘만료된 인증서를 포함한 신뢰할 수 있는 체인’으로 표시되면서 만료되지 않은 올바른 체인을 다운로드할 수 있는 링크를 제공한다.
클라이언트 운영자가 해당 문제를 해결하기 위해서는 모든 라이브러리를 최신 상태로 유지하고, GnuTLS와 같은 복잡한 TLS 구현을 사용하지 않아야 한다. 그러나 여전히 OpenSSL 1.0.x가 일반적으로 사용되고, 데비안 Stretch까지만해도 curl이 OpenSSL을 사용했다. 그리고 데비안과 우분투에서 사용하는 패키지 관리자인 APT는 GnuTLS와 연결된다.
다행히도 OpenSSL 1.0.x 및 GnuTLS(적어도 데비안에서)는 AddTrust External CA Root의 루트가 로컬 트러스트 저장소에 있는 경우 만료된 중간 인증서에서만 중단된다. 그렇지 않은 경우 USERTrust RSA 인증 기관에 체인을 구축한다. 데비안에서는 다음과 같은 방법으로 신뢰 저장소에서 해당 루트를 제거할 수 있고, 아마 우분투에서도 비슷하게 작동할 것이다.
1. /etc/ca-certificates.conf 를 편집하고, mozilla/AddTrust_External_Root.crt 전에 bang/!를 삽입
2. update-ca-certificates 실행 페도라와 RHEL에서의 해결법은 Christian Heimes의 트윗 쓰레드를 참고하면 된다.
★정보보안 대표 미디어 데일리시큐!★