소개
이 문서에서는 ESA(Email Security Appliance)의 TLS 암호화 연결에서 PFS에 대한 기본 설정을 구성하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
SSL(Secure Sockets Layer)/TLS(Transport Layer Security)에 대해 알고 있는 것이 좋습니다.
사용되는 구성 요소
이 문서의 정보는 AsyncOS for Email 버전 9.6 이상을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
ESA는 PFS(Perfect Forward Secrecy)를 지원합니다. PFS는 단명 비밀이 있는 대칭 암호화를 사용하는 채널을 통해 데이터가 전송되는 것을 의미한다. 하나 또는 두 호스트의 개인 키가 손상된 경우에도 이전에 기록된 세션의 암호를 해독할 수 없습니다.
그 비밀은 채널을 통해 전송되지 않는다. 대신 공유 암호는 DH(Diffie-Hellman) 문제와 함께 파생됩니다. 비밀은 설정된 세션 또는 키 재생성 시간 제한 동안에만 호스트 RAM(Random Access Memory)에 저장됩니다.
ESA는 키 교환을 위해 DH를 지원합니다.
구성
인바운드 - ESA가 TLS 서버 역할을 함
이러한 암호 그룹은 ESA에서 인바운드 SMTP(Simple Mail Transfer Protocol) 트래픽에 사용할 수 있으며 PFS를 제공합니다. 이 예에서 암호 선택은 HIGH 또는 MEDIUM으로 간주되는 암호 그룹만 허용하고, 키 교환에 EDH(Ephemeral Diffie-Hellman)를 사용하며, TLSv1.2를 선호합니다. 암호 선택 구문은 OpenSSL 구문 다음에 옵니다.
AsyncOS 9.6+에서 순방향 비밀성이 설정된 암호화:
"EDH+TLSv1.2:EDH+HIGH:EDH+MEDIUM:!LOW:!EXP:!aNULL:!RC4:!DSS:!SEED:!IDEA:!MD5:!PSK:!3DES:!SRP"
List:
TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(256) Mac=AEAD
DHE-RSA-CHACHA20-POLY1305 TLSv1.2 Kx=DH Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD
DHE-RSA-AES256-CCM TLSv1.2 Kx=DH Au=RSA Enc=AESCCM(256) Mac=AEAD
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-CCM TLSv1.2 Kx=DH Au=RSA Enc=AESCCM(128) Mac=AEAD
DHE-RSA-AES256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(256) Mac=SHA256
DHE-RSA-CAMELLIA256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=Camellia(256) Mac=SHA256
DHE-RSA-AES128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(128) Mac=SHA256
DHE-RSA-CAMELLIA128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=Camellia(128) Mac=SHA256
DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1
DHE-RSA-CAMELLIA128-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(128) Mac=SHA1
Kx(키 교환) 필드는 DH가 암호를 파생하는 데 사용됨을 보여줍니다.
ESA는 기본 sslconfig 설정(:ALL)으로 이러한 암호를 지원하지만 이를 선호하지 않습니다. PFS를 제공하는 암호를 선호하려면 sslconfig를 수정하고 EDH 또는 EDH+<cipher 또는 cipher group name>과 같은 조합을 암호 선택에 추가합니다.
- 기본 컨피그레이션을 검토합니다.
ESA> sslconfig
sslconfig settings:
Inbound SMTP method: tlsv1/tlsv1.2
Inbound SMTP ciphers:
RC4-SHA
RC4-MD5
ALL
2. 새 인바운드 암호 기본 설정을 구성합니다.
ESA> sslconfig
Inbound SMTP method: tlsv1/tlsv1.2
Inbound SMTP ciphers:
EDH+TLSv1.2
EDH+HIGH
EDH+MEDIUM
RC4-SHA
RC4-MD5
ALL
참고: 암호로서의 RC4와 MAC으로서의 MD5는 약하고 레거시(legacy)로 간주된다. SSL/TLS를 사용하지 마십시오. 특히 키 재생성 없이 데이터 볼륨이 더 큰 경우에는 더욱 그렇습니다.
인바운드에 대한 권장 sslconfig 설정
이 예에서는 일반적으로 강력하고 안전한 것으로 간주되는 암호만 허용하는 권장 컨피그레이션을 보여줍니다.
권장 인바운드 컨피그레이션에서는 RC4 및 MD5는 물론 EXP(Export), Low(LOW), IDEA, SEED, 3DES, DSS 인증서, aNULL(anonymous key exchange), PSK(pre-shared keys), SRP와 같은 기타 레거시 및 약한 옵션이 제거됩니다. 또한 키 교환 및 ECDSA(Elliptic Curve Digital Signature Algorithm)를 위해 ECDH(Elliptic Curve Diffie-Hellman)를 비활성화합니다.
- sslconfig에 다음 암호 문자열을 입력합니다.
EDH+TLSv1.2:EDH+HIGH:EDH+MEDIUM:HIGH:MEDIUM:!ECDH:!ECDSA:!LOW:!EXP:!aNULL:!RC4:!DSS:!SEED:!IDEA:!MD5:!PSK:!3DES:!SRP
sslconfig에 입력한 문자열로 인해 INBOUND에 대해 지원되는 다음 암호 목록이 생성됩니다.
TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(256) Mac=AEAD
DHE-RSA-CHACHA20-POLY1305 TLSv1.2 Kx=DH Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD
DHE-RSA-AES256-CCM TLSv1.2 Kx=DH Au=RSA Enc=AESCCM(256) Mac=AEAD
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-CCM TLSv1.2 Kx=DH Au=RSA Enc=AESCCM(128) Mac=AEAD
DHE-RSA-AES256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(256) Mac=SHA256
DHE-RSA-CAMELLIA256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=Camellia(256) Mac=SHA256
DHE-RSA-AES128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(128) Mac=SHA256
DHE-RSA-CAMELLIA128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=Camellia(128) Mac=SHA256
DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1
DHE-RSA-CAMELLIA128-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(128) Mac=SHA1
AES256-GCM-SHA384 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(256) Mac=AEAD
AES256-CCM TLSv1.2 Kx=RSA Au=RSA Enc=AESCCM(256) Mac=AEAD
AES128-GCM-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(128) Mac=AEAD
AES128-CCM TLSv1.2 Kx=RSA Au=RSA Enc=AESCCM(128) Mac=AEAD
AES256-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA256
CAMELLIA256-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=Camellia(256) Mac=SHA256
AES128-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA256
CAMELLIA128-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=Camellia(128) Mac=SHA256
AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1
AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1
CAMELLIA128-SHA SSLv3 Kx=RSA Au=RSA Enc=Camellia(128) Mac=SHA1
참고: 인바운드 트래픽에 대해 TLS 서버 역할을 하는 ESA는 현재 키 교환 또는 ECDSA 인증서에 대해 ECDHE(Elliptic Curve Diffie-Hellman Ephemeral)를 지원하지 않습니다.
아웃바운드 - ESA가 TLS 클라이언트 역할을 함
아웃바운드 SMTP 트래픽의 경우 ESA는 인바운드 기능 외에도 ECDHE 및 ECDSA 인증서를 지원합니다.
참고: ECDSA를 사용하는 ECC(Elliptic Curve Cryptography) 인증서는 널리 사용되지 않습니다.
아웃바운드 이메일이 전달되면 ESA가 TLS 클라이언트입니다. TLS 클라이언트 인증서는 선택 사항입니다. TLS 서버에서 ESA가 ECDSA 클라이언트 인증서를 제공하도록 요구하지 않을 경우 ESA는 ECDSA 보안 세션을 계속할 수 있습니다. TLS 클라이언트인 ESA에서 인증서를 요청하면 아웃바운드 방향에 대해 구성된 RSA 인증서를 제공합니다.
주의: ESA에 미리 설치된 신뢰할 수 있는 CA 인증서 저장소(시스템 목록)에는 ECC(ECDSA) 루트 인증서가 포함되어 있지 않습니다. 신뢰 ECC 체인이 확인 가능하도록 하려면 신뢰할 수 있는 ECC 루트 인증서를 사용자 지정 목록에 수동으로 추가해야 합니다.
PFS를 제공하는 DHE/ECDHE 암호를 선호하려면 sslconfig 암호 선택을 수정합니다.
- 현재 암호 선택 영역에 이 문자열을 추가합니다.
"EDH+TLSv1.2:ECDH+TLSv1.2:EDH+HIGH:EDH+MEDIUM:ECDH+HIGH:ECDH+MEDIUM"
아웃바운드에 대한 권장 sslconfig 설정
이 예에서는 일반적으로 강력하고 안전한 것으로 간주되는 암호만 허용하는 권장 컨피그레이션을 보여줍니다.
EDH+TLSv1.2:ECDH+TLSv1.2:EDH+HIGH:EDH+MEDIUM:ECDH+HIGH:ECDH+MEDIUM:HIGH:MEDIUM:!LOW:!EXP:!aNULL:!RC4:!DSS:!SEED:!IDEA:!MD5:!PSK:!3DES:!SRP
sslconfig에 입력한 문자열로 인해 OUTBOUND에 대해 지원되는 다음 암호 목록이 생성됩니다.
TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(256) Mac=AEAD
DHE-RSA-AES256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(256) Mac=SHA256
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(128) Mac=SHA256
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD
ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA384
ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(256) Mac=SHA384
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD
ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(128) Mac=AEAD
ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA256
ECDHE-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA256
DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1
DHE-RSA-CAMELLIA256-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(256) Mac=SHA1
DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1
DHE-RSA-CAMELLIA128-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(128) Mac=SHA1
ECDHE-RSA-AES256-SHA SSLv3 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA1
ECDHE-ECDSA-AES256-SHA SSLv3 Kx=ECDH Au=ECDSA Enc=AES(256) Mac=SHA1
ECDHE-RSA-AES128-SHA SSLv3 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA1
ECDHE-ECDSA-AES128-SHA SSLv3 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA1
AES256-GCM-SHA384 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(256) Mac=AEAD
AES256-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA256
AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1
CAMELLIA256-SHA SSLv3 Kx=RSA Au=RSA Enc=Camellia(256) Mac=SHA1
AES128-GCM-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(128) Mac=AEAD
AES128-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA256
AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1
CAMELLIA128-SHA SSLv3 Kx=RSA Au=RSA Enc=Camellia(128) Mac=SHA1
다음을 확인합니다.
다음 단계를 사용하여 ESA가 PFS 암호 그룹을 선호하는지 확인합니다.
- sslconfig를 실행하고 구성된 인바운드 및 아웃바운드 암호 문자열을 검토합니다.
- 암호 선택 항목에 DHE 기본 설정에 대한 EDH가 포함되어 있는지, 아웃바운드 트래픽에 대해 해당되는 경우 ECDH 항목이 포함되어 있는지 확인합니다.
- sslconfig에 표시된 결과 암호 목록을 검토하고 DHE 또는 ECDHE 암호 그룹이 RSA 키 교환 암호 그룹 앞에 나타나는지 확인합니다.
- TLS 연결을 테스트하고 원격 TLS 피어가 지원할 때 협상된 암호 그룹이 DHE 또는 ECDHE를 사용하는지 확인합니다.
문제 해결
ESA가 PFS 암호 그룹을 협상하지 않는 경우 다음 검사를 사용합니다.
- 구성된 sslconfig 암호 문자열에 인바운드 트래픽용 EDH와 아웃바운드 트래픽용 필수 EDH 또는 ECDH 값이 포함되어 있는지 확인합니다.
- 원격 TLS 서버 또는 TLS 클라이언트가 DHE 또는 ECDHE 암호 그룹을 지원하는지 확인합니다. 피어가 이를 지원하지 않는 경우 ESA는 컨피그레이션에서 여전히 허용하는 비 PFS 암호 그룹을 협상할 수 있습니다.
- 아웃바운드 ECDSA 기반 세션의 경우 피어에 ECDSA 클라이언트 인증서가 필요하지 않은지 확인합니다. ESA는 클라이언트 인증서가 요청될 때 아웃바운드 방향에 대해 구성된 RSA 인증서를 표시합니다.
- 아웃바운드 ECC 신뢰 검증의 경우, 필수 ECC 루트 인증서가 시스템 목록에 포함되지 않은 경우 사용자 지정 목록에 있는지 확인합니다.
관련 정보