
Card sharing — технология, которая позволяет нескольким DVB-ресиверам одновременно смотреть зашифрованные спутниковые каналы, используя одну легальную подписку. Звучит просто, но под капотом там целый стек протоколов, криптографии и сетевого взаимодействия. Эта статья — техническое объяснение без маркетинга. Только как оно реально работает, какие конфиги нужны и что делать когда что-то сломалось.
Что такое card sharing с технической точки зрения
Спутниковый сигнал приходит на тарелку зашифрованным. Оператор использует DVB-CSA (Digital Video Broadcasting — Common Scrambling Algorithm) или, в некоторых современных системах, AES-128. Без дешифровки ты видишь просто помехи.
Дешифровка происходит на основе так называемых Control Words (CW) — 8-байтных ключей, которые оператор меняет каждые 7–10 секунд. Именно эта смена и является основной защитой: даже если перехватишь CW, через 10 секунд он уже не работает. Card sharing строится вокруг задачи: как доставить актуальные CW нескольким клиентам до истечения этих 10 секунд.
Принцип работы: DVB-карта, CAM-модуль и control words
На стороне сервера стоит ресивер с физической смарт-картой оператора, вставленной в CAM-модуль или непосредственно в ридер. Ресивер принимает зашифрованный транспортный поток, CAM расшифровывает ECM-пакеты с помощью ключей на карте и получает CW. Дальше сервер по сети передаёт эти CW клиентам.
Клиент получает CW и применяет их к входящему DVB-потоку через встроенный десакрамблер. Для этого ему нужен только тюнер — своя смарт-карта не нужна. Вся магия — в синхронизации: CW должен дойти до клиента раньше, чем оператор его сменит. Поэтому ECM time (время от запроса до получения CW) напрямую влияет на качество картинки.
Роль ECM и EMM пакетов в дешифровке потока
В транспортном потоке DVB есть два типа служебных пакетов. ECM (Entitlement Control Message) — это собственно зашифрованные CW. Их расшифровывает сервисный ключ, который хранится на смарт-карте. EMM (Entitlement Management Message) — это пакеты управления подпиской: через них оператор обновляет права на карте, активирует или блокирует её.
EMM-пакеты — это и защитный механизм оператора. Если они детектируют нестандартное поведение карты (слишком много ECM-запросов), карту могут заблокировать удалённо. Именно поэтому в OScam есть параметры blockemm-unknown и blockemm-g в секции reader — они фильтруют EMM-пакеты, не давая оператору "убить" карту за 24–48 часов.
Чем card sharing отличается от IPTV и официальной подписки
IPTV работает принципиально иначе: сервер сам декодирует поток и раздаёт его как HTTP/UDP/HLS. Клиент вообще не работает с DVB — он просто получает готовое видео. В card sharing клиент принимает реальный спутниковый сигнал сам, только ключи для дешифровки берёт с сервера.
Официальная подписка — у тебя карта, CAM-модуль, всё локально. Card sharing убирает необходимость иметь собственную карту на каждом ресивере, но требует постоянного сетевого соединения с сервером с валидной картой.
Протоколы CCcam и OScam: ключевые различия
Два главных протокола в card sharing-экосистеме — CCcam и OScam. Они решают одну задачу, но устроены совершенно по-разному. Понимание разницы важно ещё на этапе выбора софта для сервера.
CCcam: проприетарный протокол, порт 12000 по умолчанию
CCcam — закрытый бинарник, последняя публичная версия 2.3.2 вышла ещё в 2017 году. Работает по TCP, по умолчанию на порту 12000. Аутентификация — через хеш username/password, без TLS. Конфиг минимален: C-Line в формате C: hostname 12000 username password добавляется в клиентский /etc/CCcam.cfg.
Протокол широко распространён именно потому, что его поддерживают буквально все ресиверы на Enigma2. Но разработка мертва, уязвимости не закрываются, и в 2026 году использовать чистый CCcam-сервер — не лучшая идея. OScam умеет эмулировать CCcam-протокол и это обычно лучший вариант.
OScam: open-source форк, поддержка newcamd/cs378x/cccam
OScam (форк проекта MCAS) — это другая история. Open-source, активная разработка, поддержка десятка протоколов одновременно. Конфиги читаются из нескольких файлов: /etc/oscam/oscam.conf (глобальные настройки), /etc/oscam/oscam.server (параметры ридера), /etc/oscam/oscam.user (аккаунты клиентов), /etc/oscam/oscam.dvbapi (для локального десакрамблирования).
На Enigma2-боксах конфиги чаще лежат в /etc/tuxbox/config/. OScam поддерживает одновременно cccam (порт 12000), newcamd (порт 15000) и cs378x — можно держать все три и клиенты подключаются тем протоколом, который им удобен.
Когда использовать MGCamd, NewCS, WiCardd
MGCamd — это клиентский эмулятор, не сервер. Он умеет подключаться к CCcam/newcamd серверам и работать как middleware между сервером и локальным десакрамблером. Полезен на старых ресиверах, где OScam не запускается нативно.
NewCS — ещё один сервер, популярный лет десять назад, сейчас практически вытеснен OScam. WiCardd — вообще специфичная история для работы с Viaccess-картами, в большинстве случаев OScam справляется лучше. Если начинаешь с нуля — просто бери OScam, не усложняй.
Оборудование и софт для запуска сервера
Минимальная конфигурация сервера — не такая страшная, как кажется. OScam нетребователен к ресурсам: 512 MB RAM хватает с запасом, работает на любом Linux с kernel 4.x и выше.
Ресивер на Enigma2 (Vu+, DreamBox, GigaBlue) или Linux ПК
Самый простой путь — использовать спутниковый ресивер на Enigma2 (Vu+ Duo, DreamBox 920, GigaBlue UHD). На них OScam устанавливается через пакетный менеджер образа (OpenATV, OpenPLi) как ipk-пакет в пару команд. Ресивер уже имеет встроенный CAM-слот или внешний CI+.
Вариант с Linux ПК даёт больше контроля: Debian/Ubuntu, headless, без монитора. Минус — нужна отдельная DVB-карта и ридер для смарт-карты. Но зато легче масштабировать и мониторить через systemd.
DVB-S2 карта (TBS, TeVii) и официальная смарт-карта оператора
Для PC-сервера нужна DVB-S2 карта с поддержкой Linux-драйверов. TBS Technologies (например, TBS6281) и TeVii — реально работающие варианты с открытыми драйверами. Карта подключается через PCIe или USB.
Для чтения смарт-карты OScam поддерживает несколько типов ридеров: smargo (USB smart card reader), internal (встроенный в CAM-слот ресивера), mouse (Phoenix/Smartmouse через COM-порт). Smargo на практике надёжнее всего, работает через libusb без специфических драйверов.
Важный момент про USB-удлинители: если тянешь smargo через USB-удлинитель длиннее 1.5 метра — получишь нестабильную работу и ECM errors из-за помех. Лучше использовать активный USB-хаб или держать ридер рядом с машиной.
ОС: OpenATV, OpenPLi, Debian/Ubuntu для headless сервера
Для Enigma2-ресиверов: OpenATV 7.x или OpenPLi 9.x — оба работают нормально. OScam в их репозиториях актуальный. После обновления образа иногда меняется путь к /dev/ttyUSB0 — если ридер перестал определяться, сначала смотри через dmesg | grep tty и пропиши udev rule чтобы зафиксировать имя устройства.
Для headless сервера на Debian — собирай OScam из исходников через simplebuild. Это скрипт, который автоматически подтягивает нужные зависимости и собирает бинарник с нужными модулями. Официальные бинарники с форумов — на свой страх, лучше своя сборка.
Настройка OScam сервера: пошагово
Покажу минимальную рабочую конфигурацию. Без лишних параметров — только то, что реально нужно для запуска.
Конфиг файлы: oscam.conf, oscam.server, oscam.user, oscam.dvbapi
Файл oscam.conf — глобальные настройки:
[global]
logfile = /var/log/oscam.log
log_level = 4
maxlogsize = 500
clienttimeout = 5000
fallbacktimeout = 2500
serialreadertimeo = 1500
waitforcards = 1
[webif]
httpport = 8888
httpuser = admin
httppwd = changeme
httprefresh = 10
[cccam]
port = 12000
[newcamd]
port = 15000@0500:000000
Обрати внимание на log_level = 4 — это debug-уровень, полезен при диагностике. В продакшне можно снизить до 2.
Параметры reader: protocol, device, caid, boxid, detect
Файл oscam.server — описание ридера с картой:
[reader]
label = viaccess_card
protocol = mouse
device = /dev/ttyUSB0
caid = 0500
ident = 0500:000000
mhz = 600
cardmhz = 368
detect = cd
group = 1
emmcache = 1
blockemm-unknown = 1
blockemm-g = 1
Параметры mhz и cardmhz критичны. mhz=600 — частота Phoenix-ридера в 10 кГц (реальная 6 МГц), cardmhz=368 — частота для карты. Неправильные значения дают ошибки чтения карты. Если карта работает в официальном ресивере, но не читается в OScam — проверь сначала именно эти параметры и boxid (некоторые карты Nagravision требуют правильный BoxID).
Для Multi-CAID карты (например, Viaccess + Mediaguard одновременно) нужны две отдельные секции [reader] с разными ident — в одной секции два протокола не уживаются корректно.
Файл oscam.user — аккаунты для клиентов:
[account]
user = client1
pwd = password123
group = 1
caid = 0500
au = 1
uniq = 1
Параметр uniq = 1 не даёт одному аккаунту подключиться с двух адресов одновременно.
Запуск как systemd-сервис и проверка через webif (порт 8888)
Запуск вручную для проверки:
oscam -b -c /etc/tuxbox/config
Для systemd создай файл /etc/systemd/system/oscam.service:
[Unit]
Description=OScam Card Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/bin/oscam -b -c /etc/oscam
PIDFile=/var/run/oscam.pid
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
systemctl enable oscam
systemctl start oscam
Сразу после запуска открывай webif: http://server_ip:8888. Там видно статус ридера, список подключённых клиентов, ECM time в реальном времени. Нормальное ECM time — 200–400 мс. Если видишь 200–400 мс — всё в порядке. Если 800+ — что-то не так.
Следить за логом:
tail -f /var/log/oscam.log
Типичные проблемы и диагностика
Большинство проблем при настройке — одни и те же. Знание кодов ошибок в логе OScam экономит часы времени.
Ошибка 'card not found' — проверка reader через pcsc_scan
Если в логе видишь rc 4 (not found) — сначала проверь что ридер вообще видит карту:
pcsc_scan
lsusb
dmesg | grep -i smartcard
dmesg | grep tty
pcsc_scan должен показать ATR карты. Если не показывает — проблема физическая: контакт, ридер, сама карта. Если ATR есть, но OScam не видит — смотри protocol и device в oscam.server.
Код rc E — corrupt data, обычно проблема с частотой (mhz/cardmhz). Код rc 5 — timeout, карта не успевает ответить. Снизь mhz до 357 и попробуй снова.
Долгий ECM time (>800 мс) — сетевые задержки или CPU-bottleneck
Если ECM time стабильно высокий — сначала исключи сетевые задержки:
ping -c 20 client_ip
Если пинг нормальный (< 50 мс), а ECM time всё равно высокий — смотри загрузку CPU на сервере в момент ECM-запроса. Один smargo с mhz=600 вытягивает примерно 30–50 ECM/sec. Если клиентов больше — нужен второй ридер или выделенный сервер для каждого CAID.
При высоких пингах между сервером и клиентом cs378x протокол показывает себя лучше чем cccam — у него меньше overhead в заголовках пакетов.
Канал не открывается — несовпадение CAID/provider ID
Канал не открывается, но ECM time нормальный — смотри CAID и Provider ID. Через webif → Readers → Card Detail видно что реально умеет карта. Сравни с тем, что запрашивает клиент в логе.
Если ECM time нормальный, карта определяется, но картинка всё равно фризит — проблема не в card sharing вообще. Проверь уровень сигнала: SNR меньше 12 dB даёт артефакты и фризы независимо от дешифровки. Это чисто антенная история.
Ещё кейс: freecaid — специальная утилита для тестирования, позволяет проверить работу карты без полноценного клиента. Полезна при отладке.
Как выбрать надёжного провайдера card sharing
Если не хочешь поднимать собственный сервер — можно использовать внешний. Но рынок этих услуг полон нестабильных сервисов. Вот что реально важно при выборе.
Критерии: аптайм сервера, ECM time, географическое расположение
Аптайм должен быть не менее 99% — это примерно 7 часов даунтайма в месяц максимум. Ниже — неприемлемо для регулярного просмотра. Спрашивай статистику или проверяй через независимые uptime-мониторы.
ECM time меньше 500 мс для нужного CAID — базовое требование. Провайдер с сервером в Германии и EU-пакетами даст лучший результат для европейских пакетов, чем тот, чей сервер стоит в Азии. Физическое расстояние имеет значение — скорость света никто не отменял.
Тестовый период и поддержка нужных пакетов (CAID)
Нормальный провайдер предлагает бесплатный доступ на 2 часа, что вполне достаточно для проверки ECM time, стабильности и нужных каналов.
Обязательно уточняй поддержку конкретного CAID для нужного пакета. Viaccess (0500), Nagravision (1801), Irdeto (0604) — у каждого своя карта. Нельзя взять карту Viaccess и смотреть Nagravision-каналы.
Признаки нестабильного сервиса: частые freeze, высокий пинг
Красные флаги при оценке провайдера: работает только через Telegram без веб-интерфейса, нет webif для мониторинга, не указывает конкретные CAID в описании услуги. Это признаки того, что сам провайдер не понимает что продаёт.
Частые фризы на первой же неделе — сигнал уходить. Хороший сервис работает стабильно с первого дня. Отзывы ищи на технических форумах (Sat Universe, Satellite Guys) а не в Telegram-каналах провайдера.
Какой порт по умолчанию использует CCcam протокол?
TCP 12000 — стандартный порт CCcam. Newcamd использует 15000, webif OScam работает на 8888. Все эти порты можно изменить в oscam.conf: секция [cccam] → параметр port=, секция [newcamd] → port=, секция [webif] → httpport=.
В чём разница между CCcam и OScam?
CCcam — закрытый бинарник, последняя версия 2.3.2 вышла в 2017 году, разработка мертва. OScam — open-source проект с активной разработкой, поддержкой нескольких протоколов одновременно (cccam, newcamd, cs378x), подробным логированием и webif. Конфиги OScam читаются из /etc/tuxbox/config/ или /var/etc/ в зависимости от образа. На любом новом сервере выбирай OScam.
Сколько ECM-запросов в секунду выдерживает один сервер?
Зависит от типа ридера. Smargo с mhz=600 обрабатывает примерно 30–50 ECM/sec. Внутренний ридер на Enigma2-боксе — 10–20 ECM/sec. Для 100+ одновременных клиентов нужен выделенный ридер на каждый CAID, иначе ECM time начнёт расти и клиенты будут видеть фризы.
Что означает CAID и как его узнать?
CAID (Conditional Access ID) — числовой идентификатор системы шифрования. Viaccess — 0500, Nagravision — 1801, Irdeto — 0604, Conax — 0B00. Узнать CAID своего пакета: на ресивере в меню CI или CAM, либо через webif OScam → Readers → Card Detail — там показываются все CAID и Provider ID, которые умеет читать карта.
Почему ECM time скачет с 200 до 2000 мс?
Причины нестабильного ECM time: перегрузка ридера (слишком много клиентов на одну карту), сетевые задержки между сервером и клиентом, CPU-bottleneck на сервере во время пиковой нагрузки, проблемы со смарт-картой (плохой механический контакт в ридере). Диагностика через webif → Status → Clients — там видно ECM time по каждому клиенту и ридеру отдельно.
Можно ли использовать card sharing без DVB-карты на стороне клиента?
Физический ридер с легальной смарт-картой обязателен только на стороне сервера. Клиенты получают готовые CW по сети через cccam или newcamd протокол и могут работать на любом Enigma2-ресивере или PC с DVB-тюнером без CAM-модуля. Тюнер для приёма спутникового сигнала клиенту всё равно нужен — без него смотреть нечего.
Какие логи смотреть при проблемах с подключением?
Основной лог OScam: /var/log/oscam.log (или путь из переменной OSCAM_LOGFILE в конфиге). Установи log_level=4 в секции [global] для полного debug-вывода. Для systemd-установки: journalctl -u oscam -f. Сетевые проблемы — tcpdump -i eth0 port 12000 покажет реальный трафик между клиентом и сервером.
Практические советы для стабильного просмотра
Даже самая стабильная линия CCCam или OSCam требует пары простых подготовительных шагов. Обновляйте прошивку ресивера, раз в неделю очищайте ECM‑кеш и держите 15–20% свободного места на USB‑накопителе или во встроенной памяти, чтобы кардридер записывал ключи без задержек.
При настройке антенны оставляйте запас по MER/BER: смещение на два градуса или ослабленный F‑коннектор чаще становится причиной “фризов”, чем сам кардшаринг. Держите под рукой короткий патч‑корд для проверки другого роутера и сохраните два профиля в OSCam — под TCP и под UDP — чтобы мгновенно переключиться, если провайдер начнёт фильтровать протокол.
Utgard.tv следит за каждым хабом 24/7, однако вы можете ускорить диагностику, если будете вести небольшой журнал действий. Записывайте время переключения канала, активный CAID и то, использовали ли вы Wi‑Fi или Ethernet. Такой мини‑отчёт позволит инженерам воспроизвести вашу конфигурацию в лаборатории и предложить решение не за часы, а за минуты.
- Держите активными две линии: если первый сервер уходит на обслуживание, второй тут же подхватывает поток без повторного ввода логина.
- Раз в месяц делайте замер скорости и задержек. Стабильных 1–2 Мбит/с при пинге до 80 мс достаточно для SD/HD, но если джиттер превышает 20 мс — переведите роутер на провод.
- Сохраните в закладки страницу статуса Utgard.tv и Telegram‑бота @utgard_sharing_bot — там появляются уведомления о работах раньше, чем успеют среагировать SEMrush или внешние мониторы.