6.2. SOAP メッセージ保護


6.2.1. SOAP メッセージ保護の概要

概要

トランスポート層ではなく SOAP エンコーディング層でメッセージ保護を適用することにより、より柔軟な範囲の保護ポリシーにアクセスできます。特に、SOAP レイヤーはメッセージ構造を認識しているため、たとえば、実際に保護が必要なヘッダーのみを暗号化して署名することにより、より細かいレベルで保護を適用できます。この機能により、より高度な多層アーキテクチャーをサポートできます。たとえば、1 つのプレーンテキストヘッダーが中間層 (安全なイントラネット内にある) を対象とし、暗号化されたヘッダーが最終的な宛先 (安全でないパブリックネットワークを介して到達) を対象とする場合があります。

セキュリティーバインディング

WS-SecurityPolicy 仕様で説明されているように、SOAP メッセージを保護するために次のバインディングタイプのいずれかを使用できます。

  • sp:TransportBindingトランスポートバインディング は、(たとえば、HTTPS を介して) トランスポートレベルで提供されるメッセージ保護を参照します。このバインディングは、SOAP だけでなく、任意のメッセージタイプを保護するために使用できます。これについては、前のセクション 「トランスポート層のメッセージ保護」 で詳しく説明しています。
  • sp:AsymmetricBinding非対称バインディング は、SOAP メッセージエンコーディング層で提供されるメッセージ保護を指します。保護機能は、非対称暗号 (公開鍵暗号としても知られる) を使用して実装されます。
  • sp:SymmetricBinding対称バインディング は、SOAP メッセージエンコーディング層で提供されるメッセージ保護を指します。保護機能は、対称暗号を使用して実装されます。対称暗号の例は、WS-SecureConversation および Kerberos トークンによって提供されるトークンです。

メッセージ保護

以下の保護性は、メッセージの一部またはすべてのメッセージに適用できます。

  • 暗号化。
  • 署名。
  • signing+encryption (暗号化前の署名)。
  • encryption+signing (署名前の暗号化)。

このような保護性は、1 つのメッセージに任意に組み合わせることができます。したがって、メッセージの一部の部分は暗号化のみできますが、メッセージの他の部分には署名のみが使用され、メッセージの他の部分は署名と暗号化の両方が可能です。メッセージの一部を保護を外すこともできます。

メッセージの保護を適用する最も柔軟なオプションは、SOAP 層 (sp:AsymmetricBinding または sp:SymmetricBinding) で利用できます。トランスポート層 (sp:TransportBinding) は、メッセージ 全体 に保護を適用するオプションのみを提供します。

保護するメッセージの一部の指定

現在、Apache CXF を使用すると、SOAP メッセージの以下の部分に署名または暗号化できます。

  • Body: SOAP メッセージの soap:BODY 要素全体を署名/暗号化します。
  • ヘッダー : 1 つ以上の SOAP メッセージヘッダーの署名および暗号化を行います。各ヘッダーの保護品質を個別に指定することができます。
  • 添付: SOAP メッセージですべての添付の署名および暗号化を行います。
  • 要素: SOAP メッセージで特定の XML 要素の署名や暗号化を行います。

設定のロール

メッセージ保護に必要なすべての詳細がポリシーを使用して指定されるわけではありません。ポリシーは主に、サービスに必要な保護の品質を指定する方法を提供することを目的としています。セキュリティートークンやパスワードなどのサポートの詳細は、個別の製品固有のメカニズムを使用して提供する必要があります。実際には、Apache CXF では Blueprint XML 設定ファイルにいくつかのサポート設定の詳細を提供する必要があります。詳細は、「暗号化キーおよび署名キーの提供」 を参照してください。

6.2.2. 基本的な署名および暗号化シナリオ

概要

ここで説明したシナリオは、クライアントサーバーアプリケーションです。非対称バインディングポリシー が、クライアントとサーバーの間で送受信されるメッセージの SOAP ボディーを暗号化および署名するよう設定されます。

シナリオ例

図6.1「基本的な署名および暗号化シナリオ」 は、基本的な署名と暗号化のシナリオの概要を示しています。これは、非対称バインディングポリシーを WSDL コントラクトのエンドポイントに関連付けることで指定されます。

図6.1 基本的な署名および暗号化シナリオ

メッセージの保護 01

シナリオの手順

クライアントが図6.1「基本的な署名および暗号化シナリオ」受信者のエンドポイントで同期操作を呼び出すと、要求メッセージと応答メッセージは次のように処理されます。

  1. 送信要求メッセージが WS-SecurityPolicy ハンドラーを通過すると、ハンドラーはクライアントの非対称バインディングポリシーで指定されたポリシーに従ってメッセージを処理します。この例では、ハンドラーは次の処理を実行します。

    1. Bob の公開鍵を使用して、メッセージの SOAP 本文を暗号化します。
    2. Alice の秘密鍵を使用して、暗号化された SOAP 本体に署名します。
  2. 着信要求メッセージがサーバーの WS-SecurityPolicy ハンドラーを通過すると、ハンドラーはサーバーの非対称バインディングポリシーで指定されたポリシーに従ってメッセージを処理します。この例では、ハンドラーは次の処理を実行します。

    1. Alice の公開鍵を使用して署名を検証します。
    2. Bob の秘密鍵を使用して SOAP ボディーを復号します。
  3. 送信応答メッセージがサーバーの WS-SecurityPolicy ハンドラーを通過すると、ハンドラーは次の処理を実行します。

    1. Alice の公開鍵を使用して、メッセージの SOAP ボディーを暗号化します。
    2. Bob の秘密鍵を使用して、暗号化された SOAP ボディーに署名します。
  4. 受信応答メッセージがクライアントの WS-SecurityPolicy ハンドラーを通過するため、ハンドラーは以下の処理を実行します。

    1. Bob の公開キーを使用して署名を検証します。
    2. Alice の秘密鍵を使用して SOAP ボディーを復号します。

6.2.3. AsymmetricBinding ポリシーの指定

概要

