Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе представлен обзор алгоритмов шифрования, используемых для защиты содержимого в экосистеме PlayReady.
Замечание
См. глоссарий для терминов и определений шифрования.
Основы шифрования
Криптография симметричного ключа — самый простой тип шифрования. С помощью шифрования симметричного ключа тот же ключ используется для шифрования содержимого и расшифровки его. Алгоритмы симметричного ключа обычно небольшие и быстрые. Как правило, основная часть любой задачи шифрования обрабатывается некоторой формой шифрования симметричного ключа.
Криптография открытого ключа, напротив, использует опубликованный открытый ключ для шифрования и другого, секрета, закрытого ключа для расшифровки. Таким образом, если пользователь "A" предоставляет пользователю "B" открытый ключ, B может шифровать содержимое для A без каких-либо других сведений. Независимо от того, как передается содержимое, только A сможет прочитать его. Перехватчики содержимого не имеют закрытого ключа (секретный ключ) и не могут расшифровать сообщение. Так как открытый ключ доступен, любой пользователь может зашифровать для A, но только A может расшифровать. Для шифрования открытых ключей требуются вычислительные сложные алгоритмы.
Криптография на эллиптических кривых ( ECC) — это алгоритм шифрования с использованием открытого ключа, который применяется для шифрования и расшифровки содержимого. Это вычислительно сложная функция, описывающая эллиптическую кривую. Компоненты этого алгоритма используются как открытый ключ. Другие компоненты, используемые для расшифровки, формируют закрытый ключ.
Коды проверки подлинности одноключных сообщений (OMAC) — это код проверки подлинности сообщения, созданный на основе блочного шифра. Существует два алгоритма OMAC, OMAC1 и OMAC2.
Сертификаты используются для проверки подлинности сущностей, которые не являются доверенными. Отправитель сертификата подписывает свое имя (идентификатор устройства) с помощью закрытого ключа. Затем получатель сертификата проверяет подпись сертификата с помощью открытого ключа отправителя, чтобы удостовериться в личности отправителя. Так как отправитель является единственным владельцем закрытого ключа, трудно создать закрытый ключ с открытым ключом, и сертификат не будет проверен правильно, если он не подписан с закрытым ключом; В этом случае предполагается, что источник данных является правильным и сертифицированным обменом данными является безопасным.
Алгоритмы шифрования PlayReady
Симметричные алгоритмы
Поддерживаются следующие режимы шифрования AES:
Режим AES 128 CTR — системы PlayReady могут защищать файлы и потоки, в которых образцы шифруются в полном объеме или где шифруются только образцы в паттерне в режиме CTR. К ним относятся общие режимы шифрования cenc (общая схема шифрования) и "cens" (общая схема шифрования с использованием шаблона незашифрованных или зашифрованных байтов), которые определены в ISO/IEC 23001-7.
Режим AES 128 CBC — системы PlayReady, начиная с версии 4.0, могут защищать файлы и потоки, полностью или частично зашифрованные с помощью ключа содержимого AES 128, в режиме CBC. К ним относятся общие режимы шифрования cbc1 и cbcs, как определено в iso/IEC 23001-7, и любой другой формат, зашифрованный с помощью ключа содержимого AES 128 в режиме CBC.
Замечание
Системы PlayReady с версиями 1.X, 2.X и 3.X могут защищать файлы, зашифрованные в режиме CTR (общий режим шифрования cenc). 'cens' не поддерживается. Системы PlayReady с версией 4.0 и выше могут защищать файлы, зашифрованные в режиме CTR (общие режимы шифрования cenc) и в режиме CBC (общие режимы шифрования cbcs). Другие режимы "cens" и "cbc1" не поддерживаются.
Алгоритмы ECC
Системы Microsoft PlayReady используют ECC (криптографию эллиптической кривой) для шифрования ключей содержимого и подписывания сообщений протокола.
- Алгоритм ECC ElGamal — используется для зашифрованных ключей содержимого.
- ECDSA (алгоритм цифровой подписи эллиптической кривой) — используется для подписывания сообщений, применимых в протоколах PlayReady.
- NIST — системы Microsoft PlayReady используют стандартные алгоритмы NIST для шифрования ECC, где применимо, и в настоящее время используется эллиптическая кривая P-256.
Алгоритмы подписывания
Для подписывания лицензий, временных ключей или данных системы PlayReady используют AES OMAC1, что эквивалентно CMAC (код проверки подлинности на основе шифров) и стало рекомендацией NIST в мае 2005 года. Ключи создаются случайным образом, но данные хэшируются с SHA256, а затем хэш подписан с помощью ECC256.
Вопросы времени выполнения и производительности
При активации воспроизведения содержимого клиент PlayReady должен выполнить некоторые действия, прежде чем начать начальное воспроизведение. Это включает поиск лицензии, привязки или интерпретации лицензии, расшифровки ключа содержимого и, наконец, подготовки к расшифровке содержимого. Привязка лицензии к определённому контенту через стек PlayReady Client занимает время, и эта операция необходима перед началом расшифровки и отображения контента. Это означает, что время привязки лицензии влияет на время первого кадра при запуске воспроизведения или разрыв между треками. Разработчик клиента, а также разработчик приложений может рассмотреть возможность оптимизации кода для проблем со средой выполнения и производительности, чтобы сократить время до первого кадра и разрешить воспроизведение без пробелов.
Защищенные контейнеры используют шифрование симметричного ключа для шифрования большого объема содержимого. Однако шифрование открытого ключа используется в рамках лицензии. Это связано с тем, что лицензия содержит симметричный ключ содержимого, а сервер использует открытый ключ клиента для шифрования симметричного ключа содержимого.
Когда время расшифровать содержимое, закрытый ключ клиента используется для расшифровки симметричного ключа из лицензии. Только клиент, к которому привязана лицензия, может извлечь симметричный ключ.
Расшифровка закрытого ключа требует больше вычислительных ресурсов, чем симметричная расшифровка; поэтому интерпретация лицензии требует значительных вычислительных ресурсов. После правильной обработки лицензии симметричный ключ расшифровывается, а содержимое может быть расшифровывается с помощью небольших и быстрых алгоритмов.
Для приложений или устройств, которые ограничены ресурсами, запуск требует значительного времени и ресурсов. Однако после завершения ресурсы освобождаются, расшифровка может эффективно продолжаться, и требуется мало циклов ЦП или системных ресурсов.