Цифрове управління правами (DRM) — це системний підхід для захисту цифрового контенту від несанкціонованого розповсюдження. Netflix використовує багатошарову стратегію DRM для забезпечення того, щоб відеоконтент залишався зашифрованим, контрольованим доступом і важким для незаконного завантаження. Нижче наведено технічний опис процесу та архітектури:
Покроковий робочий процес
Шифрування контенту
- Попередня обробка: Перед завантаженням Netflix шифрує весь контент за допомогою шифрування AES-128/256. Кожне відео ділиться на невеликі частини (наприклад, 2–10 секунд) для адаптивного потоку (DASH/HLS).
- Генерація ключів: Для кожного відео генерується унікальний Ключ шифрування контенту (CEK).
- Зберігання: Зашифрований контент і метадані (наприклад, URL частин, ID ключів) зберігаються у CDN Netflix (наприклад, AWS, Open Connect).
Запит клієнта
- Коли користувач відтворює відео, додаток Netflix отримує файл маніфесту (наприклад, MPD для DASH), що містить URL частин і метадані DRM (наприклад,
keyId
,license server URL
).
Отримання ліцензії
- Клієнт надсилає запит на ліцензію на сервер DRM Netflix, який включає:
keyId
(ідентифікатор CEK)- Токен аутентифікації (наприклад, JWT з даними користувача/підписки)
- Атестація пристрою клієнта (наприклад, заголовки Widevine/PlayReady/FairPlay).
- Сервер перевіряє запит і повертає Ключ дешифрування контенту (CDK), прив'язаний до безпечного середовища пристрою.
Безпечне дешифрування
- Зашифровані частини відео передаються через CDN.
- Агент DRM клієнта (наприклад, Widevine CDM) дешифрує частини в середовищі Trusted Execution Environment (TEE), що забезпечує, щоб ключі та розшифровані дані ніколи не залишали безпечну пам'ять.
Відображення
- Розшифровані кадри відео безпосередньо надсилаються на екран через захищений канал (наприклад, SurfaceView в Android), що запобігає зняттю екрану.
Архітектурні компоненти
Конвеєр шифрування
- Пакувальник: Розбиває та шифрує відео, генерує маніфести.
- Система керування ключами (KMS): Зберігає CEK і відображає їх на
keyId
.
Сервер ліцензій
- Аутентифікує запити, перевіряє права (наприклад, рівень підписки, регіон) і видає CDK з обмеженим часом дії.
- Інтегрується з провайдерами DRM (наприклад, Google Widevine, Microsoft PlayReady).
Модулі DRM на стороні клієнта
- Специфічні для платформи клієнти DRM (наприклад, Widevine CDM у Chrome) обробляють дешифрування в TEE.
- Перевірки безпеки: Виявлення кореневих прав/джейлбрейку, перевірка цілісності додатків.
Мережа безпечної доставки
- Зашифровані частини доставляються через HTTPS з серверів CDN. CDN не має ключів для дешифрування.
DRM пояснено: як Netflix запобігає завантаженню контенту
Чому завантаження не вдається
- Зашифровані частини: Завантажені частини не можна використовувати без CDK.
- Прив'язка ключа: CDK прив'язані до конкретного пристрою і втрачають дію після відтворення.
- Безпечне середовище: Ключі недоступні для додатків/ОС; розшифровані кадри обходять пам'ять додатка.
- Юридичне забезпечення: Порушення DRM веде до юридичних заходів проти інструментів для реверс-інженірингу.
Вразливості та методи їх усунення
- Експлуатовані клієнти: Джейлбрейкнуті пристрої можуть обійти DRM.
Зниження ризиків: Часті оновлення додатків, відкликання атестацій. - Аналоговий запис: Запис екрану.
Зниження ризиків: Водяні знаки, HDCP для HDMI виходів.
DRM Netflix поєднує шифрування, безпечний обмін ключами та апаратну безпеку для створення надійної системи протидії піратству. Хоча вона не є непереборною, вона значно підвищує бар'єр для випадкових користувачів.
Перекладено з: DRM Explained: How Netflix Prevents Content Downloading