Logjam: TLS 취약점 (CVE-2015-4000)

업데이트됨 -

Red Hat 제품 보안팀은 DH (Diffie-Hellman) 키 교환 프로토콜을 사용하는 TLS 연결에 있어서 여러 문제를 인식하고 있습니다.

배경 정보

Diffie-Hellman 키 교환 프로토콜을 사용하는 TLS 연결에 취약점이 발견되었습니다. 이러한 취약점을 악용할 경우 중간자 공격이 되어 TLS 연결을 512 비트 수출 등급 암호화로 다운그레이드할 수 있습니다. 이 공격은 DHE_EXPORT 암호화를 지원하는 모든 서버에 영향을 미칩니다. 이 공격은 두 세트의 취약한 Diffie-Hellman 매개 변수 즉 Apache의 httpd 버전 2.1.5에서 2.4.7 버전 및 모든 OpenSSL 버전에서 사전 생성된 512 비트 소수에 의해 실행될 수 있습니다.

Logjam 연구 논문에서는 다음과 같이 취약한 DH 키 관련 문제를 다루고 있습니다:

  1. TLS 프로토콜에 DHE_EXPORT 암호화 제품군 또는 수출 등급 암호화 강도의 DHE 키 사용: 이러한 키의 크기는 512 비트이며 충분한 계산 능력 및 시간이 주어지기 때문에 해독될 수 있습니다. 이는 PFS (perfect-forward secrecy)의 경우 공격자가 트래픽을 기록하고 나중에 이를 해독할 수 있기 때문에 특히 더 문제가 됩니다.

특정 httpdsshd Apache 버전과 같이 일반적으로 사용되는 패키지에서 제공되는 사전 계산된 소수의 사용: 이 취약점을 이용하여 공격자는 소수를 사전에 계산한 뒤 계산된 소수를 사용하여 TLS 연결을 설정하기 위해 이러한 소수를 사용하는 모든 트래픽을 해독할 수 있습니다.

  1. DHE에서 DHE_EXPORT로 다운그레이드의 원인이 될 수 있는 TLS 프로토콜의 결함: 이 문제는 CVE-2015-4000에서 다루고 있습니다.

영향

위에 언급된 문제를 사용하여 다음과 같은 공격 시나리오가 나타날 수 있습니다:

  1. 취약한 DHE 연결의 오프라인 암호 해독
    이 공격에서는 서버가 기본적으로 512 비트 매개 변수로 Diffie-Hellman 키 교환을 사용해야 합니다. 이는 클라이언트와 서버 간의 통신을 기록할 수 있는 수동적인 네트워크 공격자가 통신을 해독할 수 있게 합니다.

  2. DHE_EXPORT 다운그레이드 및 TLS False Start 확장 오프라인 해독
    이 공격에서는 서버가 DHE_EXPORT 암호화 제품군을 지원하거나 비수출 DHE 암호화에서 512 비트 매개 변수를 사용해야 합니다. 클라이언트는 TLS False Start 확장을 사용하고 있어야 합니다. 이 상황에서 공격자는 클라이언트와 서버 간의 통신을 기록하고 이를 해독할 수 있습니다.

  3. DHE_EXPORT 다운그레이드 및 중간자가 서버 자격변경
    이는 이전 공격과 비슷하지만 TLS False Start 확장을 활성화할 필요가 없습니다. 대신 공격자는 클라이언트에 의존하여 핸드셰이크가 완료할 때 까지 오랜 시간 동안 대기해야 합니다. 이는 공격자가 핸드셰이크 프로세스 동안 연결 키를 계산하는데 몇 분이 소요되기 때문입니다.

해결 방법

SSL/TLS 서버

MITM 공격에서는 공격자가 클라이언트 대신 DHE_EXPORT 암호화 제품군을 사용하여 서버에 연결 시도합니다. 이는 DHE 및 DHE_EXPORT 암호화 제품군이 구성되는 방식에서 TLS 프로토콜 결함에 의해 발생합니다. 이러한 프로토콜 결함을 사용하여 서버가 DHE_EXPORT 암호화 제품군을 지원하는 경우에 MITM 공격이 발생합니다.

