Jump to content
Калькуляторы

Шифрование IPTV Своими силами

Кто-нибудь реализовывал шифрование IPTV мультикаста и открытие его на STB и PCPlayer сам?

Зашифровать с помощью CSA не проблема и сервер ключей сделать тоже. Вопросы есть на клиентской стороне.

 

В STB можно написать плагин, который будет устанавливать нужные ключи. На MAG250 я такой тестовый плагин со статическими ключами написал. Теперь вопрос в том, как получать их с сервера ключей периодически. Производитель на вопросы о том что можно использовать в плагине молчит, методом проб и ошибок - долго. Может у кого-нибудь уже есть наработки на эту тему?

 

vlc с прописанными ключами тоже все открывает. Но опять же ключи нужно периодически получать с сервера. Поэтому PCPlayer видимо придется писать на основе vlc и webkit на Qt. Имеются ли у сообщества наработки на эту тему?

Share this post


Link to post
Share on other sites

Если в ECM отправлять зашифрованные CW то ключи для их открытия тоже нужно как-то получать.

А слать CW в открытую или закрытые постоянным алгоритмом/ключем не есть хорошо.

Share this post


Link to post
Share on other sites

Эмм...

В принципе, у меня написано. Плагин, мукс со скремблером и сервер, раздающий ключи.

Но пока непригодно к выкладыванию...

Share this post


Link to post
Share on other sites

Не знаком.

Это тот, который виндовый клиент Verimatrix-а?

Share this post


Link to post
Share on other sites

Плагин для VLC?

Ну, напишу когда-нибудь, если время будет...

Share this post


Link to post
Share on other sites

Лучше webkit с интегрированным vlc.

Share this post


Link to post
Share on other sites

А почему-бы не использовать для получения ключей тот-же curl+ssl (у клиента), можно обойтись и без CURL'а если HTTP-не нужен. А раздавать - каким-нибудь питоновским скриптом. При этом каждому клиенту генерим свой сертификат, которым он и будет авторизоваться на сервере. Я что-то подобное сделал для DIB-120 (но с использованием EMM/ECM). Для начала можно почитать вот это или это.

Edited by tipok

Share this post


Link to post
Share on other sites

Как бы, так и написано, только сервер всё-таки на сях.

HTTP совершенно не нужен, только мешает. Лишние хендшейки по SSL будут грузить проц на сервере.

Share this post


Link to post
Share on other sites

А если не секрет, как именно вы реализовали дескремблирование?

 

Просто если по ssl отдавать CW-ключи, то можно сразу-же блочить "читеров", которые одновременно запускают один и тот-же софт на разных машинах, но при этом значительно выростет нагрузка на сервер ключей.

 

Если-же использовать связку ECM с зашифрованными CW, а ключи для их раскрытия - передавать по ssl (с бóльшим интервалом), то нагрузки - практически нет, но есть шанс, что запустив второй экземпляр клиентского ПО, показывать будут оба плеера. Ну а привязка к серийникам, макам, ид дисков, и т.п. - всё это обходится.

Share this post


Link to post
Share on other sites

Передаю ECM в потоке, зашифрованные ключами, которые передаются по SSL.

Ключи у меня меняются раз в день.

Причем есть возможность не перекодировать сам поток, а только перепаковывать ключи в новые ECM-ки.

 

Плейер для PC я не писал, а под MAG у меня закрытый ключ к сертификату зашифрован паролем, генерящимся из MAC адреса.

Одновременно в любом случае не будут -- два соединения с одним сертификатом не прокатят.

Share this post


Link to post
Share on other sites

А как на MAG вы периодически раз в сутки ключи обновляете по SSL? В каком callback'е?

Или при инициализации плагина запускаете свои threads, которые делают что надо когда нужно?

Share this post


Link to post
Share on other sites

Да, там запускается отдельный поток, и в нем уже происходит вся работа с сервером через OpenSSL.

Плагину всё равно, как часто обновляются ключи, ему в ECM приходит его ID, если его нет в кеше, он запрашивается.

Share this post


Link to post
Share on other sites
под MAG у меня закрытый ключ к сертификату зашифрован паролем, генерящимся из MAC адреса.

Одновременно в любом случае не будут -- два соединения с одним сертификатом не прокатят.

 

Если ключ меняется раз в сутки, то получил его на одну STB, отключился, получил на другую, прикинувшись первой, и смотри в течении суток. MAC адрес известен, т.е. если узнать алгоритм генерации из него пароля то можно смотреть везде?

Share this post


Link to post
Share on other sites

получил на другую, прикинувшись первой, и смотри в течении суток

Ага, и так каждый день.

Меняйте ключ чаще.

Это один из моментов, почему я не выкладываю свой мукс -- там пока многое заточено под нашу сеть с минимумом настроек в конфиге.

 

т.е. если узнать алгоритм генерации из него пароля то можно смотреть везде?

А если ещё и дизассемблировать модуль, можно вообще без приставки смотреть.

Есть идеи -- предлагайте...

Share this post


Link to post
Share on other sites

Да, расковырять можно что угодно. Но в небольшой сети этим вряд ли кто-то будет заниматься. Поэтому вариант для STB, если не публиковать алгоритмы шифрования и получения ключей, вполне пойдет.

С PC player в этом плане сложнее, т.к. расковырять значительно проще.

Share this post


Link to post
Share on other sites

Ну, самый надежный вариант -- USB ключ :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this