Pengaturan registri Keamanan Lapisan Transportasi (TLS)
Berlaku untuk: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 10, dan versi sebelumnya seperti yang disebutkan.
Artikel ini menjelaskan informasi pengaturan registri yang didukung untuk implementasi Windows protokol Keamanan Lapisan Transportasi (TLS) dan protokol Secure Sockets Layer (SSL) melalui Schannel Security Support Provider (SSP). Subkunci dan entri registri yang tercakup dalam topik 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 Microsoft Management Console (MMC). Jika Anda harus mengedit registri, berhati-hatilah.
CertificateMappingMethods
Entri ini tidak ada di registri secara default. Nilai defaultnya adalah bahwa keempat metode pemetaan sertifikat, yang tercantum di bawah ini, didukung.
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).
Secara default, penyedia Schannel akan menggunakan empat metode pemetaan sertifikat berikut, yang tercantum dalam urutan preferensi:
- Pemetaan sertifikat kerberos service-for-user (S4U)
- Pemetaan nama prinsipal pengguna
- Pemetaan satu-ke-satu (juga dikenal sebagai pemetaan subjek/penerbit)
- Pemetaan banyak ke satu
Versi yang berlaku: Seperti yang ditunjuk dalam daftar Berlaku Untuk di awal topik ini.
Jalur registri: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
Sandi
Cipher TLS/SSL harus dikontrol dengan mengonfigurasi urutan cipher suite. Untuk detailnya, lihat Mengonfigurasi TLS Cipher Suite Order.
Untuk informasi tentang urutan 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 urutan cipher suite default yang digunakan oleh Schannel SSP, lihat Cipher Suites di TLS/SSL (Schannel SSP).
ClientCacheTime
Entri ini mengontrol jumlah waktu yang dibutuhkan sistem operasi dalam milidetik untuk kedaluwarsa entri cache sisi klien. Nilai 0 menonaktifkan penembolokan koneksi aman. Entri ini tidak ada di registri secara default.
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 di klien dan server masing-masing.
Dimulai dengan Windows Server 2008 dan Windows Vista, waktu cache klien default adalah 10 jam.
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 Active Directory Federation Services (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 terrutekan OCSP secara default. Perilaku ini meningkatkan performa: Implementasi pengaitan Windows OCSP menskalakan ke ratusan sertifikat server. Karena SNI dan CCS memungkinkan IIS untuk menskalakan ke ribuan situs web yang berpotensi memiliki ribuan sertifikat server, mengatur perilaku ini untuk diaktifkan secara default dapat menyebabkan masalah performa.
Versi yang berlaku: Semua versi yang 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 yang potensial.
FIPSAlgorithmPolicy
Entri ini mengontrol kepatuhan Pemrosesan Informasi Federal (FIPS). Defaultnya adalah 0.
Versi yang berlaku: Semua versi yang dimulai dengan Windows Server 2012 dan Windows 8.
Jalur registri: HKLM SYSTEM\CurrentControlSet\Control\LSA
Windows Suite sandi FIPS Server: Lihat Cipher Suite dan Protokol yang Didukung di Schannel SSP.
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 penerbit. 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 memetakan 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 default adalah 100.
Versi yang berlaku: Semua versi yang 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 memetakan 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 yang dimulai dengan Windows Server 2008 dan Windows Vista.
Jalur registri: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
KeyExchangeAlgorithm - Ukuran kunci RSA klien
Entri ini mengontrol ukuran kunci RSA klien.
Penggunaan algoritma pertukaran kunci harus dikontrol dengan mengonfigurasi urutan cipher suite.
Ditambahkan dalam Windows 10, versi 1507 dan Windows Server 2016.
Jalur registri: HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\PKCS
Untuk menentukan rentang minimum yang didukung dari panjang bit kunci RSA untuk klien TLS, buat entri ClientMinKeyBitLength . Entri ini tidak ada di registri secara default. Setelah Anda membuat entri, ubah nilai DWORD ke panjang bit yang diinginkan. Jika tidak dikonfigurasi, 1024 bit akan menjadi minimum.
Untuk menentukan rentang maksimum panjang bit kunci RSA yang didukung untuk klien TLS, buat entri ClientMaxKeyBitLength . Entri ini tidak ada di registri secara default. Setelah Anda membuat entri, ubah nilai DWORD ke panjang bit yang diinginkan. Jika tidak dikonfigurasi, maka maksimum tidak diberlakukan.
KeyExchangeAlgorithm - ukuran kunci Diffie-Hellman
Entri ini mengontrol ukuran kunci Diffie-Hellman.
Penggunaan algoritma pertukaran kunci harus dikontrol dengan mengonfigurasi urutan cipher suite.
Ditambahkan dalam 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 Diffie-Helman panjang bit kunci untuk klien TLS, buat entri ClientMinKeyBitLength . Entri ini tidak ada di registri secara default. 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 Diffie-Helman panjang bit kunci untuk klien TLS, buat entri ClientMaxKeyBitLength . Entri ini tidak ada di registri secara default. Setelah Anda membuat entri, ubah nilai DWORD ke panjang bit yang diinginkan. Jika tidak dikonfigurasi, maka maksimum tidak diberlakukan.
Untuk menentukan panjang bit kunci Diffie-Helman untuk default server TLS, buat entri ServerMinKeyBitLength . Entri ini tidak ada di registri secara default. Setelah Anda membuat entri, ubah nilai DWORD ke panjang bit yang diinginkan. Jika tidak dikonfigurasi, 2048 bit akan menjadi default.
MaximumCacheSize
Entri ini mengontrol jumlah maksimum elemen cache. Mengatur MaximumCacheSize ke 0 menonaktifkan cache sesi sisi server dan mencegah koneksi ulang. Meningkatkan MaximumCacheSize di atas nilai default menyebabkan Lsass.exe menggunakan memori tambahan. Setiap elemen session-cache biasanya memerlukan memori 2 hingga 4 KB. Entri ini tidak ada di registri secara default. Nilai defaultnya adalah 20.000 elemen.
Versi yang berlaku: Semua versi yang 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 terfragmentasi 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 TLS RFC.
Ukuran maksimum yang diizinkan dapat ditingkatkan hingga 2^24-1 byte. Mengizinkan 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 default akan 0x8000 byte.
Untuk menentukan ukuran maksimum yang diizinkan dari pesan jabat tangan TLS terfragmentasi yang akan diterima server TLS ketika tidak ada autentikasi klien, buat entri MessageLimitServer . Setelah Anda membuat entri, ubah nilai DWORD ke panjang bit yang diinginkan. Jika tidak dikonfigurasi, nilai default akan 0x4000 byte.
Untuk menentukan ukuran maksimum yang diizinkan dari pesan jabat tangan TLS terfragmentasi yang akan diterima server TLS ketika ada autentikasi klien, buat entri MessageLimitServerClientAuth . Setelah Anda membuat entri, ubah nilai DWORD ke panjang bit yang diinginkan. Jika tidak dikonfigurasi, nilai default akan 0x8000 byte.
SendTrustedIssuerList
Entri ini mengontrol bendera yang digunakan ketika daftar penerbit tepercaya dikirim. Dalam kasus server yang mempercayai ratusan otoritas sertifikasi untuk autentikasi klien, ada terlalu banyak penerbit agar server dapat mengirim semuanya ke komputer klien saat meminta autentikasi klien. Dalam situasi ini, kunci registri ini dapat diatur, dan alih-alih mengirim daftar parsial, Schannel SSP tidak akan mengirim daftar apa pun ke klien.
Tidak mengirim daftar penerbit tepercaya dapat memengaruhi apa yang dikirim klien ketika dimintai sertifikat klien. Misalnya, ketika Internet Explorer menerima permintaan autentikasi klien, Internet Explorer hanya menampilkan sertifikat klien yang menautkan hingga 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 OS akar yang sama; oleh karena itu, Internet Explorer tidak dapat memilih sertifikat yang menautkan hingga salah satu CA server. Dengan mengonfigurasi server untuk tidak mengirim daftar penerbit tepercaya, Internet Explorer akan mengirim semua sertifikatnya.
Entri ini tidak ada di registri secara default.
Perilaku Kirim Daftar Penerbit Tepercaya Default
| Versi Windows | Perilaku default |
|---|---|
| Windows Server 2012 dan Windows 8 dan yang lebih baru | FALSE |
| Windows Server 2008 R2 dan Windows 7 dan yang lebih lama | BENAR |
Versi yang berlaku: Semua versi yang dimulai dengan Windows Server 2008 dan Windows Vista.
Jalur registri: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
ServerCacheTime
Entri ini mengontrol jumlah waktu dalam milidetik yang diperlukan sistem operasi untuk kedaluwarsa entri cache sisi server. Nilai 0 menonaktifkan cache sesi sisi server dan mencegah koneksi ulang. Meningkatkan ServerCacheTime di atas nilai default menyebabkan Lsass.exe menggunakan memori tambahan. Setiap elemen cache sesi biasanya memerlukan memori 2 hingga 4 KB. Entri ini tidak ada di registri secara default.
Versi yang berlaku: Semua versi yang 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. Kumpulan versi (D)TLS dan SSL yang tersedia di seluruh sistem dapat dibatasi (tetapi tidak diperluas) oleh pemanggil SSPI yang menentukan struktur SCH_CREDENTIALS atau SCHANNEL_CRED dalam panggilan AcquireCredentialsHandle . Disarankan agar pemanggil 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 pemanggil SSPI secara eksplisit menonaktifkan versi protokol ini menggunakan struktur SCH_CREDENTIALS , Schannel SSP dapat menegosiasikan versi protokol ini dengan rekan pendukung.
- Dinonaktifkan secara default: kecuali pemanggil SSPI secara eksplisit meminta versi protokol ini menggunakan struktur SCHANNEL_CRED yang tidak digunakan lagi, Schannel SSP tidak akan menegosiasikan versi protokol ini.
- Dinonaktifkan: Schannel SSP tidak akan menegosiasikan versi protokol ini terlepas dari pengaturan yang dapat ditentukan pemanggil SSPI.
Administrator sistem dapat mengganti pengaturan versi protokol (D)TLS dan SSL default dengan membuat nilai registri DWORD "Diaktifkan" dan "DisabledByDefault". Nilai registri ini dikonfigurasi secara terpisah untuk peran klien protokol dan server di bawah subkuntang registri bernama menggunakan format berikut:
<Nomor> versi SSL/TLS/DTLSmajor.<>< nomor>< versi minorClient\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 mengganti default sistem dan mengatur versi protokol (D)TLS atau SSL yang didukung ke status Diaktifkan , buat nilai registri DWORD bernama "Diaktifkan" dengan nilai bukan nol, dan nilai registri DWORD bernama "DisabledByDefault" dengan nilai nol, di bawah subkunci khusus versi yang sesuai.
Contoh berikut menunjukkan klien TLS 1.0 yang diatur ke status Diaktifkan :

Untuk mengganti default sistem dan mengatur versi protokol (D)TLS atau SSL yang didukung ke status Dinonaktifkan secara default , buat nilai registri DWORD bernama "Enabled" dan "DisabledByDefault" dengan nilai non-nol di bawah subkunci khusus versi yang sesuai. Contoh berikut menunjukkan server TLS 1.0 yang diatur ke status Dinonaktifkan secara default :

Untuk mengambil alih default sistem dan mengatur versi protokol (D)TLS atau SSL yang didukung ke status Dinonaktifkan , buat nilai registri DWORD bernama "Diaktifkan", dengan nilai nol, di bawah subkunci khusus versi yang sesuai.
Contoh berikut menunjukkan DTLS 1.2 dinonaktifkan di registri:

Mengalihkan versi protokol (D)TLS atau SSL ke Dinonaktifkan secara default atau 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.
Harap dicatat bahwa pengaturan registri ini hanya berlaku untuk Schannel SSP dan tidak memengaruhi implementasi pihak ketiga (D)TLS dan SSL yang mungkin diinstal pada sistem.