質問

この質問は少しあいまいであるか、誤った用語を使用している可能性があることに気付きます。つまり、このようなものを把握しようとしているからです:)。

DSIG:署名セクションを使用して、XMLメッセージのデジタル署名を実装する必要があります。私はこのプロセスを理解していると思います。私はそれに署名するために秘密鍵を使用します。 誰もそれを改ざんしていないこと。

これはTLSクライアント証明書の実装とは異なるが、目標は同じですか? (TLSは輸送レベルだからですよね?)クライアント証明書の実装は簡単ですか?一方はもう一方よりも優れていますか?

返信ありがとうございます、

マルティン

更新1:

もう1つの違いは、TLSクライアント証明書を使用してメッセージ全体が暗号化されるのに対し、デジタル署名を使用すると、メッセージ自体が署名セクションを含むプレーンテキストになることです。

役に立ちましたか?

解決

メッセージレベルのセキュリティとトランスポートレベルのセキュリティを比較しています。それらには類似点がありますが、さまざまな目的があります。

TLSを使用すると、コミュニケーションが中間者によって見られ、変更されることから保護されます。サーバー側のX.509証明書は、それに送信されたメッセージがこの秘密キーを使用してサーバーによってのみ読み取られ、送信されるものがこの秘密キーを使用してサーバーから来ることを保証します。これは可能です ゆるく サーバーによる署名とX.509証明書を使用してサーバーの暗号化と見なされますが、実際にはTLSハンドシェイクメッセージにのみ適用されます。 (とにかくチャンネルの対称暗号化を取得しているという事実は、当事者が証明書を提示したかどうかにかかわらず、少なくともサーバーに証明書を使用して、クライアントがその代わりに通信しているものを知っているようにすることが重要です中間の潜在的な男と通信)。これにクライアント証明書を追加すると、クライアントは握手中に交換したTLSメッセージにも署名します。

クライアント証明書とサーバー証明書の両方を使用する場合、署名および暗号化されたメッセージは、TLSチャネルの確立に使用されるTLSハンドシェイクメッセージであるという点で、メッセージレベルのセキュリティと類似性を(慎重に)描画できます。

ただし、メッセージレベルのセキュリティ(XML-DSIGおよびXML-ENCなど)には大きな違いがあります。

まず、メッセージ署名の機能の1つ(XML-DSIG)が監査であるため、言われたことの記録を保持できます。特に時間制限ではありません。 TLSパケットを録音したとしても、これははるかに困難です。 DHEを使用するSSL/TLSの最新の暗号スイート(Diffie-Hellman Ephemeral Mode)を使用する機構)。

第二に、実装に関しては、XML-DSIGはアプリケーションレベルで実行される傾向がありますが、TLSはサーバーコネクタによって行われる傾向があります。展開の条件に応じて違いはぼやけることができますが、TLSは、その背後にあるアプリケーションではなく、マシン/コンテナと通信することです。通常、TLS証明書はJavaコンテナまたはWCFレベルでセットアップされますが、XML-DSIGに使用される証明書は、後ろに実行されているWebApp/アプリケーションで使用されます。そこにはさまざまな人や手順があるかもしれません。

(また、XML-ENCなしでXML-DSIGを使用している場合、データを暗号化していないことも正しいです。)

他のヒント

これまでのところ、リンゴをオレンジと比較しています。

XMLデータは、XMLDSIG標準とX.509証明書を使用するなど、さまざまな方法で署名できます(XMLDSIGで他のキータイプも使用することもできます)。署名は、ドキュメントの著者を証明します(もちろん、ある程度)。

TLSは輸送層のセキュリティの略であり、 暗号化 (署名しない)転送中のデータ。特にXMLとは何の関係もありません。 TLSはX.509証明書も使用しますが、XMLSDIGとTLSに同じ証明書を使用することはできません。

私はあなたがPKIで本を取ることをお勧めします(私はいつもお勧めします RSAセキュリティの暗号化に関する公式ガイド それは簡単であるため)そしてそれを注意深く読んでください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top