

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

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

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

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

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

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

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

これらの要素の詳細については、「[DASH-IF CPIX 2.0 仕様](https://dashif.org/docs/DASH-IF-CPIX-v2-0.pdf)」を参照してください。

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

次の例は、追加された `<cpix:DeliveryDataList>` 要素を太字で示しています。

```
<?xml version="1.0" encoding="UTF-8"?>
<cpix:CPIX id="example-test-doc-encryption"
    xmlns:cpix="urn:dashif:org:cpix"
    xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"
    xmlns:speke="urn:aws:amazon:com:speke">
    <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:DeliveryDataList>` 要素を太字で示しています。

```
<cpix:CPIX xmlns:cpix="urn:dashif:org:cpix"
    xmlns:enc="http://www.w3.org/2001/04/xmlenc#"
    xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc"
    xmlns:speke="urn:aws:amazon:com:speke" id="hls_test_001">
    <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 kid="682681c8-69fa-4434-9f9f-1a7f5389ec02">
            <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="682681c8-69fa-4434-9f9f-1a7f5389ec02">
            <cpix:Data>
                <pskc:Secret>
                    <pskc:PlainValue>5dGAgwGuUYu4dHeHtNlxJw==</pskc:PlainValue>
                </pskc:Secret>
            </cpix:Data>
        </cpix:ContentKey>
    </cpix:ContentKeyList>
```