非対称バインディングポリシーは、非対称キーアルゴリズム (公開/秘密キーの組み合わせ) を使用して SOAP メッセージ保護を実装し、SOAP レイヤーで実装します。非対称バインディングで使用される暗号化および署名アルゴリズムは、SSL/TLS で使用される暗号化および署名アルゴリズムに似ています。ただし、重要な違いは、SOAP メッセージ保護では、保護するメッセージの特定の部分 (たとえば、個々のヘッダー、本文、添付ファイル) を選択できるのに対し、トランスポート層のセキュリティーはメッセージ 全体 に対してのみ機能することです。

ポリシー件名

非対称バインディングポリシーは、エンドポイントポリシーサブジェクトに適用する必要があります (「エンドポイントポリシーサブジェクト」 を参照)。たとえば、ID MutualCertificate10SignEncrypt_IPingService_policy を持つ非同期バインディングポリシーの場合、以下のようにポリシーをエンドポイントバインディングに適用できます。

<wsdl:binding name="MutualCertificate10SignEncrypt_IPingService" type="i0:IPingService">
  <wsp:PolicyReference URI="#MutualCertificate10SignEncrypt_IPingService_policy"/>
  ...
</wsdl:binding>

構文

AsymmetricBinding 要素の構文は以下のようになります。

<sp:AsymmetricBinding xmlns:sp="..." ... >
  <wsp:Policy xmlns:wsp="...">
  (
   <sp:InitiatorToken>
     <wsp:Policy> ... </wsp:Policy>
   </sp:InitiatorToken>
  ) | (
   <sp:InitiatorSignatureToken>
     <wsp:Policy> ... </wsp:Policy>
   </sp:InitiatorSignatureToken>
   <sp:InitiatorEncryptionToken>
     <wsp:Policy> ... </wsp:Policy>
   </sp:InitiatorEncryptionToken>
  )
  (
   <sp:RecipientToken>
     <wsp:Policy> ... </wsp:Policy>
   </sp:RecipientToken>
  ) | (
   <sp:RecipientSignatureToken>
     <wsp:Policy> ... </wsp:Policy>
   </sp:RecipientSignatureToken>
   <sp:RecipientEncryptionToken>
     <wsp:Policy> ... </wsp:Policy>
   </sp:RecipientEncryptionToken>
  )
   <sp:AlgorithmSuite ... > ... </sp:AlgorithmSuite>
   <sp:Layout ... > ... </sp:Layout> ?
   <sp:IncludeTimestamp ... /> ?
   <sp:EncryptBeforeSigning ... /> ?
   <sp:EncryptSignature ... /> ?
   <sp:ProtectTokens ... /> ?
   <sp:OnlySignEntireHeadersAndBody ... /> ?
   ...
  </wsp:Policy>
  ...
</sp:AsymmetricBinding>

サンプルポリシー

例6.4「非対称バインディングの例」 は、署名と暗号化によるメッセージ保護をサポートする非対称バインディングの例を示しています。署名と暗号化は、公開鍵と秘密鍵のペアを使用して (つまり、非対称暗号化を使用して) 実行されます。この例では、署名して暗号化 する 必要があるメッセージのパーツを指定していません。方法は 「暗号化および署名するメッセージの一部の指定」 を参照してください。

例6.4 非対称バインディングの例

<wsp:Policy wsu:Id="MutualCertificate10SignEncrypt_IPingService_policy">
  <wsp:ExactlyOne>
    <wsp:All>
      <sp:AsymmetricBinding
          xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
        <wsp:Policy>
          <sp:InitiatorToken>
            <wsp:Policy>
              <sp:X509Token
                  sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
                <wsp:Policy>
                  <sp:WssX509V3Token10/>
                </wsp:Policy>
              </sp:X509Token>
            </wsp:Policy>
          </sp:InitiatorToken>
          <sp:RecipientToken>
            <wsp:Policy>
              <sp:X509Token
                  sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
                <wsp:Policy>
                  <sp:WssX509V3Token10/>
                </wsp:Policy>
              </sp:X509Token>
            </wsp:Policy>
          </sp:RecipientToken>
          <sp:AlgorithmSuite>
            <wsp:Policy>
              <sp:Basic256/>
            </wsp:Policy>
          </sp:AlgorithmSuite>
          <sp:Layout>
            <wsp:Policy>
              <sp:Lax/>
            </wsp:Policy>
          </sp:Layout>
          <sp:IncludeTimestamp/>
          <sp:EncryptSignature/>
          <sp:OnlySignEntireHeadersAndBody/>
        </wsp:Policy>
      </sp:AsymmetricBinding>
      <sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
        <wsp:Policy>
          <sp:MustSupportRefKeyIdentifier/>
          <sp:MustSupportRefIssuerSerial/>
        </wsp:Policy>
      </sp:Wss10>
    </wsp:All>
  </wsp:ExactlyOne>
</wsp:Policy>

sp:InitiatorToken

イニシエータートークン は、イニシエーターが所有する公開鍵/秘密鍵のペアを参照します。このトークンは以下のように使用されます。

  • トークンの秘密鍵は、イニシエーターから受信者に送信されるメッセージに署名します。
  • トークンの公開鍵は、受信側が受信した署名を検証します。
  • トークンの公開鍵は、受信者からイニシエーターに送信されるメッセージを暗号化します。
  • トークンの秘密鍵は、イニシエーターが受信したメッセージを復号します。

このトークンは、イニシエーター受信者の両方で使用されます。ただし、イニシエーターのみが秘密鍵にアクセスできるようにするため、トークンはイニシエーターに所属することができます。「基本的な署名および暗号化シナリオ」 では、イニシエータートークンは証明書 Alice です。

この要素には、以下のようにネストされた wsp:Policy 要素と sp:X509Token 要素が含まれている必要があります。sp:IncludeToken 属性は AlwaysToRecipient に設定され、受信者に送信されるすべてのメッセージに Alice の公開鍵を含めるようランタイムに指示します。このオプションは、受信側がイニシエーターの証明書を使用して認証を行う場合に便利です。最も深くネストされた要素 WssX509V3Token10 はオプションになります。X.509 証明書に準拠する仕様バージョンを指定します。以下の代替方法 (または none) をここで指定できます。

