Aracılığıyla paylaş


Güvenlik Hizmeti Sağlayıcıları

Güvenlik Hizmeti Sağlayıcısı Arabirimi (SSPI), güvenli dağıtılmış uygulamalar için evrensel, endüstri standardı bir arabirim sağlar. Eşleme Grafı API'si, uygulamaların SSPI arabirimi uygulayan bir DLL olan Bir Güvenlik Hizmeti Sağlayıcısı (SSP) belirterek grafikteki bağlantıların güvenliğini sağlamaları için bir yol sağlar. Uygulama, PeerGraphCreatekullanarak bir grafik oluşturduğunda bir SSP belirtir.

Kendi SSP'nizi oluşturma hakkında daha fazla bilgi için, Grafik Başvuru Bağlantıları listesindeki SSPI belgeleri bağlantısına bakın.

SSP Uygulamak için Programlama Konuları

SSP'nin içinden bir uygulamaya çağrı yaparken dikkatli olun. SSP geri çağırmaları için aşağıdaki noktalar geçerlidir:

  • Geri çağırmaların döndürülmesi uzun sürmemelidir, çünkü bunlar bağlantı anlaşması sırasında çağrılır. Bir bağlantının kurulması çok uzun sürerse, bağlantı bırakılabilir.
  • Eşleme Grafı API'si, bir sistemin gerçek yüküne göre bağlantı zaman aşımı değerlerini dinamik olarak ayarlar. En düşük zaman aşımı değeri 20 saniyedir.
  • Olası kilitlenme durumlarını önlemek için uygulamanın bir geri çağırmadan eş graf veritabanına erişmemesi gerekir. Bir uygulama grafik veritabanından bilgi gerektiriyorsa, uygulama gerekli bilgileri önbelleğe alabilir ve ardından geri çağırmanın içinden önbelleğe başvurabilir. Önbelleğe alma, bağlantı süresini azaltmaya da yardımcı olabilir.

SSPI giriş noktalarını çağırırken, Eş Grafik Altyapısı beş (5) işlevden oluşan belirli parametreler için belirli değerler gerektirir. SSP'ye sağlanan bu parametre değerlerini değiştiremezsiniz ve SSP beş parametrenin değerlerini yoksayabilir veya düzgün bir şekilde işleyebilir. Aşağıdaki liste bu belirli parametreleri ve gerekli değerleri tanımlar:

  • AcquireCredentialsHandle

    pvGetKeyArgument parametresi için bir (1) belirtin. pszPrincipal, pvLogonIDve pGetKeyFn parametreleri için NULL belirtir.

  • InitializeSecurityContext

    fContextReq parametresi için aşağıdaki bayrakları belirtin: ISC_REQ_MUTUAL_AUTH | ISC_REQ_CONFIDENTIALITY | ISC_REQ_INTEGRITY | ISC_REQ_SEQUENCE_DETECT | ISC_REQ_STREAM | ISC_REQ_ALLOCATE_MEMORY.

  • acceptSecurityContext

    fContextReq parametresi için aşağıdaki bayrakları belirtin: ASC_REQ_MUTUAL_AUTH | ASC_REQ_CONFIDENTIALITY | ASC_REQ_INTEGRITY | ASC_REQ_SEQUENCE_DETECT | ASC_REQ_STREAM | ASC_REQ_ALLOCATE_MEMORY.

  • EncryptMessage

    fQOP için sıfır (0) belirtin ve MessageSeqNo parametrelerini.

  • DecryptMessage

    MessageSeqNo parametresi için sıfır (0) ve pfQOP parametresi için NULL belirtin.

EncryptMessageçağrılırken, SecBufferDesc yapısında dört arabellek geçirilir. Aşağıdaki tablo arabellekleri geçirme sırasını tanımlar.

SSP'ye özgü yapı Açıklama
SECBUFFER_STREAM_HEADER Güvenlik üst bilgisi verilerini içerir. Üst bilgi arabelleğinin boyutu, QueryContextAttributes çağrılarak ve SECPKG_ATTR_STREAM_SIZES özniteliği belirtilerek elde edilir.
SECBUFFER_DATA Şifrelenecek düz metin iletisini içerir.
SECBUFFER_STREAM_TRAILER Güvenlik fragman verilerini içerir. Üst bilgi arabelleğinin boyutu, QueryContextAttributes çağrılarak ve SECPKG_ATTR_STREAM_SIZES özniteliği belirtilerek elde edilir.
SECBUFFER_EMPTY Başlatılmadı. Bu arabelleğin boyutu sıfırdır (0).

 

DecryptMessageçağrılırken Eşleme Grafı API'si tam olarak dört SecBuffer yapısını geçirir. İlk arabellek SECBUFFER_DATAve şifreli bir ileti içerir. Kalan arabellekler çıktı için kullanılır ve SECBUFFER_EMPTYtüründedir.

SSP'nin tek bir çağrıda 16K ve üzeri boyutlardaki kullanıcı veri arabelleklerinin şifrelenmesi ve şifresinin çözülmesini desteklemesi gerekir.