Ir al contenido
Castreon
Entrega

Cifrado HLS con AES-128

Actualizado el 06 oct. 2026

La salida HLS de un canal puede cifrarse con AES-128: cada segmento se cifra con una clave de 128 bits que el servidor Castreon crea por sí mismo, y los reproductores toman la clave del mismo servidor. Cualquier reproductor HLS lo reproduce — Safari e iPhone, Android (ExoPlayer / Media3), hls.js, Video.js, VLC, Smart TV y decodificadores — sin proveedor DRM y sin costes adicionales.

Disponible desde Castreon 1.0.5, en todos los planes.

Qué protege — y qué no

  • Sin la clave, los segmentos no sirven de nada: copiados de una caché, de una CDN o del disco, no se pueden reproducir.
  • La clave se entrega con las mismas reglas de acceso que el flujo — Token para reproductores y Direcciones permitidas — y nunca se queda en las cachés del camino.
  • Un espectador que puede ver el canal también recibe la clave. AES-128 deja fuera a quien no tiene permiso; no impide que un espectador autorizado grabe. Para contenido de pago con protección en el propio dispositivo, usa DRM — Widevine, PlayReady y FairPlay (Enterprise).

Activarlo

  1. Abre el canal → Editar → la salida HLS.
  2. En Cifrado elige AES-128.
  3. Elige la Rotación de la clave:
    • solo al iniciar — una clave nueva cada vez que arranca el canal;
    • cada 10 minutos, cada hora (por defecto) o una vez al día — la clave cambia también mientras el canal funciona.
  4. Guarda. En Entrega la dirección aparece como HLS · AES-128 — es la misma dirección de antes (http://<dominio>/live/canal1/index.m3u8).

AES-128 funciona con segmentos TS. Con Container en automático, los canales H.264 usan TS, así que no hay que cambiar nada más. Con el contenedor en fMP4 (CMAF) la opción no se puede elegir; HEVC y AV1 usan siempre fMP4, así que con ellos el canal no arranca y su registro dice por qué — elige H.264 para este canal o usa DRM.

Con varias calidades (ABR), se cifra cada calidad.

Las claves

  • Las claves se crean en el servidor y se guardan junto a los segmentos, en /live/<canal>/keys/. La lista de reproducción indica al reproductor qué clave corresponde a cada segmento.
  • Cuando la clave cambia, los segmentos nuevos usan la clave nueva; las claves antiguas siguen disponibles durante el intervalo más 10 minutos (al menos las tres últimas), para que quien va un poco atrás siga viendo sin cortes.
  • Los reproductores no necesitan nada especial: leen la dirección de la clave en la lista de reproducción.

Usa HTTPS

La clave viaja como cualquier otro archivo. Por HTTP simple se puede leer en la red; por HTTPS, no. Pon el panel y la entrega detrás de HTTPS y fija el Dominio público de Ajustes → Instancia en https://… — consulta WebRTC → HTTPS para el panel para una configuración lista con Caddy o nginx.

Con una CDN delante de Castreon, deja que la CDN guarde en caché los segmentos, pero no /live/<canal>/keys/ (Castreon ya envía Cache-Control: no-store para las claves), y deja pasar el token.

Qué no se cifra

AES-128 se aplica solo a la salida HLS. DASH, LL-HLS, HTTP-TS, WebRTC y las salidas push (SRT, RTMP, UDP, RIST) no se ven afectadas — para ellas usa las Direcciones permitidas, el token, el cifrado SRT/RIST o DRM.

La vista previa del panel sigue funcionando en los canales cifrados.

Si no funciona

  • No se puede elegir AES-128 — el Container HLS está en fMP4 (CMAF). Elige TS o automático.
  • El canal no arranca: «el cifrado AES-128 de la salida HLS solo funciona con segmentos TS…» — el perfil es HEVC o AV1, que usan fMP4. Usa H.264 para este canal o DRM.
  • El reproductor carga la lista pero no la imagen — no consigue la clave: revisa el token y las direcciones permitidas del espectador, y que una página servida por HTTPS no cargue el flujo por HTTP (los navegadores bloquean el contenido mixto).
  • El registro del canal dice «cifrado HLS: no se pudo crear la clave» — no se puede escribir en la carpeta HLS (disco lleno o permisos).

Privacidad

Cookies y almacenamiento local

Las cookies estrictamente necesarias están siempre activas. Las estadísticas y el marketing usan servicios de Google y solo se activan si los aceptas; hasta entonces no se envía nada a Google. Puedes retirar tu consentimiento aquí en cualquier momento.

Estrictamente necesarias

Sin ellas no funcionan el inicio de sesión, los formularios ni el idioma elegido. No requieren consentimiento (§ 25, apartado 2, n.º 2 TDDDG).

Siempre activas
Nombre Finalidad Duración Tipo
castreon-session Mantiene la sesión: inicio de sesión e idioma elegido 2 horas, renovada en cada visita Cookie
XSRF-TOKEN Protege los formularios contra solicitudes falsificadas 2 horas, renovada en cada visita Cookie
remember_web_… Solo si marcas «Recordarme» al iniciar sesión Hasta cerrar sesión, máx. 400 días Cookie
__cf_bm Cloudflare: distingue visitantes de bots, solo cuando se verifica el tráfico 30 minutos Cookie · Cloudflare
castreon:consent Recuerda tu elección de cookies 12 meses Almacenamiento local
theme Apariencia de la cuenta de cliente: clara, oscura o del sistema Hasta que la cambies Almacenamiento local

Estadísticas

Google Analytics 4 (Google Ireland Ltd.): qué páginas se visitan, de dónde llegan las visitas y con qué tipo de dispositivo — con identificadores seudónimos, sin guardar la dirección IP. Nos ayuda a mejorar el sitio.

Nombre Finalidad Duración Tipo
_ga Google Analytics: reconoce al visitante (identificador seudónimo) 13 meses Cookie · Google Analytics
_ga_VHWQRPHPEF Google Analytics: mantiene el estado de la visita 13 meses Cookie · Google Analytics

Marketing

Google Ads (Google Ireland Ltd.): mide si las visitas desde anuncios de Google llevan a una prueba o a un plan y permite mostrar anuncios de Castreon en otros sitios (remarketing).

Nombre Finalidad Duración Tipo
_gcl_au, _gcl_aw Google Ads: vincula la visita con el clic en el anuncio (conversiones) 90 días Cookie · Google Ads
IDE, test_cookie Google Ads: remarketing y medición de anuncios, en dominios de Google (doubleclick.net) Hasta 13 meses Cookie · Google (tercero)