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