sp:WssX509V3Token10
これは任意の要素で、X509 Version 3 トークンを使用する必要があることを示すポリシーアサーションです。
sp:WssX509Pkcs7Token10
この任意の要素は、X509 PKCS7 トークンを使用する必要があることを示すポリシーアサーションです。
sp:WssX509PkiPathV1Token10
これは任意の要素で、X509 PKI Path Version 1 トークンを使用する必要があることを示すポリシーアサーションです。
sp:WssX509V1Token11
これは任意の要素で、X509 Version 1 トークンを使用する必要があることを示すポリシーアサーションです。
sp:WssX509V3Token11
これは任意の要素で、X509 Version 3 トークンを使用する必要があることを示すポリシーアサーションです。
sp:WssX509Pkcs7Token11
この任意の要素は、X509 PKCS7 トークンを使用する必要があることを示すポリシーアサーションです。
sp:WssX509PkiPathV1Token11
これは任意の要素で、X509 PKI Path Version 1 トークンを使用する必要があることを示すポリシーアサーションです。

sp:RecipientToken

受信側トークン は、受信側が所有する公開鍵/秘密鍵のペアを参照します。このトークンは以下のように使用されます。

  • トークンの公開鍵は、イニシエーターから受信者に送信されるメッセージを暗号化します。
  • トークンの秘密鍵は、受信側によって受信されるメッセージを復号化します。
  • トークンの秘密鍵は、受信者からイニシエーターに送信されるメッセージに署名します。
  • トークンの公開キーは、イニシエーターが受信した署名を検証します。

このトークンは、受信側 イニシエーターの両方で使用されます。ただし、受信側のみが秘密鍵にアクセスできるため、その場合はトークンを受信者に所属することができます。「基本的な署名および暗号化シナリオ」 では、受信側トークンは証明書 Bob です。

この要素には、以下のようにネストされた wsp:Policy 要素と sp:X509Token 要素が含まれている必要があります。リプライメッセージに Bob の公開鍵を含める必要がないため、sp:IncludeToken 属性は Never に設定されます。

注記

Apache CXF では、Bob の証明書と Alice の証明書が接続の最後で提供されるため、メッセージに Bob または Alice のトークンを送信する必要はありません。「暗号化キーおよび署名キーの提供」 を参照してください。

sp:AlgorithmSuite

この要素は、署名と暗号化に使用する一連の暗号化アルゴリズムを指定します。利用可能なアルゴリズムスイートの詳細は、「アルゴリズムスイートの指定」 を参照してください。

sp:Layout

この要素は、セキュリティーヘッダーが SOAP メッセージに追加される順序で条件を適用するかどうかを指定します。sp:Lax 要素は、セキュリティーヘッダーの順序に条件を課さないことを指定します。sp:Lax の代替は、sp:Strictsp:LaxTimestampFirst、または sp:LaxTimestampLast です。

sp:IncludeTimestamp

この要素がポリシーに含まれる場合、ランタイムは wsu:Timestamp 要素を wsse:Security ヘッダーに追加します。デフォルトでは、タイムスタンプは含まれ ません

sp:EncryptBeforeSigning

メッセージ部分が暗号化と署名の両方に依存する場合は、これらの操作が実行される順序を指定する必要があります。デフォルトの順序は、暗号化前に署名することです。ただし、非対称ポリシーにこの要素を含めると、署名前に暗号化するように順序が変更されます。

注記

この要素は暗黙的に復号化および署名の検証操作の順序にも影響します。たとえば、暗号化前にメッセージ署名の送信者が送信される場合、メッセージの受信側は署名を検証する前に復号化する必要があります。

sp:EncryptSignature

この要素は、「暗号化キーおよび署名キーの提供」で指定されている暗号化トークンによって、メッセージ署名を暗号化する必要があることを指定します。デフォルトは false です。

注記

メッセージ署名 は、メッセージのボディー、メッセージヘッダー、個々の要素など、メッセージのさまざまな部分に署名することで直接取得された署名です (「暗号化および署名するメッセージの一部の指定」 を参照してください)。WS-SecurityPolicy 仕様は プライマリー署名の署名 に使用される終了トークンの概念をサポートするため、メッセージの署名はプライマリー署名と呼ばれることがあります。したがって、sp:EndorsingSupportingTokens 要素がエンドポイントに適用される場合、署名チェーン (メッセージ自体に署名するプライマリー署名とプライマリー署名に署名するセカンダリー署名) を持つことができます。

各種のエンドツーエンドのサポートトークンに関する詳細は、「SupportingTokens アサーション」 を参照してください。

sp:ProtectTokens

この要素は、署名がその署名の生成に使用されるトークンに対応する必要があるように指定します。デフォルトは false です。

sp:OnlySignEntireHeadersAndBody

この要素は、ヘッダーボディーまたはサブ要素のサブ要素ではなく、本文全体またはヘッダー全体に のみ、署名を適用できることを指定します。このオプションを有効にすると、実質的に sp:SignedElements アサーションを使用できなくなります (「暗号化および署名するメッセージの一部の指定」 を参照)。

6.2.4. SymmetricBinding ポリシーの指定

概要

symmetric binding ポリシーは、対称鍵アルゴリズム (共有秘密鍵) を使用して SOAP メッセージ保護を実装し、SOAP レイヤーで行います。対称バインディングの例は、Kerberos プロトコルおよび WS-SecureConversation プロトコルです。

注記

現在、Apache CXF は対称バインディングの WS-SecureConversation トークン のみ をサポートします。

ポリシー件名

symmetric binding ポリシーはエンドポイントポリシーサブジェクトに適用する必要があります (「エンドポイントポリシーサブジェクト」 を参照してください)。たとえば、ID SecureConversation_MutualCertificate10SignEncrypt_IPingService_policy を持つ同期バインディングポリシーの場合、以下のようにポリシーをエンドポイントバインディングに適用できます。

<wsdl:binding name="SecureConversation_MutualCertificate10SignEncrypt_IPingService" type="i0:IPingService">
  <wsp:PolicyReference URI="#SecureConversation_MutualCertificate10SignEncrypt_IPingService_policy"/>
  ...
</wsdl:binding>

構文

SymmetricBinding 要素の構文は以下のようになります。

