Содержание статьи +
- TL;DR
- Почему это важно
- Что такое FairPlay Streaming на самом деле
- Протокол на проводе: SPC и CKC
- HLS-манифест: как FairPlay живёт внутри `.m3u8`
- Persistent-лицензии и оффлайн-воспроизведение
- Миграция на SDK 26
- Где FairPlay стоит рядом с Widevine и PlayReady
- Числовой пример: пропускная способность лицензионного сервера
- Типичные ошибки (и как их поймать до продакшена)
- Где здесь Фора Софт
- Ключевые выводы
- Что почитать дальше
- CTA
TL;DR
FairPlay Streaming, сокращённо FPS, – это система управления цифровыми правами (Digital Rights Management, DRM) от Apple, единственный DRM, поддерживаемый Safari, iOS, iPadOS, tvOS, watchOS и visionOS. Доставить премиальное видео на устройство Apple без FPS физически невозможно. Под капотом FPS шифрует ваш контент HLS по AES-128 в режиме CBC с использованием схемы cbcs стандарта ISO/IEC 23001-7 Common Encryption, а затем выполняет двухэтапный обмен ключами: устройство отправляет на ваш лицензионный сервер блоб Server Playback Context (SPC), сервер возвращает блоб Content Key Context (CKC) с контент-ключом, который никогда не покидает Secure Enclave на современных устройствах. В 2026 году система прошла третью крупную ревизию: Apple FairPlay Streaming Server SDK 26, анонсированный на WWDC 2025 и ставший обязательным с сентября 2026 года, переводит сертификаты с RSA-1024 на RSA-2048, вводит SPC v3 с обязательной защитой целостности и ставит всех операторов, использующих SDK 4 или SDK 5, на план миграции. Эта статья объясняет, как система работает на уровне протокола, почему cbcs наконец сделал мульти-DRM экономически целесообразным, что именно требует миграция на SDK 26 и какое место FPS занимает рядом с Widevine и PlayReady в связке из двух или трёх DRM, к которой приходит любой стриминговый продукт.
Почему это важно
Если вы продаёте платное видео и среди ваших зрителей есть хотя бы один iPhone, вы обязаны использовать FairPlay Streaming. Safari не поддерживает Widevine Content Decryption Module, tvOS не распознаёт PlayReady, а нативный плеер iOS работает только с одним DRM – FPS. После прочтения этой статьи продакт-менеджер поймёт, почему «у нас есть Widevine» – это недостаточно для запуска OTT-платформы, и как процесс одобрения сертификата Apple влияет на график релиза: ревью может длиться две недели и более – это норма 2026 года. Инженер получит конкретные инструменты: проводной синтаксис EXT-X-KEY, строку keySystem для EME в Safari, API AVFoundation для iOS-приложения и четыре продакшен-бага, которые проявляются за неделю до запуска. Основатель, оценивающий риски пиратства, получит обоснованный ответ на вопрос: «FPS надёжнее Widevine L1?» – краткая версия: структурно – да, потому что ключи хранятся в Apple Secure Enclave на любом устройстве с чипом серии A или M, а Apple никогда публично не раскрывала уровни защиты, как это делает Google с L1/L2/L3; устройство либо поддерживает FPS, либо нет, и те, что поддерживают, используют ту же кремниевую подсистему, что и Apple Pay.
Эта статья – третья из четырёх частей серии о DRM: DRM 101: почему три системы и почему вы ставите все три – это основа, Common Encryption (CENC) подробно – уровень упаковки, Widevine: L1, L2, L3 – сторона Google, а PlayReady подробно – сторона Microsoft. Эта статья – про Apple.
Что такое FairPlay Streaming на самом деле
До форматов на проводе – определение. FairPlay Streaming – это протокол Key Server Module (KSM), клиентский SDK и процесс получения деплой-сертификата. KSM – это компонент, который вы разрабатываете и поддерживаете самостоятельно: он размещается за вашим существующим лицензионным эндпоинтом и взаимодействует по протоколу запросов/ответов FPS. Клиентский SDK – это программный модуль, который Apple интегрирует в каждую свою операционную систему; вы не устанавливаете его самостоятельно, как, например, веб-страница встраивает Widevine CDM. Деплой-сертификат – это документ, который Apple выдаёт вашей команде после ручной проверки вашего стриминг-сервиса.
Из такой конструкции вытекают три ключевых аспекта, определяющих каждое решение в жанре FPS, которое примет ваша команда.
Во-первых, FPS-клиент – часть операционной системы, а не часть вашего приложения или веб-страницы. В вебе FairPlay Content Decryption Module (CDM) встроен в Safari и доступен только через вызов W3C Encrypted Media Extensions (EME) requestMediaKeySystemAccess со строкой key-system com.apple.fps.1_0 (старые варианты com.apple.fps.2_0, com.apple.fps.3_0 и неверсионированная com.apple.fps существуют для разных ревизий протокола; версионированная форма – продакшен-дефолт). В нативном приложении iOS или tvOS вы дотягиваетесь до FPS через AVContentKeySession – класс Foundation, появившийся в iOS 11 и заменивший старый путь через AVAssetResourceLoaderDelegate. В обоих случаях фактическая криптография происходит внутри кремния Apple, до которого ваш код не доходит.
Во-вторых, Apple не раскрывает уровни безопасности устройств. Google делит устройства Widevine на L1, L2 и L3 – см. нашу статью Widevine: L1, L2, L3. Apple такой практики не придерживается. Устройство либо поддерживает FPS, либо нет, и все поддерживающие устройства используют одинаковую модель доверия: ключи хранятся в Secure Enclave (выделенном сопроцессоре, где также находятся токены Apple Pay и шаблоны Touch ID / Face ID), расшифровка сэмплов происходит на уровне аппаратного обеспечения, а декодированные кадры передаются на дисплей через закрытый путь CoreMedia от Apple. «FPS L3», работающий в оперативной памяти, как desktop Chrome с Widevine L3, не существует. Именно поэтому контент, защищённый FPS, транслируется в 4K HDR на Mac, тогда как Widevine в Chrome на том же Mac ограничивается разрешением 720p.
В-третьих, деплой-сертификат требует ручного одобрения Apple. Вы подаёте заявку через портал FairPlay Streaming credentials, Apple проверяет ваш стриминг-сервис, и только после этого ваша команда получает доступ к созданию сертификата в Apple Developer Portal. Каждая команда может иметь не более двух FPS-сертификатов одновременно, и с сентября 2026 года Apple не выдаст новый SDK 26-сертификат, пока один из этих слотов не освободится. Apple Developer Forums полны жалоб 2025 года на ревью, длящимся более двух с половиной недель; закладывайте это в календарь релиза заранее – не пытайтесь пробежать впритык.
Протокол на проводе: SPC и CKC
Запрос FairPlay-лицензии представляет собой обмен двумя сообщениями. С точки зрения плеера оба сообщения – непрозрачные бинарные данные; их содержимое понимают только ваш Key Server Module и FPS CDM устройства. Документ FairPlay Streaming Overview (публичный PDF от Apple, на который опирается любая реализация) описывает имена сообщений и общую структуру; детальная побайтовая грамматика содержится в FairPlay Streaming Server SDK, распространяемом по NDA.
Сообщение 1 – Server Playback Context (SPC). Когда плеер сталкивается с зашифрованным сегментом, он запрашивает у FPS CDM сгенерировать SPC. CDM собирает идентификатор ключа контента (KID, передаваемый в теге EXT-X-KEY – об этом подробнее ниже), 16-байтный анти-реплей-нонс, хеш целостности тела SPC, идентификационный пейлоад устройства и сессионный ключ, после чего шифрует весь набор открытым ключом из вашего FPS-сертификата. Полученный зашифрованный результат и есть SPC. Плеер кодирует его в base64 и отправляет POST-запросом на ваш лицензионный URL.
Сообщение 2 – Content Key Context (CKC). Ваш модуль Key Server получает SPC, расшифровывает его с помощью своего закрытого ключа (половина FPS-сертификата, которой Apple не обладает) и использует Apple SDK для дальнейшей обработки.
- Проверяет хеш целостности SPC и nonce на соответствие вашему окну защиты от повторов.
- Извлекает запрошенный KID и находит соответствующий контент-ключ в вашей базе данных.
- Применяет бизнес-правила: авторизован ли пользователь, разрешена ли политика контента для данного класса устройств, не истёк ли срок аренды, находится ли пользователь в разрешённой географической зоне.
- Если все проверки пройдены, SDK запрашивает обёртывание контент-ключа (вместе с опциональными параметрами аренды и принудительного HDCP) в CKC, зашифрованный сессионным ключом, полученным вместе с SPC.
CKC возвращается к плееру, плеер передаёт его FPS CDM, CDM раскрывает контент-ключ внутри Secure Enclave, и начинается расшифровка. Ключ никогда не появляется в обычной памяти приложения – ни в процессе браузера, ни в адресном пространстве вашего iOS-приложения, ни на шине GPU.
Самое полезное предложение в этой статье – следующее. KSM никогда не видит контент-ключ в открытом виде на пути к устройству. Ваш KSM хранит контент-ключ в открытом виде (вы зашифровали им видео на этапе упаковки), но при передаче отдаёт его SDK Apple, и SDK оборачивает ключ сессионным, per-session, per-device ключом, прежде чем тот покинет ваш сервер. Атакующий, перехвативший CKC в сети, не сможет извлечь контент-ключ, не взломав при этом сессионный ключ, а сессионный ключ живёт ровно один этот ответ и только для одного этого устройства.
Анонс SDK 26 затрагивает три компонента обмена:
- SPC v3 – добавляет явный Protocol Version UUID, поле SHA-256 хеша сертификата вместо SHA-1 из SDK 4 и обязательную проверку целостности. Старые устройства продолжают использовать SPC v1 и v2; ваш KSM автоматически определяет версию по заголовку SPC.
- RSA-2048 сертификаты – заменяют дефолтный RSA-1024 из SDK 4. Каждый сертификат SDK 26, который Apple выдаёт с сентября 2026 года, – это RSA-2048.
- Дефолтные бизнес-правила – SDK теперь поставляется с эталонной реализацией наиболее распространённых бизнес-правил (HDCP, арендные окна, длительности lease), так что разработчик KSM начинает работу с готовой базой, а не с пустого файла.
HLS-манифест: как FairPlay живёт внутри `.m3u8`
FairPlay-защищённый HLS-манифест выглядит почти так же, как обычный. Отличия – в дополнительном теге EXT-X-KEY и конкретном методе шифрования.
Минимальный синтаксис для одной FPS-защищённой ленты:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://12345-67890-abcde",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"
#EXTINF:6.0,
segment0.m4s
#EXTINF:6.0,
segment1.m4s
...
#EXT-X-ENDLISTПять атрибутов, которые стоит знать наизусть:
- METHOD=SAMPLE-AES – указывает плееру использовать сэмпловое шифрование (шифруются только медиасэмплы; контейнерные боксы, временные метки и параметры кодека остаются открытыми, чтобы плеер мог построить презентационный таймлайн без ключа). Если сегменты – фрагментированный MP4 (CMAF), применяется схема шифрования cbcs из ISO/IEC 23001-7:2023 – AES-128 в режиме CBC с паттерном 1:9 (один зашифрованный блок по 16 байт, затем девять незашифрованных блоков по 16 байт, далее цикл повторяется). Если сегменты – MPEG-TS, тот же метод SAMPLE-AES маппится на устаревший формат шифрования MPEG-2 Stream Encryption от Apple, описанный на архивной странице MPEG-2 Stream Encryption Format.
- URI="skd://..." – схема skd: является сигналом от Apple, что используется ключ FairPlay. Непрозрачная строка после skd:// – это ваш контентный идентификатор KID; плеер передаёт её без изменений в FPS CDM и в ваш KSM. Опциональный суффикс :<IV> позволяет передать вектор инициализации прямо в URI, если вы не хотите включать его в сообщение entitlement.
- KEYFORMAT="com.apple.streamingkeydelivery" – задаёт идентификатор формата ключа. Это магическая строка, которую плеер ищет при подключении; любое другое значение (или отсутствие тега) означает, что FPS не подключится.
- KEYFORMATVERSIONS="1" – единственное допустимое значение в 2026 году.
- #EXT-X-VERSION:6 – SAMPLE-AES требует использования протокола HLS версии 5 или выше; версия 6 – минимальная, поддерживающая fMP4-сегменты. HLS Authoring Specification, ревизия 2025-09, предписывает использовать fMP4 (CMAF) для нового контента; MPEG-TS поддерживается только для устаревших источников.
Обычный манифест 2026 года содержит два тега EXT-X-KEY рядом – один для FairPlay и один для пары Common Encryption Widevine / PlayReady, чтобы одни и те же сегменты могли расшифровываться на устройствах Apple через FPS-строку, а на устройствах с поддержкой Widevine или PlayReady – через CENC-строку. Жёсткое требование Apple только к cbcs означает, что данные на уровне байтов зашифрованы в режиме cbcs, который Widevine и PlayReady поддерживают с 2018 года. Эпоха двойной упаковки (одни сегменты в cenc AES-CTR для Widevine/PlayReady, другие в cbcs для FPS) завершилась примерно в 2020 году; к 2026 году один CMAF-актив обслуживает все три DRM.
#EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://kid-uuid",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"
#EXT-X-KEY:METHOD=SAMPLE-AES,URI="data:text/plain;base64,...",KEYFORMAT="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",KEYFORMATVERSIONS="1"Первый тег содержит FairPlay; второй – Widevine pssh-пейлоад в виде data: URI под UUID системы Widevine. Плеер выбирает строку, соответствующую его key system.
Persistent-лицензии и оффлайн-воспроизведение
Релиз iOS 10 в 2016 году добавил persistent-лицензии FairPlay, чтобы пользователь мог скачать фильм по Wi-Fi дома и посмотреть его в самолёте. Apple называет фичу Dual Expiry Windows, и схема заслуживает того, чтобы её знать – каждый арендный продукт её касается.
Когда пользователь запускает скачивание, ваш KSM выдаёт CKC с двумя полями длительности:
- Storage duration – максимальное время валидности лицензии до начала воспроизведения, считается от момента, когда устройство её сохранило. Классический пример аренды – 30 дней: у пользователя есть 30 дней, чтобы реально начать смотреть, иначе лицензия автоматически становится недействительной.
- Playback duration – максимальное wall-clock время валидности после начала воспроизведения. Классический пример – 48 часов от первого кадра.
Объединённое окно из двух чисел – 30 дней на начало просмотра и 48 часов на досмотр – это ровно та модель «арендовал, смотришь в течение 48 часов», которую использует каждый крупный OTT. KSM выдаёт один CKC в момент скачивания; устройство хранит его; первое воспроизведение запускает внутренние часы, которые ведёт и контролирует ОС. Приложение не может продлить окно воспроизведения, не сходив на сервер за свежим CKC.
Практическое ограничение, о котором стоит упомянуть в вашем KSM: iOS-приложению недоступен API для получения оставшегося времени persistent-лицензии. Приложению необходимо самостоятельно отслеживать временной штамп начала воспроизведения, сохранять его и сравнивать с собственной копией продолжительности воспроизведения, чтобы отображать в интерфейсе, например, «осталось 47 часов». AVPersistableContentKeyRequest возвращает блоб лицензии, но не её оставшийся срок – это часто упоминаемая проблема на Apple Developer Forums.
Миграция на SDK 26
Анонс FairPlay Streaming Server SDK 26 на WWDC 2025 установил срок миграции – сентябрь 2026 года. Каждая команда, поставляющая платный видеоконтент на устройства Apple, должна либо подтвердить, что SDK 5 по-прежнему подходит для её аккаунта, либо перенести существующий сертификат на SDK 26. Четыре практических изменения:
1. Экономика слотов под сертификаты. Каждая команда может одновременно иметь не более двух FPS-сертификатов. Если оба слота заняты сертификатами SDK 4.x или SDK 5.x, команда не сможет получить новый сертификат SDK 26, пока Apple не освободит один слот. Освобождение слота – процесс ручной обработки, проходящий через тот же канал поддержки Apple Developer Support, что и первоначальный запрос; на полный цикл в рамках миграции в продакшен требуется от двух до четырёх недель.
2. RSA-2048 повсюду. Сертификаты SDK 4 – RSA-1024, SDK 26 – RSA-2048. Ваш KSM должен загружать оба сертификата, определять версию по SPC и отвечать в соответствующем формате CKC. Эталонный KSM от Apple (теперь доступен на Swift и Rust) умеет это делать, а самописный KSM из 2018 года – нет.
3. Защита целостности SPC v3. Устройства SDK 26 отправляют SPC v3, в котором обязательно присутствует поле integrity-hash, и ваш KSM должен проверять его до обработки запроса. KSM, который молча игнорирует неизвестное поле, будет без предупреждения принимать поддельные SPC от устройств SDK 26; эталонный KSM SDK 26 отклоняет такие SPC с определённым кодом ошибки. Перед миграцией проведите фаззинг нового кода.
4. Несколько сертификатных бандлов в одном KSM. До SDK 26 KSM поддерживал только один сертификат на «эмитента». Новый SDK позволяет одному экземпляру KSM обслуживать несколько сертификатных бандлов одновременно – это особенно важно, если оператор запускает несколько брендов (например, родительский OTT-платформу и пару тонких бандлов) под разными аккаунтами Apple Developer. Один инстанс KSM, несколько бандлов, меньше серверов.
В стационарном состоянии миграция не является разрушительной – старые устройства продолжают использовать старые версии SPC, а эталонный KSM SDK 26 поддерживает SPC v1–v3 одновременно. Разрушительность носит административный характер: требуется очистка слотов, получение одобрения на деплой и переподписание цепочки доверия.
Где FairPlay стоит рядом с Widevine и PlayReady
Продакшен-карта на 2026 год проста и лучше всего оформлять её в виде таблицы.
| Критерий | FairPlay | Widevine | PlayReady |
|---|---|---|---|
| Владелец | Apple | Microsoft | |
| Обязателен для | iOS, iPadOS, tvOS, macOS Safari, watchOS, visionOS | Android, браузеры на Chromium, Chromecast, Android TV | Windows-приложения, Edge Legacy, Xbox, многие Smart TV на Tizen / webOS |
| Контейнер | HLS (CMAF или MPEG-TS) | DASH (CENC) или HLS (CMAF, CBCS) | DASH (CENC) или HLS (CMAF) |
| Схема CENC | только cbcs | cenc или cbcs | cenc или cbcs |
| EME key system | com.apple.fps.1_0 (также 2_0, 3_0) | com.widevine.alpha | com.microsoft.playready |
| Публичные уровни безопасности | Не публикуются; доверие – Secure Enclave | L1 / L2 / L3 публикуются | SL150 / SL2000 / SL3000 публикуются |
| Получение сертификата | Ручное одобрение Apple, ревью ~2 недели | Самостоятельно через Widevine partner portal | Ручное через программу лицензирования Microsoft |
| Persistent / оффлайн | Да – Dual Expiry Windows с iOS 10 | Да – persistent-license session type | Да – non-persistent и persistent |
| Минимальный SDK 2026 | SDK 26 (сентябрьский cutover 2026) | Modular Widevine 5.x (с 2014) | PlayReady 4.5 (Smart TV) / 4.6 (Edge) |
Практическая пара, которую использует любой OTT-продукт, – Widevine + FairPlay как минимальный набор из двух DRM: вместе они покрывают все основные платформы – Chrome, Firefox, Edge (на базе Chromium), Safari, Android, iOS, Smart TV на Android TV и Apple TV. PlayReady добавляется, если аудитория включает Smart TV на Tizen или webOS в 4K (там путь PlayReady SL3000 – единственный, способный обеспечить UHD), а также для консолей Xbox или нативных приложений Windows со строгими студийными контрактами. Подробнее о том, как все три DRM-системы работают в одном зашифрованном CMAF-файле, см. статью Common Encryption (CENC) подробно.
Числовой пример: пропускная способность лицензионного сервера
Пусть OTT-продукт запускается с 50 000 одновременных зрителей на пике. Каждый зритель получает один CKC в начале сессии и обновляет его примерно раз в 24 часа непрерывного просмотра (большинство продуктов настраивают session-ключи с лимитом в 24 часа). Пик нагрузки составляет одну виртуальную секунду лицензионного трафика на новый логин плюс медленный фон обновлений.
Выдача одной сессии: 1 разбор SPC + 1 расшифровка RSA-2048 + 1 сборка CKC + 1 подпись RSA-2048 ≈ 8 мс CPU на современном ядре Xeon. Параллельная ёмкость на ядро при 100% утилизации:
1 ядро × 1000 мс / 8 мс на лицензию = 125 лицензий / сек
Запуск с 50 000 зрителями и 10-минутным окном прогрева – это около 50 000 SPC за 600 секунд, или в среднем 83 SPC в секунду с пиковым всплеском до 250 SPC/сек, когда аудитория со второго экрана одновременно нажимает «играть» в начале live-события.
Чтобы обрабатывать 250 SPC в секунду с запасом 50%:
250 SPC/сек × 1.5 / 125 SPC/(сек·ядро) = 3 ядра
Одного четырёхъядерного инстанса KSM достаточно для события на 50 000 зрителей с запасом. Два инстанса за балансировщиком обеспечивают отказоустойчивость. Лицензионный сервер почти никогда не становится узким местом при запуске стриминга – узким местом является календарь выдачи сертификатов.
Типичные ошибки (и как их поймать до продакшена)
«Подводный камень: запрос FPS-сертификата после фиксации даты запуска. Ручное ревью деплой-кредов Apple в 2026 году занимает две недели и более – и этот процесс не начинается, пока ваша команда не подаст описание стриминг-сервиса, соответствующее правилу Apple «сервис для конечного потребителя». Агентства, действующие от имени владельца контента, явно отклоняются. Главная причина сдвига запуска OTT – «закажем FPS-серт в спринте 4». Заказывайте его в спринте 1.»
«Подводный камень: неправильная EME key-system строка в Safari. FPS CDM в Safari зарегистрирован только под com.apple.fps.1_0 (2_0 и 3_0 зарезервированы для будущих апгрейдов протокола – текущая продакшен-поверхность – это 1_0). Неверсионированная com.apple.fps работает в некоторых версиях Safari и молча падает в других, причём проявляется это как MEDIA_ERR_SRC_NOT_SUPPORTED в консоли браузера с ошибкой -42676 на KSM – что заставляет дебаггера гоняться за сервером, хотя исправление – всего одна строка в EME-конфиге плеера.»
«Подводный камень: оставить MPEG-TS-сегменты для FPS-only в 2026. Спецификация HLS Authoring (ревизия 2025-09) требует использовать fMP4 (CMAF) для нового контента; поддержка MPEG-TS сохранена только для воспроизведения архивных материалов. Команды, которые продолжают использовать только MPEG-TS на origin-сервере «потому что Apple-устройства его поддерживают», столкнутся с серьёзными проблемами при первом же контракте с мульти-DRM. Выбирайте CMAF + cbcs один раз и навсегда.»
«Подводный камень: считать, что успешный разбор SPC означает довольное устройство. CKC должен включать правильный HDCP-флаг, корректные значения арендной длительности, правильные lease-биты и (для SDK 26) правильное поле подтверждения целостности SPC v3. Устройство, получив синтаксически корректный CKC с неверными полями политики, либо молча перейдёт на 480p, либо вообще откажется воспроизводить контент – в зависимости от бита. Продакшен-уровневый KSM ежедневно запускает smoke-тесты на флоте физических Apple-устройств именно потому, что сбои происходят без предупреждений.»
Где здесь Фора Софт
Мы выпускаем FairPlay-защищённые OTT-, телемедицинские, e-learning и surveillance-продукты на платформах Apple с 2015 года – с момента появления модульной FPS-архитектуры – на iOS, iPadOS, tvOS, macOS и visionOS. Деньги приносит не код KSM – эталонные реализации Apple и так хороши – а хореография запроса сертификата у Apple, dual-DRM-упаковка CMAF, позволяющая одному origin обслуживать FPS, Widevine и PlayReady с одной кодировки, интеграция iOS-приложения с AVContentKeySession, UX оффлайн-аренды с persistent-лицензиями, dual-window expiry и device-by-device QA-матрица по поколениям Apple silicon. Мы делаем эти вещи по умолчанию, а не как опцию.
Ключевые выводы
- FairPlay Streaming – единственный DRM, поддерживаемый устройствами Apple: либо вы его используете, либо не сможете работать в Safari, iOS, tvOS, macOS и visionOS.
- FPS применяет AES-128 CBC (схема cbcs из ISO/IEC 23001-7) поверх HLS с двухэтапным обменом ключами SPC/CKC между устройством и Key Server Module.
- Apple не раскрывает уровни безопасности; на каждом устройстве FPS ключи привязываются к Secure Enclave, а доверие строится по принципу «либо FPS, либо нет».
- Переход на SDK 26 (2026) предусматривает использование сертификатов RSA-2048, делает обязательной целостность SPC v3 и запускает переход с SDK 4 / SDK 5 в сентябре 2026 года.
- Постоянные лицензии используют двойной срок действия (срок хранения плюс срок воспроизведения) для стандартной модели «аренда на 30 дней, просмотр в течение 48 часов».
- Упаковка cbcs сделала однократную кодировку с поддержкой нескольких DRM стандартной практикой: один CMAF-актив используется для FairPlay Streaming, Widevine и PlayReady.
- Ручная проверка деплой-ключей Apple занимает две недели и более – подавайте заявку на сертификат в первом спринте, а не в четвёртом.
Что почитать дальше
- Common Encryption (CENC) подробно – pssh, tenc, cbcs и cenc, технология, которая объединяет FPS, Widevine и PlayReady в одном зашифрованном файле.
- DRM 101: почему три системы и почему вы ставите все три – объяснение, почему FPS, Widevine и PlayReady вместе образуют стандартную тройку для продакшена.
- PlayReady подробно – третья компонента DRM-решения, поддерживающая Windows, Edge, Xbox и Smart TV.
CTA
Поговорить со стриминг-инженером – спланировать запуск OTT с защитой FairPlay вместе с нашей командой. · Посмотреть кейсы – OTT-платформы, телемедицина и e-learning в портфолио Фора Софт. · Скачать чек-лист развёртывания FairPlay Streaming – одностраничный справочник по запросу сертификата, миграции на SDK 26, путям EME и AVContentKeySession, а также четырём ошибкам, которые доходят до продакшена.