Bagaimana cara menonaktifkan TLS 1.0 tanpa melanggar RDP?

48

Prosesor kartu kredit kami baru-baru ini memberi tahu kami bahwa pada 30 Juni 2016, kami harus menonaktifkan TLS 1.0 agar tetap mematuhi PCI . Saya mencoba untuk menjadi proaktif dengan menonaktifkan TLS 1.0 pada mesin Windows Server 2008 R2 kami, hanya untuk menemukan bahwa segera setelah reboot saya benar-benar tidak dapat terhubung ke sana melalui Remote Desktop Protocol (RDP). Setelah beberapa penelitian, tampaknya RDP hanya mendukung TLS 1.0 (lihat di sini atau di sini ), atau setidaknya tidak jelas bagaimana mengaktifkan RDP melalui TLS 1.1 atau TLS 1.2. Adakah yang tahu cara untuk menonaktifkan TLS 1.0 pada Windows Server 2008 R2 tanpa melanggar RDP? Apakah Microsoft merencanakan dukungan untuk RDP melalui TLS 1.1 atau TLS 1.2?

Catatan: Tampaknya ada cara untuk melakukannya dengan mengonfigurasi server untuk menggunakan RDP Security Layer tetapi itu menonaktifkan Otentikasi Tingkat Jaringan , yang sepertinya memperdagangkan satu kejahatan dengan yang lain.

PEMBARUAN 1 : Microsoft sekarang telah mengatasi masalah ini. Lihat jawaban di bawah ini untuk pembaruan server yang relevan.

UPDATE 2 : Microsoft telah merilis tutorial tentang Dukungan SQL Server untuk PCI DSS 3.1 .

Mike
sumber
Permintaan maaf saya kepada semua orang - instruksi yang saya posting hanya valid untuk Win8 / Server2012 / 2012R2 ... mereka tidak berfungsi pada 2008R2 / Win7. Saya menguji 2008R2 dan itu tidak sama. Maafkan saya.
Ryan Ries
Dan perhatikan bahwa pada 2012 sebagai op menyebutkan, menghapus TLS 1.0 memaksa RDP untuk turun ke lapisan keamanan RDP.
Jim B
Saya melakukan hal yang sama dan tidak bisa masuk ke server saya (AWS), apakah Anda dapat menemukan cara untuk masuk tanpa akses fisik?
Thomas Paine
1
Menurut artikel dukungan ini, Microsoft baru saja menambal SQL 2012 dan 2014 untuk bekerja dengan TLS 1.1 dan 1.2 support.microsoft.com/en-us/kb/3052404
CarlR
1
@CarlR artikel itu sepertinya tidak secara khusus menyebutkan RDP'ing ke server. Bahkan, tampaknya spesifik untuk konektivitas database itu sendiri ketika disebutkan: "Pembaruan ini menambahkan dukungan untuk protokol Transport Layer Security (TLS) versi 1.2 ke SQL Server 2014 dan ke Microsoft ODBC Driver untuk SQL Server."
k1DBLITZ

Jawaban:

19

Microsoft merilis patch untuk masalah ini 15 Sep 2015

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

Eric Winn
sumber
Terima kasih sangat membantu Setelah menginstal pembaruan ini, layar tsconfig.msc tidak menunjukkan tanda-tanda TLS 1.1 atau TLS 1.2. Apakah ada yang bisa mengonfirmasi bahwa Anda terhubung ke server menggunakan RDP melalui TLS 1.2? Saya tahu kami dapat memverifikasi dengan menonaktifkan protokol TLS awal di server. Tetapi jika itu tidak berhasil maka Anda tidak bisa menggunakan RDP ke server sama sekali.
Nirlep
Ada kemungkinan bahwa ketika Anda memilih opsi "Negosiasi", itu akan berkomunikasi tingkat setinggi mungkin yang bisa menjadi TLS 1.2
Nirlep
1
Anda bisa mengaktifkan schannel logging untuk melihat versi mana yang sedang digunakan. Tautan untuk melakukan ini ditunjukkan dalam jawaban saya.
CarlR
Saya tahu ini adalah utas lama tapi ... Saya sudah lebih tua Windows Server 2008 R2. Saya telah menginstal KB3080079 dan sekarang akan menonaktifkan TLS 1.0. Tapi saya tidak yakin apakah pengaturan server RDP harus diatur ke "Negosiasi" atau "TLS".
Chris Harrington
15

Saya telah melihat ini selama beberapa hari sekarang karena kita harus mematuhi PCI-DSS 3.1 yang mengharuskan TLS 1.0 dinonaktifkan.

Kami juga tidak ingin kembali ke RDP Security Layer yang merupakan masalah keamanan utama.

