Bagikan melalui


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:

  • AcquireCredentialsHandle

    Tentukan satu (1) untuk parameter pvGetKeyArgument. Menentukan NULL untuk parameter pszPrincipal, pvLogonID, dan pGetKeyFn.

  • InitializeSecurityContext

    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.

  • AcceptSecurityContext

    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.

  • EncryptMessage

    Tentukan nol (0) untuk parameter fQOP dan MessageSeqNo.

  • decryptMessage

    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.