

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

# Crittografia dei contenuti e DRM in AWS Elemental MediaPackage
<a name="using-encryption"></a>

Proteggi i tuoi contenuti dall'uso non autorizzato tramite la crittografia dei contenuti e la gestione dei diritti digitali (DRM). AWS Elemental MediaPackage utilizza l'[API AWS Secure Packager and Encoder Key Exchange (SPEKE)](https://aws.amazon.com/media/tech/speke-basics-secure-packager-encoder-key-exchange-api/) per facilitare la crittografia e la decrittografia dei contenuti da parte di un provider DRM. Utilizzando SPEKE, il provider DRM fornisce chiavi di crittografia tramite l'API SPEKE. MediaPackage Il provider DRM fornisce inoltre licenze per la decrittografia ai lettori multimediali supportati. Per ulteriori informazioni su come SPEKE viene utilizzato con i servizi e le funzionalità in esecuzione nel cloud, consulta l'[architettura AWS basata sul cloud nella guida alle specifiche dell'API](https://docs.aws.amazon.com/speke/latest/documentation/what-is-speke.html#services-architecture) *Secure Packager* ed Encoder Key Exchange.

## Limitazioni e requisiti
<a name="encryption-requirements"></a>

Quando implementi la crittografia dei contenuti per AWS Elemental MediaPackage, fai riferimento alle seguenti limitazioni e requisiti:
+ Utilizza l'API AWS Secure Packager and Encoder Key Exchange (SPEKE) per facilitare l'integrazione con un provider di gestione dei diritti digitali (DRM). Per informazioni su SPEKE, vedi [Cos'è Secure Packager](https://docs.aws.amazon.com/speke/latest/documentation/what-is-speke.html) and Encoder Key Exchange?
+ Il tuo provider DRM deve supportare SPEKE. *Per un elenco dei provider DRM che supportano SPEKE, consulta l'argomento [Get on board with a DRM Platform provider](https://docs.aws.amazon.com/speke/latest/documentation/customer-onboarding.html#choose-drm-provider) nella Guida per l'utente. MediaPackage * Il vostro fornitore di soluzioni DRM può aiutarvi a configurare l'utilizzo della crittografia DRM in. MediaPackage
+  MediaPackage Utilizzatelo per crittografare contenuti live e video on demand (VOD). Le risorse che devono essere fornite tramite il servizio MediaPackage VOD devono essere raccolte da un endpoint live HLS non crittografato. È possibile raccogliere live-to-VOD risorse dagli endpoint HLS e DASH protetti da DRM o crittografia. Tuttavia, il servizio MediaPackage VOD non può importare queste risorse perché sono contenuti crittografati (non chiari). Per ulteriori informazioni su questo tipo di flusso di lavoro, consulta. [Creazione di live-to-VOD risorse con AWS Elemental MediaPackage](ltov.md)

Le seguenti sezioni forniscono indicazioni su come scegliere e implementare la crittografia dei contenuti utilizzando SPEKE for MediaPackage.

**Topics**
+ [Limitazioni e requisiti](#encryption-requirements)
+ [Scelta della versione SPEKE corretta](encryption-choosing-speke-version.md)
+ [Implementazione di SPEKE](encryption-deploying-speke.md)
+ [Preparazione e gestione dei certificati da utilizzare con le chiavi di contenuto](drm-content-key-encryption.md)
+ [Comprendere il comportamento di rotazione dei tasti](drm-content-key-rotation.md)
+ [Preimpostazioni SPEKE versione 2.0](drm-content-speke-v2-presets.md)
+ [Rimozione di tag dal manifesto principale da AWS Elemental MediaPackage](drm-query-param.md)

# Scelta della versione SPEKE corretta
<a name="encryption-choosing-speke-version"></a>

La [versione 1 di SPEKE](https://docs.aws.amazon.com/speke/latest/documentation/the-speke-api.html) supporta l'uso di un'unica chiave di crittografia per tutte le tracce audio e video e utilizza la versione 2.0 di [CPIX](https://dashif.org/docs/DASH-IF-CPIX-v2-0.pdf). [Per le tracce audio e video, la [versione 2.0 di SPEKE](https://docs.aws.amazon.com/speke/latest/documentation/the-speke-api-v2.html) supporta l'uso di chiavi di crittografia multiple e distinte e utilizza la versione 2.3 di CPIX.](https://dashif.org/docs/CPIX2.3/Cpix.html) Per ulteriori informazioni sulle configurazioni di crittografia di SPEKE versione 2.0, vedere. [Preimpostazioni SPEKE versione 2.0](drm-content-speke-v2-presets.md)

Se la crittografia a chiave multipla, o Content Protection Information Exchange (CPIX) versione 2.3, sono requisiti obbligatori per la distribuzione dei contenuti, la versione SPEKE 2.0 è una buona scelta. Tuttavia, il supporto della versione 2.0 di SPEKE è progressivo per tutti i tipi di endpoint in. MediaPackage Ciò significa che alcune opzioni live, come la rotazione dei tasti, non sono ancora disponibili. Prendi in considerazione questi vincoli quando elabori la tua strategia di integrazione SPEKE. Per saperne di più sulla roadmap di SPEKE versione 2.0 per, contatta il tuo team. MediaPackage Account AWS 

**Protocolli e piattaforme DRM supportati**

Le tabelle seguenti elencano i diversi protocolli e piattaforme di gestione dei diritti digitali (DRM) supportati da SPEKE versione 1.0 e SPEKE versione 2.0.

**Nota**  
Irdeto Content Protection non è supportato in combinazione con la versione SPEKE 1.0.


|  |  |  |  |  | 
| --- |--- |--- |--- |--- |
| SPEKE Versione 1.0 — Matrice di supporto per protocollo e sistema DRM | Microsoft PlayReady | Google Widevine | Apple FairPlay | AES-128 | 
| Vivere | 
| Apple HLS | Non supportata | Non supportata |  √ Ha una rotazione dei tasti  |  √  Ha una rotazione dei tasti  | 
| CMAF Apple HLS | Non supportata |  √ Ha una rotazione dei tasti Supporta solo la crittografia cbcs  |  √ Ha una rotazione dei tasti Supporta solo la crittografia cbcs  | Non supportata | 
| DASH |  √  Ha una rotazione dei tasti  |  √ Ha una rotazione dei tasti  | Non supportata | Non supportata | 
| Microsoft Smooth | √ | Non supportata | Non supportata | Non supportata | 
| VOD | 
| Apple HLS | Non supportata | Non supportata | √ | √ | 
| CMAF Apple HLS | Non supportata |  √ Supporta solo la crittografia cbcs  |  √ Supporta solo la crittografia cbcs  | Non supportata | 
| DASH | √ | √ | Non supportata | Non supportata | 
| Microsoft Smooth | √ | Non supportata | Non supportata | Non supportata | 


|  |  |  |  |  | 
| --- |--- |--- |--- |--- |
| SPEKE Versione 2.0 — Matrice di supporto per protocollo e sistema DRM | Microsoft PlayReady | Google Widevine | Apple FairPlay | Protezione dei contenuti Irdeto | 
| Dal vivo | 
| CMAF Apple HLS |  √ Supporta la crittografia cbcs e cenc  |  √ Supporta la crittografia cbcs e cenc  |  √ Supporta la crittografia cbcs  | Non supportata | 
| DASH | √ | √ | Non supportata | √ | 
| VOD | 
| CMAF Apple HLS |  √ Supporta solo la crittografia cbcs  |  √ Supporta solo la crittografia cbcs  |  √ Supporta solo la crittografia cbcs  | Non supportata | 
| DASH | √ | √ | Non supportata | √ | 

# Implementazione di SPEKE
<a name="encryption-deploying-speke"></a>

Il tuo fornitore di soluzioni di gestione dei diritti digitali (DRM) può aiutarti a configurare l'utilizzo della crittografia DRM in. MediaPackage In genere, il provider offre un gateway SPEKE da implementare nello stesso Regione AWS luogo in cui è Account AWS in esecuzione. MediaPackage Oltre a configurare gli endpoint di origine con le impostazioni di crittografia corrette, è necessario [configurare le notifiche degli eventi](https://docs.aws.amazon.com/mediapackage/latest/ug/cloudwatch-events-notification.html) per gli eventi del [provider chiave generati MediaPackage come Eventi](https://docs.aws.amazon.com/mediapackage/latest/ug/cloudwatch-events-example.html#key-provider-state-events). CloudWatch [Per informazioni sulla configurazione delle impostazioni di crittografia per l'endpoint, consulta la sezione applicabile al protocollo: campi di crittografia [HLS, campi di crittografia MSS, campi](https://docs.aws.amazon.com/mediapackage/latest/ug/endpoints-hls-encryption.html)[di crittografia [CMAF](https://docs.aws.amazon.com/mediapackage/latest/ug/endpoints-cmaf-encryption.html) e campi](https://docs.aws.amazon.com/mediapackage/latest/ug/endpoints-smooth-encryption.html) di crittografia DASH.](https://docs.aws.amazon.com/mediapackage/latest/ug/endpoints-dash-encryption.html)

Se devi creare il tuo API Gateway per connetterti MediaPackage al tuo servizio chiave, puoi utilizzare lo [SPEKE Reference Server](https://github.com/awslabs/speke-reference-server) disponibile su GitHub come punto di partenza.

# Preparazione e gestione dei certificati da utilizzare con le chiavi di contenuto
<a name="drm-content-key-encryption"></a>

AWS Elemental MediaPackage utilizza un documento Content Protection Information Exchange (CPIX) per comunicare con SPEKE in merito alle chiavi di contenuto utilizzate per crittografare i contenuti. Per la soluzione di crittografia DRM (Digital Rights Management) più sicura, utilizzate chiavi di contenuto crittografate nel documento CPIX.

Per utilizzare le chiavi del contenuto crittografate, è necessario soddisfare i seguenti requisiti:
+ Il contenuto crittografato deve essere attivo. Il video on demand (VOD) e i live-to-VOD flussi di lavoro non supportano le chiavi di contenuto crittografate nel documento CPIX.
+ Il provider di chiavi DRM deve supportare chiavi di contenuto crittografate. Se abiliti questa funzione per un provider di chiavi che non gestisce la crittografia delle chiavi di contenuti, l'operazione ha esito negativo.
+ È necessario importare un certificato adatto in AWS Certificate Manager (ACM) nella stessa regione in cui si esegue. MediaPackage Per ulteriori informazioni su ACM, consulta la [Guida per l’utente di AWS Certificate Manager](https://docs.aws.amazon.com/acm/latest/userguide/). 

  Le procedure seguenti descrivono come preparare e gestire il certificato.

**Per preparare un certificato per la crittografia delle chiavi di contenuti DRM**

1. Ottenere un certificato firmato 2048 RSA, SHA-512. 

1. Apri la console ACM all'indirizzo. [https://console.aws.amazon.com/acm/](https://console.aws.amazon.com/acm/)

1. Importa il certificato in ACM seguendo le istruzioni in [Importazione di certificati in AWS certificate manager](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html). Prendi nota dell'ARN del certificato, perché sarà necessario in una fase successiva.

   Per essere utilizzato nella crittografia DRM, il certificato deve avere lo stato **Emesso** in ACM.

**Per utilizzare un certificato in AWS Elemental MediaPackage**

Quando si utilizza la crittografia DRM nella configurazione dell'endpoint, fornire l'ARN del certificato nei parametri di crittografia. Questa operazione abilita la crittografia delle chiavi di contenuti. Puoi utilizzare lo stesso ARN del certificato per più eventi. Per ulteriori informazioni, consulta la sezione relativa alle impostazioni della crittografia in [Utilizzo degli endpoint in AWS Elemental MediaPackage](endpoints.md). 

**Per rinnovare un certificato**

Per rinnovare un certificato in uso AWS Elemental MediaPackage, reimportalo in ACM. Il certificato viene rinnovato senza alcuna interruzione del suo utilizzo in MediaPackage. 

**Eliminazione di un certificato**

Per eliminare un certificato da ACM, non deve essere associato a nessun altro servizio. Elimina l'ARN del certificato dalle configurazioni degli endpoint in cui è stato utilizzato, quindi eliminalo da ACM. 

**Nota**  
Se elimini un ARN del certificato da un endpoint attivo, l'endpoint continua a funzionare ma smette di utilizzare la crittografia delle chiavi di contenuti. 

# Comprendere il comportamento di rotazione dei tasti
<a name="drm-content-key-rotation"></a>

Quando si abilita la rotazione della chiave sul contenuto live dagli endpoint HLS, CMAF e DASH, AWS Elemental MediaPackage recupera le chiavi del contenuto prima dell'inizio del contenuto live. Man mano che il contenuto avanza, MediaPackage recupera nuove chiavi all'intervallo impostato sull'endpoint, come descritto in. [Campi di crittografia dei pacchetti](endpoints-hls-encryption.md)

Se non MediaPackage è in grado di recuperare la chiave del contenuto, intraprende le seguenti azioni:
+ Se in precedenza MediaPackage ha recuperato con successo una chiave di contenuto per questo endpoint, utilizza l'ultima chiave recuperata. Ciò garantisce che gli endpoint che hanno funzionato in precedenza continuino a funzionare. 
+ Se in precedenza *non MediaPackage * ha recuperato con successo una chiave di contenuto per questo endpoint, MediaPackage risponde alla richiesta di riproduzione con l'errore 404. 

In tutti i casi, quando non è MediaPackage possibile recuperare una chiave di contenuto, genera un CloudWatch evento, come descritto in. [Eventi chiave di notifica del provider](cloudwatch-events-example.md#key-provider-state-events)

# Preimpostazioni SPEKE versione 2.0
<a name="drm-content-speke-v2-presets"></a>

La versione 2.0 di SPEKE supporta l'uso di chiavi di crittografia multiple e distinte per le tracce audio e video. MediaPackage utilizza i **preset** per configurare la crittografia. L' MediaPackage API definisce questi preset e vengono visualizzati nella MediaPackage console nei menu dei preset di **crittografia video e dei preset di crittografia** **audio della sezione di configurazione degli endpoint Package** **Encryption**. I preset mappano le chiavi di crittografia su tracce audio o video specifiche, in base al numero di canali per le tracce audio e in base alla risoluzione video per le tracce video. MediaPackage utilizza combinazioni specifiche di impostazioni predefinite di crittografia audio e video per supportare tre diversi scenari di crittografia:
+ [Scenario 1: tracce non crittografate e tracce crittografate](#drm-content-speke-v2-presets-unencrypted-and-encrypted-tracks)
+ [Scenario 2: chiave di crittografia singola per tutte le tracce audio e video](#drm-content-speke-v2-presets-single-encryption-key-for-all-tracks)
+ [Scenario 3: chiavi di crittografia multiple per tracce audio e video](#drm-content-speke-v2-presets-multiple-encryption-keys-for-audio-and-video-tracks)

## Scenario 1: tracce non crittografate e tracce crittografate
<a name="drm-content-speke-v2-presets-unencrypted-and-encrypted-tracks"></a>

**È possibile scegliere di *non* crittografare le tracce audio o video selezionando la preimpostazione **UNENCRYPTED nei menu preimpostati** di **crittografia video o i menu preimpostati di crittografia** Audio.** Non potete selezionare **UNENCRYPTED sia per i preset audio che per quelli video, perché così facendo non intendete cifrare** alcuna traccia. Inoltre, non puoi combinare i preset **UNENCRYPTED** e **SHARED** per audio e video, perché **SHARED** è un preset speciale. Per ulteriori informazioni, consulta [Scenario 2: chiave di crittografia singola per tutte le tracce audio e video](#drm-content-speke-v2-presets-single-encryption-key-for-all-tracks). 

**L'elenco seguente descrive combinazioni valide di preimpostazioni UNENCRYPTED:**
+ **UNENCRYPTED** per le tracce audio e qualsiasi preimpostazione video con un nome che inizia con `PRESET-VIDEO-`
+ **NON CRITTOGRAFATO** per le tracce video e qualsiasi preimpostazione audio con un nome che inizia con `PRESET-AUDIO-`

## Scenario 2: chiave di crittografia singola per tutte le tracce audio e video
<a name="drm-content-speke-v2-presets-single-encryption-key-for-all-tracks"></a>

La preimpostazione **SHARED** SPEKE versione 2.0 utilizza un'unica chiave di crittografia per tutte le tracce audio e video, come nella versione SPEKE 1.0. Quando selezionate la preimpostazione **SHARED**, selezionatela per la crittografia audio e video.

## Scenario 3: chiavi di crittografia multiple per tracce audio e video
<a name="drm-content-speke-v2-presets-multiple-encryption-keys-for-audio-and-video-tracks"></a>

Quando utilizzate una preimpostazione con un nome che inizia con `PRESET-VIDEO-` o`PRESET-AUDIO-`, MediaPackage cripta le tracce audio e le tracce video con il numero di chiavi di crittografia definito dalla preimpostazione specifica. Le tabelle seguenti mostrano quante chiavi MediaPackage richieste dal key server e come tali chiavi vengono mappate alle tracce. Se nessuna traccia corrisponde ai criteri per una particolare chiave, MediaPackage non utilizza quella chiave per crittografare alcuna traccia.

MediaPackage cripta solo le tracce trickplay con i-Frame con la chiave corrispondente alla loro risoluzione. 

Nella tabella seguente, il valore del **nome della chiave** è il valore dell'`ContentKeyUsageRule@IntendedTrackType`attributo MediaPackage utilizzato nel documento CPIX. Viene inviato al server SPEKE per una chiave di contenuto specifica.


**Preimpostazioni di crittografia video**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/mediapackage/latest/ug/drm-content-speke-v2-presets.html)

Nella tabella seguente, il valore del **nome chiave** è il valore dell'`ContentKeyUsageRule@IntendedTrackType`attributo MediaPackage utilizzato nel documento CPIX. Viene inviato al server SPEKE per una chiave di contenuto specifica.


**Preimpostazioni di crittografia audio**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/mediapackage/latest/ug/drm-content-speke-v2-presets.html)

Ora sai come MediaPackage supporta i preset SPEKE versione 2.0 per tracce non crittografate e tracce crittografate. Con questi preset, puoi utilizzare un'unica chiave di crittografia per tutte le tracce audio e video e più chiavi di crittografia per le tracce audio e video. 

# Rimozione di tag dal manifesto principale da AWS Elemental MediaPackage
<a name="drm-query-param"></a>

MediaPackage segnala nel manifesto principale il `#EXT-X-SESSION-KEY` tag per ogni tipo di traccia su un endpoint HLS o CMAF. Questo tag consente ai dispositivi di riproduzione di prerecuperare le chiavi quando una chiave viene condivisa su più stream. Ci sono momenti in cui potresti non volere questo tag opzionale, ad esempio quando usi solo un sottoinsieme di tracce e non vuoi che tutte le chiavi facciano riferimento nel manifesto principale. Con SPEKE v2, è possibile aggiungere un parametro di query alle richieste del manifesto che rimuoverà tutti i `#EXT-X-SESSION-KEY ` tag dal manifesto principale. Poiché ogni manifesto secondario ha il proprio `#EXT-X-KEY` tag per ottenere una chiave di decrittografia, questo è spesso superfluo. `#EXT-X-SESSION-KEY ` 

Per rimuovere il `#EXT-X-SESSION-KEY` tag dalle risposte MediaPackage manifeste, utilizzate il seguente parametro di query: `aws.drmsettings=excludesessionkeys`

La sezione seguente fornisce ulteriori informazioni sull'utilizzo dei parametri di interrogazione. 

## Sintassi delle query
<a name="drm-params-syntax"></a>

Il parametro di interrogazione di base per la rimozione dei `#EXT-X-SESSION-KEY` tag è`aws.drmsettings`, seguito da coppie opzionali di nomi e valori dei parametri. Per creare la query, aggiungila `?aws.drmsettings=` alla fine dell'URL dell' MediaPackage endpoint, seguito dal nome e dal valore del parametro.

Una query di filtro Apple HLS potrebbe essere simile alla seguente:

`https://example-mediapackage-endpoint.mediapackage.us-west-2.amazonaws.com/out/v1/examplemediapackage/index.m3u8?aws.drmsettings=excludesessionkeys`

La sintassi della query è elencata nella tabella seguente.

**Nota**  
Se utilizzi Amazon CloudFront come CDN, potresti dover impostare configurazioni aggiuntive. Per ulteriori informazioni, consulta [Configurare il comportamento della cache per tutti gli endpoint](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/live-streaming.html#live-streaming-with-mediapackage-create-cache-behavior).


| Componente della stringa di query | Description | 
| --- | --- | 
| ? | Un carattere limitato che segna l'inizio di una query. | 
| aws.drmsettings= | La query di base, che è seguita da parametri creati con coppie nomi e valori. | 
| : | Utilizzato per associare il nome del parametro a un valore. Ad esempio, parameter\$1name:value. | 
| ; | Separa i parametri in una query che contiene più parametri. Ad esempio, parameter1\$1name:value;parameter2\$1name:minValue-maxValue. Se utilizzato in un elenco di parametri per la stessa query, implica un'ANDoperazione. | 

## Condizioni di errore
<a name="error-conditions-and-handling-drm"></a>

Alcuni dispositivi di riproduzione restituiranno errori se il manifesto o i segmenti includono parametri di interrogazione non validi o sconosciuti. Di seguito sono riportati i parametri di interrogazione che MediaPackage è possibile elaborare:
+ `m`
+ `start`
+ `end`
+ `aws.manifestfilter`
+ `aws.drmsettings`

Se hai parametri di query diversi da quelli elencati, usa un CDN come Amazon CloudFront per rimuovere i parametri non necessari. Per ulteriori informazioni, consulta [la sezione Contenuto della cache basato sui parametri della stringa di query](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) nella *Amazon CloudFront Developer Guide*.

La tabella seguente contiene ulteriori condizioni di errore comuni. 


****  

| Condizione di errore | Esempio | Codice di stato HTTP | 
| --- | --- | --- | 
| Un parametro list non viene trovato e non fa parte di un elenco vincolato | ?aws.manifestfilter=audio\$1language:dahlia | 200 | 
| Solo i flussi di sottotitoli sono presenti nel flusso | ?aws.manifestfilter=audio\$1sample\$1rate:0-1;video\$1bitrate=0-1 | 200 | 
| Parametro del filtro duplicato | ?aws.manifestfilter=audio\$1sample\$1rate:0-48000;aws.manifestfilter=audio\$1sample\$1rate:0-48000 | 400 | 
| Parametro non valido | ?aws.manifestfilter=donut\$1type:rhododendron | 400 | 
| Parametro dell'intervallo non valido | ?aws.manifestfilter=audio\$1sample\$1rate:300-0 | 400 | 
| Valore dell'intervallo non valido (maggiore di INT\$1MAX) | ?aws.manifestfilter=audio\$1sample\$1rate:0-2147483648 | 400 | 
| Stringa di query con formato errato | ?aws.manifestfilter=audio\$1sample\$1rate:is:0-44100 | 400 | 
| Stringa del parametro maggiore di 1024 caratteri | ?aws.manifestfilter=audio\$1language:abcdef.... | 400 | 
| Parametri di query su un manifest di bitrate HLS o CMAF | index\$11.m3u8?aws.manifestfilter=video\$1codec:h264 | 400 | 
| Parametri di query su una richiesta di segmento | ...\$11.[ts\$1mp4\$1vtt..]?aws.manifestfilter=video\$1codec:h264 | 400 | 
| Parametro di query ripetute | ?aws.manifestfilter=audio\$1sample\$1rate:0-48000;aws.manifestfilter=video\$1bitrate:0-1 | 400 | 
| Manifest vuoto in seguito all'applicazione del filtro (il contenuto non ha flussi che soddisfano le condizioni definite nella stringa di query) | ?aws.manifestfilter=audio\$1sample\$1rate:0-1;video\$1bitrate=0-1 | 400 | 