Sari la conținut
Castreon
Livrare

Criptarea HLS cu AES-128

Actualizat la 06 oct. 2026

Ieșirea HLS a unui canal poate fi criptată cu AES-128: fiecare segment se criptează cu o cheie de 128 de biți pe care serverul Castreon o creează singur, iar playerele iau cheia de la același server. Orice player HLS o redă — Safari și iPhone, Android (ExoPlayer / Media3), hls.js, Video.js, VLC, Smart TV-uri și set-top box-uri — fără furnizor DRM și fără costuri în plus.

Disponibil din Castreon 1.0.5, în toate planurile.

Ce protejează — și ce nu

  • Fără cheie, segmentele nu folosesc la nimic: copiate dintr-un cache, dintr-un CDN sau de pe disc, nu pot fi redate.
  • Cheia se livrează cu aceleași reguli de acces ca fluxul — Token pentru playere și Adrese permise — și nu rămâne niciodată în cache-urile de pe drum.
  • Un privitor care are voie să urmărească primește și cheia. AES-128 îi ține afară pe cei care nu au voie; nu împiedică un privitor permis să înregistreze. Pentru conținut cu plată, cu protecție chiar pe dispozitiv, folosiți DRM — Widevine, PlayReady și FairPlay (Enterprise).

Pornirea

  1. Deschideți canalul → Editează → ieșirea HLS.
  2. La Criptare alegeți AES-128.
  3. Alegeți Schimbarea cheii:
    • doar la pornire — o cheie nouă la fiecare pornire a canalului;
    • la fiecare 10 minute, la fiecare oră (implicit) sau o dată pe zi — cheia se schimbă și cât timp canalul rulează.
  4. Salvați. La Livrare, adresa apare ca HLS · AES-128 — e aceeași adresă ca până acum (http://<domeniu>/live/canal1/index.m3u8).

AES-128 merge cu segmente TS. Cu Container pe automat, canalele H.264 folosesc TS, deci nu mai trebuie schimbat nimic. Cu containerul pus pe fMP4 (CMAF) opțiunea nu se poate alege; HEVC și AV1 folosesc mereu fMP4, deci cu ele canalul nu pornește, iar jurnalul lui spune de ce — alegeți H.264 pentru acest canal sau folosiți DRM.

Cu mai multe calități (ABR), fiecare calitate e criptată.

Cheile

  • Cheile se creează pe server și stau lângă segmente, în /live/<canal>/keys/. Playlistul îi spune playerului ce cheie aparține fiecărui segment.
  • Când cheia se schimbă, segmentele noi folosesc cheia nouă; cheile vechi rămân disponibile cât intervalul plus 10 minute (cel puțin ultimele trei), ca privitorii rămași puțin în urmă să urmărească fără întrerupere.
  • Playerele nu au nevoie de nimic special: citesc adresa cheii din playlist.

Folosiți HTTPS

Cheia circulă ca orice alt fișier. Prin HTTP simplu poate fi citită în rețea; prin HTTPS, nu. Puneți panoul și livrarea în spatele HTTPS și setați Domeniu public din Setări → Instanță la https://… — vedeți WebRTC → HTTPS pentru panou pentru o configurație gata făcută cu Caddy sau nginx.

Cu un CDN în fața Castreon, lăsați CDN-ul să păstreze segmentele, dar nu /live/<canal>/keys/ (Castreon trimite deja Cache-Control: no-store pentru chei), și lăsați tokenul să treacă.

Ce nu se criptează

AES-128 se aplică doar ieșirii HLS. DASH, LL-HLS, HTTP-TS, WebRTC și ieșirile push (SRT, RTMP, UDP, RIST) nu sunt atinse — pentru ele folosiți Adrese permise, tokenul, criptarea SRT/RIST sau DRM.

Previzualizarea din panou merge și pe canalele criptate.

Dacă nu merge

  • AES-128 nu se poate alege — Container-ul HLS e pus pe fMP4 (CMAF). Alegeți TS sau automat.
  • Canalul nu pornește: „criptarea AES-128 a ieșirii HLS merge doar cu segmente TS…” — profilul e HEVC sau AV1, care folosesc fMP4. Folosiți H.264 pentru acest canal sau DRM.
  • Playerul încarcă playlistul, dar nu și imaginea — nu poate lua cheia: verificați tokenul și adresele permise pentru privitor, și ca o pagină servită prin HTTPS să nu încarce fluxul prin HTTP (browserele blochează conținutul mixt).
  • Jurnalul canalului spune „criptarea HLS: nu am putut crea cheia” — în folderul HLS nu se poate scrie (disc plin sau drepturi).

Confidențialitate

Cookie-uri și stocare locală

Cookie-urile strict necesare sunt mereu active. Statisticile și marketingul folosesc servicii Google și pornesc doar dacă le accepți — până atunci nu se trimite nimic la Google. Îți poți retrage acordul oricând, aici.

Strict necesare

Fără ele nu funcționează autentificarea, formularele și limba aleasă. Nu necesită consimțământ (§ 25 alin. 2 pct. 2 TDDDG).

Mereu active
Nume Scop Durată Tip
castreon-session Păstrează sesiunea: autentificarea și limba aleasă 2 ore, prelungit la fiecare accesare Cookie
XSRF-TOKEN Protejează formularele împotriva cererilor falsificate 2 ore, prelungit la fiecare accesare Cookie
remember_web_… Doar dacă bifezi „Ține-mă minte” la autentificare Până la deconectare, max. 400 de zile Cookie
__cf_bm Cloudflare: deosebește vizitatorii de roboți, doar când traficul e verificat 30 de minute Cookie · Cloudflare
castreon:consent Ține minte alegerea ta privind cookie-urile 12 luni Memorie locală
theme Aspectul contului de client: luminos, întunecat sau sistem Până o schimbi Memorie locală

Statistici

Google Analytics 4 (Google Ireland Ltd.): ce pagini sunt vizitate, de unde vin vizitele și de pe ce tip de dispozitiv — cu identificatori pseudonimi, fără salvarea adresei IP. Ne ajută să îmbunătățim site-ul.

Nume Scop Durată Tip
_ga Google Analytics: recunoaște vizitatorul (identificator pseudonim) 13 luni Cookie · Google Analytics
_ga_VHWQRPHPEF Google Analytics: păstrează starea vizitei 13 luni Cookie · Google Analytics

Marketing

Google Ads (Google Ireland Ltd.): măsoară dacă vizitele venite din reclame Google ajung la test sau la un plan și permite afișarea reclamelor Castreon pe alte site-uri (remarketing).

Nume Scop Durată Tip
_gcl_au, _gcl_aw Google Ads: leagă vizita de clicul pe reclamă (conversii) 90 de zile Cookie · Google Ads
IDE, test_cookie Google Ads: remarketing și măsurarea reclamelor, pe domeniile Google (doubleclick.net) Până la 13 luni Cookie · Google (terț)