2015-01-06 9 views
5

Staram się chronić pliki wideo w formacie HTTP Live Stream najlepiej jak potrafię w naszym CDN. Chciałbym chronić przed gorącym łączeniem, udostępnianiem adresu URL, uniemożliwiając dostęp do strumieni, które nie zostały jeszcze opublikowane.Zabezpieczanie HLS z uwierzytelnianiem tokenami

Każdy film ma wiele bitrate, więc pliki HLS składają się z manifestu master m3u8, który wskazuje kilka plików podrzędnych, które z kolei wskazują na pliki ts (transport). Te pliki ts to 9 sekund segmentów wideo MP4.

Pliki HLS są przechowywane w naszym CDN i można do nich uzyskać dostęp za pośrednictwem protokołu HTTPS. Mamy uwierzytelnianie tokenowe w CDN (Edgecast).

Filmy wideo mają być przesyłane zza płata i muszą być odtwarzane w JWPlayer, który nie obsługuje szyfrowania AES.

Jakie są moje najlepsze opcje? W tej chwili generuję pliki manifestu m3u8 w locie i wstawiam tokeny do adresów URL plików .ts. W ten sposób pliki ts są ważne tylko przez 60 minut? Czy lepiej jest zabezpieczyć pliki pod-manifestu również za pomocą tokenów?

Czy istnieje lepszy sposób zabezpieczenia zawartości i wciąż możliwość odtwarzania w JWPlayer 6?

+0

Witam, jak zdołałeś wstawić tokeny do adresów URL dla plików m3u8 i .ts? – Dev

Odpowiedz

1

miałem podobny issue. Chciałem zabezpieczyć (Authenticate & Authorize) strumienie HLS (główna lista odtwarzania + pliki segmentów) przechowywane w zasobniku S3. To jest moje rozwiązanie:

  • Stworzyłem VPC endpoint dla mojego wiadra, która przechowuje prywatną HLS strumieni
  • Potem wdrożyliśmy reverse proxy i przyznawana jest dostęp do tego S3 VPC końcowy

Tak, za każdym żądanie zgłoszone przez gracza (w przypadku głównego pliku lub segmentów listy odtwarzania) przechodzi przez serwer proxy. Gracze muszą ustawić kilka niestandardowych nagłówków HTTP (autoryzowany token, informacje o użytkowniku itp.). Następnie serwer proxy odwrotnej wykonuje uwierzytelnianie & Autoryzacja wobec mojego interfejsu API użytkownika. Na podstawie tego wyniku odwrotny proxy przekazuje żądanie do podanej treści S3 lub odmawia jej.