SPNEGO

SPNEGO(SPNEGO: Simple and Protected GSS-API Negotiation)是微軟提供的一種使用GSS-API認證機制的安全協定,用於使Webserver共享Windows Credentials,它擴展了Kerberos(一種網路認證協定)。

基本介紹

  • 外文名:SPNEGO
  • 類型:安全協定
定義:,簡述,接入與認證過程,

定義:

SPNEGO(SPNEGO: Simple and Protected GSS-API Negotiation)是微軟提供的一種使用GSS-API認證機制的安全協定,用於使Webserver共享Windows Credentials,它擴展了Kerberos(一種網路認證協定)。

簡述

SPNEGO是一種使用GSS-API(通用安全服務套用接口)認證機制的安全協定。GSS-API是一個同時包含應用程式接口和接入認證方法學的文字處理函式集。
SPNEGO協定允許客戶機和web伺服器協定一個它們之間的通訊協定。此協定也定義了一種客戶機傳送可驗證的證明數據給web伺服器的方式。
如果web伺服器可以解析客戶機發來的SPNEGOtoken,那么這個token就用來實現安全的單點登錄(securesingle sing on)。因此用戶的身份就用一種安全方式協商給web伺服器。這就是現在用戶經常在訪問IIS是體驗的。需要注意的是SPNEGO支持基於Kerberos或NTLMcredentials 的Active Directory credentials。IBMTAI方案只支持基於Kerberos credentials的。TAM(TivoliAccess Manager)支持NTLM和Kerberos兩種。
SPNEGO協定通過使用接口和接入認證產生了一個套用協定和一個認證協定相互作用的一張簡表。在這種模式下,套用協定主要負責運送認證協定生成的不相關聯和不透明的包。這些由GSS規格提及作為安全令牌的包執行認證過程。套用協定對於安全令牌的內容是不可見的;它只是負責傳送這些安全令牌。
因為可以有多個可並存的GSS認證協定的存在,決定使用哪個協定就變得尤為重要。最初的GSS設計了一個靜態的,在應用程式與GSS實施間編譯時的綁定。SPNEGO 填充了這種介紹一個可並存的GSS套件給其他GSS機制的需要。更多近來的實踐是提供超過一個認證的機制---甚至只是一個單獨的套用協定。它安全的在幾個認證機制間協商,選擇一個用來滿足套用協定認證的需要。
微軟對SPNEGO協定已經做出了一些改進:包括在早期實施時的某些錯誤,以及與某些非GSS方案的最佳化。這些改進構成了這一規範的基礎。

接入與認證過程

首先,套用協定在客戶端調用認證協定。客戶端部分的認證協定建立一個安全令牌並將令牌返回給呼叫的套用協定。接著套用協定傳送安全令牌到其連線在嵌入有套用協定的伺服器端。在伺服器端,伺服器的套用協定提取出安全令牌並提供給伺服器端的認證協定。伺服器端的認證協定開始處理這個安全令牌,隨後可能會產生一個回響,又或者由它來決定此次認證已經完成。如果又有一個安全令牌產生,套用協定必須把它送回給客戶端使認證過程能繼續下去。
安全令牌的交換會一直進行下去,直到一邊決定認證失敗或兩邊都認為認證成功。如果認證失敗,套用協定會下線並顯示出錯誤訊息。如果認證成功,套用協定能信任申請方的身份直到支持的套用協定能夠完成為止。判定成功或失敗的責任並不在套用協定,而在抽象的安全協定,則大大簡化了套用協定的任務。當認證完成後,特定會話的安全服務就會可用。套用協定接著就可以調用認證協定來簽認或加密由一部分套用協定發出的訊息。在大致相同的方式下,特定會話安全服務的具體操作被執行,其中套用協定可以表明哪部分訊息已經加密,且套用協定必須含有每條訊息的安全令牌。被簽認或加密的訊息,應用程式能夠獲得訊息的保密性和完整性,並且能發現訊息丟失,異常投遞和重新傳送。

相關詞條

熱門詞條

聯絡我們