2015-02-26 16 views
-1

В этом случае сервер отправляет в браузер браузер encypted blob, а javascript в браузере впоследствии запрашивает ключ дешифрования с сервера и расшифровывает blob на полезный контент.Как защитить секретный ключ сервера в браузере?

Есть ли способ защитить этот ключ в браузере от атаки плагином букмарклета или браузера или пользователем, выполняющим отладчик javascript в браузере? Или, по крайней мере, это немного сложнее для злоумышленника.

Редактировать: контекст проблемы - это HTML Video DRM, как указано в спецификациях EME. Существует ClearKey api, который является частью этого стандарта и не требует закрытого исходного плагина от WideVine или FairPlay и т. Д. Но, как отмечалось несколькими отзывами, ClearKey не может быть защищен. (что, к сожалению, подразумевает использование плагинов DRM-приложений).

+0

Шаг 1. Сделайте этот пользователь конкретным, поэтому он будет работать только для этого пользователя. –

+1

Это звучит как [проблема X-Y] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem); что вы в конечном итоге пытаетесь достичь с этим? Кроме того, вам может понадобиться подумать о переделке вашей модели безопасности. – amphetamachine

+0

Я ищу способ защитить ClearKey, используемый в HTML5 Encrypted Media Extensions. – user193116

ответ

5

Вы не можете гарантировать безопасность любых данных, как только он достигнет клиента.

Существует только никакого способа сделать это. Как только клиент получает это, особенно если они также получают ключ дешифрования, они имеют полный доступ ко всем секретам внутри.

В очень простом масштабе они могут просто сбросить точку останова или добавить prints в консоль javascript. Если они хотят быть более продвинутыми, они могут использовать такие инструменты, как wirehark, чтобы видеть данные по мере прохождения по проводам.

Теперь, если вы хотите отправить им зашифрованные данные, которые не будут расшифровываться, и они сильно зашифрованы, то это не как плохой. Но если вы никогда не собираетесь расшифровать его на своей стороне, то зачем вы его отправляете?

6

Согласитесь, что это невозможно. Вы можете сделать это с помощью асимметричного шифрования. Но я хотел бы вернуться к тому, почему вы это делаете - если соединение было зашифровано SSL, нет причин для этого.

 Смежные вопросы

  • Нет связанных вопросов^_^