Làm cách nào để tắt TLS 1.0 mà không vi phạm RDP?


48

Bộ xử lý thẻ tín dụng của chúng tôi gần đây đã thông báo cho chúng tôi rằng kể từ ngày 30 tháng 6 năm 2016, chúng tôi sẽ cần phải tắt TLS 1.0 để duy trì tuân thủ PCI . Tôi đã cố gắng chủ động bằng cách vô hiệu hóa TLS 1.0 trên máy Windows Server 2008 R2 của chúng tôi, chỉ để thấy rằng ngay sau khi khởi động lại, tôi hoàn toàn không thể kết nối với nó thông qua Giao thức máy tính từ xa (RDP). Sau một số nghiên cứu, có vẻ như RDP chỉ hỗ trợ TLS 1.0 (xem tại đây hoặc tại đây ) hoặc ít nhất là không rõ cách bật RDP qua TLS 1.1 hoặc TLS 1.2. Có ai biết cách vô hiệu hóa TLS 1.0 trên Windows Server 2008 R2 mà không vi phạm RDP không? Microsoft có kế hoạch hỗ trợ cho RDP qua TLS 1.1 hoặc TLS 1.2 không?

Lưu ý: Dường như có một cách để làm điều đó bằng cách định cấu hình máy chủ để sử dụng Lớp bảo mật RDP nhưng điều đó vô hiệu hóa Xác thực cấp độ mạng , có vẻ như giao dịch một cái ác cho người khác.

CẬP NHẬT 1 : Microsoft hiện đã giải quyết vấn đề này. Xem câu trả lời dưới đây để cập nhật máy chủ liên quan.

CẬP NHẬT 2 : Microsoft đã phát hành một hướng dẫn về Hỗ trợ máy chủ SQL cho PCI DSS 3.1 .


Tôi xin lỗi mọi người - các hướng dẫn mà tôi đã đăng chỉ có giá trị cho Win8 / Server2012 / 2012R2 ... chúng không hoạt động trên 2008R2 / Win7. Tôi đã thử nghiệm 2008R2 và nó không giống nhau. Tôi xin lỗi.
Ryan Ries

Và lưu ý rằng vào năm 2012 như op đề cập, việc loại bỏ TLS 1.0 buộc RDP phải hạ cấp xuống lớp bảo mật RDP.
Jim B

Tôi đã làm điều tương tự và không thể vào máy chủ của tôi (AWS), bạn có thể tìm ra cách để vào mà không cần truy cập vật lý không?
Thomas Paine

1
Theo bài viết hỗ trợ này, Microsoft vừa mới vá SQL 2012 và 2014 để hoạt động với TLS 1.1 và 1.2 support.microsoft.com/en-us/kb/3052404
CarlR

1
@CarlR bài viết đó dường như không đề cập cụ thể đến RDP'ing đến máy chủ. Trên thực tế, dường như nó chỉ dành riêng cho kết nối cơ sở dữ liệu vì nó đề cập: "Bản cập nhật này bổ sung hỗ trợ cho giao thức TLS (Transport Layer Security) phiên bản 1.2 cho SQL Server 2014Trình điều khiển Microsoft ODBC cho SQL Server."
k1DBLITZ

Câu trả lời:


19

Microsoft đã phát hành bản vá cho vấn đề này ngày 15 tháng 9 năm 2015

Xem https://support.microsoft.com/en-us/kb/3080079


Cảm ơn rất hữu ích. Sau khi cài đặt bản cập nhật này, màn hình tsconfig.msc không hiển thị bất kỳ dấu hiệu nào của TLS 1.1 hoặc TLS 1.2. Có ai có thể xác nhận rằng bạn đang kết nối với máy chủ bằng RDP qua TLS 1.2 không? Tôi biết chúng ta có thể xác minh bằng cách vô hiệu hóa giao thức TLS sớm trên máy chủ. Nhưng nếu nó không hoạt động thì bạn hoàn toàn không thể sử dụng RDP cho máy chủ.
Nirlep

Có thể là khi bạn chọn tùy chọn "Đàm phán", nó sẽ giao tiếp ở mức cao nhất có thể là TLS 1.2
Nirlep

1
Bạn có thể kích hoạt ghi nhật ký schannel để xem phiên bản nào đang được sử dụng. Liên kết về cách làm điều này được hiển thị trong câu trả lời của tôi.
CarlR

