Cardsharing: что это, как работает CCcam и OScam в 2026

Если у вас есть спутниковый ресивер и вы хоть раз слышали слово cardsharing — скорее всего, вы уже знаете что это как-то связано со смарт-картами и расшифровкой каналов. Но большинство объяснений в интернете останавливаются на «клиент подключается к серверу и получает доступ к каналам». Это примерно как объяснять как работает двигатель словами «бензин горит, колёса крутятся». Здесь разберём всё нормально — от ECM-пакета до конфига OScam.

Что такое cardsharing и как это работает технически

Спутниковый сигнал приходит к ресиверу зашифрованным. Оператор (Viasat, Sky, какой угодно) шифрует видеопоток через CAS — Conditional Access System. Без правильного ключа ресивер видит мусор вместо картинки. Смарт-карта содержит этот ключ, но она не хранит его статично — она его вычисляет на лету по специальному алгоритму.

Вот тут и начинается интересное.

Принцип работы: ECM, CW и DCW пакеты

Зашифрованный DVB-поток содержит специальные пакеты — ECM (Entitlement Control Message). В них зашифрован Control Word — CW, он же DCW (Decrypted Control Word после расшифровки). Именно CW используется для расшифровки видео в конкретный момент времени.

Проблема: CW меняется каждые 7–10 секунд. Это называется crypto period. Оператор специально делает это так, чтобы ключ не утёк навсегда — даже если кто-то его перехватит, через 10 секунд он уже не работает.

При cardsharing ресивер-клиент вытаскивает ECM из потока и отправляет его по TCP на удалённый сервер. Там этот ECM скармливается физической смарт-карте. Карта расшифровывает его и возвращает CW. Сервер отправляет CW обратно клиенту. Ресивер использует CW для расшифровки видео. Всё это должно происходить быстрее, чем пройдёт crypto period — то есть быстрее 7–10 секунд. На практике нужен запас: ответ сервера должен приходить за 300 мс или меньше.

Роль смарт-карты и CAS (Conditional Access System)

Смарт-карта — это не просто хранилище данных. Это криптографический процессор. Она принимает ECM, проверяет свои entitlements (права на пакеты каналов) и, если всё ок, вычисляет CW. Без физической карты с активной подпиской — ничего не работает.

CAS бывают разные, и это важно. Nagravision (Nagra 2/3) используется у Viasat, Tricolor. Viaccess — Canal+, некоторые французские операторы. Irdeto — Cyfrowy Polsat, многие кабельные. Conax — скандинавские операторы. BISS — упрощённая система без смарт-карт, ключ фиксированный. У каждой CAS своя структура ECM и свой алгоритм. OScam поддерживает их все, но reader надо настраивать с правильным CAID.

CAID — это четырёхзначный hex-идентификатор CAS. Nagravision — 0x1800/0x1801, Viaccess — 0x0500, Irdeto — 0x0600, Conax — 0x0B00. Когда настраиваете reader в oscam.server, прописываете именно CAID вашей карты.

Архитектура клиент-сервер: кто запрашивает, кто отвечает

Сервер — это машина с физическими смарт-картами (или CI-модулем с картой) и запущенным OScam или CCcam. Клиент — ваш ресивер с softcam-плагином. Клиент устанавливает TCP-соединение к серверу, аутентифицируется (username/password), и начинает слать ECM-запросы.

На сервере OScam каждый запрос идёт к reader — это либо физическая карта через PCSC-ридер (USB, например Omnikey 3121), либо виртуальный reader на другой cardsharing-сервер выше. Ответ приходит обратно и отдаётся клиенту.

Задержка (zapping time) и почему она критична

Zapping time — время от момента переключения канала до появления картинки. Складывается из: время на извлечение ECM из потока (миллисекунды), время передачи на сервер (зависит от пинга), время обработки картой (зависит от нагрузки на ридер), время обратной передачи. Итого: при пинге 50 мс до сервера — заппинг будет 200–400 мс. При пинге 200 мс — уже секунда и более.

Если сервер перегружен и обрабатывает ECM дольше crypto period — ресивер не успевает получить CW до смены ключа. Результат: фризы каждые 7–10 секунд. Это самая типичная жалоба у новичков.

Протоколы CCcam и OScam: в чём разница

На уровне железа и карт разницы нет — ECM всё равно идёт к физической карте. Разница в том, как именно клиент и сервер обмениваются данными. И тут выбор протокола реально влияет на удобство настройки и диагностики.

CCcam: закрытый протокол, формат строки C-line

