SPEKE API v1 – Inhaltsschlüsselverschlüsselung - Secure Packager and Encoder Key Exchange API-Spezifikation

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

SPEKE API v1 – Inhaltsschlüsselverschlüsselung

Sie können Ihrer SPEKE-Implementierung optional eine Inhaltsschlüsselverschlüsselung hinzufügen. Die Verschlüsselung von Inhaltsschlüsseln gewährleistet vollen end-to-end Schutz, indem die Inhaltsschlüssel für die Übertragung verschlüsselt werden, zusätzlich zur Verschlüsselung des Inhalts selbst. Wenn Sie dies nicht für Ihren Schlüsselanbieter implementieren, verlassen Sie sich aus Sicherheitsgründen auf die Verschlüsselung der Transportebene plus die starke Authentifizierung.

Um die Inhaltsschlüsselverschlüsselung für Verschlüsselungsprogramme zu verwenden, die in AWS Cloud ausgeführt werden, importieren Kunden Zertifikate in den AWS Certificate Manager und verwenden dann die resultierenden Zertifikat-ARNs für ihre Verschlüsselungsaktivitäten. Der Verschlüsseler verwendet die Zertifikat-ARNs und den ACM-Service, um dem DRM-Schlüsselanbieter verschlüsselte Inhaltsschlüssel bereitzustellen.

Einschränkungen

SPEKE unterstützt die Verschlüsselung von Inhaltsschlüsseln, wie in der DASH-IF CPIX-Spezifikation angegeben, mit den folgenden Einschränkungen:

  • SPEKE unterstützt keine digitale Signaturüberprüfung (XMLDSIG) für Anforderungs- oder Antwortnutzlasten.

  • SPEKE erfordert 2048 RSA-basierte Zertifikate.

Diese Einschränkungen sind auch unter Anpassungen und Einschränkungen der DASH-IF-Spezifikation aufgeführt.

Implementieren der Inhaltsschlüssel-Verschlüsselung

Um Inhaltsschlüssel-Verschlüsselung bereitzustellen, führen Sie in den Implementierungen Ihres DRM-Schlüsselanbieters Folgendes aus:

  • Verarbeiten Sie das Element <cpix:DeliveryDataList> in den Anforderungs- und Antwortnutzlasten.

  • Stellen Sie in der <cpix:ContentKeyList> der Antwortnutzlasten verschlüsselte Werte bereit.

Weitere Informationen zu diesen Elementen finden Sie in der DASH-IF CPIX 2.0-Spezifikation.

Beispiel für das Inhaltsschlüssel-Verschlüsselungselement <cpix:DeliveryDataList> in der Anforderungsnutzlast

Im folgenden Beispiel wird das hinzugefügte <cpix:DeliveryDataList>-Element in Fettschrift hervorgehoben:

<?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>

Beispiel für das Inhaltsschlüssel-Verschlüsselungselement <cpix:DeliveryDataList> in der Antwortnutzlast

Im folgenden Beispiel wird das hinzugefügte <cpix:DeliveryDataList>-Element in Fettschrift hervorgehoben:

<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>

Beispiel für das Inhaltsschlüssel-Verschlüsselungselement <cpix:ContentKeyList> in der Antwortnutzlast

Das folgende Beispiel zeigt die Behandlung des verschlüsselten Inhaltsschlüssels im <cpix:ContentKeyList>-Element der Antwortnutzlast. Hier wird das Element <pskc:EncryptedValue> verwendet:

<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>

Im Vergleich dazu zeigt das folgende Beispiel eine ähnliche Antwortnutzlast mit dem unverschlüsselten Inhaltsschlüssel als entschlüsselter Schlüssel. Hier wird das Element <pskc:PlainValue> verwendet:

<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>