<sp:SymmetricBinding xmlns:sp="..." ... >
  <wsp:Policy xmlns:wsp="...">
  (
   <sp:EncryptionToken ... >
     <wsp:Policy> ... </wsp:Policy>
   </sp:EncryptionToken>
   <sp:SignatureToken ... >
     <wsp:Policy> ... </wsp:Policy>
   </sp:SignatureToken>
  ) | (
   <sp:ProtectionToken ... >
     <wsp:Policy> ... </wsp:Policy>
   </sp:ProtectionToken>
  )
   <sp:AlgorithmSuite ... > ... </sp:AlgorithmSuite>
   <sp:Layout ... > ... </sp:Layout> ?
   <sp:IncludeTimestamp ... /> ?
   <sp:EncryptBeforeSigning ... /> ?
   <sp:EncryptSignature ... /> ?
   <sp:ProtectTokens ... /> ?
   <sp:OnlySignEntireHeadersAndBody ... /> ?
   ...
  </wsp:Policy>
  ...
</sp:SymmetricBinding>

サンプルポリシー

例6.5「対称バインディングの例」 は、署名と暗号化によるメッセージ保護をサポートする対称バインディングの例を示しています。署名と暗号化は、単一の対称鍵を使用して (つまり、対称暗号化を使用して) 実行されます。この例では、署名して暗号化 する 必要があるメッセージのパーツを指定していません。方法は 「暗号化および署名するメッセージの一部の指定」 を参照してください。

例6.5 対称バインディングの例

<wsp:Policy wsu:Id="SecureConversation_MutualCertificate10SignEncrypt_IPingService_policy">
  <wsp:ExactlyOne>
    <wsp:All>
      <sp:SymmetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
        <wsp:Policy>
          <sp:ProtectionToken>
            <wsp:Policy>
              <sp:SecureConversationToken>
                ...
              </sp:SecureConversationToken>
            </wsp:Policy>
          </sp:ProtectionToken>
          <sp:AlgorithmSuite>
            <wsp:Policy>
              <sp:Basic256/>
            </wsp:Policy>
          </sp:AlgorithmSuite>
          <sp:Layout>
            <wsp:Policy>
              <sp:Lax/>
            </wsp:Policy>
          </sp:Layout>
          <sp:IncludeTimestamp/>
          <sp:EncryptSignature/>
          <sp:OnlySignEntireHeadersAndBody/>
        </wsp:Policy>
      </sp:SymmetricBinding>
      <sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
        <wsp:Policy>
          <sp:MustSupportRefKeyIdentifier/>
          <sp:MustSupportRefIssuerSerial/>
        </wsp:Policy>
      </sp:Wss10>
      ...
    </wsp:All>
  </wsp:ExactlyOne>
</wsp:Policy>

sp:ProtectionToken

この要素は、メッセージの署名と暗号化の両方に使用する対称トークンを指定します。たとえば、ここで WS-SecureConversation トークンを指定できます。

個別のトークンを署名および暗号化操作に使用する場合は、この要素の代わりに sp:SignatureToken 要素と sp:EncryptionToken 要素を使用します。

sp:SignatureToken

この要素は、メッセージの署名に使用する対称トークンを指定します。これは、sp:EncryptionToken 要素と組み合わせて使用する必要があります。

sp:EncryptionToken

この要素は、メッセージの暗号化に使用する対称トークンを指定します。これは、sp:SignatureToken 要素と組み合わせて使用する必要があります。

sp:AlgorithmSuite

この要素は、署名と暗号化に使用する一連の暗号化アルゴリズムを指定します。利用可能なアルゴリズムスイートの詳細は、「アルゴリズムスイートの指定」 を参照してください。

sp:Layout

この要素は、セキュリティーヘッダーが SOAP メッセージに追加される順序で条件を適用するかどうかを指定します。sp:Lax 要素は、セキュリティーヘッダーの順序に条件を課さないことを指定します。sp:Lax の代替は、sp:Strictsp:LaxTimestampFirst、または sp:LaxTimestampLast です。

sp:IncludeTimestamp

この要素がポリシーに含まれる場合、ランタイムは wsu:Timestamp 要素を wsse:Security ヘッダーに追加します。デフォルトでは、タイムスタンプは含まれ ません

sp:EncryptBeforeSigning

メッセージ部分が暗号化と署名の両方に依存する場合は、これらの操作が実行される順序を指定する必要があります。デフォルトの順序は、暗号化前に署名することです。ただし、対称ポリシーにこの要素を含めると、署名前に暗号化するように順序が変更されます。

注記

この要素は暗黙的に復号化および署名の検証操作の順序にも影響します。たとえば、暗号化前にメッセージ署名の送信者が送信される場合、メッセージの受信側は署名を検証する前に復号化する必要があります。

sp:EncryptSignature

この要素は、メッセージ署名を暗号化する必要があることを指定します。デフォルトは false です。

sp:ProtectTokens

この要素は、署名がその署名の生成に使用されるトークンに対応する必要があるように指定します。デフォルトは false です。

sp:OnlySignEntireHeadersAndBody

この要素は、ヘッダーボディーまたはサブ要素のサブ要素ではなく、本文全体またはヘッダー全体に のみ、署名を適用できることを指定します。このオプションを有効にすると、実質的に sp:SignedElements アサーションを使用できなくなります (「暗号化および署名するメッセージの一部の指定」 を参照)。

6.2.5. 暗号化および署名するメッセージの一部の指定

概要

暗号化と署名は、それぞれ機密性と整合性の 2 種類の保護を提供します。WS-SecurityPolicy の保護アサーションは、メッセージの どの 部分を保護するかを指定するために使用されます。一方、保護メカニズムの詳細は、関連するバインディングポリシー (x「AsymmetricBinding ポリシーの指定」「SymmetricBinding ポリシーの指定」、および 「トランスポート層のメッセージ保護」を参照) で個別に指定されます。

ここで説明する保護アサーションは、SOAP メッセージの機能に適用されるため、SOAP セキュリティーと組み合わせて使用することが意図されています。ただし、これらのポリシーは、特定の部分ではなくメッセージ 全体 に対して保護を適用するトランスポートバインディング (HTTPS など) によっても満たされます。

ポリシー件名

保護アサーションは、メッセージポリシーの件名 に適用する必要があります (「メッセージポリシー件名」 を参照)。つまり、WSDL バインディングの wsdl:inputwsdl:output、または wsdl:fault 要素内に配置する必要があります。たとえば、ID MutualCertificate10SignEncrypt_IPingService_header_Input_policy を使用した保護ポリシーでは、以下のように wsdl:input メッセージにポリシーを適用することができます。