CCcam — старый стандарт де-факто, появившийся в 2000-х. Протокол бинарный, закрытый, работает поверх TCP. Стандартный порт — 12000, хотя встречаются серверы на 10000–19999. Строка подключения (C-line) выглядит так:

C: my.server.com 12000 username password

Всё просто. Одна строка в файл /etc/CCcam.cfg — и клиент пробует подключиться. Именно за эту простоту CCcam до сих пор живёт. Но у него есть проблемы: закрытый код значит нет нормального логирования, нет гибкой настройки приоритетов ридеров, нет cache exchange.

OScam: open-source, гибкая конфигурация oscam.server и oscam.user

OScam поддерживает одновременно несколько протоколов через отдельные секции в конфиге. Нужен CCcam-сервер? Добавляете секцию [cccam]. Нужен NewCamd? Добавляете [newcamd]. Один экземпляр OScam обслуживает всё сразу.

Эквивалент той же C-line в формате OScam — это reader в файле /etc/oscam/oscam.server:

[reader]
label        = my_cccam_server
protocol     = cccam
device       = my.server.com,12000
user         = username
password     = password
caid         = 1800
ident        = 1800:000000
group        = 1
reconnecttimeout = 30

Это verbosity, конечно, больше. Зато в oscam webif (порт 8888) видно всё: статус соединения, время ответа, количество запросов, ошибки. С CCcam — только «работает/не работает» через CCcam Info на ресивере.

OScam также поддерживает cache exchange (CSP) — серверы делятся уже расшифрованными CW через UDP, снижая нагрузку на физические карты. При большом количестве клиентов это серьёзно разгружает ридер.

MGcamd, NewCamd, CamD35 — когда что использовать

NewCamd — порт 15000 по умолчанию, использует DES-ключ для авторизации. Строка N-line в CCcam.cfg: N: host 15000 user pass deskey. Старый протокол, но встречается у многих провайдеров.

CamD35 — UDP, порт 35000. Быстрый, но UDP — нет гарантии доставки. В нестабильных сетях даёт проблемы.

MGcamd — отдельный softcam для Enigma2, использует NewCamd или cs378x протоколы. Проще в настройке для некоторых приставок, но менее гибкий чем OScam.

Если сервер поддерживает несколько протоколов — выбирайте CCcam или NewCamd в зависимости от того, что стабильнее работает с вашим ресивером. OScam умеет всё.

Совместимость протоколов между сервером и клиентом

Клиент и сервер должны говорить на одном протоколе. Если сервер отдаёт только CCcam — клиент должен подключаться по CCcam. Несовпадение версий тоже бывает проблемой: клиент CCcam 2.3.0 иногда не работает с сервером 2.3.2 из-за различий в handshake. OScam на серверной стороне обычно совместим с любым CCcam-клиентом, потому что разработчики отслеживают изменения протокола.

Базовая настройка сервера OScam: с чего начать

OScam читает конфиги из /usr/local/etc/ (если собирали из исходников) или /var/etc/oscam/ (на Enigma2-приставках). На Debian/Ubuntu после установки через apt — обычно /etc/oscam/. Конфигурация разделена на несколько файлов, каждый отвечает за своё.

Структура конфигов: oscam.conf, oscam.server, oscam.user, oscam.dvbapi

  • oscam.conf — глобальные настройки, логирование, секции протоколов ([cccam], [newcamd], [webif])
  • oscam.server — описание ридеров (физические карты, удалённые серверы)
  • oscam.user — пользователи, которые подключаются к вашему серверу
  • oscam.dvbapi — маппинг для прямой работы с тюнером DVB-API (если OScam одновременно и клиент, и сервер на одной приставке)

Минимальный oscam.conf для сервера с CCcam-интерфейсом:

[global]
logfile       = /var/log/oscam/oscam.log
loglevel      = 2
maxlogsize    = 1000
preferlocalcards = 1

[webif]
httpport      = 8888
httpuser      = admin
httppwd       = strongpassword
httprefresh   = 5

[cccam]
port          = 12000
version       = 2.3.2
reshare       = 0
stealth       = 1

stealth = 1 скрывает информацию о картах от клиентов — они не видят что конкретно у вас есть. reshare = 0 запрещает клиентам пересылать ключи дальше.

Открытие портов и настройка [cccam] секции

Порт 12000 должен быть открыт на фаерволе. На Linux с iptables:

iptables -A INPUT -p tcp --dport 12000 -j ACCEPT
iptables -A INPUT -p tcp --dport 8888 -j ACCEPT