Tôi biết đó là một chủ đề cũ nhưng ... Tôi đã sử dụng Windows Server 2008 R2 cũ hơn. Tôi đã cài đặt KB3080079 và bây giờ sẽ tắt TLS 1.0. Nhưng tôi không chắc liệu cài đặt máy chủ RDP sẽ được đặt thành "Thương lượng" hay "TLS".
Chris Harrington

15

Tôi đã xem xét vấn đề này vài ngày nay vì chúng tôi phải tuân thủ PCI-DSS 3.1, yêu cầu TLS 1.0 phải bị vô hiệu hóa.

Chúng tôi cũng không muốn quay trở lại Lớp bảo mật RDP, đây là một vấn đề bảo mật chính.

Cuối cùng tôi đã tìm được một số tài liệu xác nhận rằng TLS 1.1 và TLS 1.2 được RDP hỗ trợ. Tài liệu này được ẩn đi trong nhật ký SChannelthông số kỹ thuật rất chi tiết cho RDP .

Hoàn toàn thiếu tài liệu truyền phát chính trên Technet hoặc các trang web khác của Microsoft, có vẻ như vậy hy vọng tài liệu này ở đây có thể giúp một số người.

Các chiết xuất có liên quan từ các liên kết được cung cấp:

Từ liên kết MSDN:

"RDP supports four External Security Protocols: TLS 1.0 ([RFC2246]) TLS 1.1 ([RFC4346])<39>, TLS 1.2 ([RFC5246])<40>"

Từ đặc tả RDP PDF:

"When Enhanced RDP Security is used, RDP traffic is no longer protected by using the techniques
described in section 5.3. Instead, all security operations (such as encryption and decryption, data
integrity checks, and Server Authentication) are implemented by one of the following External
Security Protocols:
TLS 1.0 (see [RFC2246])
TLS 1.1 (see [RFC4346])
TLS 1.2 (see [RFC5246])
CredSSP (see [MS-CSSP])"

"<39> Section 5.4.5: TLS 1.1 is not supported by Windows NT, Windows 2000 Server, Windows XP,
Windows Server 2003, Windows Vista and Windows Server 2008.
<40> Section 5.4.5:  TLS 1.2 is not supported by Windows NT, Windows 2000 Server, Windows XP,
Windows Server 2003, Windows Vista, and Windows Server 2008"

Do đó, người ta sẽ kết luận rằng bạn có thể sử dụng TLS 1.1 hoặc 1.2 trên Windows Server 2008 R2 theo tài liệu này.

Tuy nhiên, thử nghiệm của chúng tôi đã chứng minh điều này KHÔNG hoạt động từ máy khách RDP của Windows 7 (phiên bản 6.3.9600) khi TLS 1.0 bị tắt và tùy chọn bảo mật RDP được đặt để yêu cầu TLS 1.0.

Điều này là tất nhiên cũng như cho phép TLS 1.1 và 1.2 bị tắt theo mặc định trên 2008R2 - tình cờ chúng tôi thực hiện việc này bằng cách sử dụng Công cụ mã hóa IIS rất hữu ích từ Phần mềm Nartac .

Khi xem xét vấn đề này, rất hữu ích khi cho phép ghi nhật ký SChannel để xem chi tiết hơn về những gì đang xảy ra khi phiên của bạn được mở.

Bạn có thể đặt ghi nhật ký SChannel bằng cách thay đổi khóa HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ EventLogging thành 5 và khởi động lại.

Khi điều này đã được thực hiện, bạn có thể quan sát các sự kiện SChannel cho thấy phiên bản TLS đang được sử dụng khi kết nối RDP được thực hiện. Khi đăng nhập được bật, bạn có thể quan sát lỗi SChannel khi ứng dụng khách RDP cố gắng thiết lập kết nối trên Windows 2008 R2 với TLS 1.0 bị tắt:

A fatal error occurred while creating an SSL server credential. The internal error state is 10013.

Tôi cũng đã thử nghiệm vô hiệu hóa TLS 1.0 trên Windows Server 2012 và 2012 R2 mà tôi có thể xác nhận hoạt động hoàn hảo bằng Máy khách RDP của Windows 7. Mục nhật ký SChannel cho thấy TLS 1.2 đang được sử dụng:

An SSL server handshake completed successfully. The negotiated cryptographic parameters are as follows.

   Protocol: TLS 1.2
   CipherSuite: 0xC028
   Exchange strength: 256

