Skip to content

Сервер ключей

Пример самого простого сервера ключей для AES-128 или SAMPLE-AES шифрования ниже:

cas-server.php:

<?php
  header("HTTP/1.0 200 OK");
  $resource = $_GET["file"];
  $number = $_GET["number"];
  error_log("Server is requesting key ".$number." for ".$resource." from ".$_SERVER["REMOTE_ADDR"]);
  header("X-Key-Url: http://".$_SERVER["HTTP_HOST"]."/user-key.php?name=".$resource."&number=".$number);

  $input = $resource.".".$number;
  $key = hash('md4',$input);
  header("Content-Length: ".strlen($key));
  echo $key;
?>

user-key.php:

<?php
  header("HTTP/1.0 200 OK");
  $resource = $_GET["name"];
  $number = $_GET["number"];

  $input = $resource.".".$number;
  $key = hex2bin(hash('md4',$input));
  header("Content-Length: ".strlen($key));
  header("Content-Type: application/octet-stream");
  error_log("User is requesting key ".$number." for ".$resource." from ".$_SERVER["REMOTE_ADDR"]);
  echo $key;
?>

Разместите эти два файла в директории веб-сервера. "cas-server.php" должен быть доступен для Flussonic, "user-key.php" должен быть доступен для клиентов.

Настройка DRM для стрима осуществляется следующим образом:

stream tvchannel {
  input udp://239.0.0.1:1234;
  protocols dash hls;
  drm aes128 keyserver=http://192.168.0.80:4500/cas-server.php;
}

Где http://192.168.0.80:4500/cas-server.php это URL PHP скрипта, расположенного на вашем сервере.

Flussonic сам ротирует ключи для потоков раз в 10 минут.