Если сервер за NAT (роутер дома) — нужен проброс портов в настройках роутера. При CGNAT провайдера (это когда у вас нет белого IP) — проброс не поможет, нужен reverse-туннель через VPS. Например, autossh с remote forward или WireGuard. Это отдельная история, но важно понимать: без публичного IP входящие подключения не придут.

Настройка reader для физической смарт-карты

Физическая карта через PCSC-ридер (USB Omnikey 3121, ACS ACR38, и т.д.) описывается в oscam.server:

[reader]
label         = local_nagra
protocol      = pcsc
device        = 0
caid          = 1800
ident         = 1800:000000
group         = 1
fallback      = 0
mhz           = 357
cardmhz       = 357
detect        = cd
services      = mypackage

device = 0 — первый PCSC-ридер в системе. mhz = 357 — тактовая частота ридера (3.57 МГц стандартная). Для Nagra иногда нужно mhz = 600. Если карта не отвечает — попробуйте разные значения.

Привязка пользователей через oscam.user с AU и CAID фильтрами

Файл oscam.user — права 600 (chmod 600 /etc/oscam/oscam.user), иначе OScam может отказать в запуске:

[account]
user         = client1
pwd          = secretpass
group        = 1
au           = 1
caid         = 1800
ident        = 1800:000000
maxconnections = 1
uniq         = 1

au = 1 включает авто-обновление entitlements (AU) — OScam будет передавать EMM-пакеты к карте, что нужно для автоматического обновления подписки при смене ключей оператором. uniq = 1 запрещает одновременный вход с одним логином с разных IP.

Запуск через systemd: создайте /etc/systemd/system/oscam.service, enable + start. В journalctl -u oscam сразу видны все ошибки запуска.

Настройка клиента: Enigma2, OpenATV, Dreambox

Большинство современных ресиверов на базе Enigma2 — это Vu+, Dreambox, Octagon, GigaBlue. Все они работают с одинаковыми плагинами, отличается только способ установки.

Установка OScam или CCcam через feed или ipk

Через OpenBH, OpenATV или VTi feeds OScam ставится через Plugins → Feed. Или вручную: скачиваете oscam_*.ipk, копируете на приставку через FTP/SCP, ставите через opkg install oscam_*.ipk. CCcam ставится аналогично, но как бинарник в /usr/bin/CCcam.

На Enigma2 конфиги лежат в /etc/: CCcam.cfg — там же, oscam — в /etc/tuxbox/config/oscam/ или /usr/keys/ в зависимости от дистрибутива. Лучше проверить через find /etc -name "oscam.conf" 2>/dev/null.

Конфигурация CCcam.cfg: C-line, F-line, N-line

Файл /etc/CCcam.cfg — простой текст:

# Подключение к cardsharing серверу по CCcam
C: server.example.com 12000 myuser mypassword

# Подключение по NewCamd (если сервер поддерживает)
N: server.example.com 15000 myuser mypassword 01 02 03 04 05 06 07 08 09 10 11 12 13 14

# Reshare — отдавать ли карты другим клиентам (0 = нет)
RESHARE: 0

DES-ключ в N-line (14 байт через пробел) предоставляется провайдером вместе с данными подключения. Если сервер использует стандартный ключ — обычно это 14 нулей или значение из документации провайдера.

Привязка к dvbapi для работы с тюнером

Если OScam работает прямо на ресивере (не как клиент к удалённому серверу, а как standalone декодировщик) — нужен oscam.dvbapi. Он говорит OScam какой тюнер использовать и как маппить CAID на reader:

[dvbapi]
enabled       = 1
au            = 1
boxtype       = dreambox
user          = dvbapi_user
pmt_mode      = 0

В oscam.user создаётся пользователь dvbapi_user без пароля, группа 1. Этот механизм позволяет Enigma2-приставке использовать OScam для декодирования вообще без внешнего сервера — только локальная карта через PCSC.

Проверка через CS Info / Webif что соединение активно

На ресивере: нажать синюю кнопку → SoftCam Panel → CCcam/OScam Info. Должно показывать:

  • ECM time в миллисекундах — норма <300 мс
  • Hop count — 1 лучше чем 2, 2 лучше чем 3
  • Cards — количество >0

На сервере OScam через браузер: http://server-ip:8888 → Status → видно активных клиентов, Readers → статус каждого ридера, время ответа, количество обработанных ECM.

Типичные ошибки и troubleshooting

Большинство проблем при настройке cardsharing — одни и те же. Вот что реально встречается и как с этим разбираться.

Ошибка no providers / no entitlement

