Pengaturan registri Keamanan Lapisan Transportasi (TLS)
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
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 metode pemetaan sertifikat:
- Pemetaan kerberos service-for-user (S4U) (diaktifkan secara default)
- Pemetaan nama prinsipal pengguna
- Pemetaan satu-ke-satu (juga dikenal sebagai pemetaan subjek/penerbit)
- Pemetaan banyak ke satu
Jalur registri: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
Nama entri | DWORD | Diaktifkan secara default |
---|---|---|
Subjek/Penerbit | 0x000000001 | No |
Penerbit | 0x000000002 | No |
UPN | 0x000000004 | No |
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. Setelah selesai, rahasia master, cipher suite, dan sertifikat disimpan dalam cache sesi di 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 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 mengaktifkan 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:00000000
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 mencoba memetakan nama penerbit 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 mencoba memetakan nama penerbit 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 berikut ini mungkin tidak ada di registri secara default dan harus dibuat secara manual. Penggunaan algoritma pertukaran kunci harus dikontrol dengan mengonfigurasi urutan cipher suite. Untuk mempelajari selengkapnya tentang algoritma kriptografi cipher suite TLS/SSL, lihat Cipher Suites di TLS/SSL (SChannel SSP).
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 ClientMinKeyBitLength
entri. Setelah Anda membuat entri, ubah nilai DWORD ke panjang bit yang diinginkan. Jika tidak dikonfigurasi, 1024 bit adalah minimum.
Catatan
Kurva elips yang dikonfigurasi menentukan kekuatan kriptografi pertukaran kunci ECDHE. Untuk informasi selengkapnya, lihat Mengelola Keamanan Lapisan Transportasi (TLS).
MaximumCacheSize
Entri ini mengontrol jumlah maksimum sesi TLS ke cache. Mengatur MaximumCacheSize untuk 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 diterima. Pesan yang lebih besar dari ukuran yang diizinkan tidak diterima dan jabat tangan TLS gagal. Entri ini tidak ada di registri secara default.
Saat Anda mengatur nilai ke 0x0
, pesan terfragmentasi tidak diproses dan 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 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 diterima klien TLS, buat MessageLimitClient
entri. 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 diterima server TLS saat tidak ada autentikasi klien, buat MessageLimitServer
entri. 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 diterima server TLS saat ada autentikasi klien, buat MessageLimitServerClientAuth
entri. Setelah Anda membuat entri, ubah nilai DWORD ke panjang bit yang diinginkan. Jika tidak dikonfigurasi, nilai defaultnya adalah 0x8000 byte.
SendTrustedIssuerList
Server TLS mungkin 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 Microsoft Edge menerima permintaan autentikasi klien, Microsoft Edge hanya menampilkan sertifikat klien yang menautkan ke salah satu otoritas sertifikasi yang dikirim oleh server. Jika server tidak mengirim daftar, Microsoft Edge menampilkan semua sertifikat klien yang diinstal pada klien.
Perilaku ini mungkin diinginkan. Misalnya, ketika lingkungan PKI menyertakan sertifikat silang, sertifikat klien dan server tidak memiliki CA akar yang sama. Oleh karena itu, Microsoft Edge tidak dapat memilih sertifikat yang dirantai hingga salah satu CA server. Klien TLS mungkin menawarkan sertifikat klien yang tersedia saat 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 mungkin menegosiasikan versi protokol ini dengan serekan pendukung.
- Dinonaktifkan: SChannel SSP tidak menegosiasikan versi protokol ini terlepas dari pengaturan yang mungkin ditentukan pemanggil SSPI.
Nilai registri ini dikonfigurasi secara terpisah untuk peran klien protokol dan server di bawah subkuntang registri bernama menggunakan format berikut:
<SSL/TLS/DTLS> <major version number>.<minor version number><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 (D)TLS atau SSL yang didukung ke Enabled
status, buat nilai registri DWORD bernama Enabled
dengan nilai entri "1" di bawah subkunci khusus versi yang sesuai.
Contoh berikut menunjukkan klien TLS 1.0 yang diatur ke status Diaktifkan :
Untuk mengambil alih default sistem dan mengatur versi protokol (D)TLS atau SSL yang didukung ke Disabled
status, ubah nilai registri DWORD menjadi Enabled
"0" di bawah subkunci khusus versi yang sesuai.
Contoh berikut menunjukkan DTLS 1.2 dinonaktifkan dalam registri:
Mengalihkan versi protokol (D)TLS atau SSL ke Disabled
status 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 Enabled
(D)TLS dan versi SSL dapat memutus 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.
Peringatan
Mencoba membuat atau menyesuaikan pengaturan registri SChannel apa pun yang tidak secara eksplisit dirinci dalam artikel ini tidak disarankan karena potensi risiko dan konsekuensi yang tidak diinginkan yang mungkin timbul dari konfigurasi yang tidak didukung.
Untuk mempelajari tentang mengelola rangkaian sandi TLS menggunakan PowerShell, lihat referensi perintah TLS. Jika tertarik untuk mengelola pengaturan TLS melalui Kebijakan Grup, lihat Mengonfigurasi TLS Cipher Suite Order dengan menggunakan Kebijakan Grup.