<wsdl:operation name="header">
  <soap:operation soapAction="http://InteropBaseAddress/interop/header" style="document"/>
  <wsdl:input name="headerRequest">
    <wsp:PolicyReference
        URI="#MutualCertificate10SignEncrypt_IPingService_header_Input_policy"/>
      <soap:header message="i0:headerRequest_Headers" part="CustomHeader" use="literal"/>
      <soap:body use="literal"/>
    </wsdl:input>
    ...
</wsdl:operation>

保護アサーション

Apache CXF では、以下の WS-SecurityPolicy の保護アサーションがサポートされます。

  • SignedParts
  • EncryptedParts
  • SignedElements
  • EncryptedElements
  • ContentEncryptedElements
  • RequiredElements
  • RequiredParts

構文

SignedParts 要素の構文は以下のようになります。

<sp:SignedParts xmlns:sp="..." ... >
  <sp:Body />?
  <sp:Header Name="xs:NCName"? Namespace="xs:anyURI" ... />*
  <sp:Attachments />?
  ...
</sp:SignedParts>

EncryptedParts 要素の構文は以下のようになります。

<sp:EncryptedParts xmlns:sp="..." ... >
  <sp:Body/>?
  <sp:Header Name="xs:NCName"? Namespace="xs:anyURI" ... />*
  <sp:Attachments />?
  ...
</sp:EncryptedParts>

サンプルポリシー

例6.6「整合性および暗号化ポリシーの評価」 は、署名済みの部分アサーションと暗号化されたパーツアサーションの 2 つの保護アサーションを組み合わせるポリシーを示しています。このポリシーがメッセージ部分に適用されると、影響を受けるメッセージボディーは署名され、暗号化されます。また、CustomHeader という名前のメッセージヘッダーは署名されます。

例6.6 整合性および暗号化ポリシーの評価

<wsp:Policy wsu:Id="MutualCertificate10SignEncrypt_IPingService_header_Input_policy">
    <wsp:ExactlyOne>
        <wsp:All>
            <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                <sp:Body/>
                <sp:Header Name="CustomHeader" Namespace="http://InteropBaseAddress/interop"/>
            </sp:SignedParts>
            <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                <sp:Body/>
            </sp:EncryptedParts>
        </wsp:All>
    </wsp:ExactlyOne>
</wsp:Policy>

sp:Body

この要素は、保護 (暗号化または署名) がメッセージの本文に適用されることを指定します。保護は、メッセージボディー 全体 (つまり soap:Body 要素、その属性、およびそのコンテンツ) に適用されます。

sp:Header

この要素は、Name 属性を使用したヘッダーのローカル名および Namespace 属性を使用した namespace で指定された SOAP ヘッダーに保護が適用されるように指定します。保護は、属性とコンテンツを含むメッセージヘッダー 全体 に適用されます。

sp:Attachments

この要素は、添付ファイル付きのすべての SOAP (SwA) 添付ファイルが保護されることを指定します。

6.2.6. 暗号化キーおよび署名キーの提供

概要

標準の WS-SecurityPolicy ポリシーは、セキュリティープロトコル、セキュリティーアルゴリズム、トークンタイプ、認証 要件 など、セキュリティー要件の詳細を指定するように設計されています。ただし、標準のポリシーアサーションは、キーやクレデンシャルなどの関連するセキュリティーデータを指定するためのメカニズムを提供しません。WS-SecurityPolicy は、必要なセキュリティーデータが独自のメカニズムを通じて提供されることを期待しています。Apache CXF では、関連するセキュリティーデータはブループリント XML 設定を通じて提供されます。

暗号化キーおよび署名キーの設定

クライアントのリクエストコンテキストまたはエンドポイントコンテキストでプロパティーを設定することで、アプリケーションの暗号化キーと署名キーを指定できます (「Blueprint 設定への暗号化および署名プロパティーの追加」 を参照)。設定可能なプロパティーは 表6.1「暗号化プロパティーおよび署名プロパティー」 に表示されます。

表6.1 暗号化プロパティーおよび署名プロパティー
プロパティー説明

security.signature.properties

署名キーストアを設定するための WSS4J プロパティーが含まれる WSS4J プロパティーファイル/オブジェクト (復号化にも使用) および Crypto オブジェクト。

security.signature.username

(オプション) 使用する署名キーストア内のキーのユーザー名またはエイリアス。指定のない場合は、プロパティーファイルに設定されたエイリアスが使用されます。これが設定されておらず、キーストアに単一のキーのみが含まれる場合は、そのキーが使用されます。

security.encryption.properties

暗号化キーストアを設定するための WSS4J プロパティーを含む WSS4J プロパティーファイル/オブジェクト (署名の検証にも使用) および Crypto オブジェクト。

security.encryption.username

(オプション) 使用する暗号化キーストア内のキーのユーザー名またはエイリアス。指定のない場合は、プロパティーファイルに設定されたエイリアスが使用されます。これが設定されておらず、キーストアに単一のキーのみが含まれる場合は、そのキーが使用されます。

上記のプロパティーの名前は、使用目的を正確に反映していないため、あまり適切に選択されていません。security.signature.properties で指定されるキーは、実際には署名 および 復号化の両方に使用されます。security.encryption.properties で指定されるキーは、署名の暗号化 および 検証の両方に使用されます。

Blueprint 設定への暗号化および署名プロパティーの追加

Apache CXF アプリケーションで WS-Policy ポリシーを使用する前に、ポリシー機能をデフォルトの CXF バスに追加する必要があります。以下の Blueprint 設定のフラグメントに示されるように、p:policies 要素を CXF バスに追加します。

<beans xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
       xmlns:jaxws="http://cxf.apache.org/jaxws"
       xmlns:cxf="http://cxf.apache.org/core"
       xmlns:p="http://cxf.apache.org/policy" ... >

    <cxf:bus>
        <cxf:features>
            <p:policies/>
            <cxf:logging/>
        </cxf:features>
    </cxf:bus>
    ...
</beans>

以下の例は、署名および暗号化プロパティーを指定されたサービスタイプのプロキシーに追加する方法を示しています (サービス名は jaxws:client 要素の name 属性で指定されます)。プロパティーは WSS4J プロパティーファイルに格納されます。alice.properties には署名キーのプロパティーが含まれ、bob.properties には暗号化キーのプロパティーが含まれます。

