View a markdown version of this page

API SPEKE v1 - Crittografia delle chiavi dei contenuti - Specifica API Elemental Secure Packager and Encoder Key Exchange

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

API SPEKE v1 - Crittografia delle chiavi dei contenuti

Facoltativamente, puoi aggiungere la crittografia delle chiavi di contenuto all'implementazione SPEKE. La crittografia delle chiavi dei contenuti garantisce una protezione completa end-to-end crittografando le chiave dei contenuti in transito, oltre a crittografare i contenuti stessi. Se non la implementi per il tuo fornitore di chiavi, ti affidi alla crittografia a livello di trasporto e all'autenticazione avanzata per motivi di sicurezza.

Per utilizzare la crittografia delle chiavi di contenuto per gli crittografi in esecuzione nel cloud AWS, i clienti importano i certificati in AWS Certificate Manager e quindi utilizzano gli ARN dei certificati risultanti per le loro attività di crittografia. L'encoptor utilizza gli ARN del certificato e il servizio ACM per fornire chiavi di contenuto crittografate al fornitore di chiavi DRM.

Restrizioni

SPEKE supporta la crittografia delle chiavi di contenuto come specificato nella specifica DASH-IF CPIX con le seguenti restrizioni:

  • SPEKE non supporta la verifica della firma digitale (XMLDSIG) per i payload di richieste o risposte.

  • SPEKE richiede 2048 certificati. RSA-based

Queste restrizioni sono elencate anche in Personalizzazioni e vincoli alle specifiche. DASH-IF

Implementazione della crittografia delle chiavi di contenuti

Per offrire la crittografia delle chiavi dei contenuti, includere quanto segue nelle implementazioni del provider di chiavi DRM:

  • Gestire l'elemento <cpix:DeliveryDataList> nei payload della richiesta e della risposta.

  • Fornire i valori crittografati nel <cpix:ContentKeyList> dei payload della risposta.

Per ulteriori informazioni su questi elementi, vedere la specifica DASH-IF CPIX 2.0.

Elemento di crittografia della chiave dei contenuti di esempio <cpix:DeliveryDataList> nel payload della richiesta

L'esempio seguente evidenzia l'elemento <cpix:DeliveryDataList> aggiunto in grassetto:

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

Elemento di crittografia della chiave dei contenuti di esempio <cpix:DeliveryDataList> nel payload della risposta

L'esempio seguente evidenzia l'elemento <cpix:DeliveryDataList> aggiunto in grassetto:

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

Elemento di crittografia della chiave dei contenuti di esempio <cpix:ContentKeyList> nel payload della risposta

L'esempio seguente mostra la gestione della chiave dei contenuti crittografati nell'elemento <cpix:ContentKeyList> del payload di risposta. Questo utilizza l'elemento <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>

In base al confronto, l'esempio seguente mostra un payload di risposta simile con la chiave di contenuti distribuita non crittografata, come chiave in chiaro. Questo utilizza l'elemento <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>