Windows 10에서 취약한 암호를 제거하면 발신 RDP가 중단됨


16

RDP를 실행하는 Windows 10 시스템으로 인해 TrustWave의 취약점 스캐너가 스캔에 실패합니다.

Sweet32 (CVE-2016-2183)로 알려진 블록 크기가 64 비트 (DES 및 3DES와 같은) 생일 공격 인 블록 암호 알고리즘

참고 : RDP (원격 데스크톱 프로토콜)를 실행하는 Windows 7/10 시스템에서 비활성화해야하는 취약한 암호는 'TLS_RSA_WITH_3DES_EDE_CBC_SHA'로 표시되어 있습니다.

Nartac의 IIS Crypto를 사용하여 PCI 모범 템플릿뿐만 아니라 "모범 사례"템플릿을 적용하려고했지만 둘 다 안전하지 않은 암호 (TLS_RSA_WITH_3DES_EDE_CBC_SHA)를 포함합니다.

암호문

나는이 암호, RDP 사용하지 않으면 에서 (이 여전히 2008 R2 및 2012 R2 서버로 작동) 작동을 멈 춥니 다 많은 윈도우 스테이션이 컴퓨터를. RDP 클라이언트는 단순히 "내부 오류가 발생했습니다"및 이벤트 로그를 제공합니다.

TLS 클라이언트 신임 정보를 작성하는 중에 치명적인 오류가 발생했습니다. 내부 오류 상태는 10013입니다.

서버 중 하나의 서버 이벤트 로그를 확인한 후이 두 메시지가 표시됩니다.

원격 클라이언트 애플리케이션에서 TLS 1.2 연결 요청이 수신되었지만 클라이언트 애플리케이션이 지원하는 암호 스위트가 서버에서 지원되지 않습니다. SSL 연결 요청이 실패했습니다.

다음과 같은 치명적인 경고가 생성되었습니다. 40. 내부 오류 상태는 1205입니다.

나가는 RDP를 중단하지 않고 어떻게 보안 취약점을 해결할 수 있습니까?

또는 위의 방법을 사용할 수없는 경우 더 이상 연결할 수없는 각 RDP 호스트에서 수행 할 수있는 작업이 있습니까?

--- 업데이트 # 1 ---

Windows 10 컴퓨터에서 TLS_RSA_WITH_3DES_EDE_CBC_SHA를 비활성화 한 후 여러 RDP 호스트에 연결을 시도했습니다 (이 중 절반은 "내부 오류 ..."로 실패했습니다). 나는 것을이 호스트 중 하나 비교 그래서 수 있습니다 내가 그 일에 대하여에 연결할 수 없습니다 에 연결합니다. 둘 다 2008 R2입니다. 둘 다 동일한 RDP 버전을 갖습니다 (6.3.9600, RDP 프로토콜 8.1 지원).

템플릿 파일을 비교할 수 있도록 IIS Crypto를 사용하여 현재 설정에서 "템플릿 저장"을 수행하여 TLS 프로토콜과 암호를 비교했습니다. 그들은 동일했다! 따라서 문제가 무엇이든 호스트에서 chipher suite가 누락 된 것으로 보이지는 않습니다. 다음은 파일에서 Beyond Compare의 스크린 샷입니다.

암호 비교

이 문제의 원인이되는 두 RDP 호스트와 해결 방법은 어떻게 다릅니 까?


NetMon 또는 Wireshark를 사용하여 클라이언트 hello / server hello를 캡처하여 연결이 실패 할 때와 성공할 때와 비교하여 실제로 암호화 된 스위트 스위트를 확인할 수 있습니까?
Ryan Ries

@RyanRies : 이미했지만 실제 TLS 핸드 셰이크에는 도달하지 않습니다. 클라이언트는 "TPKT, Continuation"패키지를 보내고 서버는 "RST, ACK"로 응답합니다.
Zek

답변:


3

IIS Crypto에는 서버 쪽 (들어오는) 및 클라이언트 쪽 (나가는) 옵션을 모두 설정하는 옵션이 있습니다. 호환성을 위해 클라이언트 측에서 활성화 상태를 유지해야하는 소수의 암호가 있습니다.

당신이 원하는 것을하기 위해 나는 개인적으로 다음과 같이 갈 것입니다 :

  • 3.1 템플릿 적용
  • 모든 암호 제품군을 활성화 된 상태로 유지
  • 클라이언트와 서버 모두에 적용합니다 (확인란 선택).
  • '적용'을 클릭하여 변경 사항을 저장하십시오.

원하는 경우 여기에서 재부팅하십시오 (시스템에 물리적으로 액세스 할 수 있음).

  • 3.1 템플릿 적용
  • 모든 암호 제품군을 활성화 된 상태로 유지
  • 서버에 적용합니다 (체크 박스를 선택 해제).
  • 3DES 옵션을 선택 취소하십시오

