Про спутниковых пиратов

В процессе написания подробного поста про историю «курских пиратов» (роман в трех частях с предисловием и моралью :) ), получилась еще и техническая статейка про пиратский просмотр спутникового телевидения. В общем, всем любителям халявы рекомендую ознакомиться. Вся информация ниже — исключительно в ознакомительных целях, не приводятся никакие конкретные инструкции. В общем, использовать ее в разрушительных целях у вас не получится :)

Для начала — «структурная схема» современного цифрового спутникового ресивера — чтобы дальше были понятны некоторые технические тонкости.

Небольшие пояснения. Тюнер ресивера, управляемый процессором, демодулирует сигнал спутника, и переводит его в цифровой «поток» — пакеты данных с идентификатором SID — Service ID. Часть пакетов, содержащих аудио- и видеоданные, направляются в MPEG-декодер, который преобразует их из цифрового формата (как несложно догадаться, MPEG-2 или MPEG-4) в аналоговый (или понятный телевизору цифровой — какой-нибудь HDMI). Остальные пакеты могут быть обработаны процессором. Зачем нужны остальные устройства и многочисленные стрелки — поясню ниже. Во всяком случае, FTA — Free To Air, или «бесплатные» каналы, описанная выше схема позволяет смотреть.

Как известно почти всем, подавляющее большинство спутниковых телеканалов — платные. С другой стороны, сигнал со спутника не различает, какой абонент заплатил, а какой — нет. Поэтому необходимы методы защиты от несанкционированного просмотра, а то хорош был бы тот оператор, платный пакет которого доступен для просмотра всем желающим — купил тарелку, ресивер и смотри, сколько влезет.

Не буду рассказывать о методах защиты аналогового телесигнала, скажу лишь только, что все эти «защиты» вскрывались довольно легко — например, впаиванием в ресивер дополнительного диода, или, несколько позже, когда стали использовать схему кодирования с перемешиванием строк изображения, при помощи несложной программы для компьютера с картой видеозахвата. Современные способы защиты цифрового телесигнала намного более интересны.

Первый метод заключается в использовании в ресивере так называемого CAM — Common Access Module — модуля условного доступа, включаемого между тюнером и остальной частью ресивера. Этот модуль содержит в себе достаточно мощный процессор, способный обрабатывать поток видеоданных в режиме «реального времени». Если CAM-модуль применяется для защиты от несанкционированного просмотра, то он просто заменяет все зашифрованные данные на расшифрованные. MPEG-декодеру остается лишь декодировать «голый» поток без всякой защиты. Кроме того, CAM-модуль способен «на лету» обновлять свою программу и вообще получать из потока любые дополнительные данные для своей работы.

Кстати, CAM-модули могут применяться не только для защиты от нелегального просмотра платных каналов, но и для других целей. Например, модуль Neotion MP4 способен преобразовывать поток MPEG-4 в MPEG-2, делая возможным просмотр каналов в HD (High Definition) на большинстве «обычных» ресиверов, понимающих только MPEG-2.

Впрочем, у использования CAM есть недостатки. Самый существенный — высокая себестоимость CAM-модулей, сравнимая, а то и превосходящая стоимость ресивера. Поэтому применяют другие методы, основанные на взаимодействии процессора ресивера со смарт-картой. Стандарт цифрового телевещания DVB (Digital Video Broadcasting), а точнее, его «спутниковая» версия DVB-S уже содержат в себе базовые возможности для разграничения доступа. Декодирование аудио- и видеосигнала платных каналов невозможно без дополнительного 48-битного ключа. Когда MPEG-декодер получает на вход аудио- и видеопоток вместе с правильным ключом, то на экране появляется картинка.

Понятно, что 48 бит сегодня — это ничтожно малая длина ключа. При доступных любому сопливому хакеру вычислительных мощностях, «вскрыть» такой ключ можно за несколько суток. Поэтому такая «защита» применяется лишь тогда, когда надо для галочки «закрыть канал от несанкционированного просмотра» — например, во время спортивных трансляций. В реальных системах платного телевидения данный ключ меняется очень часто — с интервалом в 20-30 секунд.

Происходит это так: дополнительный поток данных со спутника, содержащий разнообразную «техническую» информацию, обрабатывается процессором ресивера, где из него выделяется информация, которую надо передать карте. Затем полученные данные (они называются СW — Coded Word) отправляются карте для декодирования, процессор карты их обрабатывает и возвращает DW — Decoded Word — готовый ключ для MPEG-декодера. Длина CW — намного больше, чем 48 бит. Более того, карте направляются не только CW, но и дополнительные данные, например, указание конкретной карте активироваться, деактивироваться, обновить «операционные ключи», используемые для получения DW из CW — все зависит от фантазии разработчиков системы условного доступа. При этом себестоимость смарт-карт на порядок ниже, чем у CAM-модулей. Более того, зачастую CAM-модуль сам использует смарт-карты, заменяя процессор ресивера при «общении» с картой и дешифровании видеопотока. Например, это применяется, когда картоприемник ресивера не способен работать с каким-то из типов смарт-карт.

