Vai al contenuto
Castreon
Distribuzione

Crittografia HLS con AES-128

Aggiornato il 06 ott 2026

L'uscita HLS di un canale può essere cifrata con AES-128: ogni segmento viene cifrato con una chiave a 128 bit che il server Castreon crea da solo, e i player prendono la chiave dallo stesso server. Qualsiasi player HLS la riproduce — Safari e iPhone, Android (ExoPlayer / Media3), hls.js, Video.js, VLC, Smart TV e set-top box — senza fornitore DRM e senza costi aggiuntivi.

Disponibile da Castreon 1.0.5, in tutti i piani.

Cosa protegge — e cosa no

  • Senza chiave i segmenti non servono a nulla: copiati da una cache, da una CDN o dal disco, non si possono riprodurre.
  • La chiave viene consegnata con le stesse regole di accesso del flusso — Token per i player e Indirizzi consentiti — e non resta mai nelle cache lungo il percorso.
  • Uno spettatore autorizzato a guardare riceve anche la chiave. AES-128 tiene fuori chi non è autorizzato; non impedisce a uno spettatore autorizzato di registrare. Per contenuti a pagamento con protezione sul dispositivo stesso, usa il DRM — Widevine, PlayReady e FairPlay (Enterprise).

Attivazione

  1. Apri il canale → Modifica → l'uscita HLS.
  2. In Crittografia scegli AES-128.
  3. Scegli la Rotazione della chiave:
    • solo all’avvio — una chiave nuova a ogni avvio del canale;
    • ogni 10 minuti, ogni ora (predefinito) o una volta al giorno — la chiave cambia anche mentre il canale è in funzione.
  4. Salva. In Distribuzione l'indirizzo compare come HLS · AES-128 — è lo stesso indirizzo di prima (http://<dominio>/live/canale1/index.m3u8).

AES-128 funziona con segmenti TS. Con il Container su automatico, i canali H.264 usano TS, quindi non serve cambiare altro. Con il container impostato su fMP4 (CMAF) l'opzione non si può scegliere; HEVC e AV1 usano sempre fMP4, quindi con loro il canale non parte e il suo registro dice perché — scegli H.264 per questo canale oppure usa il DRM.

Con più qualità (ABR), ogni qualità viene cifrata.

Le chiavi

  • Le chiavi vengono create sul server e restano accanto ai segmenti, in /live/<canale>/keys/. La playlist dice al player quale chiave appartiene a ogni segmento.
  • Quando la chiave cambia, i nuovi segmenti usano la nuova chiave; le chiavi vecchie restano disponibili per la durata dell'intervallo più 10 minuti (almeno le ultime tre), così chi è un po' indietro continua a guardare senza interruzioni.
  • I player non hanno bisogno di nulla di particolare: leggono l'indirizzo della chiave dalla playlist.

Usa HTTPS

La chiave viaggia come qualsiasi altro file. Con HTTP semplice può essere letta in rete; con HTTPS no. Metti pannello e distribuzione dietro HTTPS e imposta il Dominio pubblico in Impostazioni → Istanza su https://… — vedi WebRTC → HTTPS per il pannello per una configurazione pronta con Caddy o nginx.

Con una CDN davanti a Castreon, lascia che la CDN tenga in cache i segmenti, ma non /live/<canale>/keys/ (Castreon invia già Cache-Control: no-store per le chiavi), e fai passare il token.

Cosa non viene cifrato

AES-128 vale solo per l'uscita HLS. DASH, LL-HLS, HTTP-TS, WebRTC e le uscite push (SRT, RTMP, UDP, RIST) non sono toccati — per loro usa gli Indirizzi consentiti, il token, la crittografia SRT/RIST o il DRM.

L'anteprima nel pannello funziona anche sui canali cifrati.

Se non funziona

  • AES-128 non si può scegliere — il Container HLS è impostato su fMP4 (CMAF). Scegli TS o automatico.
  • Il canale non parte: «la crittografia AES-128 dell’uscita HLS funziona solo con segmenti TS…» — il profilo è HEVC o AV1, che usano fMP4. Usa H.264 per questo canale oppure il DRM.
  • Il player carica la playlist ma non l'immagine — non riesce a prendere la chiave: controlla il token e gli indirizzi consentiti per lo spettatore, e che una pagina servita in HTTPS non carichi il flusso in HTTP (i browser bloccano i contenuti misti).
  • Il registro del canale dice «crittografia HLS: impossibile creare la chiave» — nella cartella HLS non si può scrivere (disco pieno o permessi).

Privacy

Cookie e memoria locale

I cookie strettamente necessari sono sempre attivi. Statistiche e marketing usano servizi Google e partono solo se li accetti — fino ad allora non viene inviato nulla a Google. Puoi revocare il consenso qui in qualsiasi momento.

Strettamente necessari

Senza di essi non funzionano l’accesso, i moduli e la lingua scelta. Non richiedono consenso (§ 25, comma 2, n. 2 TDDDG).

Sempre attivi
Nome Finalità Durata Tipo
castreon-session Mantiene la sessione: accesso e lingua scelta 2 ore, rinnovato a ogni visita Cookie
XSRF-TOKEN Protegge i moduli da richieste contraffatte 2 ore, rinnovato a ogni visita Cookie
remember_web_… Solo se selezioni „Ricordami“ all’accesso Fino alla disconnessione, max. 400 giorni Cookie
__cf_bm Cloudflare: distingue i visitatori dai bot, solo quando il traffico viene verificato 30 minuti Cookie · Cloudflare
castreon:consent Ricorda la tua scelta sui cookie 12 mesi Memoria locale
theme Aspetto dell’account cliente: chiaro, scuro o sistema Finché non lo cambi Memoria locale

Statistiche

Google Analytics 4 (Google Ireland Ltd.): quali pagine vengono visitate, da dove arrivano le visite e con quale tipo di dispositivo — con identificativi pseudonimi, senza salvare l’indirizzo IP. Ci aiuta a migliorare il sito.

Nome Finalità Durata Tipo
_ga Google Analytics: riconosce il visitatore (identificativo pseudonimo) 13 mesi Cookie · Google Analytics
_ga_VHWQRPHPEF Google Analytics: mantiene lo stato della visita 13 mesi Cookie · Google Analytics

Marketing

Google Ads (Google Ireland Ltd.): misura se le visite provenienti dagli annunci Google portano a una prova o a un piano e consente di mostrare annunci Castreon su altri siti (remarketing).

Nome Finalità Durata Tipo
_gcl_au, _gcl_aw Google Ads: collega la visita al clic sull’annuncio (conversioni) 90 giorni Cookie · Google Ads
IDE, test_cookie Google Ads: remarketing e misurazione degli annunci, sui domini Google (doubleclick.net) Fino a 13 mesi Cookie · Google (terza parte)