Pengaturan registri Keamanan Lapisan Transportasi (TLS)

Berlaku untuk: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 11, Windows 10, dan versi sebelumnya seperti yang disebutkan

Artikel ini menjelaskan informasi pengaturan registri yang didukung untuk implementasi Windows dari protokol Keamanan Lapisan Transportasi (TLS) dan protokol Secure Sockets Layer (SSL) melalui Penyedia Dukungan Keamanan (SSP) SChannel. Subkunci dan entri registri yang tercakup dalam artikel ini membantu Anda mengelola dan memecahkan masalah SChannel SSP, khususnya protokol TLS dan SSL.

Perhatian

Informasi ini disediakan sebagai referensi untuk digunakan saat Anda memecahkan masalah atau memverifikasi bahwa pengaturan yang diperlukan diterapkan. Kami menyarankan agar Anda tidak langsung mengedit registri kecuali tidak ada alternatif lain. Modifikasi pada registri tidak divalidasi oleh Editor Registri atau oleh sistem operasi Windows sebelum diterapkan. Akibatnya, nilai yang salah dapat disimpan, dan ini dapat mengakibatkan kesalahan yang tidak dapat dipulihkan dalam sistem. Jika memungkinkan, alih-alih mengedit registri secara langsung, gunakan Kebijakan Grup atau alat Windows lainnya seperti Konsol Manajemen Microsoft (MMC). Jika Anda harus mengedit registri, gunakan sangat hati-hati.

Pengelogan SChannel

Ada delapan tingkat pengelogan untuk peristiwa SChannel yang disimpan ke log peristiwa sistem dan dapat dilihat menggunakan Pemantau Peristiwa. Jalur registri ini disimpan di HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL di bawah kunci EventLogging dengan nilai DWORD yang diatur ke 1.

Desimal atau Hex Peristiwa pengelogan SChannel
0 Tidak ada peristiwa
1 Peristiwa kesalahan
2 Peristiwa peringatan
3 Peristiwa Kesalahan dan Peringatan
4 Peristiwa Informasi dan Keberhasilan
5 Peristiwa Kesalahan, Informasi, dan Keberhasilan
6 Peristiwa Peringatan, Informasi, dan Keberhasilan
7 Peristiwa Kesalahan, Peringatan, Informasi dan Keberhasilan

Catatan

Anda harus me-reboot perangkat Anda setelah mengubah tingkat pengelogan SChannel.

CertificateMappingMethods

Ketika aplikasi server memerlukan autentikasi klien, SChannel secara otomatis mencoba memetakan sertifikat yang disediakan oleh komputer klien ke akun pengguna. Anda dapat mengautentikasi pengguna yang masuk dengan sertifikat klien dengan membuat pemetaan, yang menghubungkan informasi sertifikat ke akun pengguna Windows.

Setelah Anda membuat dan mengaktifkan pemetaan sertifikat, setiap kali klien menyajikan sertifikat klien, aplikasi server Anda secara otomatis mengaitkan pengguna tersebut dengan akun pengguna Windows yang sesuai.

Dalam kebanyakan kasus, sertifikat dipetakan ke akun pengguna dengan salah satu dari dua cara:

  • Satu sertifikat dipetakan ke satu akun pengguna (pemetaan satu-ke-satu).
  • Beberapa sertifikat dipetakan ke satu akun pengguna (pemetaan banyak ke satu).

Penyedia SChannel menggunakan empat (4) metode pemetaan sertifikat:

  1. Pemetaan kerberos service-for-user (S4U) (diaktifkan secara default)
  2. Pemetaan nama prinsipal pengguna
  3. Pemetaan satu-ke-satu (juga dikenal sebagai pemetaan subjek/penerbit)
  4. Pemetaan banyak ke satu

Jalur registri: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Nama entri DWORD Diaktifkan secara default
Subjek/Penerbit 0x000000001 Tidak
Penerbit 0x000000002 Tidak
UPN 0x000000004 Tidak
S4U2Self 0x000000008 Ya
Eksplisit S4U2Self 0x000000010 Ya

Versi yang berlaku: Seperti yang ditunjuk dalam daftar Berlaku Untuk di awal artikel ini.

Sandi