В логах OScam: NO_ENTITLEMENT или REJECTED для конкретного CAID. Это значит карта физически на сервере есть и работает, но у неё нет подписки на запрошенный пакет.

Проверка: в OScam webif → Readers → выбираете ваш reader → Entitlements. Там список пакетов с датами истечения. Если нужного пакета нет — проблема не в настройке, а в подписке карты.

Другой вариант: неверный ident в oscam.server. Ident — это комбинация CAID и provider ID (например 1800:001234). Если прописан не тот ident — OScam не будет слать ECM этому ридеру. Попробуйте убрать ident вообще или поставить 1800:000000 (wildcard).

Freezing каналов через 7-10 секунд

Это ровно crypto period — ресивер не успевает получить новый CW. Диагностика по шагам:

  1. Проверьте ECM time в SoftCam Info — если >500 мс, причина в задержке
  2. Пинг до сервера: ping server.example.com — должно быть <100 мс
  3. Посмотрите логи сервера с повышенным уровнем: в oscam.conf установите loglevel = 4, перезапустите, смотрите cat /tmp/.oscam/oscam.log | grep ECM
  4. Проверьте нагрузку на PCSC-ридер — если к одному ридеру подключено 50+ клиентов, карта физически не успевает обрабатывать все запросы

Если пинг нормальный, а фризы есть — возможно проблема в AU. При смене ключей оператором (key change) карта временно не отвечает на ECM, пока не обновит entitlements через EMM. Убедитесь что au = 1 в oscam.user и reader настроен на получение EMM.

Сервер виден, но 0 cards в CCcam Info

Соединение установлено (в OScam webif виден клиент), но карты не шарятся. Причины:

  • reshare = 0 в секции [cccam] — сервер намеренно не шарит карты. Если вы настраиваете собственный сервер — поставьте reshare = 1
  • Несовпадение версии CCcam в handshake — попробуйте изменить version в [cccam] на 2.3.0 или 2.1.4
  • Firewall блокирует обратный поток данных — TCPсоединение устанавливается в одну сторону, но данные не идут обратно. Проверьте: tcpdump -i eth0 port 12000 -n — должны видеть пакеты в обе стороны

Проверка подключения с сервера: journalctl -u oscam -f — должна быть строка login user=username ...ACCEPTED без REJECTED.

Высокий ECM time и зависания при переключении

ECM time 1000+ мс — плохо. Диагностика:

# Пинг и потери пакетов
ping -c 100 server.example.com | tail -3

# Трассировка с потерями
mtr server.example.com

# Прослушивание трафика на порту cardsharing
tcpdump -i eth0 port 12000 -nn

Если потери пакетов >1% — проблема в сети. Если пинг стабильный, но ECM time высокий — возможно сервер перегружен или у него медленный PCSC-ридер. Спросите провайдера сколько клиентов висит на вашей карте.

При работе cardsharing через VPN ECM time автоматически растёт на оверхед туннеля — обычно +20–80 мс. При использовании Tor — вообще забудьте, задержки в секунды. WireGuard добавляет минимум, OpenVPN — больше. Если VPN нужен для обхода CGNAT — выбирайте WireGuard.

Критерии выбора надёжного сервера

Здесь не будет названий конкретных провайдеров. Зато объясню что реально важно — и почему большинство объявлений в стиле «все пакеты мира за $5/мес» это физически невозможно.

Аптайм и стабильность как ключевой параметр

Аптайм <99% за месяц — это уже >7 часов даунтайма. Для cardsharing это значит 7 часов зашифрованных каналов. Хороший провайдер показывает график мониторинга (UptimeRobot, Hetrix Tools) за последние 30 дней. Если графика нет — это не обязательно плохо, но попросите его показать. Если не покажут — насторожитесь.

Стабильность важнее скорости. Сервер с ECM time 200 мс и аптаймом 99.9% лучше чем сервер с ECM time 80 мс и аптаймом 95%.

Локальные карты (local cards) vs реселлерские пакеты

Это самый недообъяснённый момент. У провайдера может быть два типа карт:

  • Local cards — карты физически в серверной провайдера, hop 1. Надёжно, провайдер контролирует весь путь ECM.
  • Реселлерские пакеты — провайдер сам подключается к другому серверу выше. У вас hop 2 или больше. Добавляется задержка и зависимость от чужой стабильности.

Спрашивайте напрямую: «у вас local cards для [нужный пакет]?». Если уклончиво отвечают — скорее всего реселлер.

Hop count и его влияние на скорость

Hop показывает длину цепочки от вашего ресивера до физической смарт-карты. Hop 1: ваш ресивер → сервер провайдера → физическая карта. Hop 2: ваш ресивер → сервер провайдера → другой сервер → карта. Hop 3+: ещё одно звено.