<beans ... >
    <jaxws:client name="{http://InteropBaseAddress/interop}MutualCertificate10SignEncrypt_IPingService"
                  createdFromAPI="true">
        <jaxws:properties>
            <entry key="ws-security.signature.properties" value="etc/alice.properties"/>
            <entry key="ws-security.encryption.properties" value="etc/bob.properties"/>
        </jaxws:properties>
    </jaxws:client>
    ...
</beans>

実際、プロパティー名からは明らかではありませんが、これらの各キーは、クライアント側で 2 つの異なる目的に使用されます。

  • alice.properties(security.signature.properties で指定されたキー) は以下のようにクライアント側で使用されます。

    • 送信メッセージに署名するため
    • 受信メッセージの復号化
  • bob.properties(security.encryption.properties で指定されたキー) は以下のようにクライアント側で使用されます。

    • 送信メッセージを暗号化するために使用します。
    • 受信メッセージの署名を検証するため。

これが混乱した場合は、「基本的な署名および暗号化シナリオ」 で詳細の説明を参照してください。

以下の例は、署名および暗号化プロパティーを JAX-WS エンドポイントに追加する方法を示しています。プロパティーファイル bob.properties には署名キーのプロパティーが含まれ、プロパティーファイル alice.properties には暗号化キーのプロパティーが含まれます (これはクライアント設定の逆になります)。

<beans ... >
    <jaxws:endpoint
       name="{http://InteropBaseAddress/interop}MutualCertificate10SignEncrypt_IPingService"
       id="MutualCertificate10SignEncrypt"
       address="http://localhost:9002/MutualCertificate10SignEncrypt"
       serviceName="interop:PingService10"
       endpointName="interop:MutualCertificate10SignEncrypt_IPingService"
       implementor="interop.server.MutualCertificate10SignEncrypt">

        <jaxws:properties>
            <entry key="security.signature.properties" value="etc/bob.properties"/>
            <entry key="security.encryption.properties" value="etc/alice.properties"/>
        </jaxws:properties>

    </jaxws:endpoint>
    ...
</beans>

これらのキーはそれぞれ、サーバー側で 2 つの異なる目的で使用されます。

  • bob.properties(security.signature.properties で指定されたキー) は以下のようにサーバー側で使用されます。

    • 送信メッセージに署名するため
    • 受信メッセージの復号化
  • alice.properties(security.encryption.properties で指定されたキー) は以下のようにサーバー側で使用されます。

    • 送信メッセージを暗号化するために使用します。
    • 受信メッセージの署名を検証するため。

WSS4J プロパティーファイルの定義

Apache CXF は WSS4J プロパティーファイルを使用して、暗号化と署名に必要な公開鍵と秘密鍵をロードします。表6.2「WSS4J Keystore プロパティー」 は、これらのファイルに設定できるプロパティーを説明します。

表6.2 WSS4J Keystore プロパティー
プロパティー説明

org.apache.ws.security.crypto.provider

Crypto インターフェイスの実装を指定します (「WSS4J Crypto インターフェイス」 を参照)。通常、Crypto のデフォルトの WSS4J 実装 org.apache.ws.security.components.crypto.Merlin を指定します。

この表のその他のプロパティーは、Cryptoインターフェイス の Merlin 実装に固有のものです。

org.apache.ws.security.crypto.merlin.keystore.provider

(オプション) 使用する JSSE 鍵ストアプロバイダーの名前。デフォルトのキーストアプロバイダーは Bouncy Castle です。このプロパティーを SunJSSE に設定すると、プロバイダーを Sun の JSSE キーストアプロバイダーに切り替えることができます。

org.apache.ws.security.crypto.merlin.keystore.type

Bouncy Castle キーストアプロバイダーは、JKS および PKCS12 のキーストアをサポートします。さらに、Bouncy Castle は、BKS および UBER の独自のキーストアタイプをサポートしています。

org.apache.ws.security.crypto.merlin.keystore.file

ロードするキーストアファイルの場所を指定します。場所はクラスパスを基準にして指定されます。

org.apache.ws.security.crypto.merlin.keystore.alias

(オプション) キーストアタイプが JKS (Java キーストア) の場合は、エイリアスを指定してキーストアから特定のキーを選択できます。キーストアにキーが 1 つだけ含まれる場合は、エイリアスを指定する必要はありません。

org.apache.ws.security.crypto.merlin.keystore.password

このプロパティーで指定されたパスワードは、キーストアのロックを解除する (キーストアパスワード) と、キーストアに格納されている秘密キーを復号化する (秘密キーパスワード) という 2 つの目的で使用されます。そのため、キーストアのパスワードは秘密鍵のパスワードと同じである必要があります。

たとえば、etc/alice.properties ファイルには、以下のように PKCS#12 ファイル certs/alice.pfx をロードするためのプロパティー設定が含まれています。

org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin

org.apache.ws.security.crypto.merlin.keystore.type=PKCS12
org.apache.ws.security.crypto.merlin.keystore.password=password
org.apache.ws.security.crypto.merlin.keystore.file=certs/alice.pfx

etc/bob.properties ファイルには、以下のように PKCS#12 ファイル certs/bob.pfx をロードするためのプロパティー設定が含まれています。

org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin

org.apache.ws.security.crypto.merlin.keystore.password=password

# for some reason, bouncycastle has issues with bob.pfx
org.apache.ws.security.crypto.merlin.keystore.provider=SunJSSE
org.apache.ws.security.crypto.merlin.keystore.type=PKCS12
org.apache.ws.security.crypto.merlin.keystore.file=certs/bob.pfx

暗号化キーおよび署名キーのプログラミング

暗号化キーと署名キーをロードする別の方法は、表6.3「暗号オブジェクトを指定するプロパティー」 に示すプロパティーを使用して、関連するキーをロードする Crypto オブジェクトを指定することです。これは、WSS4J Crypto インタフェース org.apache.ws.security.components.crypto.Crypto の独自の実装を提供する必要があります。

表6.3 暗号オブジェクトを指定するプロパティー
プロパティー説明

security.signature.crypto

メッセージの署名および復号化の鍵のロードを担当する Crypto オブジェクトのインスタンスを指定します。

security.encryption.crypto

