暗号化についてよくわからない...
ID プロバイダーに送信する SAML 要求を準備しているとします。この要求に x.509 証明書を適用する必要があるのはなぜですか? SSL 経由の送信だけでは安全ではありませんか?
暗号化についてよくわからない...
ID プロバイダーに送信する SAML 要求を準備しているとします。この要求に x.509 証明書を適用する必要があるのはなぜですか? SSL 経由の送信だけでは安全ではありませんか?
SAML の場合、メッセージ レベルのセキュリティ (つまり、XML 自体が署名され、場合によっては暗号化される) は、通信に直接通信しない関係者が関与するためです。SSL/TLS は、トランスポート レベルのセキュリティ用であり、直接通信している 2 つの当事者間で、この通信の間のみ使用されます。
使用する SAML バインディングに応じて、ダイアログは次のようになります (たとえば、Shibbolethの行に沿って)。
このシナリオでは、SP と IdP の間に直接の SSL/TLS 接続はありませんが、3 者すべてが関係しています。(これの一部のバリアントには、SP と IdP 間の属性のバックエンド通信が含まれますが、それは別の問題です。)
署名に適用されることは、中間者、つまりユーザーが SAML メッセージの内容を確認することを意図していない場合、および/またはユーザーと SP または IdP 間の接続が SSL/TLS を介していない場合、暗号化にも適用されます。 (通常、HTTPS 経由である必要があります)。
はい - SSL で十分ですが、SSL はポイントツーポイントのみです。ソース マシンとターゲット マシンの間にいくつかの仲介者がいる場合、SSL を使用して接続を保護することはできません。
その場合、たとえばインターネット経由で送信する場合は、トランスポート レベルではなく、実際のメッセージを保護する必要があります。そのため、XML (または少なくともその一部) を暗号化する必要があります。
マルク
HTTPSが行うのは、2つのポイント間の通信を暗号化し、盗聴者を防ぐことだけです。メッセージを送信したのが誰であるかは確認されません。メッセージが転送されても、安全な通信は保証されません。
X.509証明書を使用して要求に署名すると、復号化機能に証明書に含まれている共有シークレットがあることが保証されます。つまり、メッセージを復号化できるのは、復号化する組織のみであることが保証されます。
あなたの場合、X.509暗号化要件は、IDプロバイダーがリクエストを受信する唯一の組織であることを保証する必要があることを意味します。
便利なウィキペディア入門書はこちらです。
実際には、HTTPS(SSL / TLS)を使用してSAMLメッセージを保護できます。ただし、双方向SSL証明書の検証/検証を使用する必要があります。つまり、クライアントはサーバーのX.509証明書を検証する必要があり、サーバーはクライアント認証を実行するように構成する必要があり、Xをチェックする必要があります。クライアントが提示する509証明書。したがって、クライアントはとにかく独自の証明書を必要とします。
SSL / TLSは、実際にはこのために設計されていません...転送中にWebトラフィックが表示されないように保護し、クライアントが通信しているサーバーや機密情報を送信しているサーバーを認識できるように設計されています(クライアント(何かを購入するユーザー)がクレジットカード情報の送信先を知っているeコマース用に設計されています)。SAMLの場合、要点は、交換している情報が転送中に変更されておらず、それぞれが自分が誰であるかを話していることを当事者が知っていることです。証明書を使用してそのメッセージ自体に署名/暗号化することで、それを実現します。
ほとんどの場合、彼らはあなた (クライアント) を認証したいからです。 HTTPSはクライアント認証に使用できますが、実際にはほとんど使用されていません。