Card Sharing: что это и как работает в 2026
Card sharing — технология передачи управляющих слов (DCW) от одной физической смарт-карты нескольким ресиверам через IP-сеть. Звучит сложно, но механика проще, чем кажется: одна подписка, одна карта, несколько клиентов — и все смотрят закрытые каналы. Юридически это серая зона, зависит от страны и условий договора с провайдером. Здесь — только технический разбор.
Что такое card sharing и зачем он нужен
Определение простыми словами
Представь: у тебя есть смарт-карта с оплаченной подпиской на спутниковый пакет. Эта карта умеет расшифровывать сигнал — точнее, выдавать ключи для расшифровки. Суть card sharing в том, чтобы эти ключи отправлять не одному ресиверу, к которому карта физически подключена, а сразу нескольким через обычную сеть.
На стороне сервера стоит Linux-машина с ридером и картой. На стороне клиента — ресивер без карты, который по сети запрашивает ключи у сервера. Сервер отвечает за миллисекунды, ресивер расшифровывает поток. Зритель видит картинку — и не знает что ключи пришли из-за трёх тысяч километров.
Принцип работы: DCW, ECM, EMM
Три аббревиатуры, без которых не разобраться:
- DCW (De-Control Word) — 16-байтный ключ, которым фактически шифруется видеопоток. Меняется каждые 5–10 секунд.
- ECM (Entitlement Control Message) — зашифрованный пакет внутри потока, содержащий DCW. Расшифровать его может только авторизованная смарт-карта.
- EMM (Entitlement Management Message) — сообщения от провайдера для обновления прав карты (авторизация пакетов, ключи обновления). Нужны для au (auto-update).
Поток данных выглядит так: ресивер принимает зашифрованный спутниковый сигнал → извлекает ECM из потока → отправляет ECM на сервер → сервер передаёт ECM физической смарт-карте → карта возвращает DCW (16 байт) → сервер отправляет DCW обратно клиенту → ресивер расшифровывает поток.
Весь цикл должен уложиться в 200–500 мс. Если медленнее — начнутся фризы, потому что DCW уже сменился, а ресивер ещё расшифровывает старым ключом.
Откуда взялась технология
Первые реализации появились в середине 2000-х, когда спутниковое ТВ было дорогим, а широкополосный интернет стал доступным. Энтузиасты на DVB-форумах разработали протоколы NewCamd и CCcam примерно в 2005–2007 годах. CCcam версии 2.x стал де-факто стандартом к 2010-му — простой конфиг, работает из коробки. OScam появился позже как open-source альтернатива и к 2026 году — единственный активно развивающийся вариант для серверной стороны.
Архитектура: сервер, клиент, протоколы
Серверная часть (CCcam, OScam, NewCamd)
Сервер — это Linux-машина (или мощный ресивер с Linux) с подключённой смарт-картой и установленным ПО. Задача сервера: принимать ECM-запросы от клиентов, передавать их карте, возвращать DCW. Всё это одновременно от десятков клиентов с разными каналами.
На сервере запускается либо CCcam (бинарник, конфиг /etc/CCcam.cfg), либо OScam (собственная сборка, конфиги в /usr/local/etc/ или /etc/oscam/). OScam умеет эмулировать CCcam-протокол для клиентов, так что оба варианта совместимы.
Клиентская часть на ресивере (Enigma2, OpenATV)
Клиент — ресивер без смарт-карты. На нём стоит Enigma2 (прошивка OpenATV, OpenPLi, OpenViX) и один из softcam-плагинов: CCcam, OScam или MGcamd. Плагин знает адрес сервера, порт, логин и пароль. При включении ресивера он соединяется с сервером и держит постоянное TCP-соединение.
Когда ты переключаешь канал — softcam замечает новый CAID (ID системы условного доступа) и PID, формирует ECM-запрос и отправляет на сервер. Задержка при переключении 2–5 секунд — это норма для этого процесса.
Протоколы: CCcam, CS378x (NewCamd), Camd35, MGcamd
Вот реальная таблица протоколов с характеристиками:
| Протокол | Порт по умолчанию | Транспорт | Особенности |
|---|---|---|---|
| CCcam | 12000 | TCP | Проприетарный, share-list через C-line, широко распространён |
| NewCamd / CS378x | 15000 | TCP | Стабильнее на нестабильных каналах, DES-шифрование |
| Camd35 | 5000 | UDP | Лёгкий, минимальный overhead, нет подтверждения доставки |
| Radegast | 6500 | TCP | Редкий, в основном восточноевропейские провайдеры |
| MGcamd | — | TCP | Клиентский плагин, работает поверх NewCamd/CCcam |
NewCamd надёжнее CCcam на нестабильных линках: у него есть подтверждение доставки и ретрансмиссия. CCcam проще в настройке — одна строка в конфиге. Camd35 на UDP быстрее, но при потере пакетов DCW не придёт вообще — ресивер будет ждать таймаут.
Порты по умолчанию
CCcam слушает на TCP 12000, CS378x/NewCamd — на TCP 15000, веб-интерфейс OScam — TCP 8888. Порты конфигурируются, но если ставишь сервер с нуля — используй стандартные, чтобы клиенты подключались без лишних вопросов.
Если на одной машине одновременно запущены OScam и CCcam — конфликт портов неизбежен. Решение: дать OScam порт 12001 для CCcam-протокола или вообще убрать CCcam, оставив только OScam с CCcam-эмуляцией.
CCcam vs OScam: в чём разница
CCcam: проприетарный, простой, устаревает
CCcam последний раз обновлялся на версии 2.3.2 — и это было давно. Закрытый бинарник, никакого исходного кода, разработка остановлена. Но он до сих пор стоит на миллионах ресиверов, потому что конфиг предельно прост.
Вся настройка клиента — одна строка в /etc/CCcam.cfg:
C: example.com 12000 myuser mypassword
Это C-line (client-line). F-line — для forward (пересылки карт другим серверам). N-line — для NewCamd-подключений. Больше синтаксиса почти нет.
Проблема: CCcam не умеет одновременно работать с несколькими протоколами на приём. Если клиент хочет NewCamd — нужен отдельный экземпляр или другой сервер.
OScam: open-source, гибкий, активная разработка
OScam — форк OSCam от команды streamboard.tv, активно обновляется в SVN-репозитории. Умеет одновременно слушать CCcam, NewCamd, Camd35, Radegast на разных портах. Поддерживает несколько reader-секций (несколько карт разных провайдеров).
Конфигурация раздельная: oscam.conf (глобальные настройки и протоколы), oscam.server (описание ридеров и карт), oscam.user (учётные записи клиентов). Это чище и гибче CCcam.cfg, хотя первое знакомство занимает больше времени.
Что выбрать для сервера, а что для клиента
Для сервера в 2026 — OScam без вариантов. CCcam не поддерживается, не получает обновления безопасности, не умеет в современные возможности (кэш ECM, load balancing между картами, детальная статистика в webif).
Для клиента — что стоит на ресивере, то и используй. Enigma2-боксы нормально работают с CCcam-плагином как клиентом, даже если сервер — OScam. OScam на сервере эмулирует CCcam-протокол прозрачно.
Совместимость и miscellaneous-режимы
OScam в режиме сервера принимает клиентов по CCcam-протоколу через секцию [cccam] в oscam.conf. Клиент думает что говорит с CCcam — разницы не видит. MGcamd — клиентский плагин поверх NewCamd, работает с OScam через [newcamd]. Старые ресиверы без поддержки OScam переводи на CCcam-клиент — это нормальный fallback.
Настройка сервера: пошагово на примере OScam
Установка OScam на Debian/Ubuntu
Сборка из исходников — единственный правильный путь, потому что бинарники из сторонних репозиториев могут быть устаревшими или модифицированными.
apt update && apt install -y build-essential cmake libssl-dev \
libpcsclite-dev pcscd git subversion
svn checkout svn://www.streamboard.tv/oscam/trunk oscam-svn
cd oscam-svn && mkdir build && cd build
cmake .. -DUSE_PCSC=1 -DUSE_OPENSSL=1
make -j$(nproc)
make install
После этого бинарник лежит в /usr/local/bin/oscam, дефолтная директория конфигов — /usr/local/etc/.
Конфигурационные файлы: oscam.conf, oscam.server, oscam.user
Минимальный oscam.conf:
[global]
logfile = /var/log/oscam/oscam.log
maxlogsize = 10000
preferlocalcards = 1
[newcamd]
port = 15000@0500:000000
[cccam]
port = 12000
version = 2.3.2
reshare = 1
[webif]
httpport = 8888
httpuser = admin
httppwd = changeme123
Файл oscam.server описывает ридер (физическую карту):
[reader]
label = card1
protocol = pcsc
device = /dev/pcsc/1
caid = 0500
detect = cd
mhz = 357
cardmhz = 357
group = 1
emmcache = 1,3,2
Файл oscam.user — учётки клиентов:
[account]
user = client1
pwd = secretpass
group = 1
au = 1
caid = 0500
Параметр au = 1 включает передачу EMM-обновлений к карте через этого клиента. Если au = 0 — карта не получает обновления прав, через некоторое время может перестать авторизовывать новые каналы. Это частая причина "работало — перестало".
Подключение смарт-карты через PC/SC reader
Для PC-сервера понадобится USB PC/SC ридер (ACS ACR38U, OmniKey 3121 — оба работают без танцев с бубном на Debian). Убедись что pcscd запущен:
systemctl enable pcscd && systemctl start pcscd
pcsc_scan # проверить что карта видна
Если карта переходит в состояние NEEDINIT после долгого аптайма — рестартуй pcscd и OScam последовательно: сначала systemctl restart pcscd, потом systemctl restart oscam. Рестарт только OScam без pcscd в этом случае не помогает.
Открытие портов и базовая безопасность
# Открыть только нужные порты
iptables -A INPUT -p tcp --dport 12000 -j ACCEPT # CCcam
iptables -A INPUT -p tcp --dport 15000 -j ACCEPT # NewCamd
iptables -A INPUT -p tcp --dport 8888 -s 192.168.1.0/24 -j ACCEPT # webif только локально
iptables -A INPUT -p tcp --dport 8888 -j DROP # webif снаружи — закрыть
# Установить fail2ban для защиты webif
apt install fail2ban
Webif OScam на 8888 открытый в интернет — плохая идея. Закрой его или ограничь по IP. fail2ban настрой на логи OScam — после 5 неудачных авторизаций банить IP на час.
Запуск как systemd-сервис
Создай /etc/systemd/system/oscam.service:
[Unit]
Description=OScam CardServer
After=network.target pcscd.service
Requires=pcscd.service
[Service]
Type=forking
ExecStart=/usr/local/bin/oscam -b -c /usr/local/etc -p /var/run/oscam.pid
PIDFile=/var/run/oscam.pid
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable oscam
systemctl start oscam
Настройка клиента на ресивере (Enigma2)
Установка CCcam или OScam через ipk/feed
На OpenATV или OpenPLi открываешь Plugin Browser → Softcams и ставишь нужный. Либо через SSH:
opkg update
opkg install enigma2-plugin-softcams-oscam
# или
opkg install enigma2-plugin-softcams-cccam
После установки softcam появится в меню Softcam Panel (обычно кнопка Menu → Setup → System).
Редактирование CCcam.cfg или oscam.server на клиенте
Если используешь CCcam как клиент, конфиг лежит в /etc/CCcam.cfg. Открываешь через SSH или встроенный файловый менеджер и добавляешь C-line.
Если клиент — OScam, то в /etc/oscam/oscam.server добавляешь reader-секцию:
[reader]
label = myserver
protocol = cccam
device = example.com,12000
user = client1
password = secretpass
group = 1
caid = 0500
Формат C-line
C-line для CCcam клиента выглядит так:
C: example.com 12000 username password
C — client, потом хост, порт, логин, пароль. Никаких дополнительных параметров не нужно для базового подключения. Провайдер выдаёт готовую строку — скопировал, вставил, рестартанул softcam.
Проверка через webif и логи
После рестарта softcam'а открываешь webif сервера на http://server-ip:8888. Раздел "Status" показывает активные клиенты. Раздел "Readers" — состояние карты. Если reader в статусе CONNECTED и видны ECM-запросы с временем ответа 200–400 мс — всё работает.
ECM time больше 500 мс — начинай искать причину. Больше 1000 мс — фризы гарантированы.
Типичные проблемы и диагностика
Чёрный экран после переключения канала
Первым делом проверяй C-line: правильный хост, порт, логин/пароль. Потом смотри firewall — возможно порт закрыт на сервере или у провайдера. Потом — поддерживается ли CAID данного канала вашей картой.
В логах OScam ищи строки вида:
2026/04/15 14:23:01 c client1 (192.168.1.10) [cccam] CAID: 0500 ECM failed (no decoding card)
"No decoding card" = карта не поддерживает этот CAID или пакет не оплачен.
Долгий ECM time (>1000ms)
Причин несколько: высокий пинг до сервера, перегруженный сервер (слишком много клиентов на одну карту), медленный канал между ридером и картой. Проверяй пинг: ping server-ip. Для России нормально — EU-сервер с пингом 40–80 мс. Больше 150 мс — ищи сервер ближе.
ECM cache помогает: если несколько клиентов смотрят один канал, сервер кэширует DCW и не гоняет каждый ECM до карты. Настраивается в oscam.conf через [cache] секцию. Ночью на HD-каналах битрейт может расти, ECM time падает — это нормально при включённом кэше.
Freeze на HD-каналах
HD требует стабильного DCW без пропусков. Если ECM не успевает до смены слова — 1–2 секунды артефактов или полный freeze. Попробуй переключиться с CCcam на NewCamd: TCP с подтверждением доставки надёжнее при нестабильном соединении. Также проверь MTU на маршруте — иногда помогает ping -M do -s 1400 server-ip.
Reader status: CONNECTED но нет DCW
Клиент подключился, но ответов нет. Проверь в oscam.user что у пользователя правильный group, совпадающий с group reader-секции в oscam.server. Несовпадение группы — самая частая причина этой ситуации.
Логи: где смотреть и что искать
tail -f /var/log/oscam/oscam.log | grep -E "dcw|ecm|timeout|CAID"
Строки с "ecm time" показывают реальный delay. Строки "dcw" — успешную выдачу. "ecm timeout" — карта не ответила в time. "NEEDINIT" — карта зависла, нужен рестарт pcscd.
Если logfile не задан в [global] — логи идут в stdout, смотри через journalctl -u oscam -f.
На что смотреть при выборе сервера-провайдера
Аптайм и стабильность ECM time
Нормальный провайдер декларирует аптайм >99% и средний ECM time <500 мс. Запрашивай статистику или тестируй самостоятельно: хороший провайдер даёт тестовый доступ на 24–48 часов без оплаты. Если тест не дают — красный флаг.
Во время теста смотри ECM time через webif OScam или логи. Стабильность важнее среднего значения: ECM 300 мс стабильно лучше, чем 150 мс со спайками до 2000 мс.
Поддерживаемые CAID и пакеты
CAID — идентификатор системы условного доступа. Nagravision — 1800, Viaccess — 0500, Irdeto — 0600, Conax — 0B00, Cryptoworks — 0D00. Убедись что провайдер поддерживает нужный тебе CAID для конкретного спутникового пакета. Провайдеры без чёткого списка CAID в описании — подозрительны.
Тестовый период
Серьёзный сервис всегда даёт тест. 24 часа минимум, 48 лучше. За это время можно проверить стабильность на проблемных каналах (HD, 4K если есть), ECM time в разное время суток и поведение при переключении между каналами разных CAID.
Локация сервера и пинг до вас
Для пользователей из России — EU-локации (Германия, Нидерланды, Франция) дают пинг 40–80 мс. Это приемлемо. Серверы в Азии или США для спутниковых пакетов Astra/Hotbird смысла нет — латентность убьёт стабильность. Проверяй пинг до сервера перед подпиской: ping server-hostname.
Поддержка протокола (CCcam vs NewCamd)
Если ресивер старый и поддерживает только CCcam — нужен провайдер с CCcam-портом. Большинство современных серверов на OScam отдают и CCcam, и NewCamd. Уточни заранее — некоторые дают только один протокол. Красные флаги: очень низкая цена без объяснений, нет описания CAID, поддержка только через общий чат без тикет-системы, отказ давать тестовый доступ.
Чем CCcam отличается от OScam?
CCcam — проприетарный закрытый бинарник, последняя версия 2.3.2, не обновляется. Простой конфиг через C-line. OScam — open-source проект с активной разработкой в SVN, поддерживает одновременно CCcam, NewCamd, Camd35, Radegast, Radegast на разных портах. Конфигурация раздельная: oscam.conf, oscam.server, oscam.user. Для сервера в 2026 рекомендуется только OScam — CCcam больше не получает обновлений безопасности.
Какие порты использует card sharing по умолчанию?
CCcam — TCP 12000. NewCamd / CS378x — TCP 15000. Camd35 — UDP 5000. Radegast — TCP 6500. Веб-интерфейс OScam — TCP 8888. Все порты настраиваются в конфигах, но стандартные значения — выше. Если на машине одновременно запущены OScam и CCcam — меняй порты чтобы избежать конфликта.
Что такое ECM time и какое значение нормальное?
ECM time — время от отправки ECM-запроса клиентом до получения DCW обратно. Норма: до 300 мс для HD-каналов, до 500 мс для SD. Значения 500–1000 мс — приемлемо, но на границе. Больше 1000 мс — гарантированные фризы. На ECM time влияют: пинг до сервера, нагрузка на сервер, скорость самой смарт-карты, наличие ECM-кэша.
Можно ли запустить сервер на Raspberry Pi?
Да, без проблем. Raspberry Pi 4 с Debian/Raspbian тянет OScam с одной-двумя смарт-картами через USB PC/SC ридер. Под 5–10 одновременных клиентов Pi 4 4GB хватает с запасом. Если клиентов больше 20–30 — смотри в сторону x86-сервера или VPS. OScam под ARM собирается стандартной командой cmake, никаких особых флагов не нужно.
Что такое C-line и где её взять?
C-line — строка подключения клиента в формате C: hostname port username password. Записывается в /etc/CCcam.cfg на стороне клиента. Выдаётся провайдером сервера вместе с учётными данными, либо создаётся при peer-to-peer обмене. Для OScam-клиента те же данные (хост, порт, логин, пароль) вписываются в секцию [reader] файла oscam.server с protocol=cccam.
Почему после переключения канала чёрный экран на 5–10 секунд?
Это нормальная задержка зэппинга: ресивер формирует ECM для нового канала, отправляет на сервер, сервер идёт к карте, карта возвращает DCW. Весь цикл занимает 2–5 секунд. Если задержка больше 15 секунд или экран не появляется вообще — смотри логи OScam, проверяй ECM time, убедись что CAID канала поддерживается твоей картой и нет проблем с firewall.
Можно ли использовать card sharing без подписки на оригинальный пакет?
Технически нет — без активной смарт-карты на стороне сервера DCW генерировать нечем. Карта должна быть авторизована провайдером на нужные пакеты. С юридической точки зрения это серая зона: в одних странах использование чужого DCW считается нарушением договора с провайдером, в других — прямым нарушением закона. Зависит от юрисдикции.
Practical checklist for smooth viewing
Even the best CCCam or OSCam line needs two or three simple preparations. Update your receiver firmware, reset the ECM cache once a week and keep 15–20% free space on the USB stick or internal flash so that the reader can store keys without delays.
When tuning a dish, aim for MER/BER reserve: a two‑degree offset or a loose F‑connector often causes the “freezing” that users blame on cardsharing. Keep a short patch cord to test alternative routers, and save two profiles in OSCam — one for TCP, one for UDP — so you can switch instantly if your ISP starts filtering a protocol.
Utgard.tv monitors each hub 24/7, but you can speed up diagnostics by keeping a short log of your receiver actions. Note the time when you changed the channel, which CAID was active and whether you used Wi‑Fi or Ethernet. This tiny “journal” helps engineers reproduce your environment in the lab and return with a solution in minutes instead of hours.
- Keep two line slots enabled: if the first server hits a maintenance window, the second one instantly takes over without re-entering credentials.
- Run a monthly speed and latency test. Stable 1–2 Mbps with ping <80 ms is enough for SD/HD, but if jitter exceeds 20 ms, switch the router to wired mode.
- Save the Utgard.tv status page and Telegram bot @utgard_tv_bot to bookmarks — they publish maintenance notices before SEMrush or uptime monitors raise alerts.