Cipher TLS/SSL harus dikontrol dengan mengonfigurasi urutan cipher suite. Untuk detailnya, lihat Mengonfigurasi TLS Cipher Suite Order.

Untuk informasi tentang pesanan cipher suite default yang digunakan oleh SChannel SSP, lihat Cipher Suites di TLS/SSL (SChannel SSP).

CipherSuite

Mengonfigurasi suite sandi TLS/SSL harus dilakukan menggunakan kebijakan grup, MDM atau PowerShell, lihat Mengonfigurasi TLS Cipher Suite Order untuk detailnya.

Untuk informasi tentang pesanan cipher suite default yang digunakan oleh SChannel SSP, lihat Cipher Suites di TLS/SSL (SChannel SSP).

ClientCacheTime

Entri ini menentukan masa pakai item cache sesi TLS klien dalam milidetik. Dimulai dengan Windows Server 2008 dan Windows Vista, defaultnya adalah 10 jam. Nilai 0 menonaktifkan penembolokan sesi TLS pada klien.

Pertama kali klien terhubung ke server melalui SChannel SSP, jabat tangan TLS/SSL penuh dilakukan. Ketika ini selesai, rahasia master, cipher suite, dan sertifikat disimpan dalam cache sesi pada klien dan server masing-masing.

Jalur registri: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

EnableOcspStaplingForSni

Pengaitan Protokol Status Sertifikat Online (OCSP) memungkinkan server web, seperti Layanan Informasi Internet (IIS), untuk memberikan status pencabutan sertifikat server saat ini ketika mengirim sertifikat server ke klien selama jabat tangan TLS. Fitur ini mengurangi beban pada server OCSP karena server web dapat menyimpan cache status OCSP sertifikat server saat ini dan mengirimkannya ke beberapa klien web. Tanpa fitur ini, setiap klien web akan mencoba mengambil status OCSP sertifikat server saat ini dari server OCSP. Ini akan menghasilkan beban tinggi pada server OCSP tersebut.

Selain IIS, layanan web melalui http.sys juga dapat memperoleh manfaat dari pengaturan ini, termasuk Layanan Federasi Direktori Aktif (AD FS) dan Web Proksi Aplikasi (WAP).

Secara default, dukungan OCSP diaktifkan untuk situs web IIS yang memiliki pengikatan aman sederhana (SSL/TLS). Namun, dukungan ini tidak diaktifkan secara default jika situs web IIS menggunakan salah satu atau kedua jenis pengikatan SSL/TLS berikut:

  • Memerlukan Indikasi Nama Server
  • Gunakan Penyimpanan Sertifikat Terpusat

Dalam hal ini, respons halo server selama jabat tangan TLS tidak akan menyertakan status OCSP yang di-stapl secara default. Perilaku ini meningkatkan performa: Implementasi stapling Windows OCSP menskalakan ke ratusan sertifikat server. Namun, Server Name Indication (SNI) dan Central Certificate Store (CCS) memungkinkan IIS untuk menskalakan ke ribuan situs web yang berpotensi memiliki ribuan sertifikat server, oleh karena itu memungkinkan stapling OCSP untuk pengikatan CCS dapat menyebabkan masalah performa.

Versi yang berlaku: Semua versi dimulai dengan Windows Server 2012 dan Windows 8.

Jalur registri: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Tambahkan kunci berikut:

"EnableOcspStaplingForSni"=dword:00000001

Untuk menonaktifkan, atur nilai DWORD ke 0:

"EnableOcspStaplingForSni"=dword:000000000

Catatan

Mengaktifkan kunci registri ini memiliki dampak performa potensial.

Hash

Algoritma hash TLS/SSL harus dikontrol dengan mengonfigurasi urutan cipher suite. Lihat Mengonfigurasi TLS Cipher Suite Order untuk detailnya.

IssuerCacheSize

Entri ini mengontrol ukuran cache penerbit, dan digunakan dengan pemetaan pengeluar sertifikat. SChannel SSP mencoba memetakan semua penerbit dalam rantai sertifikat klien, bukan hanya penerbit langsung sertifikat klien. Ketika penerbit tidak memetakan ke akun, yang merupakan kasus umum, server mungkin mencoba memetakan nama penerbit yang sama berulang kali, ratusan kali per detik.

