Menentukan Cipher Schannel dan Cipher Strengths

Untuk pertukaran informasi klien/server, perilaku default Schannel adalah menegosiasikan cipher terbaik yang tersedia berdasarkan yang diaktifkan di registri. Aplikasi dapat membatasi cipher dan kekuatan cipher yang diizinkan untuk koneksi dengan menggunakan anggota struktur SCHANNEL_CRED sebagai berikut:

  1. Atur anggota palgSupportedAlgs ke array ALG_ID yang berisi cipher yang diizinkan. Untuk informasi selengkapnya, lihat ID Sandi.
  2. Atur anggota dwMinimumCipherStrength dan/atau dwMaximumCipherStrength ke kekuatan minimum dan maksimum yang diizinkan. Untuk informasi selengkapnya, lihat Nilai Kekuatan Sandi.
  3. Teruskan struktur SCHANNEL_CRED (dengan parameter pAuthData ) dalam panggilan ke fungsi AcquireCredentialsHandle . Fungsi ini mengembalikan handel kredensial.
  4. Tentukan handel kredensial dalam panggilan ke fungsi InitializeSecurityContext (Umum) sisi klien atau fungsi AcceptSecurityContext (Umum) sisi server.

ID Sandi

Perilaku default Schannel adalah meminta sandi terbaik yang tersedia berdasarkan entri Schannel dalam registri sistem. Jangan ubah registri sistem; pengaturan yang dikandungnya untuk Schannel digunakan secara global dan akan memengaruhi aplikasi lain. Untuk daftar konstanta yang valid, lihat ALG_ID.

Nilai Kekuatan Cipher

Fitur Schannel ini biasanya digunakan untuk membatasi koneksi ke cipher kekuatan domestik atau ekspor. Kekuatan domestik termasuk 56, dan 128 bit, sementara kekuatan ekspor terbatas pada 56 bit. Jika Anda mengatur nilai minimum dan maksimum ke nol Schannel akan menggunakan semua kekuatan sandi yang tersedia.

Menggunakan TLS atau SSL 3.0, atur anggota dwMinimumCipherStrength ke -1 (negatif) untuk mengaktifkan suite sandi "Null Cipher", yang memberikan tanda tangan tetapi tanpa enkripsi. Jika dwMaximumCipherStrength juga diatur ke -1 maka hanya suite "Null Cipher" yang akan diaktifkan. Pengaturan ini hanya ditujukan untuk pengembangan dan tidak boleh digunakan dalam sistem produksi.

Mengkueri Informasi Sandi

Untuk mengambil pengaturan kekuatan sandi untuk kredensial, panggil fungsi QueryCredentialsAttributes dan tentukan SECPKG_ATTR_CIPHER_STRENGTHS sebagai parameter ulAttribute .

Untuk mengambil daftar algoritma yang didukung untuk kredensial, panggil QueryCredentialsAttributes dengan SECPKG_ATTR_SUPPORTED_ALGS sebagai parameter ulAttribute .