2011-11-26 21 views

回答

37

SAML斷言查詢/請求通常不包含太多私有數據,並且請求本身通常不會保留以備後用,所以幾乎不需要加密SAML請求本身。簽名可以讓接收方驗證內容在傳輸過程中沒有被更改,並且通過SSL進行傳輸會在傳輸過程中提供隱私。在這種情況下加密請求可能是矯枉過正的。

但是,SAML斷言響應是完全不同的動物。包含聲明或斷言的SAML響應可能包含私人數據。根據系統中這些斷言的使用方式,斷言可能會在不同方之間傳遞,其中一些需要密鑰才能解密內容(因爲它們與SAML提供程序之間存在信任關係),另一些則不需要。 SAML斷言可以存儲在緩存或數據庫中,所以你真的不知道將來誰會戳穿它們。

如果SAML響應包含聲明和斷言,其中包含私有數據,並且響應的接收方將無限期地持有SAML斷言或通過您不信任的中間方傳遞SAML斷言,那麼是的, SAML斷言應該被加密並且響應被簽名,不管它是否由SSL傳輸。加密是爲了在數據到達SSL管道的另一端後保護數據的隱私。

+3

「加密是爲了保護數據到達SSL管道另一端後的隱私。」這對我來說很清楚。謝謝! – BernardMarx

2

而且,SSL管道的另一端是瀏覽器。有一個從IdP到瀏覽器的管道,另一個從瀏覽器到服務提供商。如果斷言未加密,斷言將在瀏覽器中供任何人使用。攻擊者可能會在未來的SAML文檔和交互中使用未加密的名稱標識符進行某種攻擊。

+3

但是如果攻擊者擁有瀏覽器並不是我們已經失去了? – sbc

相關問題