

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# SPEKE API v2 - コンテンツキーの暗号化
<a name="content-key-encryption-v2"></a>

必要に応じて SPEKE 実装にコンテンツキーの暗号化を追加できます。コンテンツキーの暗号化は、コンテンツ自体の暗号化に加えて、転送用のコンテンツキーを暗号化することにより、エンドツーエンドの完全な保護を保証します。キープロバイダーにこれを実装していない場合は、トランスポートレイヤーの暗号化と強力な認証をセキュリティに使用することになります。

AWS クラウドで動作するエンクリプタにコンテンツキー暗号化を使用するには、お客様は証明書を AWS Certificate Manager にインポートし、暗号化アクティビティにその結果の証明書 ARN を使用します。エンクリプタは、証明書 ARN と ACM サービスを使用して、暗号化されたコンテンツキーを DRM キープロバイダーに提供します。

**制限事項**  
SPEKE は、DASH-IF CPIX 仕様で指定されているコンテンツキー暗号化をサポートします。ただし、次の制限があります。
+ SPEKE は、リクエストおよびレスポンスペイロードにデジタル署名検証 (XMLDSIG) をサポートしていません。
+ SPEKE には 2048 ビットの RSA ベースの証明書が必要です。

これらの制限は、[DASH-IF 仕様のカスタマイズと制約](speke-constraints-v2.md)にも記載されています。

**コンテンツキーの暗号化の実装**  
コンテンツの暗号化キーを提供するには、DRM キープロバイダーの実装に次の項目を含めます。
+ リクエストペイロードとレスポンスペイロードで要素 `<cpix:DeliveryDataList>` を処理します。
+ レスポンスペイロードの `<cpix:ContentKeyList>` に暗号化された値を入力します。

これらの要素の詳細については、[DASH-IF CPIX 2.3 仕様](https://dashif.org/docs/CPIX2.3/Cpix.html)を参照してください。

 *レスポンスペイロードのコンテンツキー暗号化要素の例 ` <cpix:DeliveryDataList> `* 

```
<cpix:CPIX contentId="abc123"
    version="2.3"
    xmlns:cpix="urn:dashif:org:cpix"
    xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc">
    <cpix:DeliveryDataList>
        <cpix:DeliveryData id="<ORIGIN SERVER ID>">
            <cpix:DeliveryKey>
                <ds:X509Data>
                    <ds:X509Certificate><X.509 CERTIFICATE, BASE-64 ENCODED></ds:X509Certificate>
                </ds:X509Data>
            </cpix:DeliveryKey>
        </cpix:DeliveryData>
    </cpix:DeliveryDataList>
    <cpix:ContentKeyList>
     ...
    </cpix:ContentKeyList>
</cpix:CPIX>
```

 *レスポンスペイロードのコンテンツキー暗号化要素の例` <cpix:DeliveryDataList> `* 

```
<cpix:CPIX contentId="abc123"
    version="2.3"
    xmlns:cpix="urn:dashif:org:cpix"
    xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc">
    <cpix:DeliveryDataList>
        <cpix:DeliveryData id="<ORIGIN SERVER ID>">
            <cpix:DeliveryKey>
                <ds:X509Data>
                    <ds:X509Certificate><X.509 CERTIFICATE, BASE-64 ENCODED></ds:X509Certificate>
                </ds:X509Data>
            </cpix:DeliveryKey>
            <cpix:DocumentKey Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc">
                <cpix:Data>
                    <pskc:Secret>
                        <pskc:EncryptedValue>
                            <enc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p" />
                            <enc:CipherData>
                                <enc:CipherValue><RSA CIPHER VALUE></enc:CipherValue>
                            </enc:CipherData>
                        </pskc:EncryptedValue>
                        <pskc:ValueMAC>qnei/5TsfUwDu+8bhsZrLjDRDngvmnUZD2eva7SfXWw=</pskc:ValueMAC>
                    </pskc:Secret>
                </cpix:Data>
            </cpix:DocumentKey>
            <cpix:MACMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha512">
                <cpix:Key>
                    <pskc:EncryptedValue>
                        <enc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p" />
                        <enc:CipherData>
                            <enc:CipherValue><RSA CIPHER VALUE></enc:CipherValue>
                        </enc:CipherData>
                    </pskc:EncryptedValue>
                    <pskc:ValueMAC>DGqdpHUfFKxdsO9+EWrPjtdTCVfjPLwwtzEcFC/j0xY=</pskc:ValueMAC>
                </cpix:Key>
            </cpix:MACMethod>
        </cpix:DeliveryData>
    </cpix:DeliveryDataList>
    <cpix:ContentKeyList>
     ...
    </cpix:ContentKeyList>
</cpix:CPIX>
```

 *レスポンスペイロードのコンテンツキー暗号化要素の例` <cpix:ContentKeyList> `* 

次の例は、レスポンスペイロードの `<cpix:ContentKeyList>` 要素で暗号化されたコンテンツキーの処理を示しています。これは `<pskc:EncryptedValue>` 要素を使用します。

```
<cpix:ContentKeyList>
     <cpix:ContentKey explicitIV="OFj2IjCsPJFfMAxmQxLGPw==" kid="98ee5596-cd3e-a20d-163a-e382420c6eff" commonEncryptionScheme="cbcs">
         <cpix:Data>
             <pskc:Secret>
                 <pskc:EncryptedValue>
                     <enc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
                     <enc:CipherData>
                         <enc:CipherValue>NJYebfvJ2TdMm3k6v+rLNVYb0NoTJoTLBBdbpe8nmilEfp82SKa7MkqTn2lmQBPB</enc:CipherValue>
                     </enc:CipherData>
                 </pskc:EncryptedValue>
                 <pskc:ValueMAC>t9lW4WCebfS1GP+dh0IicMs+2+jnrAmfDa4WU6VGHc4=</pskc:ValueMAC>
             </pskc:Secret>
         </cpix:Data>
     </cpix:ContentKey>
 </cpix:ContentKeyList>
```

これに対して、以下の例は、クリアキーとして暗号化されていないコンテンツキーを持つ同様のレスポンスペイロードを示しています。これは `<pskc:PlainValue>` 要素を使用します。

```
<cpix:ContentKeyList>
    <cpix:ContentKey explicitIV="OFj2IjCsPJFfMAxmQxLGPw==" kid="98ee5596-cd3e-a20d-163a-e382420c6eff" commonEncryptionScheme="cbcs">
        <cpix:Data>
            <pskc:Secret>
                <pskc:PlainValue>5dGAgwGuUYu4dHeHtNlxJw==</pskc:PlainValue>
            </pskc:Secret>
        </cpix:Data>
    </cpix:ContentKey>
</cpix:ContentKeyList>
```