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.
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.