1

この質問が少し曖昧であるか、間違った用語を使用している可能性があることを認識しています。これは、この問題を理解しようとしているためです:)。

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

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

お返事ありがとうございます。

マルティン

更新 1:

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

4

2 に答える 2

5

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

TLS を使用すると、通信が中間者によって見られたり変更されたりするのを防ぐことができます。サーバー側の X.509 証明書は、送信されたメッセージがこの秘密鍵を使用するサーバーによってのみ読み取られること、および送信されるメッセージがこの秘密鍵を使用してサーバーから送信されることを保証します。これは大まかにサーバーによる署名と X.509 証明書を使用したサーバーの暗号化と見なされますが、実際には TLS ハンドシェイク メッセージにのみ適用され、後で交換されるアプリケーション データには適用されません。(当事者が証明書を提示したかどうかに関係なく、とにかくチャネルの対称暗号化を取得するという事実は省略します。少なくともサーバーに証明書を使用させて、クライアントが通信相手を代わりに認識できるようにすることが重要です。潜在的な中間者との通信)。これにクライアント証明書を追加すると、クライアントはハンドシェイク中に交換した TLS メッセージにも署名します。

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

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

まず、メッセージ署名 (XML-DSig) の機能の 1 つは監査です。これにより、発言内容の記録を保持できます。特に期間限定ではありません。TLS パケットを記録したとしても、これを行うのははるかに困難です。DHE (Diffie-Hellman ephemeral モード) を使用する SSL/TLS の最新の暗号スイートでは、サーバーの秘密鍵を持っていても、すべてのパケットを記録していれば (DHE についての知識がなければ、必ずしもチャネルを解読することはできません)機構)。

次に、実装に関しては、XML-DSig はアプリケーション レベルで行われる傾向がありますが、TLS はサーバー コネクタによって行われる傾向があります。デプロイの条件によっては違いがあいまいになる可能性がありますが、TLS は、背後にあるアプリケーションではなく、マシン/コンテナーとの通信に関するものです。通常、TLS 証明書は Java コンテナーまたは WCF レベルで設定されますが、XML-DSig に使用される証明書は背後で実行されている webapp/アプリケーションによって使用されます。そこでは担当者や手順が異なる場合があります。

(XML-Enc なしで XML-DSig を使用している場合は、データを暗号化していないということも正しいです。)

于 2010-11-11T13:59:10.760 に答える
1

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

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

TLS は Transport Layer Security の略で、転送中にデータを暗号化する(署名しない) ために使用されます。特に XML とは関係ありません。TLS は X.509 証明書も使用しますが、XMLSDig と TLS に同じ証明書を使用することはできません。証明書には特定の目的 (キー使用法フィールド) が必要になるためです。

PKI に関する本を何冊か手に取って (私はRsa Security の Official Guide to Cryptographyを簡潔にするために常にお勧めします)、注意深く読むことをお勧めします。

于 2010-11-11T12:31:39.443 に答える