Tôi hy vọng điều này sẽ giúp ai đó đang tìm kiếm làm rõ về điều này.

Tôi sẽ tiếp tục tìm kiếm cách chúng tôi có thể khiến RDP hoạt động trên TLS 1.1 và TLS 1.2 trong Windows Server 2008 R2.

CẬP NHẬT: 2015-AUG-05

Chúng tôi đã đưa ra vấn đề RDP không hoạt động với Server 2008 R2 với sự hỗ trợ của Microsoft bao gồm các bước để tạo lại.

Sau vài tuần trở đi trở lại, cuối cùng chúng tôi đã nhận được một cuộc gọi điện thoại từ nhóm hỗ trợ để xác nhận rằng họ thực sự có thể tái tạo nó và điều này hiện được phân loại là một lỗi. Một bản vá cập nhật sẽ được phát hành, tại thời điểm này dự kiến ​​vào tháng 10 năm 2015. Ngay sau khi tôi có một bài viết KB hoặc các chi tiết khác, tôi sẽ thêm chúng vào bài đăng này.

Hy vọng rằng những người bị mắc kẹt với Windows Server 2008 R2 ít nhất có thể giải quyết vấn đề này trước hạn chót của tháng 6 năm 2016 sau khi bản vá được phát hành.

CẬP NHẬT: ngày 19 tháng 9 năm 2015

Microsoft cuối cùng đã phát hành một bài viết hỗ trợ kb về điều này ở đây và tôi có thể xác nhận rằng nó hoạt động tốt.


Bản cập nhật cuối cùng của bạn nói rằng "Tôi đã thử windows 7 và windows 2012 r2 và nó không hoạt động; nó vẫn kết nối bằng TLS1." Bạn đã bao giờ có thể làm cho điều này để làm việc?
Doug S

Một số người khác đưa nhận xét đó vào, tôi vừa xóa nó vì nó hoạt động tốt với chúng tôi bây giờ trên TLS1.2.
CarlR

Hừm. Tôi không bao giờ có thể làm cho nó hoạt động, ngay cả với những thay đổi / cập nhật này và mọi thứ khác tôi có thể tìm thấy.
Doug S

Nhật ký SChannel có thể được tìm thấy trong Nhật ký hệ thống.
Ivan Châu

8

Thay vào đó, hãy sử dụng IPsec, như tài liệu khuyến nghị: "Trước tiên hãy thiết lập phiên được mã hóa mạnh (ví dụ: đường hầm IPsec), sau đó gửi dữ liệu qua SSL trong đường hầm an toàn"

Lý do chính để thực hiện việc này khi định cấu hình TLS cho RDP là chính sách tường lửa dễ dàng được kiểm tra để tuân thủ (so với việc chứng minh các thay đổi đăng ký được tuân thủ) và IPsec khá dễ dàng để định cấu hình trong windows.

Nếu bạn tình cờ cần IPSEC tuân thủ bộ B đầy đủ với tls 1.0 là cách duy nhất có sẵn để áp dụng cho độ dài chứng chỉ phù hợp


Đường hầm qua SSH cũng là một tùy chọn mà tôi sẽ đề cập. (Tất nhiên yêu cầu phần mềm máy chủ SSH cho Windows.)
Chris W. Rea

IPsec không phải là SSH
Jim B

3
Đúng, và tôi không có ý ám chỉ họ giống nhau. Thay vào đó, SSH là một phương pháp thay thế để thiết lập một đường hầm an toàn đến máy chủ.
Chris W. Rea

@JimB Tôi xin lỗi, bạn đã đúng.
Ryan Ries

1
@RyanRies Np, tôi vẫn gãi đầu về việc 12 người khác sẽ bỏ phiếu mà không biết nó hoạt động như thế nào.
Jim B

8

Đây không phải là câu trả lời cho câu hỏi, mà là câu hỏi phụ "Làm cách nào để khôi phục quyền truy cập từ xa vào máy ảo nơi tôi đã tắt TLS 1.0 và không có quyền truy cập vật lý?".

Tôi đã vô hiệu hóa TLS 1.0 bằng IISCrypto, nó đưa ra một cảnh báo hữu ích về tác dụng phụ mà RDP sẽ ngừng hoạt động nếu nó được đặt thành TLS. Vì vậy, tôi đã đăng ký:

Admin Tools\Remote Desktop Services\Remote Desktop Session Host Configuration, RDP-Tcp, General Tab, Security Layer