Перейдем теперь к «пиратским» методам просмотра. Все они основаны на имитации работы смарт-карты, находящейся в картоприемнике ресивера. Для имитации работы официальной карты могут использоваться простые карточки, состоящие из микроконтроллера и флеш-памяти со специальными прошивками (они называются Gold Card, Silver Card, Fun Card и доступны для самостоятельного изготовления любому, кто умеет держать в руках паяльник). Несколько лет назад пиратский просмотр всеми любимого российского пакета со спутника Eutelsat W4 осуществлялся именно таким образом.

Сейчас параметры процессоров, используемых в спутниковых ресиверах, таковы, что процессор может взять на себя часть функций карты условного доступа или «пиратской» карты. Если это реализовано в софте ресивера, то говорят, что ресивер может эмулировать какую-либо кодировку. Естественно, что если процессор ресивера будет «подсовывать» MPEG-декодеру ключи, полученные им не от смарт-карты, а еще откуда-то, то MPEG-декодер разницы «не заметит» — главное, чтобы ключи были правильными.

К сожалению, возможности эмуляции сейчас резко ограничены. Далеко не все варианты карт удается «вскрыть» полностью. Обычно удается узнать лишь метод получения DW из CW при помощи хранящихся в карте «операционных ключей» длиной в 128 бит. Эти ключи меняются редко — обычно раз в месяц или раз в неделю, но во время «знаковых» событий, типа Чемпионаты Европы по футболу, вещатели могут заменять ключи и чаще — вплоть до ежедневного обновления. Впрочем, для части кодировок известны и алгоритмы, по которым ключи могут обновляться — это называется «автоапдейт».

Больших успехов в плане «вскрытия» кодировок сейчас нет — «звезды» хакерской сцены прошлых лет отошли от дел, а нынешние карты защищены гораздо лучше. Самый перспективный на сегодня способ несанкционированного доступа — это так называемый кардшаринг, когда одна карта используется одновременно несколькими ресиверами. Десятисекундное «окно», отведенное в стандарте DVB для обмена между ресивером и картой при смене ключа, выделено с большим запасом — карта «отвечает» за доли секунды. Поэтому одна карта способна обслужить запросы не одного, а нескольких пользователей — вплоть до пары десятков.

Здесь все происходит несколько иначе. Все тот же ресивер, получив DW, отправляет его не в свой картоприемник, а, например, через COM-порт на подключенный к интернету компьютер, тот, в свою очередь, обращается к серверу с установленной картой, которая возвращает CW и все передается по той же цепочке в обратном порядке. На все это уходит около 300-400 миллисекунд. Некоторые ресиверы снабжены обычным сетевым интерфейсом, и им не нужен компьютер в качестве посредника. Зато ресиверы с COM-портом обычно поддерживают «домашний кардшаринг», когда на другом конце кабеля находится не компьютер, а другой ресивер, в котором установлена карта. В любом случае, тем или иным образом имитируется наличие карты в картоприемнике ресивера.

Естественно, вещатели пытаются бороться и с эмуляцией, и с кардшарингом. Если для защиты от эмуляции достаточно использовать современные системы условного доступа, еще не «вскрытые» хакерами, то кардшаринг техническими методами победить невозможно. Остается либо смириться с этим, как с кражами в супермаркете, либо бороться юридическими способами.

К сожалению для вещателей, абонента кардшаринга привлечь к ответственности затруднительно. Сложно «дотянуться» и до владельцев серверов — например, если сервер установлен где-нибудь в Германии, российскому оператору будет сложно найти и повесить на рее проклятого пирата. С другой стороны, они своим существованием жизнь оператору не портят — абоненты кардшаринга достаточно малочисленны, ибо настройка всего этого удовольствия требует наличия межушного нервного узла, в просторечии называемого головным мозгом, да и «упущенной выгоды» здесь нет — все равно они платить не будут. Закрытие серверов — дело бесполезное, на каждый закрытый сервер пираты ответят парой новых.

Самая уродская Captcha

Еще один луч поноса посылается программиздам СУПа за то, что те прикрутили уродскую reCaptcha к форме отправки анонимных или OpenID комментариев. Более гнусной каптчи я не видел — второе слово там почти всегда совершенно нечитаемо.

Если уж так хочется защититься от ботов — то кто мешает проверять их интеллехт, например, решением задач по матану из известной книги Демидовича? Заодно будут отстранены от комментирования большинство дебилов, за исключением, из известных мне, разве что Вербяцкого. Хотя, ЕМНИП, Вербятка не умеет брать интегралы из Демидовича, так как в своих гнилых прогонах постоянно наезжал на этот важный и полезный скилл :)

[poll id=»3″]

Важно! Почему-то в ЖЖ-шной френдленте голосование не работает, надо перейти на сайт и голосовать оттуда. Буду разбираться.

Конец халявы

Сегодня ночью ЖЖшечные одноклеточные пидоры из СУПа пофиксили багу, не позволявшую забанить OpenID-юзеров. [info]hirou, разбанишь?

Интересно, кто сообщил в техподдержку?