メッセージの暗号化および署名の検証を行う鍵のロードを担当する Crypto オブジェクトのインスタンスを指定します。

WSS4J Crypto インターフェイス

例6.7「WSS4J Crypto インターフェイス」 は、プログラミングで暗号キーと署名キーを提供する場合は、実装できる Crypto インターフェイスの定義を示しています。詳細は、WSS4J ホームページ を参照してください。

例6.7 WSS4J Crypto インターフェイス

// Java
package org.apache.ws.security.components.crypto;

import org.apache.ws.security.WSSecurityException;

import java.io.InputStream;
import java.math.BigInteger;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;

public interface Crypto {
    X509Certificate loadCertificate(InputStream in)
    throws WSSecurityException;

    X509Certificate[] getX509Certificates(byte[] data, boolean reverse)
    throws WSSecurityException;

    byte[] getCertificateData(boolean reverse, X509Certificate[] certs)
    throws WSSecurityException;

    public PrivateKey getPrivateKey(String alias, String password)
    throws Exception;

    public X509Certificate[] getCertificates(String alias)
    throws WSSecurityException;

    public String getAliasForX509Cert(Certificate cert)
    throws WSSecurityException;

    public String getAliasForX509Cert(String issuer)
    throws WSSecurityException;

    public String getAliasForX509Cert(String issuer, BigInteger serialNumber)
    throws WSSecurityException;

    public String getAliasForX509Cert(byte[] skiBytes)
    throws WSSecurityException;

    public String getDefaultX509Alias();

    public byte[] getSKIBytesFromCert(X509Certificate cert)
    throws WSSecurityException;

    public String getAliasForX509CertThumb(byte[] thumb)
    throws WSSecurityException;

    public KeyStore getKeyStore();

    public CertificateFactory getCertificateFactory()
    throws WSSecurityException;

    public boolean validateCertPath(X509Certificate[] certs)
    throws WSSecurityException;

    public String[] getAliasesForDN(String subjectDN)
    throws WSSecurityException;
}

6.2.7. アルゴリズムスイートの指定

概要

アルゴリズムスイートは、署名、暗号化、メッセージダイジェストの生成などの操作を実行する暗号化アルゴリズムの一貫したコレクションです。

ここでは、WS-SecurityPolicy 仕様で定義されたアルゴリズムスイートを説明します。ただし、特定のアルゴリズムスイートを利用できるかどうかは、基礎となるセキュリティープロバイダーによって異なります。Apache CXF セキュリティーは、プラグイン可能な Java Cryptography Extension (JCE) および Java Secure Socket Extension (JSSE) レイヤーに基づいています。デフォルトでは、Apache CXF は Sun の JSSE プロバイダーで設定されています。このプロバイダーは、Sun の JSSE リファレンスガイド付録 A で説明されている暗号スイートをサポートしています。

構文

AlgorithmSuite 要素の構文は以下のようになります。

<sp:AlgorithmSuite xmlns:sp="..." ... >
  <wsp:Policy xmlns:wsp="...">
   (<sp:Basic256 ... /> |
    <sp:Basic192 ... /> |
    <sp:Basic128 ... /> |
    <sp:TripleDes ... /> |
    <sp:Basic256Rsa15 ... /> |
    <sp:Basic192Rsa15 ... /> |
    <sp:Basic128Rsa15 ... /> |
    <sp:TripleDesRsa15 ... /> |
    <sp:Basic256Sha256 ... /> |
    <sp:Basic192Sha256 ... /> |
    <sp:Basic128Sha256 ... /> |
    <sp:TripleDesSha256 ... /> |
    <sp:Basic256Sha256Rsa15 ... /> |
    <sp:Basic192Sha256Rsa15 ... /> |
    <sp:Basic128Sha256Rsa15 ... /> |
    <sp:TripleDesSha256Rsa15 ... /> |
    ...)
    <sp:InclusiveC14N ... /> ?
    <sp:SOAPNormalization10 ... /> ?
    <sp:STRTransform10 ... /> ?
   (<sp:XPath10 ... /> |
    <sp:XPathFilter20 ... /> |
    <sp:AbsXPath ... /> |
    ...)?
    ...
  </wsp:Policy>
  ...
</sp:AlgorithmSuite>

アルゴリズムスイートのアサーションは、多数の代替アルゴリズム (例: Basic256) をサポートします。代替アルゴリズムスイートの詳細は、表6.4「アルゴリズムスイート」 を参照してください。

アルゴリズムスイート

表6.4「アルゴリズムスイート」 WS-SecurityPolicy によってサポートされるアルゴリズムスイートの概要を示します。列見出しは、次のようにさまざまなタイプの暗号化アルゴリズムを示しています。\[Dig] はダイジェストアルゴリズムです。\[Enc] は暗号化アルゴリズムです。\[Sym KW] は対称鍵ラップアルゴリズムです。\[Asym KW] は非対称キーラップアルゴリズムです。\[Enc KD] は、暗号化キー導出アルゴリズムです。\[Sig KD] は、署名鍵導出アルゴリズムです。

表6.4 アルゴリズムスイート
アルゴリズムスイート\[Dig]\[Enc]\[Sym KW]\[Asym KW]\[Enc KD]\[Sig KD]

Basic256

Sha1

Aes256

KwAes256

KwRsaOaep

PSha1L256

PSha1L192

Basic192

Sha1

Aes192

KwAes192

KwRsaOaep

PSha1L192

PSha1L192

Basic128

Sha1

Aes128

KwAes128

KwRsaOaep

PSha1L128

PSha1L128

TripleDes

Sha1

TripleDes

KwTripleDes

KwRsaOaep

PSha1L192

PSha1L192

Basic256Rsa15

Sha1

Aes256

KwAes256

KwRsa15

PSha1L256

PSha1L192

Basic192Rsa15

Sha1

Aes192

KwAes192

KwRsa15

PSha1L192

PSha1L192

Basic128Rsa15

Sha1

Aes128

KwAes128

KwRsa15

PSha1L128

PSha1L128

TripleDesRsa15

Sha1

TripleDes

KwTripleDes

KwRsa15

PSha1L192

PSha1L192

Basic256Sha256

Sha256

Aes256

KwAes256

KwRsaOaep

PSha1L256

PSha1L192

Basic192Sha256