và Cấp độ bảo mật của tôi được đặt thành "Đàm phán". Tôi giả sử điều này có nghĩa là nếu TLS không có sẵn, nó sẽ xuống cấp một cách duyên dáng thành RDP Security.

Nhưng không, đàm phán không hoạt động theo cách đó. Bạn phải đặt Cấp độ bảo mật thành RDP Security, không được phủ định trước khi tắt TLS 1.0.

Vì vậy, tôi đã mất khả năng kết nối từ xa với ví dụ AWS của mình!

Để kết nối lại, tôi đã sử dụng một ví dụ AWS khác.

  1. Tôi đã cập nhật Securitygroup để cho phép kết nối tường lửa từ máy đó vào máy "bị mất" của tôi.
  2. Tôi đã mở một chia sẻ mạng quản trị trong DOS, với một người dùng quản trị viên và mật khẩu:

net use \\lost_machine_ip\c$

  1. Sau đó, tôi đã mở Regedit và trong menu Tệp, chọn "Kết nối đăng ký mạng" và đặt IP của máy chủ "bị mất". Bạn sẽ thấy đăng ký máy chủ từ xa. Đi đến :

\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\

và đặt giá trị SecurityLayerthành 0 (0 là RDP Security).

Sau đó, bạn sẽ có thể kết nối từ xa và TLS 1.0 có thể kích hoạt trong IISCrypto nếu được yêu cầu.


Cảm ơn, điều này đã tiết kiệm cho tôi rất nhiều công việc tạo lại một máy chủ. Không chắc chắn cách bạn thay đổi nhóm bảo mật của mình để cho phép kết nối giữa các máy --- Tôi đã mở tất cả quyền truy cập vào máy "bị mất" vào địa chỉ IP của máy thứ hai và điều đó đã hoạt động. Có cách nào tốt hơn?
Gullbyrd

@Gullbyrd, hoặc đặt TẤT CẢ TCP cho nhóm bảo mật mà cả hai máy thuộc về. Có làm điều tương tự.
Bia Dave

3

Bạn sẽ cần cài đặt RDP 8.0 trên máy tính Windows 7 và máy chủ Windows Server 2008 R2, sau đó kích hoạt RDP 8.0 trên chính sách máy tính hoặc chính sách nhóm.

Đây là Microsoft KB cho RDP 8.0. https://support.microsoft.com/en-us/kb/2592687

Khi điều này được thực hiện, bạn sẽ có thể vô hiệu hóa TLS 1.0 trên máy tính và máy chủ bằng cách chỉnh sửa sổ đăng ký theo hướng dẫn trong bài viết kỹ thuật này. https://technet.microsoft.com/en-us/l Library / dn786418.aspx

Sau khi cài đặt RDP 8.0, bạn cũng có thể cài đặt RDP 8.1, nhưng RDP 8.0 phải được cài đặt trước khi cài đặt RDP 8.1. RDP 8.0 chứa cả các thành phần giao thức phía máy khách và máy chủ, nhưng RDP 8.1 chỉ bao gồm máy khách. Microsoft KB cho RDP 8.1 là KB2830477.

Tôi đã thực hiện những thay đổi này trên một trong các máy trạm windows 7 của mình và đã kiểm tra các kết nối RDP với "Yêu cầu sử dụng lớp bảo mật cụ thể cho các kết nối từ xa (RDP)" được bật và đặt thành "SSL (TLS 1.0)" để đảm bảo rằng nó sẽ không rơi trở lại Mã hóa RDP.

CẬP NHẬT 19/9/2015:

Cuối cùng tôi đã có cơ hội thử nghiệm điều này trên một trong các máy chủ Windows Server 2008 R2 của chúng tôi và nó chắc chắn phá vỡ các kết nối RDP đến máy chủ. Có vẻ như các thành phần phía máy chủ RDP 8.0 chỉ được cài đặt trên máy tính Windows 7 và không được cài đặt trên máy chủ Windows Server 2008 R2.


Bài viết kiến ​​thức hỗ trợ được tham chiếu hiện không hoạt động (vòng lặp chuyển hướng) tuy nhiên bạn có thể sử dụng phiên bản bộ đệm của Google để xem nội dung. Điều thú vị là vẫn hoàn toàn không có đề cập đến hỗ trợ TLS 1.1 hoặc 1.2 trong bài viết này và tôi đoán đó là lý do chính mà bất cứ ai cũng sẽ xem xét câu hỏi này! Ngoài ra còn có một số lượng lớn các cảnh báo bao gồm các quản trị viên cục bộ không còn có thể đăng nhập trừ khi được thêm vào nhóm người dùng Remote Destop. Xem ra nếu bạn đang thử điều này
CarlR