여기서 재부팅하면 올바른 종료 상태가됩니다.

효과적으로 3DES 인바운드 만 비활성화하려고하지만 여전히 해당 암호 제품군의 아웃 바운드 사용을 허용합니다.


유망한 소리! 그러나 3DES 168을 비활성화하면 실수로 보입니다. 더 이상 연결할 수 없습니다. 일단 이것을 처리하면 서버 측에서만 암호를 비활성화하고 답을보고 / 수락합니다.
Zek

1) "모범 사례"를 적용하고 서버와 클라이언트 모두에 적용한 다음 2) TLS_RSA_WITH_3DES_EDE_CBC_SHA 암호 및 "클라이언트 측 프로토콜 설정"을 선택 취소하고 다시 적용한 다음 다시 부팅하십시오. 이 시스템의 RDP 문제는 계속 지속됩니다. 추가 제안을 환영합니다.
Zek

1
@ Zek strange ... 나는 똑같은 기술을 사용했고 작동했습니다.
Tim Brigham

@ Zek 방금 내가 그것을 쓰는 방법에 큰 실수를했다는 것을 깨달았습니다. 그에 따라 업데이트하겠습니다.
팀 브리검

나는 이것을 시도했다. 1) 3.1 템플릿을 선택하고 + 모든 암호화 제품군을 그대로 유지 + "클라이언트 측 프로토콜 설정"을 활성화하고 TLS 1.0 확인 (TLS 1.0이없는 SQL 등) + 적용 및 재부팅. 2) 3.1 템플릿을 선택하고 + 모든 암호화 제품군을 그대로두고 + "클라이언트 측 프로토콜 설정"을 선택 취소하고 3DES를 선택 취소하고 TLS 1.0 확인 + 적용 및 재부팅을 선택합니다 더 이상 "내부 오류가 발생했습니다"에 연결할 수 없습니다 (서버가 3DES를 지원해야한다고 생각합니다). Windows 10 컴퓨터에서 연결하고 있습니다.
Zek

1

서버에 KB3080079 패치를 설치하면 tls 1.1 및 1.2를 지원할 수 있습니다.

Windows 7 클라이언트의 경우 rdp 클라이언트 업데이트 (KB2830477)를 설치해야합니다. 그렇지 않으면 Windows 8 이상 만 연결할 수 있습니다.


1
방금 두 번 확인했는데 해당 업데이트가 이미 설치되어 있습니다 (이미 표준 Windows 업데이트에 이미 포함되어 있다고 생각합니다).
Zek

1

편집 (2018-09-26) : 2012R2에서 3DES를 비활성화해도 RDP는 중단되지 않지만 2008 R2에서는 중단됩니다. 지원되는 옵션은 커널마다 다릅니다.


TechNet 스레드 에서 내 대답을 공유 하지만 먼저 BLUF를 공유합니다.

Serverfault 결론 : 시스템간에 다른 차이점이있을 수 있습니다. 다른 OS 버전간에 연결 중이거나, 한 시스템에서 FIPS를 사용하도록 설정하고 다른 시스템에서 사용하지 않거나, 아래에서 다른 암호 제한을 설정했습니다 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers. 난 분명 시스템의 샤넬 로깅 활성화 할 않는 사용되는 암호를 결정하는 일을. RDP가 다른 암호로 작업하게 된 경우 다시 듣고 싶습니다.

게시물 사본 :

우리는 그것을 작동시켰다!

분명히 2008과 2012에는 구문 문제가 있으며 2008/7에는 후행 / 168이 필요합니다. 2012 / 8.1 / 10은 그렇지 않습니다.

2008 년 키는 다음과 같습니다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168/168

2012 년 키는 다음과 같습니다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168

"Triple DES 168/168"을 사용하면 시스템에서 3DES가 ​​비활성화되지 않는다는 것을 확인할 수 있습니다. 프로토콜 스캐너 (예 : Nessus) 또는 SCHANNEL 로깅을 사용하여이를 직접 확인할 수 있습니다.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL] "EventLogging"=dword:00000007

그런 다음 예를 들어 SYSTEM 로그에 이벤트가 있습니다.

SSL 클라이언트 핸드 셰이크가 완료되었습니다. 협상 된 암호화 매개 변수는 다음과 같습니다.

프로토콜 : TLS 1.0 CipherSuite : 0x2f 교환 강도 : 1024

나에게 결과는 0xa이며 Google은 TLS_RSA_WITH_3DES_EDE_CBC_SHA로 공개합니다.