Каждый дополнительный hop — это дополнительный TCP-переход (+20–100 мс) и дополнительная точка отказа. При hop 3 отказ любого из трёх серверов в цепочке роняет ваше соединение. На практике: hop 1 нормально, hop 2 приемлемо для некритичных пакетов, hop 3+ — нестабильно для HD-каналов с коротким crypto period.

Тестовый период и возврат средств

Нормальный провайдер даёт тестовый аккаунт на 24–48 часов бесплатно. За это время реально проверить: ECM time, стабильность в прайм-тайм (нагрузка вечером выше), доступность нужных каналов. Если тестового периода нет — это риск. Если предлагают только платный тест — странно.

Возврат средств при несоответствии обещанного — дополнительный плюс. Но проверяйте условия заранее, не после оплаты.

В чём разница между CCcam и OScam простыми словами

CCcam — старый закрытый протокол. Плюс: просто настроить (одна строка C-line). Минус: закрытый код, слабое логирование, не развивается. OScam — open-source, поддерживает одновременно CCcam, NewCamd, CamD35, Radegast и другие протоколы. Лучшее логирование, поддержка cache exchange, работа с PCSC напрямую. Для нового сервера берите OScam. CCcam оставьте для совместимости со старыми клиентами, которые не умеют иначе.

Какой порт используется для cardsharing по умолчанию

CCcam — TCP 12000 (диапазон 10000–19999 на разных серверах). NewCamd — TCP 15000. CamD35 — UDP 35000. OScam webif — TCP 8888. Все порты настраиваются в oscam.conf и CCcam.cfg. Рекомендуется менять дефолтные значения — боты постоянно сканируют 12000 и 15000 в поисках открытых серверов.

Почему каналы фризят каждые 7-10 секунд

Это интервал смены ECM (crypto period). Ресивер не получил новый CW вовремя и потерял поток. Причины: высокий пинг до сервера (>100 мс), перегруженный PCSC-ридер, неверный CAID в настройках, проблема с reader на стороне сервера. Проверьте ECM time в SoftCam Info — норма <300 мс. Если 500 мс и выше — ищите сервер ближе географически или с меньшей нагрузкой.

Что такое hop 1, hop 2 и почему это важно

Hop — количество серверов в цепочке между вашим ресивером и физической смарт-картой. Hop 1: карта прямо у провайдера. Hop 2: провайдер сам берёт у кого-то другого. Hop 3+: цепочка перепродаж. Больше hopов = больше задержка + больше точек отказа. Для HD-пакетов с коротким crypto period (7 сек) hop 3 и выше будет давать регулярные фризы. Для SD с длинным периодом — может работать нормально.

Можно ли использовать одну подписку на нескольких ресиверах

Обычно одна C-line привязана к одному активному соединению. Одновременный вход с двух IP часто блокируется (параметр uniq = 1 в oscam.user). Решение для домашнего использования: один ресивер ставите как OScam-сервер в локальной сети, остальные подключаются к нему как клиенты внутри LAN. Внешнее соединение — одно, клиентов внутри — сколько хотите (в разумных пределах производительности ридера). Или докупаете дополнительные подключения у провайдера.

Как проверить что сервер cardsharing действительно работает

На клиенте: SoftCam Panel → CCcam/OScam Info. Должны видеть hop count, ECM time, Cards >0. Если Cards = 0 — соединение есть, но карты не отдаются (проблема с reshare или версией). На сервере OScam: webif → Status → активные клиенты, Readers — статус CONNECTED с временем ответа. В логах не должно быть строк REJECTED или login failed. Реально рабочий канал — это ECM time <300 мс и картинка без фризов в течение 5+ минут.

Какие требования к серверу для домашнего cardsharing

Минимум: Raspberry Pi 3 или 4 (Pi Zero тоже работает, но с запасом лучше Pi 3), любой Linux (Raspbian, Debian), стабильный интернет от 5 Мбит с пингом до клиентов <50 мс, PCSC-ридер для физической карты (Omnikey 3121 — стандартный выбор, стоит около $30), статический IP или DDNS-сервис. CPU-нагрузка от OScam минимальная — даже 50 клиентов на Pi 3 держатся нормально. Узкое место — скорость PCSC-ридера и физической карты, не CPU.

Практические советы для стабильного просмотра

Даже самая стабильная линия 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_tv_bot — там появляются уведомления о работах раньше, чем успеют среагировать SEMrush или внешние мониторы.