2013-02-20 6 views
11

WCF &セキュリティを調べています。 いくつかのセキュリティモードがありますが、大きな画像は、保護できる2つの主要な「レイヤー」があることです。トランスポートまたはメッセージWCFのトランスポートセキュリティとメッセージセキュリティの違い

誰かがこれをもっと深く説明できますか? トランスポートを確保するときに何を想像しなければなりませんか?

答えて

12

トランスポートセキュリティは、トランスポートセキュリティを保証します。 SSL over HTTP、メッセージセキュリティはメッセージを保護します。ここでメッセージセキュリティを使用する理由のために、MSDNの概要です: http://msdn.microsoft.com/en-us/library/ms733137.aspx

と輸送のための概要: http://msdn.microsoft.com/en-us/library/ms729700.aspx

(メッセージセキュリティのリンクから): Windows通信基盤(WCF)を提供するための2つの主要なモードがありますセキュリティ(トランスポートとメッセージ)と、これら2つを組み合わせた第3のモード(TransportWithMessageCredential)です。このトピックでは、メッセージのセキュリティとそれを使用する理由について説明します。

メッセージセキュリティとは何ですか?

メッセージセキュリティは、WS-Security仕様を使用してメッセージを保護します。 WS-Security仕様では、SOAPメッセージ・レベルでの機密性、整合性、および認証を保証するためのSOAPメッセージングの拡張について説明しています(トランスポート・レベルではありません)。

簡単に言えば、メッセージのセキュリティは、メッセージの保護(署名または暗号化)とともに、すべてのメッセージでセキュリティ資格情報とクレームをカプセル化することによって、トランスポートセキュリティと異なります。その内容を変更することによってセキュリティをメッセージに直接適用することにより、セキュリティ保護されたメッセージは、セキュリティ面に関して自己包含することが可能になる。これにより、トランスポートセキュリティが使用されている場合には不可能なシナリオが可能になります。

理由は、セキュリティ情報の全ては、メッセージにカプセル化され、メッセージレベルのセキュリティでメッセージセキュリティ

を使用します。トランスポートレベルのセキュリティではなくメッセージレベルのセキュリティでメッセージを保護すると、次の利点があります。 •エンドツーエンドのセキュリティ。 SSL(Secure Sockets Layer)などのトランスポートセキュリティは、通信がポイントツーポイントの場合にのみメッセージを保護します。究極のレシーバに到達する前にメッセージが1つ以上のSOAP仲介者(ルータなど)にルーティングされた場合、仲介者がワイヤからメッセージを読み取ると、メッセージ自体は保護されません。さらに、クライアント認証情報は、第1の仲介業者のみが利用可能であり、必要であれば、帯域外で究極の受信者に再送信されなければならない。これは、ルート全体が個々のホップ間でSSLセキュリティを使用している場合でも適用されます。メッセージのセキュリティはメッセージと直接的に作用し、その中のXMLを保護するため、究極の受信者に到達するまでに関与する仲介者の数にかかわらず、セキュリティはメッセージにとどまります。これにより、真のエンドツーエンドのセキュリティシナリオが可能になります。

•柔軟性の向上。メッセージ全体ではなく、メッセージの一部を署名または暗号化することができます。これは、仲介者がメッセージの意図した部分を見ることができることを意味します。送信者がメッセージの情報の一部を仲介者に見せる必要があるが、それが改ざんされていないことを保証したい場合は、署名するだけで暗号化されないままにすることができます。署名はメッセージの一部であるため、最終的な受信者は、メッセージ内の情報が完全に受信されたことを検証することができる。 1つのシナリオでは、Actionヘッダー値に従ってメッセージをルーティングするSOAP仲介サービスがあるかもしれません。既定では、WCFはアクション値を暗号化せず、メッセージセキュリティが使用されている場合は署名します。したがって、この情報はすべての仲介者が利用できるが、誰もそれを変更することはできない。

複数のトランスポートをサポートしています。セキュリティのためにプロトコルに頼ることなく、名前付きパイプやTCPなどのさまざまなトランスポートを介してセキュリティで保護されたメッセージを送信できます。トランスポートレベルのセキュリティでは、すべてのセキュリティ情報のスコープは1つの特定のトランスポート接続に限定され、メッセージコンテンツ自体からは利用できません。メッセージのセキュリティは、メッセージの送信に使用するトランスポートに関係なく、メッセージのセキュリティを保護し、セキュリティコンテキストはメッセージ内に直接埋め込まれます。

•さまざまな資格情報とクレームをサポートしています。メッセージセキュリティは、SOAPメッセージ内の任意のタイプの要求を送信できる拡張可能なフレームワークを提供するWS-Security仕様に基づいています。トランスポートセキュリティとは異なり、使用できる認証メカニズムまたはクレームセットは、トランスポート機能によって制限されません。 WCFメッセージセキュリティには、複数の種類の認証とクレーム送信が含まれており、必要に応じて追加の種類をサポートするように拡張できます。こうした理由から、たとえば、メッセージのセキュリティがないとフェデレーションされた資格情報のシナリオは不可能です。 WCFがサポートするフェデレーションシナリオの詳細については、「フェデレーショントークンと発行トークン」を参照してください。

+0

HTTP経由でSSLを使用する場合、少なくとも私が間違っていない場合は、トランスポートセキュリティが必要ですか? –

+0

定義上、httpを上回るSSLはメッセージを転送するのではなく、転送を保護しています。ここでは、使用のための素晴らしいガイドがあります:http://wcfsecurityguide.codeplex.com/ – NDJ

+1

あなたの時間と助けてくれてありがとう! –

1

トランスポートを使用すると、使用しているチャネルを保護しています。メッセージにはメッセージ(コンテンツ)を送信しています。

2

SSL(Secure Sockets Layer)などのトランスポートセキュリティでは、通信がポイントツーポイントの場合にメッセージ が保護されます。究極の受信機に到達する前にメッセージが が1つ以上のSOAP仲介者(例えばルータ) にルーティングされている場合、仲介者が盗聴者から読み取るとメッセージ自体は保護されません。

誤認。トランスポート層セキュリティ(サーバー側SSL証明書)で暗号化されている場合、ネットワーク側のルータまたはスイッチ(OSIレイヤ2および3)は、メッセージの復号化にサービス側のSSL証明書が必要なため、メッセージコンテンツにアクセスできません。トランスポート層セキュリティは、宛先サービスプロバイダだけがメッセージの復号化に必要なSSL秘密証明書を持っていると想定されるため、クライアントと目的の宛先IPアドレス間でメッセージを保護します。 SOAP仲介者は、SOAP仲介者(すなわちESB)が実際にクライアントとの暗号化されたトランスポートチャネルを実際に確立する意図されたメッセージ宛先であった場合にのみコンテンツを読み取ることができ、クライアントの数に関係なくクライアントからサーバーへの安全なチャネルを保証する。ネットワークホップ、ルータおよびスイッチなど(OSIレイヤ2および3)。

メッセージレベルのセキュリティはメッセージにセキュリティを追加し、ミドルウェアESB(意図されたSOAP仲介者)がルーティング決定(コンテンツベースルーティング)を行うためにメッセージの一部を読み取る必要があったが、ダウンストリームシステムによってのみアクセスされるべきメッセージの他の部分を読み取ることができる。

関連する問題