Untuk mencegah hal ini, server memiliki cache negatif, jadi jika nama pengeluar sertifikat tidak dipetakan ke akun, server ditambahkan ke cache dan SChannel SSP tidak akan mencoba memetakan nama pengeluar sertifikat lagi sampai entri cache kedaluwarsa. Entri registri ini menentukan ukuran cache. Entri ini tidak ada di registri secara default. Nilai defaultnya adalah 100.

Versi yang berlaku: Semua versi dimulai dengan Windows Server 2008 dan Windows Vista.

Jalur registri: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

IssuerCacheTime

Entri ini mengontrol panjang interval batas waktu cache dalam milidetik. SChannel SSP mencoba memetakan semua penerbit dalam rantai sertifikat klien, bukan hanya penerbit langsung sertifikat klien. Dalam kasus di mana penerbit tidak memetakan ke akun, yang merupakan kasus umum, server mungkin mencoba memetakan nama penerbit yang sama berulang kali, ratusan kali per detik.

Untuk mencegah hal ini, server memiliki cache negatif, jadi jika nama pengeluar sertifikat tidak dipetakan ke akun, server ditambahkan ke cache dan SChannel SSP tidak akan mencoba memetakan nama pengeluar sertifikat lagi sampai entri cache kedaluwarsa. Cache ini disimpan karena alasan performa, sehingga sistem tidak terus mencoba memetakan penerbit yang sama. Entri ini tidak ada di registri secara default. Nilai defaultnya adalah 10 menit.

Versi yang berlaku: Semua versi dimulai dengan Windows Server 2008 dan Windows Vista.

Jalur registri: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Ukuran kunci KeyExchangeAlgorithm

Entri yang tercantum di bawah ini mungkin tidak ada di registri secara default dan harus dibuat secara manual. Penggunaan algoritma pertukaran kunci harus dikontrol dengan mengonfigurasi urutan cipher suite.

Ditambahkan di Windows 10, versi 1507 dan Windows Server 2016.

Jalur registri: HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman

Untuk menentukan rentang minimum yang didukung dari panjang bit kunci Diffie-Hellman untuk klien TLS, buat entri ClientMinKeyBitLength . Setelah Anda membuat entri, ubah nilai DWORD ke panjang bit yang diinginkan. Jika tidak dikonfigurasi, 1024 bit akan menjadi minimum.

Untuk menentukan rentang maksimum yang didukung dari panjang bit kunci Diffie-Hellman untuk klien TLS, buat entri ClientMaxKeyBitLength . Setelah Anda membuat entri, ubah nilai DWORD ke panjang bit yang diinginkan.

Untuk menentukan panjang bit kunci Diffie-Hellman untuk default server TLS, buat entri ServerMinKeyBitLength . Setelah Anda membuat entri, ubah nilai DWORD ke panjang bit yang diinginkan. Jika tidak dikonfigurasi, 2048 bit adalah default.

Catatan

Kurva elips yang dikonfigurasi menentukan kekuatan kriptografi pertukaran kunci ECDHE. Untuk informasi selengkapnya, lihat Mengelola Keamanan Lapisan Transportasi (TLS).

Untuk mempelajari selengkapnya tentang algoritma kriptografi rangkaian sandi TLS/SSL, lihat:

MaximumCacheSize

Entri ini mengontrol jumlah maksimum sesi TLS ke cache. Mengatur MaximumCacheSize ke 0 menonaktifkan cache sesi sisi server untuk mencegah dimulainya kembali sesi. Meningkatkan MaximumCacheSize di atas nilai default menyebabkan Lsass.exe mengonsumsi memori tambahan. Setiap elemen session-cache biasanya memerlukan memori 2 KB hingga 4 KB. Entri ini tidak ada di registri secara default. Nilai defaultnya adalah 20.000 elemen.

Versi yang berlaku: Semua versi dimulai dengan Windows Server 2008 dan Windows Vista.

Jalur registri: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Olahpesan – penguraian fragmen

Entri ini mengontrol ukuran maksimum yang diizinkan dari pesan jabat tangan TLS yang akan diterima. Pesan yang lebih besar dari ukuran yang diizinkan tidak akan diterima dan jabat tangan TLS akan gagal. Entri ini tidak ada di registri secara default.

