驗證層級
驗證層級可控制客戶端或伺服器從其 SSP 想要多少安全性。 驗證層級是透過 dwAuthnLevel 參數,將適當的RPC_C_AUTHN_LEVEL_xxx值傳遞至 coInitializeSecurity 或 CoSetProxyBlanket。 用戶端和伺服器的驗證層級會在交握期間進行比較,而較高層級的安全性保護設定則用於連線。
不同的驗證層級如下所示,從最低層級安全性保護到最高層級:
-
無(RPC_C_AUTHN_LEVEL_NONE)
-
在用戶端與伺服器之間的通訊期間,不會執行驗證。 系統會忽略所有安全性設定。 只有在 驗證服務等級 RPC_C_AUTHN_NONE 時,才能設定此驗證層級。
-
預設值 (RPC_C_AUTHN_LEVEL_DEFAULT)
-
COM 會使用其一般安全性總和交涉來選擇驗證層級。 它永遠不會選擇 [無] 的驗證層級。
-
Connect (RPC_C_AUTHN_LEVEL_CONNECT)
-
用戶端與伺服器之間會發生一般驗證交握,而已建立會話密鑰,但客戶端與伺服器之間的通訊永遠不會使用該密鑰。 交握之後的所有通訊都是不安全的。
-
通話(RPC_C_AUTHN_LEVEL_CALL)
-
只會簽署每個呼叫開頭的標頭。 用戶端和伺服器之間交換的其餘數據不會經過簽署或加密。 大部分的 SSP 都不支援此驗證層級,並以無訊息方式將其升級為 Packet。
-
封包 (RPC_C_AUTHN_LEVEL_PKT)
-
每個封包的標頭已簽署,但未加密。 封包本身不會簽署或加密。
-
封包完整性 (RPC_C_AUTHN_LEVEL_PKT_INTEGRITY)
-
每個數據封包都會完整簽署,但不會加密。 由於所有數據都由寄件者簽署,因此收件者可以確定傳輸期間沒有任何數據遭到竄改。
-
封包隱私權 (RPC_C_AUTHN_LEVEL_PKT_PRIVACY)
-
每個數據封包都會簽署並加密。 這有助於保護客戶端與伺服器之間的整個通訊。
相關主題