Sha256

Aes192

KwAes192

KwRsaOaep

PSha1L192

PSha1L192

Basic128Sha256

Sha256

Aes128

KwAes128

KwRsaOaep

PSha1L128

PSha1L128

TripleDesSha256

Sha256

TripleDes

KwTripleDes

KwRsaOaep

PSha1L192

PSha1L192

Basic256Sha256Rsa15

Sha256

Aes256

KwAes256

KwRsa15

PSha1L256

PSha1L192

Basic192Sha256Rsa15

Sha256

Aes192

KwAes192

KwRsa15

PSha1L192

PSha1L192

Basic128Sha256Rsa15

Sha256

Aes128

KwAes128

KwRsa15

PSha1L128

PSha1L128

TripleDesSha256Rsa15

Sha256

TripleDes

KwTripleDes

KwRsa15

PSha1L192

PSha1L192

暗号化アルゴリズムのタイプ

WS-SecurityPolicy では、以下のタイプの暗号化アルゴリズムがサポートされます。

対称キー署名

対称キー署名プロパティー [Sym Sig] は、対称キーを使用して署名を生成するアルゴリズムを指定します。WS-SecurityPolicy は、HmacSha1 アルゴリズムを常に使用するように指定します。

HmacSha1 アルゴリズムは、以下の URI で識別されます。

http://www.w3.org/2000/09/xmldsig#hmac-sha1

非対称鍵の署名

非対称鍵の署名プロパティー [Asym Sig] は、非対称キーを使用して署名を生成するアルゴリズムを指定します。WS-SecurityPolicy は、RsaSha1 アルゴリズムを常に使用するように指定します。

RsaSha1 アルゴリズムは、以下の URI で識別されます。

http://www.w3.org/2000/09/xmldsig#rsa-sha1

Digest

digest プロパティー [Dig] は、メッセージダイジェスト値の生成に使用されるアルゴリズムを指定します。WS-SecurityPolicy は、2 つの代替ダイジェストアルゴリズム (Sha1 および Sha256) をサポートします。

Sha1 アルゴリズムは、以下の URI で識別されます。

http://www.w3.org/2000/09/xmldsig#sha1

Sha256 アルゴリズムは、以下の URI で識別されます。

http://www.w3.org/2001/04/xmlenc#sha256

暗号化

暗号化プロパティー [Enc] は、データの暗号化に使用されるアルゴリズムを指定します。WS-SecurityPolicy は、Aes256Aes192Aes128TripleDes の暗号化アルゴリズムをサポートします。

Aes256 アルゴリズムは、以下の URI で識別されます。

http://www.w3.org/2001/04/xmlenc#aes256-cbc

Aes192 アルゴリズムは、以下の URI で識別されます。

http://www.w3.org/2001/04/xmlenc#aes192-cbc

Aes128 アルゴリズムは、以下の URI で識別されます。

http://www.w3.org/2001/04/xmlenc#aes128-cbc

TripleDes アルゴリズムは、以下の URI で識別されます。

http://www.w3.org/2001/04/xmlenc#tripledes-cbc

対称キーラッピング

対称キーラッピングプロパティー [Sym KW] は、対称鍵の署名および暗号化に使用されるアルゴリズムを指定します。WS-SecurityPolicy は、対称鍵ラップアルゴリズムの KwAes256KwAes192KwAes128KwTripleDes をサポートします。

KwAes256 アルゴリズムは、以下の URI で識別されます。

http://www.w3.org/2001/04/xmlenc#kw-aes256

KwAes192 アルゴリズムは、以下の URI で識別されます。

http://www.w3.org/2001/04/xmlenc#kw-aes192

KwAes128 アルゴリズムは、以下の URI で識別されます。

http://www.w3.org/2001/04/xmlenc#kw-aes128

KwTripleDes アルゴリズムは、以下の URI で識別されます。

http://www.w3.org/2001/04/xmlenc#tripledes-cbc

非対称キーラッピング

非対称キーラッププロパティー [Asym KW] は、非対称キーの署名と暗号化に使用されるアルゴリズムを指定します。WS-SecurityPolicy は、非対称鍵ラップアルゴリズムの KwRsaOaepKwRsa15 をサポートします。

KwRsaOaep アルゴリズムは、以下の URI で識別されます。

http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p

KwRsa15 アルゴリズムは、以下の URI で識別されます。

http://www.w3.org/2001/04/xmlenc#rsa-1_5

コンピュートキー

コンピュートキープロパティー [Comp Key] は、派生された鍵の計算に使用されるアルゴリズムを指定します。セキュアな参加者が共有秘密鍵の ID と通信する場合 (WS-SecureConversation を使用する場合など)、悪意のあるサードパーティーによる分析に過剰なデータが公開されないように、元の共有キーの代わりに派生キーを使用することが推奨されます。WS-SecurityPolicy は、PSha1 アルゴリズムを常に使用するように指定します。

PSha1 アルゴリズムは、以下の URI で識別されます。

http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512/dk/p_sha1

暗号化キー導出

暗号化キー導出プロパティー [Enc KD] は、派生した暗号化キーの計算に使用するアルゴリズムを指定します。WS-SecurityPolicy は、PSha1L256PSha1L192PSha1L128 の暗号化キーの派生アルゴリズムをサポートします。

PSha1 アルゴリズムは以下の URI で識別されます (PSha1L256PSha1L192、および PSha1L128 に同じアルゴリズムが使用されます。キーの長さのみが異なります)。

http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512/dk/p_sha1

署名鍵導出

署名キー導出プロパティー [Sig KD] は、派生署名キーの計算に使用されるアルゴリズムを指定します。WS-SecurityPolicy は、PSha1L192PSha1L128 の署名キーの派生アルゴリズムをサポートします。

キー長のプロパティー

表6.5「キー長のプロパティー」 は、WS-SecurityPolicy でサポートされるキーの最小および最大の長さを示しています。

表6.5 キー長のプロパティー
プロパティーキーの長さ

最小対称キーの長さ [Min SKL]

128, 192, 256

対称キーの最大長 [Max SKL]

256

非対称キーの最小長 [Min AKL]

1024

非対称キーの最大長 [Max AKL]

4096

最小対称鍵長の値 [Min SKL] は、選択されているアルゴリズムスイートによって異なります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.