Saat Anda mengatur nilai ke 0x0, pesan terfragmentasi tidak diproses dan akan menyebabkan jabat tangan TLS gagal. Hal ini membuat klien atau server TLS pada komputer saat ini tidak mematuhi RFC TLS.

Ukuran maksimum yang diizinkan dapat ditingkatkan hingga 2^16 byte. Memungkinkan klien atau server membaca dan menyimpan sejumlah besar data yang belum diverifikasi dari jaringan bukanlah ide yang baik dan akan menggunakan memori tambahan untuk setiap konteks keamanan.

Ditambahkan di Windows 7 dan Windows Server 2008 R2: Pembaruan yang memungkinkan Internet Explorer di Windows XP, di Windows Vista, atau di Windows Server 2008 untuk mengurai pesan jabat tangan TLS/SSL terfragmentasi tersedia.

Jalur registri: HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Messaging

Untuk menentukan ukuran maksimum pesan jabat tangan TLS terfragmentasi yang akan diterima klien TLS, buat entri MessageLimitClient . Setelah Anda membuat entri, ubah nilai DWORD ke panjang bit yang diinginkan. Jika tidak dikonfigurasi, nilai defaultnya adalah 0x8000 byte.

Untuk menentukan ukuran maksimum pesan jabat tangan TLS terfragmentasi yang akan diterima server TLS saat tidak ada autentikasi klien, buat entri MessageLimitServer . Setelah Anda membuat entri, ubah nilai DWORD ke panjang bit yang diinginkan. Jika tidak dikonfigurasi, nilai defaultnya adalah 0x4000 byte.

Untuk menentukan ukuran maksimum pesan jabat tangan TLS terfragmentasi yang akan diterima server TLS saat ada autentikasi klien, buat entri MessageLimitServerClientAuth . Setelah Anda membuat entri, ubah nilai DWORD ke panjang bit yang diinginkan. Jika tidak dikonfigurasi, nilai defaultnya adalah 0x8000 byte.

SendTrustedIssuerList

Server TLS dapat mengirim daftar nama khusus otoritas sertifikat yang dapat diterima saat meminta autentikasi klien. Ini dapat membantu klien TLS memilih sertifikat klien TLS yang sesuai. Server TLS berbasis SChannel tidak mengirim daftar pengeluar sertifikat tepercaya ini secara default karena mengekspos otoritas sertifikat yang dipercaya oleh server ke pengamat pasif dan juga meningkatkan jumlah data yang dipertukarkan selama jabat tangan TLS. Mengatur nilai ini ke 1 menyebabkan server berbasis SChannel mengirim daftar penerbit tepercaya mereka.

Tidak mengirim daftar penerbit tepercaya dapat memengaruhi apa yang dikirim klien saat dimintai sertifikat klien. Misalnya, ketika Internet Explorer menerima permintaan autentikasi klien, internet explorer hanya menampilkan sertifikat klien yang menautkan ke salah satu otoritas sertifikasi yang dikirim oleh server. Jika server tidak mengirim daftar, Internet Explorer menampilkan semua sertifikat klien yang diinstal pada klien.

Perilaku ini mungkin diinginkan. Misalnya, ketika lingkungan PKI menyertakan sertifikat silang, sertifikat klien dan server tidak akan memiliki CA akar yang sama; oleh karena itu, Internet Explorer tidak dapat memilih sertifikat yang menautkan hingga salah satu CA server. Klien TLS dapat menawarkan sertifikat klien yang tersedia ketika server tidak mengirim daftar penerbit tepercaya. Entri ini tidak ada di registri secara default.

Perilaku Kirim Daftar Penerbit Tepercaya Default

Versi Windows Perilaku default
Windows Server 2012, Windows 8 dan yang lebih baru SALAH
Windows Server 2008 R2, Windows 7, dan yang lebih lama BENAR

Versi yang berlaku: Semua versi dimulai dengan Windows Server 2008 dan Windows Vista.

Jalur registri: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

ServerCacheTime

