
저는 일부 웹사이트를 관리하고 있는데 그 중 하나는 보안 등급이 낮습니다(Sec Scorecard에서). 관리되는 서버가 있어서 IT 담당자에게 도움을 요청했지만 이 문제를 좀 더 이해하고 싶습니다.
문제는 다음과 같은 오래된 TLS1.0 및 TLS1.1 암호 제품군이 있다는 것입니다.
TLS_RSA_WITH_IDEA_CBC_SHA (0x0007)
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_3DES_EDE_CBC_SHA
내 첫 번째 생각은 OpenSSL 구성 파일에 있어야 한다는 것입니다. 그러나 몇 가지 튜토리얼 후에는 Apache 구성을 참조하는 것 같습니다. ( httpd.conf
및 가상 호스트)에는 암호화 제품군이 명시적으로 설정되어 있지 않습니다. 하지만 포함된 내용에는 httpd-ssl.conf
뭔가가 있습니다.
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder on
SSLCipherSuite ECDH+AESGCM:ECDH+CHACHA20:ECDH+AES256:!LOW:!MEDIUM:!3DES:!aNULL:!eNULL:!ADH:!DSS!EXP:!MD5:!PSK:!RC4:!SRP
현재 내가 이해하지 못하는 것: 이곳이 올바른 장소인가? 아마도 아닐 수도 있고 왜 다르게 읽힐 수도 있습니다.
ciphersuite.info에서 위의 첫 번째 항목은 IANA 이름(?)이고 OpenSSL 이름이 있다는 것을 읽었습니다. 하지만 ECDH+AESGCM
예를 들어 무엇입니까?
다음에 살펴볼 위치에 대한 지침이 필요할 수 있습니다. 복사하여 붙여넣는 정보를 원하지 않지만 이 주제에 대해 좀 더 자세히 이해하세요. 하지만 저는 보안이나 주요 IT 담당자가 아니기 때문에 300페이지 분량의 책을 읽지 않는 것을 선호합니다. :-/
답변1
SSLCipherSuite
사용해야 하는 암호화 알고리즘을 설정하기 위한 올바른 지시어입니다 . TLS 1.2에서는 네 가지 알고리즘의 조합(암호 모음이라고 함)을 설정해야 합니다.
- 클라이언트와 서버 간에 공유 비밀을 설정하는 데 사용되는 키 교환 알고리즘입니다. 그런 다음 양 당사자는 비밀에서 대칭 암호화를 위한 키를 파생할 수 있습니다.
- 키 교환을 위한 서명 알고리즘입니다.
- 전송되어야 하는 데이터를 실제로 암호화하고 해독하는 대칭 키 알고리즘입니다.
- 메시지 인증 코드를 통해 메시지의 무결성을 보장하거나 암호화된 보안 의사 난수 생성기를 구성하는 데 사용되는 해시 알고리즘입니다.
각 암호화 제품군에는 고유한 식별자가 있습니다.IANA를 통해 등록됨그리고 TLS_
. 예를 들어 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
다음을 의미하는 것이 있습니다 .
- 키 교환 알고리즘은 DHE, 즉 임시 키를 사용한 Diffie-Hellman 키 교환입니다.
- 서명 알고리즘은 RSA입니다.
- 대칭 암호화 알고리즘은 GCM 모드에서 128비트 키를 사용하는 AES입니다.
- 해시 알고리즘은 SHA-256입니다.
구체적인 TLS 구현 공급자인 OpenSSL을 사용하면 다음을 통해 IANA 암호화 제품군을 선택할 수 있습니다."암호 목록"이라는 사용자 정의 형식. 이 형식은 ECDH+AESGCM
알고리즘 ECDH
(키 교환용)과 AESGCM
(대칭 암호화용)을 모두 포함하는 모든 암호 제품군을 나타내는 것과 같은 복잡한 선택 규칙을 지원합니다 . 명령을 사용하여 얻은 정확한 암호 제품군을 확인할 수 있습니다 openssl ciphers "ECDH+AESGCM"
. 내 경우에는 목록에 암호화 제품군 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
(또는 OpenSSL에서 부르는 대로 ECDHE-ECDSA-AES128-GCM-SHA256
)이 포함됩니다.
문자열 ECDH+AESGCM
자체는~ 아니다암호 제품군. 이는 암호화 제품군에 대한 OpenSSL 관련 선택 규칙입니다.
실제로는 보안 암호 제품군의 구체적인 목록을 사용합니다.Mozilla의 추천. OpenSSL 선택 규칙을 사용하면 실제로 의도하지 않은 암호화 제품군을 포함할 위험이 있습니다( openssl ciphers
위에서 언급한 명령을 사용하여 항상 결과를 확인할 수 있음에도 불구하고).