"Triple DES 168"(/ 168없이)을 사용하면 시스템 이벤트 ID 36880이 나타나지 않고 RDP 세션이 차단됩니다.

기사당 : 시스템 암호화 : 암호화, 해싱 및 서명에 FIPS 호환 알고리즘 사용

RDS (원격 데스크톱 서비스) 원격 데스크톱 서비스 네트워크 통신을 암호화하기 위해이 정책 설정은 트리플 DES 암호화 알고리즘 만 지원합니다.

기술 자료 : "시스템 암호화 : Windows XP 및 이후 버전의 Windows에서 보안 설정 효과의 암호화, 해싱 및 서명에 FIPS 호환 알고리즘 사용"

이 설정은 Windows Server 2003 및 이후 버전의 Windows에서도 터미널 서비스에 영향을줍니다. 서버 인증에 TLS를 사용하는지 여부에 따라 효과가 달라집니다.

서버 인증에 TLS를 사용중인 경우이 설정으로 인해 TLS 1.0 만 사용됩니다.

기본적으로 TLS를 사용하지 않고 클라이언트 또는 서버에서이 설정을 사용하지 않으면 서버와 클라이언트 사이의 RDP (원격 데스크톱 프로토콜) 채널이 128 비트 RC4 알고리즘을 사용하여 암호화됩니다. 키 길이. Windows Server 2003 기반 컴퓨터에서이 설정을 사용하면 다음이 적용됩니다. RDP 채널은 168 비트 키 길이의 CBC (Cipher Block Chaining) 모드에서 3DES 알고리즘을 사용하여 암호화됩니다. SHA-1 알고리즘은 메시지 요약을 작성하는 데 사용됩니다. 클라이언트는 RDP 5.2 클라이언트 프로그램 또는 이후 버전을 사용하여 연결해야합니다.

따라서이 두 가지 모두 RDP가 3DES 만 사용할 수 있다는 아이디어를 지원합니다. 그러나이 기사에서는 더 넓은 범위의 암호를 사용할 수 있다고 제안합니다. FIPS 140 유효성 검사

RDP (원격 데스크톱 프로토콜) 서버에서 사용할 암호화 알고리즘의 범위는 다음과 같습니다.-CALG_RSA_KEYX-RSA 공개 키 교환 알고리즘-CALG_3DES-트리플 DES 암호화 알고리즘-CALG_AES_128-128 비트 AES-CALG_AES_256-256 비트 AES-CALG_SHA1- SHA 해싱 알고리즘-CALG_SHA_256-256 비트 SHA 해싱 알고리즘-CALG_SHA_384-384 비트 SHA 해싱 알고리즘-CALG_SHA_512-512 비트 SHA 해싱 알고리즘

궁극적으로 FIPS 모드가 활성화 된 경우 RDP가 3DES 이외의 프로토콜을 지원할 수 있는지 확실하지 않지만 증거에 따르면 그렇지 않습니다.

Server 2012 R2가 Server 2008 R2와 다르게 작동한다는 증거는 없지만 Server 2008 R2는 FIPS 140-1 준수를 기반으로하고 Server 2012 R2는 FIPS 140-2를 따르는 것으로 보이므로 Server 2012 R2가 완전히 지원할 수 있습니다 추가 프로토콜. FIPS 140 유효성 검사 링크 에 추가 프로토콜이 있습니다.

결론 : Server 2008 R2가 3DES가 ​​비활성화 된 FIPS 모드에서 RDP를 지원할 수 있다고 생각하지 않습니다. 시스템이 SWEET32 공격 조건 (단일 세션에서 768GB 이상 전송)을 충족하는지 여부와 3DES를 비활성화하면 RDP 기능을 제거 할 가치가 있는지 확인하는 것이 좋습니다. 가상화가 널리 사용되는 세계에서 특히 RDP 이외의 서버를 관리하기위한 다른 유틸리티가 있습니다.


0

분명히 2008과 2012에는 구문 문제가 있으며 2008/7에는 후행 / 168이 필요합니다. 2012 / 8.1 / 10은 그렇지 않습니다.

2008 년 키는 다음과 같습니다. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Ciphers \ Triple DES 168/168

** 내가 일부 Windows 2008 R2 도메인 컨트롤러에서 똑같은 문제를 겪고 있다는 것을 알았습니다. 이상하게도 회원 2008R2 서버는 괜찮은 것처럼 보입니다 ... 2012R2 서버도 제대로 작동합니다. 오래된 DC를 분해하는 데 필요한 균열 :)


내 2008R2 버전 설정에서는 168Windows 2012 레지스트리와 동일한 구문을 추가 할 필요가 없으며 동의합니다. 그냥 참고로 2008 레지스트리 설정을 당신을 위해 작동하지 않은 경우
그레고리 Suvalian
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.