Entri ini menentukan masa pakai item cache sesi TLS server dalam milidetik. Defaultnya adalah 10 jam. Nilai 0 menonaktifkan penembolokan sesi TLS di server dan mencegah dimulainya kembali sesi. Meningkatkan ServerCacheTime di atas nilai default menyebabkan Lsass.exe menggunakan memori tambahan. Setiap elemen cache sesi biasanya memerlukan memori 2 KB hingga 4 KB. Entri ini tidak ada di registri secara default.

Versi yang berlaku: Semua versi dimulai dengan Windows Server 2008 dan Windows Vista.

Jalur registri: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Waktu cache server default: 10 jam

Pengaturan versi protokol TLS, DTLS, dan SSL

SChannel SSP mengimplementasikan versi protokol TLS, DTLS, dan SSL. Rilis Windows yang berbeda mendukung versi protokol yang berbeda. Set (D)TLS dan versi SSL yang tersedia di seluruh sistem dapat dibatasi (tetapi tidak diperluas) oleh pemanggil SSPI yang menentukan struktur SCH_CREDENTIALS dalam panggilan AcquireCredentialsHandle . Disarankan agar penelepon SSPI menggunakan default sistem, daripada memberlakukan pembatasan versi protokol.

Versi protokol (D)TLS atau SSL yang didukung dapat ada di salah satu status berikut:

  • Diaktifkan: Kecuali penelepon SSPI secara eksplisit menonaktifkan versi protokol ini menggunakan struktur SCH_CREDENTIALS , SChannel SSP dapat menegosiasikan versi protokol ini dengan serekan pendukung.
  • Dinonaktifkan: SChannel SSP tidak akan menegosiasikan versi protokol ini terlepas dari pengaturan yang dapat ditentukan pemanggil SSPI.

Nilai registri ini dikonfigurasi secara terpisah untuk peran klien protokol dan server di bawah subkuntang registri bernama menggunakan format berikut:

<Nomor> versi utama SSL/TLS/DTLS.<><nomor><versi minor Client\Server>

Subkunci khusus versi ini dapat dibuat di bawah jalur registri berikut:

HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

Misalnya, berikut adalah beberapa jalur registri yang valid dengan subkuntang khusus versi:

  • HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client

  • HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server

  • HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\DTLS 1.2\Client

Untuk mengambil alih default sistem dan mengatur versi protokol TLS atau SSL yang didukung ke status Diaktifkan , buat nilai registri DWORD bernama "Diaktifkan" dengan nilai entri "1" di bawah subkunci khusus versi yang sesuai.

Contoh berikut menunjukkan klien TLS 1.0 yang diatur ke status Diaktifkan :

Screenshot of Set TLS 1.0 client-side to enabled in Windows Server registry setting.

Untuk mengambil alih default sistem dan mengatur versi protokol TLS atau SSL yang didukung ke status Dinonaktifkan , ubah nilai registri DWORD "Diaktifkan" menjadi "0" di bawah subkunci khusus versi yang sesuai.

Contoh berikut menunjukkan DTLS 1.2 dinonaktifkan dalam registri:

Screenshot of Windows Server registry setting for DTLS 1.2 set to disabled by default.

Mengalihkan (D)TLS atau versi protokol SSL ke status Dinonaktifkan dapat menyebabkan panggilan AcquireCredentialsHandle gagal karena kurangnya versi protokol yang diaktifkan di seluruh sistem dan pada saat yang sama diizinkan oleh pemanggil SSPI tertentu. Selain itu, mengurangi set versi Enabled (D)TLS dan SSL dapat merusak interoperabilitas dengan rekan jarak jauh.

Setelah pengaturan versi protokol (D)TLS atau SSL dimodifikasi, pengaturan tersebut berlaku pada koneksi yang dibuat menggunakan handel kredensial yang dibuka oleh panggilan AcquireCredentialsHandle berikutnya. (D) Aplikasi dan layanan klien dan server TLS dan SSL cenderung menggunakan kembali handel kredensial untuk beberapa koneksi, karena alasan performa. Untuk mendapatkan aplikasi ini untuk memperoleh kembali handel kredensial mereka, aplikasi atau mulai ulang layanan mungkin diperlukan.

Pengaturan registri ini hanya berlaku untuk SChannel SSP dan tidak memengaruhi implementasi TLS dan SSL pihak ketiga yang mungkin diinstal pada sistem.