Saya akhirnya berhasil menemukan beberapa dokumentasi yang mengkonfirmasi bahwa TLS 1.1 dan TLS 1.2 didukung oleh RDP. Dokumentasi ini disembunyikan dalam logging SChannel dan spesifikasi yang sangat rinci untuk RDP .

Ada kekurangan dokumentasi aliran utama di Technet atau situs Microsoft lainnya, jadi semoga mendokumentasikan ini di sini dapat membantu beberapa orang.

Ekstrak yang relevan dari tautan yang disediakan:

Dari tautan MSDN:

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

Dari spesifikasi 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"

Oleh karena itu orang akan menyimpulkan bahwa Anda dapat menggunakan TLS 1.1 atau 1.2 pada Windows Server 2008 R2 sesuai dengan dokumentasi ini.

Namun pengujian kami telah membuktikan ini TIDAK berfungsi dari klien Windows 7 RDP (versi 6.3.9600) ketika TLS 1.0 dinonaktifkan dan opsi keamanan RDP diatur untuk memerlukan TLS 1.0.

Ini tentu saja serta mengaktifkan TLS 1.1 dan 1.2 yang dinonaktifkan secara default pada 2008R2 - kebetulan kami melakukan ini menggunakan Alat Crypto IIS yang sangat berguna dari Nartac Software .

Ketika melihat masalah ini, penting untuk mengaktifkan pendataan SChannel untuk melihat lebih detail tentang apa yang terjadi ketika sesi Anda dibuka.

Anda dapat mengatur SChannel logging dengan mengubah HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ EventLogging kunci ke 5 dan me-reboot.

Setelah ini dilakukan, Anda dapat mengamati acara SChannel yang menunjukkan versi TLS digunakan ketika koneksi RDP dibuat. Setelah logging diaktifkan, Anda dapat mengamati kesalahan SChannel ketika klien RDP mencoba untuk membuat koneksi pada Windows 2008 R2 dengan TLS 1.0 dinonaktifkan:

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

Saya juga telah menguji menonaktifkan TLS 1.0 pada Windows Server 2012 dan 2012 R2 yang dapat saya konfirmasi berfungsi dengan baik menggunakan Windows 7 RDP Client. Entri log SChannel menunjukkan TLS 1.2 sedang digunakan:

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

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

Saya harap ini membantu seseorang yang mencari klarifikasi tentang ini.

Saya akan terus mencari bagaimana kita bisa membuat RDP bekerja pada TLS 1.1 dan TLS 1.2 di Windows Server 2008 R2.

UPDATE: 2015-AUG-05

Kami mengangkat masalah RDP yang tidak bekerja dengan Server 2008 R2 dengan dukungan Microsoft termasuk langkah-langkah untuk mereproduksi.

Setelah beberapa minggu mundur dan maju, kami akhirnya menerima panggilan telepon hari ini dari tim dukungan untuk mengetahui bahwa mereka memang dapat mereproduksi dan ini sekarang dikategorikan sebagai bug. Patch pembaruan akan dirilis, saat ini diharapkan pada Oktober 2015. Begitu saya memiliki artikel KB atau detail lainnya, saya akan menambahkannya ke posting ini.

Semoga mereka yang terjebak dengan Windows Server 2008 R2 setidaknya bisa menyelesaikan masalah ini sebelum batas waktu Juni 2016 setelah tambalan dirilis.

PEMBARUAN: 19 September 2015

Microsoft akhirnya merilis artikel dukungan kb tentang ini di sini dan saya dapat mengonfirmasi bahwa itu berfungsi OK.

CarlR
sumber
Pembaruan terakhir Anda menyatakan "Saya sudah mencoba windows 7 dan windows 2012 r2 dan tidak berhasil; ia masih terhubung menggunakan TLS1." Apakah Anda pernah bisa membuat ini berfungsi?
Doug S
Orang lain memasukkan komentar itu, saya baru saja menghapusnya karena berfungsi dengan baik untuk kita sekarang melalui TLS1.2.
CarlR
Hmmm. Saya tidak pernah bisa menjalankannya, bahkan dengan perubahan / pembaruan ini dan semua hal lain yang bisa saya temukan.
Doug S
Log SChannel dapat ditemukan di System Log.
Ivan Chau
8

Gunakan IPsec sebagai gantinya, seperti yang direkomendasikan dokumen: "Menyiapkan sesi yang sangat terenkripsi terlebih dahulu (misalnya terowongan IPsec), kemudian mengirim data melalui SSL dalam terowongan aman"

Alasan utama untuk melakukan ini lebih dari mengkonfigurasi TLS untuk RDP adalah bahwa kebijakan firewall mudah diaudit untuk kepatuhan (vs membuktikan bahwa perubahan registri sesuai) dan IPsec cukup mudah untuk dikonfigurasi di windows.

