Penyedia Layanan Keamanan
Antarmuka Penyedia Layanan Keamanan (SSPI) menyediakan antarmuka standar industri universal untuk aplikasi terdistribusi yang aman. PEER Graphing API menyediakan cara bagi aplikasi untuk mengamankan tautan dalam grafik dengan menentukan Penyedia Layanan Keamanan (SSP), yang merupakan DLL yang mengimplementasikan antarmuka SSPI. Aplikasi menentukan SSP saat membuat grafik dengan menggunakan PeerGraphCreate.
Untuk informasi selengkapnya tentang membuat SSP Anda sendiri, lihat tautan dokumentasi SSPI dalam daftar Tautan Referensi Grafik.
Pertimbangan Pemrograman untuk Menerapkan SSP
Berhati-hatilah saat memanggil ke aplikasi dari dalam SSP. Pertimbangan berikut berlaku untuk panggilan balik SSP:
- Panggilan balik tidak boleh memakan waktu lama untuk kembali, karena dipanggil selama negosiasi koneksi. Jika terlalu lama untuk membuat koneksi, koneksi dapat dihilangkan.
- PEER Graphing API secara dinamis menyesuaikan nilai batas waktu koneksi, berdasarkan beban aktual sistem. Nilai batas waktu terendah adalah 20 detik.
- Untuk menghindari potensi situasi kebuntuan, aplikasi tidak boleh mengakses database grafik serekan dari panggilan balik. Jika aplikasi memerlukan informasi dari database grafik, aplikasi dapat menyimpan informasi yang diperlukan, lalu merujuk ke cache dari dalam panggilan balik. Penembolokan juga dapat membantu mengurangi waktu koneksi.
Saat memanggil titik masuk SSPI, Infrastruktur Grafik Serekan memerlukan nilai tertentu untuk parameter tertentu dari lima (5) fungsi. Anda tidak dapat mengubah nilai parameter ini yang disediakan untuk SSP, dan SSP dapat mengabaikan nilai untuk lima parameter atau menanganinya dengan anggun. Daftar berikut mengidentifikasi parameter spesifik ini dan nilai yang diperlukan:
-
Tentukan satu (1) untuk parameter pvGetKeyArgument. Menentukan NULL untuk parameter pszPrincipal, pvLogonID, dan pGetKeyFn.
-
Tentukan bendera berikut untuk parameter fContextReq: ISC_REQ_MUTUAL_AUTH | ISC_REQ_CONFIDENTIALITY | ISC_REQ_INTEGRITY | ISC_REQ_SEQUENCE_DETECT | ISC_REQ_STREAM | ISC_REQ_ALLOCATE_MEMORY.
-
Tentukan bendera berikut untuk parameter fContextReq: ASC_REQ_MUTUAL_AUTH | ASC_REQ_CONFIDENTIALITY | ASC_REQ_INTEGRITY | ASC_REQ_SEQUENCE_DETECT | ASC_REQ_STREAM | ASC_REQ_ALLOCATE_MEMORY.
-
Tentukan nol (0) untuk parameter fQOP dan MessageSeqNo.
-
Tentukan nol (0) untuk parameter MessageSeqNo dan NULL untuk parameter pfQOP.
Saat memanggil EncryptMessage, empat buffer diteruskan dalam struktur SecBufferDesc. Tabel berikut mengidentifikasi urutan untuk meneruskan buffer.
Struktur khusus SSP | Deskripsi |
---|---|
SECBUFFER_STREAM_HEADER | Berisi data header keamanan. Ukuran buffer header diperoleh dengan memanggil QueryContextAttributes dan menentukan atribut SECPKG_ATTR_STREAM_SIZES. |
SECBUFFER_DATA | Berisi pesan teks biasa yang akan dienkripsi. |
SECBUFFER_STREAM_TRAILER | Berisi data trailer keamanan. Ukuran buffer header diperoleh dengan memanggil QueryContextAttributes dan menentukan atribut SECPKG_ATTR_STREAM_SIZES. |
SECBUFFER_EMPTY | Tidak diinisialisasi. Ukuran buffer ini adalah nol (0). |
Saat memanggilDecryptMessage, API Peer Graphing melewati empat struktur SecBuffer. Buffer pertama SECBUFFER_DATA, dan berisi pesan terenkripsi. Buffer yang tersisa digunakan untuk output, dan berjenis SECBUFFER_EMPTY.
SSP perlu mendukung enkripsi dan dekripsi buffer data pengguna dengan ukuran 16K dan lebih besar dalam satu panggilan.