Pular para o conteúdo
Produtos

Securetoken

Protege o conteúdo contra acesso não autorizado com tokens temporários

Autorização Securetoken

  1. O cliente solicita a playlist ao middleware.
  2. O middleware gera um token temporário para cada canal.
  3. O cliente solicita o canal com o token.
  4. O Alta valida o token; o acesso é permitido se for válido.

O token temporário é calculado pelo middleware no lado do servidor quando o cliente solicita a playlist. O token possui os seguintes componentes:

  • Hash: hash SHA1 calculado no lado do servidor.
  • Salt: string aleatória para maior segurança.
  • End time: expiração do token (timestamp UNIX).
  • Start time: hora de criação do token (timestamp UNIX).

Todas as partes devem ser separadas por um sinal de menos e adicionadas ao endereço do canal. Por exemplo: https://example.com:8100/tv/travel-channel/index.m3u8?token=e8bff06f373694dda657e8417fe76f6b54b69807-a5cd6c00-1669890000-1669810000

Concatene e calcule o hash SHA1 do seguinte, nesta ordem:

  • Caminho do canal (por exemplo, /tv/travel-channel/index.m3u8). Deve corresponder exatamente ao caminho solicitado
  • Endereço IP do cliente
  • Hora de início (timestamp UNIX)
  • Hora de término (timestamp UNIX)
  • Securetoken - definido nas configurações do Alta
  • Salt

Fórmula:

sha1(channel_path + client_ip + start_time + end_time + securetoken + salt)

O gerador de link seguro integrado é útil para gerar links seguros para testes em qualquer canal. Se você tem um canal com securetoken ativado, pode gerar um link seguro no painel de administração:

  1. Vá para as configurações do canal
  2. Clique no botão “Secure link” para abrir a caixa de diálogo “Generate Channel Secure Link”.
  3. Preencha o seguinte:
    • IP: endereço IP do cliente.
    • Start / End: período de validade do token.
  4. Clique em Generate para criar um link com token

Crie um arquivo securetoken.php com o seguinte código:

<?php
$channel = '/tv/travel-channel/index.m3u8';
$client = '192.168.88.98';
$starttime = 1669810000;
$endtime = 1669890000;
$securetoken = 'secret';
$salt = 'a5cd6c00';
$hash = sha1($channel . $client . $starttime . $endtime . $securetoken . $salt);
$token = $hash . '-' . $salt . '-' . $endtime . '-' . $starttime;
echo 'https://example.com:8100' . $channel . '?token=' . $token . PHP_EOL;

Execute o script:

php securetoken.php

Você verá a linha do primeiro exemplo. Observe que este script serve apenas como exemplo.