Jika Anda membutuhkan suite B kepatuhan penuh IPSEC dengan tls 1.0 adalah satu-satunya cara yang tersedia untuk menerapkan panjang sertifikat yang sesuai

Jim B
sumber
Tunneling over SSH juga merupakan opsi yang akan saya sebutkan. (Membutuhkan perangkat lunak server SSH untuk Windows, tentu saja.)
Chris W. Rea
IPsec bukan SSH
Jim B
3
Benar, dan saya tidak bermaksud mengatakan mereka sama. Sebaliknya, SSH adalah metode alternatif untuk membangun terowongan aman ke server.
Chris W. Rea
@ Jim. Maaf, kamu benar.
Ryan Ries
1
@RyanRies Np, saya masih menggaruk-garuk kepala saya bagaimana 12 orang lain akan memilihnya tanpa mengetahui itu bekerja.
Jim B
8

Ini bukan jawaban untuk pertanyaan, tetapi untuk sub-pertanyaan "Bagaimana cara mengembalikan akses jarak jauh ke mesin virtual tempat saya menonaktifkan TLS 1.0 dan tanpa akses fisik?".

Saya menonaktifkan TLS 1.0 menggunakan IISCrypto, yang memberikan peringatan bermanfaat tentang efek samping yang RDP akan berhenti bekerja jika diatur ke TLS. Jadi saya check in:

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

dan Tingkat Keamanan saya diatur ke "Negosiasi". Saya berasumsi ini berarti jika TLS tidak tersedia, itu dengan anggun akan menurunkan ke Keamanan RDP.

Tapi tidak, Negosiasi tidak berfungsi seperti itu. Anda harus mengatur Tingkat Keamanan ke Keamanan RDP, bukan Negosiasi, sebelum Anda menonaktifkan TLS 1.0.

Jadi saya kehilangan kemampuan saya untuk melakukan koneksi jarak jauh ke instance AWS saya!

Untuk menghubungkan kembali, saya menggunakan instance AWS lain.

  1. Saya memperbarui SecurityGroup untuk mengizinkan koneksi firewall dari mesin itu ke mesin "hilang" saya.
  2. Saya membuka berbagi jaringan administratif dalam DOS, dengan pengguna admin dan kata sandi:

net use \\lost_machine_ip\c$

  1. Lalu saya membuka Regedit, dan di menu File, pilih "Connect Network Registry" dan masukkan IP dari server "yang hilang". Anda akan melihat registri server jarak jauh. Pergi ke :

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

dan atur nilainya SecurityLayermenjadi 0 (0 adalah Keamanan RDP).

Anda kemudian akan dapat melakukan koneksi jarak jauh, dan mengaktifkan kembali TLS 1.0 di IISCrypto jika diperlukan.

Thierry_S
sumber
Terima kasih, ini menyelamatkan saya banyak pekerjaan membuat ulang server. Tidak yakin bagaimana Anda mengubah grup keamanan Anda untuk memungkinkan koneksi antara mesin --- Saya membuka semua akses ke mesin "hilang" ke alamat IP mesin kedua, dan itu berhasil. Apakah ada cara yang lebih baik?
Gullbyrd
@Gullbyrd, atau atur ALL TCP ke grup keamanan yang dimiliki kedua mesin. Melakukan hal yang sama.
Dave Beer
3

Anda perlu menginstal RDP 8.0 di komputer Windows 7 dan server Windows Server 2008 R2, dan kemudian mengaktifkan RDP 8.0 di kebijakan komputer lokal atau kebijakan grup.

Berikut adalah Microsoft KB untuk RDP 8.0. https://support.microsoft.com/en-us/kb/2592687

Setelah ini selesai, Anda harus dapat menonaktifkan TLS 1.0 di komputer dan server dengan mengedit registri seperti yang diperintahkan dalam artikel ini. https://technet.microsoft.com/en-us/library/dn786418.aspx

Setelah menginstal RDP 8.0 Anda juga dapat menginstal RDP 8.1, tetapi RDP 8.0 harus diinstal sebelum menginstal RDP 8.1. RDP 8.0 berisi komponen klien dan protokol sisi-server, tetapi RDP 8.1 hanya mencakup klien. Microsoft KB untuk RDP 8.1 adalah KB2830477.

Saya membuat perubahan ini di salah satu workstation windows 7 saya dan menguji koneksi RDP dengan "Memerlukan penggunaan lapisan keamanan khusus untuk koneksi jarak jauh (RDP)" Pengaturan Kebijakan Grup diaktifkan dan diatur ke "SSL (TLS 1.0)" untuk memastikan bahwa itu tidak akan kembali ke Enkripsi RDP.

PEMBARUAN 6/19/2015:

Saya akhirnya mendapat kesempatan untuk menguji ini di salah satu server Windows Server 2008 R2 kami, dan itu pasti memutus koneksi RDP ke server. Tampaknya komponen sisi server RDP 8.0 hanya diinstal pada komputer Windows 7, dan tidak diinstal pada server Windows Server 2008 R2.

Kenny R
sumber
Artikel basis pengetahuan dukungan yang dirujuk tidak berfungsi saat ini (redirect loop) namun Anda dapat menggunakan versi cache Google untuk melihat konten. Menarik bahwa masih sama sekali tidak disebutkan dukungan TLS 1.1 atau 1.2 dalam artikel ini dan saya rasa itulah alasan utama siapa pun akan melihat pertanyaan ini! Ada juga sejumlah besar peringatan termasuk admin lokal tidak lagi bisa login kecuali secara khusus ditambahkan ke grup pengguna Destop Jauh. Hati-hati jika Anda mencoba ini.
CarlR
Apakah Anda membuka port UDP 3389 di server ketika Anda mencoba menghubungkan ke server 2008?
Elvar
Saya bertindak lebih jauh untuk sementara menonaktifkan Windows Firewall sepenuhnya pada server 2008 R2 server, tapi saya masih tidak dapat terhubung ke sana menggunakan RDP dengan TLS 1.0 dinonaktifkan di server.
Kenny R
3

Seperti yang diposting di Cara menonaktifkan TLS 1.0 tanpa melanggar RemoteApps di server 2012 R2 tetapi meng-reposting di sini untuk kepentingan mereka yang mungkin tidak memonitor tautan itu:

Setelah hampir setahun, saya akhirnya menemukan solusi untuk menonaktifkan TLS 1.0 / 1.1 tanpa memutus konektivitas RDP dan Remote Desktop Services dan meluncurkan RemoteApps:

Jalankan IISCrypto dan nonaktifkan TLS 1.0, TLS 1.1 dan semua cipher yang buruk.

Pada server Layanan Desktop Jarak Jauh yang menjalankan peran gateway, buka Kebijakan Keamanan Lokal dan navigasikan ke Opsi Keamanan - Sistem kriptografi: Gunakan algoritma yang sesuai FIPS untuk enkripsi, hashing, dan penandatanganan. Ubah pengaturan keamanan ke Diaktifkan. Mulai ulang agar perubahan diterapkan.

Perhatikan bahwa dalam beberapa kasus (terutama jika menggunakan sertifikat yang ditandatangani sendiri pada Server 2012 R2), opsi Kebijakan Keamanan Keamanan Jaringan: Tingkat otentikasi manajer LAN mungkin perlu diatur untuk mengirim respons NTLMv2 saja.

kardiotoraks
sumber
2

Hanya pembaruan tentang ini jika ada orang lain yang mencari info tentangnya. Untuk kotak Windows 7 64-bit saya, saya harus menginstal KB2574819 (pertama) dan KB2592687 (kedua) Windows 7 harus menginstal SP1 sebelum 2 pkg itu akan diinstal. Jika Anda memiliki masalah menginstal SP1 seperti yang saya lakukan, saya harus menghapus KB958830 terlebih dahulu, kemudian instal SP1.

Untuk kotak Windows Server 2008 R2 saya, saya harus menginstal KB3080079. Setelah Anda melakukan ini dan memiliki semua pengaturan yang sesuai untuk komunikasi aman, maka itu akan menggunakan TLS 1.2 Anda dapat mengonfirmasi dengan menggunakan Wireshark untuk melakukan penangkapan komunikasi antara dua kotak Anda.

Seth Dunn
sumber
0

Saya telah berhasil menggunakan rdesktop ( http://www.rdesktop.org ) untuk Linux untuk mengatasi masalah ini.

Steven B
sumber
0

Satu kasus yang tidak dicakup oleh jawaban yang ada: Klien Windows 7 yang terhubung melalui RDP Gateway masih akan menggunakan TLS 1.0 saat menghubungkan ke gateway dan gagal jika gateway tidak mendukung TLS 1.0, bahkan setelah menerapkan KB3080079 , seperti yang diamati di utas forum TechNet ini .

Untuk menggunakan TLS 1.2 untuk menghubungkan melalui RDP Gateway, pastikan KB3140245 diinstal dan tambahkan kunci registri berikut (simpan dalam file dengan .regekstensi untuk diimpor):

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

Seperti yang didokumentasikan dalam KB3140245 , ini akan menggantikan WINHTTP_OPTION_SECURE_PROTOCOLSmenggunakan TLS 1.2 (dan hanya TLS 1.2) secara default. Jadi waspadai itu akan mempengaruhi lebih dari sekedar klien RDP.

(Catatan: Jika kompatibilitas ke belakang diinginkan, dword:00000800dapat diubah dword:00000A00atau dword:00000A80untuk memasukkan masing-masing TLS 1.1 dan 1.0)

Kevinoid
sumber