이 문제는 Red Hat Enterprise Linux 6 및 7에 탑재된 최신 버전의 openssl 패키지에는 영향을 미치지 않습니다. 이에는 DHE_EXPORT 암호화 제품군이나 기본 암호화 목록에 다른 수출 등급 암호화 제품군이 포함되어 있지 않기 때문입니다. (기본 암호화 설정을 사용하는 애플리케이션은 수출 등급 암호화 제품군을 사용하지 않지만 애플리케이션 별 설정을 통해 수출 등급 암호화 사용을 다시 활성화할 수 있습니다.) 이는 네트워크 서버로 openssl을 사용하는 경우에만 발생하는 점에 유의하십시오. 클라이언트 관련 문제에 대한 자세한 내용은 아래에서 참조하십시오.

Red Hat Enterprise Linux 7에서 openssl 패키지는 초기 출시 이후 이를 서버로 사용할 경우 수출 등급 암호화 제품군을 기본값에서 제외시켰습니다. Red Hat Enterprise Linux 6에서는 Red Hat Enterprise Linux 6.6의 일부로 출시된 RHBA-2014:1525 권고를 통해 변경되었습니다.

Red Hat Enterprise Linux 5에서는 기본 암호화 목록에서 수출 등급 암호화 제품군을 지원하고 있습니다. 하지만 이러한 CVE의 영향은 보통으로 평가하고 있기 때문에 Red Hat은 Red Hat Enterprise Linux 5에서 기본 암호화 목록을 변경할 계획이 없습니다. 프로덕션 3 단계에서 다루어지는 보안 권고에 대한 자세한 내용은 Red Hat Enterprise Linux 라이프 사이클 페이지에서 참조하십시오.

SSL/TLS 클라이언트

클라이언트는 SSL/TLS 서버에 의해 제어되는 암호화 제품군을 제어하지 않으므로 DHE 핸드셰이크에서의 작은 소수 거부만 방어합니다. 큰 소수가 요구되는 경우 위에서 언급한 다운그레이드 공격을 방지할 수 있습니다.

OpenSSL 업스트림에서는 클라이언트가 허용할 수 있는 DH 매개 변수의 최소 크기를 768 비트로 확장하여 나머지 두 가지 문제를 해결합니다. 즉 MITM 공격자가 연결을 다운그레이드한 경우에도 클라이언트는 768 미만의 비트가 사용되는 경우 이는 쉽게 공격당할 수 있는 것으로 간주하여 이를 거부합니다.

현재 Red Hat Enterprise Linux에 탑재된 모든 NSS 패키지 버전은 512 비트 DHE 매개 변수를 허용합니다. 이러한 문제를 해결하기 위한 다음의 업스트림 버그 및 관련 커밋 클레임에서는 이러한 제한을 1023 비트로 끌어 올렸습니다:

Red Hat 제품 보안팀은 이러한 변경 사항을 조사하고 있으며 Red Hat Enterprise Linux에서 관련 NSS 패키지에 백포트될 수 있습니다.

Openswan/Libreswan

TLS에 대한 Logjam 다운그레이드 공격은 Openswan 및 Libreswan의 IKE에는 적용되지 않습니다. openswanlibreswan 패키지에서 제공하는 pluto 데몬은 Logjam 공격 대상 TLS에 있는 IPsec VPN 터널을 설정하기 위해 IKEv1 및 IKEv2 프로토콜을 제공합니다. Openswan 및 Libreswan 모두는 MODP1024 이상의 기본 DH 그룹을 가지고 있기 때문에 MODP768 이하를 지원하지 않습니다.

JBoss 제품

영향을 받는 JBoss 제품에 Logjam 취약점을 완화하는 방법에 대한 자세한 내용은 Logjam: TLS 취약점 (CVE-2015-4000), (JBoss 제품 용)에서 참조하십시오.