상세 컨텐츠

본문 제목

SWEET32 : TLS 64bit 생일공격(CVE-2016-2183) 발견!

국내외 보안동향

by 알약(Alyac) 2016. 8. 29. 09:52

본문

SWEET32 : TLS 64bit 생일공격(CVE-2016-2183) 발견!


개요


SWEET32 취약점은 공격자는 블록암호 SSL/TLS 중 특정한 설정환경에서 collision을 발생시킬 수 있는 취약점입니다. 기존의 64bit 블록암호 중에서 CBC 모드를 사용한다면 collision을 발생시킬 수 있습니다.  3DES 대칭암호의 암호스위트를 지원하는 SSL/TLS 프로토콜 모두(예 ECDHE-RSA-DES-CBC3-SHA) 해당 취약점의 영향을 받는 것으로 나타났습니다.


Redhat Enterprise Linux6,7이 내장하고 있는 OpenSSL 버전 중, DES암호의 우선순위는 AES-256, AES-128 다음으로 AES-128, AES-256사용을 중지해야만 DES 암호가 활성화 됩니다. 

 Redhat Enterprise Linux 5가 내장하고 있는 OpenSSL 버전 중 DES 암호의 우선순위는 AES-256, AES-128 사이에 위치하고 있어 AES-256 사용을 중지하면 DES 암호를 활성화 시킬 수 있습니다.  


블록암호화의 보안성은 암호화키 길이에 따라 좌지우지 됩니다. 그렇기 때문에 블록암호화에 대한 가장 효과적인 공격방법은 2^k 복잡도를 가지고 있는 비밀키의 공간을 검색하는 것입니다. 하지만 블록암호가 CBC모드를 사용한다면 블록길이 역시 보안성에 영향을 줍니다. 


CBC모드를 사용할 때, 동일한 키를 사용하여 2^(n/2) 블록을 암호화 한 후 생일공격을 하면 두개의 암호화된 블록들은 collision을 발생시킵니다. 이는 즉 동일한 값이 존재한다는 것입니다. 몇가지 조건들을 결합하면, 암호화 데이터 중 평문을 추측해 낼 수 있습니다. 



공격 실행


1) 우선 DES/3DES의 SSL/TLS중에서 유일하게 64bit 블록을 사용합니다. 앞에서 설명드렸던 것과 같이, 3DES를 포함하는 암호스위트의 우선순위는 다른 암호스위트들 보다 낮습니다. 


2) 64bit 암호화 블럭을 공격하려면, 최소한 32GB 이상의 암호문을 수집해야 합니다. 이것은 SSL/TLS 조건을 충족하는 동시에 하나의 세션에서 이루어져야 합니다. 그렇기 때문에 HTTPS의 긴 연결이 영향을 받을 수 있습니다. 


3) 다양한 상황에 따라 두 암호화 블럭 사이에서의 다른점만을 찾는 것은 실제 공격에 영향을 줄 수 없습니다. 그러나 다음과 같은 조건을 만족하는 경우, 공격이 가능합니다. 

- 동일한 비밀키가 중복되어 발송되었을 때

- 일부 평문을 알고있을 때 


4) 연구 논문에서 언급된 공격의 개념 증명 중, 몇몇 인증토큰이 전체 통신과정 중 서버와 클라이언트 이전에 전송되었다고 가정하였습니다. 이때 공격자는 공격당한 홈페이지에 악성 JavaScript를 운영하고, BruteForce공격을 통해 자격증명을 획득합니다. 



완화조치


1) SSL/TLS 설정 중 AES의 우선순위를 DES보다 높게 설정합니다. Linux6과 7에 내장되어 있는 OpenSSL버전은 이미 이렇게 설정되어 있습니다. 


2) Redhat Enterprise Linux 5에 내장되어 있는 OpenSSL버전 중, 3DES의 우선순위는 AES-256과 AES-128 중간이기 때문에, AES-256 암호스위트를 비활성화 시키면 안됩니다.


3) OpenSSL 서버를 사용할 때 AES-128과 AES-256 암호스위트를 비활성화 시키면 안됩니다. Redhat Enterprise Linux가 내장하고 있는 Apache 버전의 기본 암호화 알고리즘 중 DES/3DES 암호화 스위트보다 AES가 더 우선순위로 설정되어 있습니다.



해결방법


1) 이는 DES/3DES암호화의 설계문제로, 영향받는 Linux 5,6,7의 모든 암호 라이브러리(OpenSSL, NSS, GnuTLS)들의 암호 우선순위중 3DES를 가장 낮게 설정합니다. 

 

2) Linux5에서는 AES-256을, Linux6,7에서는 AES-128, AES-256을 활성화 시킵니다. 




출처 :

https://access.redhat.com/security/cve/CVE-2016-2183

https://sweet32.info/

관련글 더보기

댓글 영역