MinProtocol 및 CipherString을 설정한 후 openssl에서 Ciphersuites를 구성해야 합니까?

MinProtocol 및 CipherString을 설정한 후 openssl에서 Ciphersuites를 구성해야 합니까?

현재 OpenSSL 버전

OpenSSL 1.1.1d  10 Sep 2019 (Library: OpenSSL 1.1.1g  21 Apr 2020)

현재 openssl.cnf구성

파일 상단에

openssl_conf = default_conf

파일 하단에

[default_conf]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=1

Ciphersuites지시문이 설정되지 않았습니다 .

지원되는 암호 목록이 구성과 다릅니다.

그러나 를 사용하여 활성화된 암호를 요청하면 openssl ciphers -s -v다음과 같은 암호를 얻습니다.

DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
ECDHE-ECDSA-AES128-SHA  TLSv1 Kx=ECDH     Au=ECDSA Enc=AES(128)  Mac=SHA1
ECDHE-RSA-AES128-SHA    TLSv1 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA1
DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1

설정 을 정의해야 합니까 Ciphersuites, 아니면 openssl ciphers -s -v어떤 면에서는 신뢰할 수 없습니까?

선적 서류 비치

-에스지원되는 암호(보안 수준과 일치하는 암호, 최소 및 최대 프로토콜 버전)만 나열합니다.

SecLevel 1은 SSLv3 및 TLSv1을 허용하지만 MinProtocol은 허용하지 않습니다.

출처 :

답변1

대부분의 암호 제품군은 둘 이상의 프로토콜과 호환됩니다.

완전히 분리된 TLS 1.3과 수십 년 동안 중단되어 더 이상 OpenSSL 1.1.0(2016) 이상에서 구현되지 않는 SSL 2를 제외하고 대부분의 SSL/TLS 암호화 제품군은 둘 이상의 프로토콜 버전에서 사용할 수 있습니다. 연대순으로 발생한 것으로 생각하면, 이상한 정부 암호화폐(Fortezza)를 제외하고 SSL 3에 정의된 모든 암호화 제품군은 여전히 ​​TLS 1.0에서 사용되며, 여기에 1.0(주로 EC)에 정의된 새로운 암호화 제품군과 함께 의도적으로 약화된 ' 내보내기' 제품군(2006년에 이미 더 이상 사용되지 않음)은 1.1에서 계속 사용되며 새로운 제품군을 정의하지 않습니다. 1.2는 2008년 이전에 손상된 것으로 간주되었던 단일 DES와 많은 새로운 제품군(AEAD 및/또는 SHA2 사용)을 제외하고 1.1의 제품군 대부분을 유지합니다.

에 명시된 바와 같이SSL_CIPHER_description 매뉴얼 페이지이는 암호의 경우와 연결됩니다.

<프로토콜 버전>
TLSv1.2와 같이 암호화 제품군이 지원하는 최소 프로토콜 버전입니다. 일부 암호 모음은 이전 프로토콜 버전과 역호환되기 때문에 암호 모음이 처음 정의된 프로토콜 버전과 항상 동일하지는 않습니다.

'최소'에 주목하세요. DHE-RSA-AES256-SHASSL3 TLS1.0 TLS1.1 및 TLS1.2에서 사용할 수 있으므로 최소 버전은 SSL3입니다.

1.2의 이전 제품군을 사용하는 것은~ 아니다우선의또는 모범 사례특히 AEAD(첫 번째 GCM 및 CCM, 그 다음 ChaCha/Poly)를 사용하는 새로운 제품군은 적어도 2014년까지 게시되지 않았고 널리 구현되지 않은 encrypt-then-mac(RFC7366)이 없는 경우 더 나은 보안 속성을 갖기 때문입니다. AEAD는 이미 있었지만 OpenSSL에서 허용 및 지원되며 명령 출력에 ciphers이를 반영합니다.

그렇습니다. 1.2가 필요하다면 호환성이 거의 줄어들지 않고 암호화 제품군을 AEAD로 제한할 수도 있습니다.일부구현(예: 1.2를 지원하지만 새로운 AEAD 제품군이 아닌 이전 제품군에서만 지원되는 Java 7).

관련 정보