Остальные части
Давным-давно, на заре шифрования телеканалов ресиверы для абонентов изготавливались производителями для конкретных провайдеров, содержали всё необходимое в одном флаконе, детали реализации не разглашались, и все были счастливы. Кроме абонентов, которым выбирать приходилось из одной-двух моделей ресиверов, предлагаемых провайдером. Кстати, у некоторых провайдеров такая практика сохраняется до сих пор.
А потом в дело вступило антимонопольное законодательство, которое потребовало для абонентов возможности выбирать оборудование, а для производителей - производить его без дополнительных договоров с провайдерами. Но осталась одна проблема: системы условного доступа являются патентованными разработками, и производить их реализации без разрешения правообладателя нельзя. Поэтому приёмное оборудование разделили на две части - собственно принимающая и управляющая часть приёмника отдельно, а обработка условного доступа - отдельно. И придумали стандарты на взаимодействие этих двух частей.
Та часть оборудования, которая непосредственно осуществляет условный доступ, называется модулем условного доступа (Conditional Access Module, CAM), а интерфейс его взаимодействия с остальным DVB-приёмником - Common Interface, CI.
Таким образом, собственно ресиверы теперь может производить кто угодно (конечно, они должны быть сертифицированы DVB-консорциумом на предмет соответствия остальным стандартам DVB), а модули условного доступа - ограниченное число производителей, получивших лицензию от разработчика соответствующей системы условного доступа. Естественно, модули условного доступа также должны соответствовать стандартам DVB.
Стандарт CI описывает как параметры физического разъёма для подключения модулей условного доступа к приёмнику, так и программный интерфейс для обмена информацией между ними.
Модуль условного доступа является специализированным компьютером, в состав которого входят:
- центральный процессор (обычно с RISC-архитектурой);
- демультиплексор, позволяющий выделить из транспортного потока некоторые пакеты для программной обработки;
- аппаратный дескремблер;
- иногда дополнительные микросхемы, реализующие крипто-алгоритмы (DES, RSA и т.п.);
- постоянная память (обычно перепрограммируемая флэш-память), в которой хранится управляющая программа;
- оперативная память, в которой эта программа работает;
- иногда перезаписываемая память, в которой управляющая программа может сохранять изменяемые данные на время отключения питания.
По размерам, параметрам электрических сигналов и назначению части контактов разъём CI совместим с PCMCIA, что позволяет перепрограммировать некоторые модули условного доступа, включив их в обычный PCMCIA-разъём компьютера. Питание для работы модуля также подаётся через контакты в этом же разъёме.
С технической точки зрения модули условного доступа не слишком сильно защищены. Считать оттуда программу и понять, чтО она делает, - не очень трудная задача, поэтому в стандарте описана ещё одна составная часть - security processor. Стандарт, однако, не регламентирует никакие подробности реализации security processor'ов и взаимодействия их с основным модулем.
Через модуль условного доступа пропускается весь транспортный поток, принимаемый с транспондера. Обычно сам модуль условного доступа занимается выделением из общего потока ECM- и EMM-пакетов и дескремблированием аудио- и видеопотоков, а собственно обработка ECM и EMM, дешифрование CW, хранение ключей, подписок и другой чувствительной абонентской информации производятся отдельным, гораздо более защищённым от несанкционированного доступа устройством - security processor'ом. Он обычно реализуется в виде смарт-карты стандарта ISO 7818 - это такие пластиковые карточки размером с кредитку с электрическими контактами на одной стороне. Соответственно, у модулей условного доступа обычно есть разъём для подключения таких карт.
Хотя это не всегда так, в некоторых системах условного доступа все функции реализуются непосредственно в самом модуле условного доступа.
С программной точки зрения интерфейс CI позволяет приёмнику (в терминологии стандарта - host) узнать у модуля, какие системы условного доступа тот поддерживает, и сообщить параметры показываемой в данный момент программы. А модуль условного доступа может передать приёмнику данные для показа пользователю на экране и получить ответ, введённый пользователем с пульта. Именно таким образом у пользователя, в частности, может запрашиваться "родительский пароль" на просмотр передач для взрослых или спрашиваться согласие на просмотр pay-per-view программ. Полученные ответы модуль условного доступа передаёт в смарт-карту, которая в зависимости от них затем будет или не будет расшифровывать CW, необходимые для дешифрования (и просмотра) передачи.
Кроме того, интерфейс позволяет передавать текущую дату и время, данные EPG (электронного расписания передач), обмениваться данными, передаваемыми и получаемыми через имеющийся в некоторых ресиверах модем - таким образом осуществляется обратная связь между смарт-картой и провайдером,
С помощью демультиплексора модуль условного доступа извлекает из общего транспортного потока пакеты с нужными ему PID'ами (общую для всего потока CAT, EMM для своей системы условного доступа, PMT и потоки ECM от текущей программы), и обрабатывает эти пакеты, в частности, передавая ECM в security processor, получая из него дешифрованные CW и передавая их дескремблеру. Получив CW, дескремблер расшифровывает ими аудио- и видеопотоки текущей программы.
Дескремблер в составе модуля условного доступа обычно только один, и хотя он и может одновременно дескремблировать одновременно несколько элементарных потоков (то есть, пакетов с несколькими разными PID'ами), но ключ (CW) при этом может быть только один. Именно этим объясняется, что все шифрованные элементарные потоки от одной программы шифруются в каждый момент времени одинаковым CW.
Поскольку после дескремблирования у транспортных пакетов сбрасывается флажок скремблированности, эти пакеты будут в дальнейшем пропускаться через другие дескремблеры без изменений. Это позволяет иметь в составе одного приёмника несколько дескремблеров в нескольких модулях условного доступа, через которые последовательно пропускается весь транспортный поток. Такая организация дешифрования программ, позволяющая в одном приёмнике использовать разные системы условного доступа, называется Multicrypt.
Разъёмов для подключения внешних модулей условного доступа у бытовых ресиверов обычно бывает один или два (если они вообще есть). Кроме того, у некоторых ресиверов функции модуля условного доступа (обычно только для одной системы) реализованы в составе общей управляющей программы, а снаружи подключаются только смарт-карты. Встречаются и комбинированные варианты, когда у ресивера есть и разъём для смарт-карты для встроенной системы условного доступа, и разъём для подключения дополнительного внешнего модуля.
Кроме дескремблирования программ, модуль условного доступа может выполнять и некоторые другие, не вполне очевидные функции. Например, осуществлять транскодирование видеопотоков из MPEG4 в MPEG2. Это позволяет смотреть на ресиверах с MPEG2-декодерами программы, транслируемые в MPEG4. Конечно, качества такое дополнительное перекодирование не добавляет, но зато этот подход гораздо дешевле, чем полная замена ресивера.
Ну и напоследок небольшое отступление.
Модули условного доступа, изготовленные официальными производителями, практически всегда поддерживают только одну систему. Связано это в первую очередь с жёсткой конкуренцией на рынке систем условного доступа, и соответственно, разработчики выдают лицензии только лояльным производителям. Ну и, понятно, приятно содрать с пользователя немножечко денюжек отдельно за каждый модуль условного доступа.
Однако в самом стандарте CI нет никаких ограничений на одновременную поддержку одним модулем нескольких систем условного доступа. И как выяснилось, некоторые официальные модули изначально это умели.
Кроме того, в последние годы широкое распространение получили так называемые "неофициальные" модули, производители которых не получали лицензий от разработчиков систем условного доступа. Из юридических соображений такие модули часто продаются чистыми, но с объяснением, каким образом можно залить туда найденную в интернете прошивку. Обычно такие прошивки поддерживают сразу несколько систем условного доступа, но есть и оборотная сторона: их разработчики не имеют полных спецификаций на системы условного доступа, поэтому у таких модулей могут быть проблемы при использовании провайдерами малоизвестных функций системы.
Модифицированные прошивки для некоторых официальных модулей существовали и раньше, но прорыв в этой области несколько лет назад осуществила немецкая компания Dream Multimedia, ныне широко известная своими ресиверами DreamBox под управлением Linux. Именно она впервые выпустила на массовый рынок MagicModule вместе с программатором, библиотекой для доступа к аппаратным ресурсам модуля и примерами компиляции прошивок. Официально он позиционировался как инструмент для разработчиков смарт-карт, но почему-то одновременно с началом продаж этих модулей в интернете появились прошивки для него, работающие сначала с тремя, потом с четырьмя, пятью и более системами условного доступа. Dream Multimedia вскоре в судебном порядке вынудили прекратить производство этих модулей, но идея пошла в массы, и теперь аналогичных неофициальных модулей очень много.
Литература для дополнительного изучения:
EN 50221: Common Interface Specification for Conditional Access and other Digital Video Broadcasting Decoder Applications
ETSI TS 101 699: DVB; Extensions to the Common Interface Specification
Давным-давно, на заре шифрования телеканалов ресиверы для абонентов изготавливались производителями для конкретных провайдеров, содержали всё необходимое в одном флаконе, детали реализации не разглашались, и все были счастливы. Кроме абонентов, которым выбирать приходилось из одной-двух моделей ресиверов, предлагаемых провайдером. Кстати, у некоторых провайдеров такая практика сохраняется до сих пор.
А потом в дело вступило антимонопольное законодательство, которое потребовало для абонентов возможности выбирать оборудование, а для производителей - производить его без дополнительных договоров с провайдерами. Но осталась одна проблема: системы условного доступа являются патентованными разработками, и производить их реализации без разрешения правообладателя нельзя. Поэтому приёмное оборудование разделили на две части - собственно принимающая и управляющая часть приёмника отдельно, а обработка условного доступа - отдельно. И придумали стандарты на взаимодействие этих двух частей.
Та часть оборудования, которая непосредственно осуществляет условный доступ, называется модулем условного доступа (Conditional Access Module, CAM), а интерфейс его взаимодействия с остальным DVB-приёмником - Common Interface, CI.
Таким образом, собственно ресиверы теперь может производить кто угодно (конечно, они должны быть сертифицированы DVB-консорциумом на предмет соответствия остальным стандартам DVB), а модули условного доступа - ограниченное число производителей, получивших лицензию от разработчика соответствующей системы условного доступа. Естественно, модули условного доступа также должны соответствовать стандартам DVB.
Стандарт CI описывает как параметры физического разъёма для подключения модулей условного доступа к приёмнику, так и программный интерфейс для обмена информацией между ними.
Модуль условного доступа является специализированным компьютером, в состав которого входят:
- центральный процессор (обычно с RISC-архитектурой);
- демультиплексор, позволяющий выделить из транспортного потока некоторые пакеты для программной обработки;
- аппаратный дескремблер;
- иногда дополнительные микросхемы, реализующие крипто-алгоритмы (DES, RSA и т.п.);
- постоянная память (обычно перепрограммируемая флэш-память), в которой хранится управляющая программа;
- оперативная память, в которой эта программа работает;
- иногда перезаписываемая память, в которой управляющая программа может сохранять изменяемые данные на время отключения питания.
По размерам, параметрам электрических сигналов и назначению части контактов разъём CI совместим с PCMCIA, что позволяет перепрограммировать некоторые модули условного доступа, включив их в обычный PCMCIA-разъём компьютера. Питание для работы модуля также подаётся через контакты в этом же разъёме.
С технической точки зрения модули условного доступа не слишком сильно защищены. Считать оттуда программу и понять, чтО она делает, - не очень трудная задача, поэтому в стандарте описана ещё одна составная часть - security processor. Стандарт, однако, не регламентирует никакие подробности реализации security processor'ов и взаимодействия их с основным модулем.
Через модуль условного доступа пропускается весь транспортный поток, принимаемый с транспондера. Обычно сам модуль условного доступа занимается выделением из общего потока ECM- и EMM-пакетов и дескремблированием аудио- и видеопотоков, а собственно обработка ECM и EMM, дешифрование CW, хранение ключей, подписок и другой чувствительной абонентской информации производятся отдельным, гораздо более защищённым от несанкционированного доступа устройством - security processor'ом. Он обычно реализуется в виде смарт-карты стандарта ISO 7818 - это такие пластиковые карточки размером с кредитку с электрическими контактами на одной стороне. Соответственно, у модулей условного доступа обычно есть разъём для подключения таких карт.
Хотя это не всегда так, в некоторых системах условного доступа все функции реализуются непосредственно в самом модуле условного доступа.
С программной точки зрения интерфейс CI позволяет приёмнику (в терминологии стандарта - host) узнать у модуля, какие системы условного доступа тот поддерживает, и сообщить параметры показываемой в данный момент программы. А модуль условного доступа может передать приёмнику данные для показа пользователю на экране и получить ответ, введённый пользователем с пульта. Именно таким образом у пользователя, в частности, может запрашиваться "родительский пароль" на просмотр передач для взрослых или спрашиваться согласие на просмотр pay-per-view программ. Полученные ответы модуль условного доступа передаёт в смарт-карту, которая в зависимости от них затем будет или не будет расшифровывать CW, необходимые для дешифрования (и просмотра) передачи.
Кроме того, интерфейс позволяет передавать текущую дату и время, данные EPG (электронного расписания передач), обмениваться данными, передаваемыми и получаемыми через имеющийся в некоторых ресиверах модем - таким образом осуществляется обратная связь между смарт-картой и провайдером,
С помощью демультиплексора модуль условного доступа извлекает из общего транспортного потока пакеты с нужными ему PID'ами (общую для всего потока CAT, EMM для своей системы условного доступа, PMT и потоки ECM от текущей программы), и обрабатывает эти пакеты, в частности, передавая ECM в security processor, получая из него дешифрованные CW и передавая их дескремблеру. Получив CW, дескремблер расшифровывает ими аудио- и видеопотоки текущей программы.
Дескремблер в составе модуля условного доступа обычно только один, и хотя он и может одновременно дескремблировать одновременно несколько элементарных потоков (то есть, пакетов с несколькими разными PID'ами), но ключ (CW) при этом может быть только один. Именно этим объясняется, что все шифрованные элементарные потоки от одной программы шифруются в каждый момент времени одинаковым CW.
Поскольку после дескремблирования у транспортных пакетов сбрасывается флажок скремблированности, эти пакеты будут в дальнейшем пропускаться через другие дескремблеры без изменений. Это позволяет иметь в составе одного приёмника несколько дескремблеров в нескольких модулях условного доступа, через которые последовательно пропускается весь транспортный поток. Такая организация дешифрования программ, позволяющая в одном приёмнике использовать разные системы условного доступа, называется Multicrypt.
Разъёмов для подключения внешних модулей условного доступа у бытовых ресиверов обычно бывает один или два (если они вообще есть). Кроме того, у некоторых ресиверов функции модуля условного доступа (обычно только для одной системы) реализованы в составе общей управляющей программы, а снаружи подключаются только смарт-карты. Встречаются и комбинированные варианты, когда у ресивера есть и разъём для смарт-карты для встроенной системы условного доступа, и разъём для подключения дополнительного внешнего модуля.
Кроме дескремблирования программ, модуль условного доступа может выполнять и некоторые другие, не вполне очевидные функции. Например, осуществлять транскодирование видеопотоков из MPEG4 в MPEG2. Это позволяет смотреть на ресиверах с MPEG2-декодерами программы, транслируемые в MPEG4. Конечно, качества такое дополнительное перекодирование не добавляет, но зато этот подход гораздо дешевле, чем полная замена ресивера.
Ну и напоследок небольшое отступление.
Модули условного доступа, изготовленные официальными производителями, практически всегда поддерживают только одну систему. Связано это в первую очередь с жёсткой конкуренцией на рынке систем условного доступа, и соответственно, разработчики выдают лицензии только лояльным производителям. Ну и, понятно, приятно содрать с пользователя немножечко денюжек отдельно за каждый модуль условного доступа.
Однако в самом стандарте CI нет никаких ограничений на одновременную поддержку одним модулем нескольких систем условного доступа. И как выяснилось, некоторые официальные модули изначально это умели.
Кроме того, в последние годы широкое распространение получили так называемые "неофициальные" модули, производители которых не получали лицензий от разработчиков систем условного доступа. Из юридических соображений такие модули часто продаются чистыми, но с объяснением, каким образом можно залить туда найденную в интернете прошивку. Обычно такие прошивки поддерживают сразу несколько систем условного доступа, но есть и оборотная сторона: их разработчики не имеют полных спецификаций на системы условного доступа, поэтому у таких модулей могут быть проблемы при использовании провайдерами малоизвестных функций системы.
Модифицированные прошивки для некоторых официальных модулей существовали и раньше, но прорыв в этой области несколько лет назад осуществила немецкая компания Dream Multimedia, ныне широко известная своими ресиверами DreamBox под управлением Linux. Именно она впервые выпустила на массовый рынок MagicModule вместе с программатором, библиотекой для доступа к аппаратным ресурсам модуля и примерами компиляции прошивок. Официально он позиционировался как инструмент для разработчиков смарт-карт, но почему-то одновременно с началом продаж этих модулей в интернете появились прошивки для него, работающие сначала с тремя, потом с четырьмя, пятью и более системами условного доступа. Dream Multimedia вскоре в судебном порядке вынудили прекратить производство этих модулей, но идея пошла в массы, и теперь аналогичных неофициальных модулей очень много.
Литература для дополнительного изучения:
EN 50221: Common Interface Specification for Conditional Access and other Digital Video Broadcasting Decoder Applications
ETSI TS 101 699: DVB; Extensions to the Common Interface Specification
Tags:
no subject
no subject
А основная проблема - это взлом собственно смарт-карты. Из неё надо вытащить алгоритмы дешифрования пакетов и ключи. Тут уже в дело вступают высокие технологии - броски напряжения, растворение пластика, сканирование микросхем электронным микроскопом...
Но если это удаётся сделать, то дальше довольно легко пишется программный эмулятор, который частично воспроизводит обработку пакетов картой. Частично - потому что всякие мелочи типа проверки подписки эмулятору нафиг не нужны. Есть CW - их надо расшифровать, и всё. Эмулятор может быть реализован в другой смарт-карте, благо они дешёвые - получается совсем левая карта, которая, тем не менее, до некоторой степени заменяет оригинальную. А может - совсем программным путём в софте ресивера.
А можно, зная алгоритмы и ключи шифрования, сформировать пакет, скажем, для продления подписки и подсунуть его родной карте. Или вообще добавить туда обработку для другого провайдера, если он пользуется той же системой условного доступа. Это так называемые MOSC - Modified Original SmartCard.
no subject
no subject
no subject
я уж несколько раз искал, с людьми делился.
no subject
no subject
no subject
no subject
Прочёл с удовольствием.
Один мааленький вопросик, если можно.
А то покоя мне не дает.
Каким образом ресивер связывает номера каналов (которые люди кнопочками переключают :) с сервисами? Мне кажется, такая связь должна существовать, но в ETSI ничего не нашел. Либо я не все таблицы прошерстил, либо стандартного мэпирования не предусмотрено? Я видел как провайдеры используют custom дескрипторы для задания такой связи в SDT или BAT, но неужели стандарт ничего такого не определяет?
no subject
А именно номера программ, которые используются некоторыми провайдерами, типа этих (http://en.wikipedia.org/wiki/List_of_channels_on_Sky_Digital_in_the_UK_and_Ireland)- это их собственные расширения, поддеррживаемые только родными ресиверами, насколько мне известно.
хотя, конечно, есть вероятность, что я этого стандарта просто не знаю.
no subject
no subject
SID уникален, как минимум, в пределах транспондера, а обычно ещё и в пределах провайдера, для привязки данных из разных таблиц этого достаточно, а номера как-то отдельно сбоку.
no subject
no subject
конкретно descriptor_tag 0xB1. первые два байта - неизвестно что (счетчик?), затем пачки по 9 байт со следующей семантикой:
16 бит - SID,
8 бит - тип канала, 0x01 - теле, 2 - радио, 0x86 - HD теле (?), 0x05 - other
16 бит - channel ID
16 бит - sky ID (тот самый номер, показываемый ресивером)
16 бит - ?
no subject
no subject
no subject
no subject
no subject
no subject
Нет, не должен. Это дело сугубо добровольное. Просто тогда нельзя налепить гордую надпись DVB на морду приемника.
Да, добавлю еще. Модули позволяют дескремблировать несколько программ одновременно (не все, разумеется). Пока известным мне рекордсменом является Aston Professional, который может одновременно дескремблировать до 12 программ. К сожалению, производители приемников не дают управление подобной возможностью.