Sweet32 보안 및 TLS 1.2 버전 서비스, AES 256 암호화 통신 보안부문 2021-03-16 신달수 0 댓글 2 510 개요 SWEET32 취약점은 공격자는 블록암호 SSL/TLS 중 특정한 설정환경에서 collision을 발생시킬 수 있는 취약점입니다. 기존의 64bit 블록암호 중에서 CBC 모드를 사용한다면 collision을 발생시킬 수 있습니다. 3DES 대칭암호의 암호스위트를 지원하는 SSL/TLS 프로토콜 모두(예 ECDHE-RSA-DES-CBC3-SHA) 해당 취약점의 영향을 받는 것으로 나타났습니다. 공격 실행 우선 DES/3DES의 SSL/TLS중에서 유일하게 64bit 블록을 사용합니다. 앞에서 설명드렸던 것과 같이, 3DES를 포함하는 암호스위트의 우선순위는 다른 암호스위트들 보다 낮습니다. 64bit 암호화 블럭을 공격하려면, 최소한 32GB 이상의 암호문을 수집해야 합니다. 이것은 SSL/TLS 조건을 충족하는 동시에 하나의 세션에서 이루어져야 합니다. 그렇기 때문에 HTTPS의 긴 연결이 영향을 받을 수 있습니다. 다양한 상황에 따라 두 암호화 블럭 사이에서의 다른점만을 찾는 것은 실제 공격에 영향을 줄 수 없습니다. 그러나 다음과 같은 조건을 만족하는 경우, 공격이 가능합니다. 첫째, 동일한 비밀키가 중복되어 발송되었을 때이며 둘째, 일부 평문을 알고있을 때 입니다. 연구 논문에서 언급된 공격의 개념 증명 중, 몇몇 인증토큰이 전체 통신과정 중 서버와 클라이언트 이전에 전송되었다고 가정하였습니다. 이때 공격자는 공격당한 홈페이지에 악성 JavaScript를 운영하고, BruteForce공격을 통해 자격증명을 획득합니다. 완화조치 SSL/TLS 설정 중 AES의 우선순위를 DES보다 높게 설정합니다. 서버에 내장되어 있는 OpenSSL버전은 이미 이렇게 설정되어 있습니다. 서버에 내장되어 있는 OpenSSL버전 중, 3DES의 우선순위는 AES-256과 AES-128 중간이기 때문에, AES-256 암호스위트를 비활성화 시키면 안됩니다. OpenSSL 서버를 사용할 때 AES-128과 AES-256 암호스위트를 비활성화 시키면 안됩니다. 웹서버의 기본 암호화 알고리즘 중 DES/3DES 암호화 스위트보다 AES가 더 우선순위로 설정되어 있습니다. 해결방법 이는 DES/3DES암호화의 설계문제로, 영향받는 서버의 모든 암호 라이브러리(OpenSSL, NSS, GnuTLS)들의 암호 우선순위중 3DES를 가장 낮게 설정합니다. 서버에서는 AES-128, AES-256을 활성화 시킵니다. 지오유 처리 결과 서비스에서 운용하는 서버들이 TLS 1.0, TLS 1.1로 통신하지 않도록 비활성화해 놓은 상태입니다. 아래 웹브라우저에서 보시면, TLS 1.2로 통신하는 것을 보실 수 있습니다. 그 말은, Sweet32 취약성 공격은 발생하지 않는 환경으로 구성하여 서비스하고 있다는 뜻입니다. [ 그림. 서버에서 TLS 1.2 하위 버전은 지원하지 않겠다고 설정한 화면 ] [ 그림. 그룹웨어 서비스가 TLS1.2로 통신하는 화면 ]