Шифрование и аутентификация
При использовании HTTP Живая Потоковая передача iOS предоставляет встроенную поддержку для шифрования носителей, и начинающийся в iOS 5.0, это также предоставляет поддержку для аутентификации. При обслуживании ключа шифрования от защищенного домена приложение ответственно за обработку квитирования начальной аутентификации с сервером.
Шифрование для загрузок носителей
Используя HTTP Живая Потоковая передача, можно дать носителям команду segmenter программное обеспечение шифровать носители. segmenter генерирует ключи шифрования — и векторы инициализации для тех ключей — в указанных интервалах.
Ключи используются для шифрования всего видео в течение установленного срока. Клиентское программное обеспечение получает ключи и использует их для дешифрования видео. Вектор инициализации требуется, чтобы использовать ключ.
Вы говорите segmenter, как часто изменить ключ и как часто изменить вектор инициализации для текущего ключа. Вы также даете segmenter базовый URL для использования для ключей и векторов инициализации. segmenter включает URLs ключей и векторов инициализации в файлах списка воспроизведения, которые он генерирует.
Ключи обычно нечасто изменяются и подаются по HTTPS для безопасности. Векторы инициализации обычно часто изменяются, но подаются по HTTP для быстрой поставки. Использование HTTP не сокращает безопасность, потому что векторы инициализации бесполезны без ключей.
Для получения дополнительной информации посмотрите, что HTTP Живет, Передавая Обзор потоком.
Аутентификация для загрузок ключа шифрования
Для защиты ключей шифрования сервер должен потребовать, чтобы видео клиенты аутентифицировали себя. Метод аутентификации меняется в зависимости от приложения. Используя AirPlay с зашифрованной потоковой передачей содержание поддерживается только в iOS 5.0 и позже.
Для Веб-видео, играющего в Safari (в iOS), Вы должны сделать, чтобы пользователь аутентифицировал вручную прежде, чем играть видео, зашифрованное с ключом, подаваемым от безопасного домена. Аутентификация может быть предоставлена в JavaScript, но не без риска представления информации о входе в систему. Несмотря на то, что ручная аутентификация работает хорошо на оплату на представление или видео подписки, это обычно - нежелательный для поддерживаемого рекламой видео, потому что это требует входа в систему для просмотра.
Примите во внимание, что, если видео играет по AirPlay, средство просмотра смотрит по телевидению без способа ввести пароль. В таких случаях средство просмотра должно аутентифицировать на устройстве, передающем видео через AirPlay, который мог бы быть в другой комнате. Эта ситуация имеет другие импликации, включая то, сколько времени cookie или другие аутентификационные маркеры должны продлиться перед истечением срока. Необходимо сконфигурировать сервер соответственно.
Для видео, играющего в приложении, существует три рекомендуемых средних значения аутентификации ключевой поставки:
Служите ключам от защищенной области HTTPS. Прежде чем воспроизведение начинается, Ваше приложение может использовать
NSURLConnection
аутентифицировать себя, обеспечивая учетные данные, сохраненные скрытыми.Используйте cookie по HTTPS. Ваше приложение может сделать соединение с сервером HTTPS и аутентифицировать приложение определенным с помощью приложения способом. Ваш сервер может тогда выпустить cookie, применяющийся к ключу URLs. Необходимо установить cookie для истечения еще долго после того, как воспроизведение будет завершено. Сервер должен тогда потребовать присутствия допустимого cookie сеанса в будущем
GET
запросы на ключи.Для максимальной надежности, если дата истечения срока находится в ближайшем будущем, сервер должен обновить дату истечения срока cookie в своем ответе на будущее
GET
запросы.Укажите ключи в .m3u8 файлах с помощью определенной с помощью приложения схемы URL. Приложение должно зарегистрировать пользовательское
NSURLProtocol
обрабатывать запросы для того URLs. Проигрыватель тогда перезванивает в Ваше приложение, когда это должно загрузить ключ URL; Ваше приложение может тогда получить ключ с помощью безопасного канала стороны и может обеспечить его для проигрывателя.
Для получения дополнительной информации посмотрите, что HTTP Живет, Передавая Обзор потоком.