암호 스위트(Cipher Suite)는 SSL/TLS 프로토콜에서 사용하는 암호화 기법의 조합을 나타낸다. 암호 스위트는 클라이언트와 서버 간의 통신에서 사용되며, SSL/TLS 핸드셰이크(handshak) 과정에서 어떤 암호화 기법을 사용할 것인지 협상한다.
[목차]
1) 암호 스위트(Cipher Suite) 알고리즘 종류
2) 대표적인 암호 스위트(Cipher Suite)의 종류
암호 스위트(Cipher Suite)란?
암호 스위트(Cipher Suite)란 SSL/TLS 프로토콜에서 사용하는 대칭키 암호화와 공개키 암호화, HMAC 등의 암호화 기법을 조합한 것을 말한다. 여러 가지 암호화 기법을 조합하여 암호 스위트를 구성할 수 있으며, 각 암호 스위트마다 강도가 다르다.
1) 암호 스위트(Cipher Suite) 알고리즘 종류
- 대칭키 암호화 알고리즘
- AES (Advanced Encryption Standard)
- 3DES (Triple Data Encryption Standard)
- RC4 (Rivest Cipher 4)
- 공개키 암호화 알고리즘
- RSA (Rivest–Shamir–Adleman)
- DHE_RSA (Diffie-Hellman Ephemeral with RSA Signature)
- ECDHE_RSA (Elliptic Curve Diffie-Hellman Ephemeral with RSA Signature)
- ECDHE_ECDSA (Elliptic Curve Diffie-Hellman Ephemeral with ECDSA Signature)
- 해시함수 (HMAC 메시지 인증 코드(Message Authentication Code, MAC)에서 사용됨.)
- SHA-1, SHA-256, SHA-384
2) 대표적인 암호 스위트(Cipher Suite)의 종류
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_RSA_WITH_AES_128_GCM_SHA256
- TLS_RSA_WITH_AES_256_GCM_SHA384
- TLS_RSA_WITH_AES_128_CBC_SHA256
- TLS_RSA_WITH_AES_256_CBC_SHA256
- TLS_RSA_WITH_RC4_128_SHA
- TLS_RSA_WITH_RC4_128_MD5
3) 암호 스위트(Cipher Suite)의 구조
TLS_RSA_WITH_AES_128_CBC_SHA256
- TLS : 프로토콜 버전
- RSA : 서버 인증서 인증 알고리즘
- AES-128-CBC : 대칭키 암호화 알고리즘
- SHA-256 : MAC 알고리즘
4) 암호 스위트(Cipher Suite) 설정 방법
설정 방법은 어플리케이션 프로그램 별로 다양하며 아파치 웹 서버를 예를 들면 SSL/TLS 설정 파일을 수정하여 암호화 스위트를 구성할 수 있다. 아파치 웹 서버에서는 httpd.conf 또는 ssl.conf 파일에서 SSLCipherSuite 지시어를 사용하여 암호화 스위트를 설정할 수 있다.
- NULL 인증서, MD5 해시 함수 및 3DES 암호화를 사용하지 않도록 설정하는 방법
SSLCipherSuite HIGH:!aNULL:!MD5:!3DES
- ECDHE 기반의 암호화 스위트를 사용하고, 각각 다른 해시 함수와 대칭키 암호화 기법을 사용하여 암호화를 설정
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
5) EOL(end of life)
암호화 알고리즘의 EOL(End of Life)은 보안 취약점이나 기술적인 한계로 더 이상 유지보수되지 않는 상태를 말한다. SHA-1 2017년 이후 SHA-1은 더 이상 안전하지 않은 알고리즘이라고 인식되어, SSL/TLS 인증서에서 사용할 수 없도록 제한이 되었다. RC4는 2015년 이후 보안 결함이 발견되어, SSL/TLS에서는 사용하지 않도록 권장되고 있다. SSLv3는 2014년 POODLE 취약점이 발견되어 더 이상 사용되지 않는 암호화 프로토콜이다. DES와 MD5는 1990년대 이후로 권장되지 않고 있다. 구체적인 정보는 각 암호화 알고리즘의 제조사나 공식 웹사이트에서 확인해야 한다. 이외에도 더 많은 알고리즘이 EOL이 되거나 대체되고 있는 상황이기 때문에 최신 보안 표준을 참고하는 것이 좋다.
[암호 스위트(Cipher Suite) 검사 사이트]
https://www.ssllabs.com/ssltest/ - SSL Labs - SSL/TLS 연결을 분석하고, 보안 문제가 있는 암호화 스위트 및 프로토콜을 검색
https://www.ssllabs.com/ - Qualys SSL Labs SSL/TLS 연결 및 인증서를 평가하고, 취약점을 검색
https://cryptcheck.fr/ - CryptCheck HTTPS 서버의 암호화 구성을 검사하고, 취약한 암호화 스위트를 검색