Bạn đã mở cổng UDP 3389 trên máy chủ khi bạn thử kết nối với máy chủ 2008 chưa?
Elvar

Tôi đã tạm thời vô hiệu hóa hoàn toàn Windows Firewall trên máy chủ 2008 R2, nhưng tôi vẫn không thể kết nối với nó bằng RDP với TLS 1.0 bị vô hiệu hóa trên máy chủ.
Kenny R

3

Như đã đăng trên Cách vô hiệu hóa TLS 1.0 mà không phá vỡ RemoteApps trên máy chủ 2012 R2 nhưng đăng lại ở đây vì lợi ích của những người không thể theo dõi liên kết đó:

Sau gần một năm, cuối cùng tôi cũng tìm ra một giải pháp hoạt động để vô hiệu hóa TLS 1.0 / 1.1 mà không phá vỡ kết nối RDP và Remote Desktop Services và khởi chạy RemoteApps:

Chạy IISCrypto và vô hiệu hóa TLS 1.0, TLS 1.1 và tất cả các mật mã xấu.

Trên máy chủ Dịch vụ Máy tính Từ xa chạy vai trò cổng, mở Chính sách bảo mật cục bộ và điều hướng đến Tùy chọn bảo mật - Mật mã hệ thống: Sử dụng thuật toán tuân thủ mật khẩu để mã hóa, băm và ký. Thay đổi cài đặt bảo mật thành Đã bật. Khởi động lại để những thay đổi có hiệu lực.

Lưu ý rằng trong một số trường hợp (đặc biệt là nếu sử dụng chứng chỉ tự ký trên Máy chủ 2012 R2), tùy chọn Chính sách bảo mật Bảo mật mạng: Mức xác thực của Trình quản lý LAN chỉ có thể được đặt thành Gửi phản hồi NTLMv2.


2

Chỉ cần một bản cập nhật về điều này nếu bất cứ ai khác đang tìm kiếm thông tin về nó. Đối với các hộp Windows 7 64 bit của tôi, tôi đã phải cài đặt KB2574819 (đầu tiên) và KB2592687 (thứ hai) Windows 7 phải cài đặt SP1 trước khi 2 pkgs đó cài đặt. Nếu bạn gặp sự cố khi cài đặt SP1 như tôi đã làm, trước tiên tôi phải gỡ cài đặt KB958830, sau đó cài đặt SP1.

Đối với các hộp Windows Server 2008 R2, tôi phải cài đặt KB3080079. Khi bạn thực hiện việc này và có tất cả các cài đặt thích hợp để đặt liên lạc an toàn, thì nó sẽ sử dụng TLS 1.2 Bạn có thể xác nhận bằng cách sử dụng Wireshark để thực hiện ghi lại giao tiếp giữa hai hộp của bạn.



0

Một trường hợp không có trong các câu trả lời hiện có: Máy khách Windows 7 kết nối qua Cổng RDP vẫn sẽ sử dụng TLS 1.0 khi kết nối với cổng và không thành công nếu cổng không hỗ trợ TLS 1.0, ngay cả sau khi áp dụng KB3080079 , như được quan sát trong luồng diễn đàn TechNet này .

Để sử dụng TLS 1.2 để kết nối qua Cổng RDP, đảm bảo KB3140245 được cài đặt và thêm các khóa đăng ký sau (lưu trong tệp có .regphần mở rộng để nhập):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp]
"DefaultSecureProtocols"=dword:00000800

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp]
"DefaultSecureProtocols"=dword:00000800

Như được ghi lại trong KB3140245 , điều này sẽ ghi đè WINHTTP_OPTION_SECURE_PROTOCOLSđể sử dụng TLS 1.2 (và chỉ TLS 1.2) theo mặc định. Vì vậy, hãy lưu ý rằng nó sẽ ảnh hưởng nhiều hơn đến máy khách RDP.

(Lưu ý: Nếu muốn tương thích ngược, dword:00000800có thể thay đổi thành dword:00000A00hoặc dword:00000A80bao gồm TLS 1.1 và 1.0 tương ứng)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.