8

セキュリティ キーを送信している顧客がいます。彼らが使用している暗号化はトリプル DES です。彼らが送信するすべてのアサーションには、必要な特権を与えるために検証する必要がある署名値があります。これを行うサンプルコードを教えてください。

4

2 に答える 2

14

暗号化と署名は 2 つの異なる動物です。トリプル DES は、対称キー方式 (暗号化と復号化に使用される同じキー) です。一方、デジタル署名は非対称鍵 (秘密鍵と公開鍵のペア) を使用します。署名は秘密鍵を使用して計算され、公開鍵を使用して検証できます。そのため、顧客が送信した XML に署名を含めたい場合は、公開鍵を提供する必要があります。

暗号化の場合、SAML で一般的なのは XMLEncryption を使用することです。これは、暗号化キー情報と暗号化されたデータを SAML メッセージに含めるための XML 形式を定義します。静的対称鍵の交換には問題があるため (傍受された場合、インターセプターはメッセージの暗号化と復号化の両方を行うことができます)、代わりにできることは、メッセージごとに新たに生成される動的対称鍵を使用することです。次を使用してメッセージを暗号化します。キーを暗号化し、そのキーを秘密/公開暗号化キー ペアの公開キーで暗号化し、メッセージと共に送信します。暗号化された対称キーは、暗号化に使用されたキー ペアの秘密の半分を使用してのみ復号化できます。

したがって、重要な観点から見た最も重要な違いは、署名の場合は顧客が秘密鍵を保持し、公開鍵を共有する必要があるのに対し、暗号化の場合は秘密鍵を保持し、公開鍵を顧客と共有する必要があることです。 .

于 2010-02-10T20:41:36.240 に答える
7

SAMLアサーションまたは署名可能なXMLオブジェクトのいずれかで署名を検証する場合は、OpenSAMLWIKIに詳細情報があります。

https://wiki.shibboleth.net/confluence/plugins/viewsource/viewpagesrc.action?pageId=3277047

「署名検証の例」を探すことができます。

このブログ投稿にも例があります。

https://blog.samlsecurity.com/2012/11/verifying-signatures-with-opensaml.html

検証用の「クレデンシャル」を取得するには、 https ://blog.samlsecurity.com/2011/03/getting-credentials-in-opensaml.htmlを参照してください。

XMLをOpenSAMLオブジェクトにアンマーシャリングする方法については、 https ://wiki.shibboleth.net/confluence/display/OpenSAML/OSTwoUsrManJavaCreateFromXMLを参照してください。

于 2013-01-02T19:24:45.767 に答える