Делает ли использование шифрования канала (https) избыточным хеширование секретного ключа? - PullRequest
3 голосов
/ 17 мая 2011

Я разрабатываю веб-сервис, к которому клиенты подключаются для получения некоторых личных данных.Каждый клиент имеет уникальный идентификатор и секретный ключ (генерируемый сервером), которые отправляются в качестве параметров веб-службе для аутентификации.Кроме того, все коммуникации осуществляются по протоколу HTTPS.

Я также планирую использовать HMAC-SHA256, чтобы избежать отправки секретного ключа по проводам.

Однако яинтересно, строго ли это необходимо.Поскольку HTTPS дает мне безопасный канал между клиентом и сервером, почему я действительно возражаю против отправки секретного ключа по этому каналу?

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

Я что-то упустил?Является ли это реальной уязвимостью, которой может воспользоваться какой-то вектор атаки?

Ответы [ 2 ]

2 голосов
/ 17 мая 2011

Канал может быть безопасным, но это ничего не говорит о конечных точках : в зависимости от рассматриваемого браузера (и его плагинов / расширений / ...),ваш ключ вполне может оказаться в дисковом кеше где-нибудь на компьютере пользователя, и он может оставаться там до конца вечности.

Это не очень интересная уязвимость ... пока вы не поймете, чторазличные вредоносные программы уже просачиваются по дискам в поисках чего-нибудь ценного - и при нынешних показателях некоторые из ваших пользователей будут заражены (если на вашем сайте только двадцать пользователей;)).

Итак: не выбрасывайте довольно мощный криптографический механизм, чтобы сэкономить несколько циклов ЦП;это потенциально опасная микрооптимизация ИМНШО.

2 голосов
/ 17 мая 2011
  • Злоумышленник устанавливает поддельный доверенный сертификат в браузер и захватывает сеанс.
  • Ссылка на ваш сайт отправляется, но перенаправление на SSL перехватывается и начинается сеанс без SSL.

Есть и другие, но история такова: SSL сложен и часто атакован изобретательскими способами.Если ваше соединение защищено, то хэширование не имеет большого значения по сравнению со сложностью кода для людей и затратами времени на процессор.Однако, если сессия SSL скомпрометирована, вы все равно сохранили свой ключ.Как бы мы ни хэшировали пароли в базах данных, несмотря на тот факт, что никто не должен иметь доступа, хэшировать ваш ключ, несмотря на SSL, было бы разумно.

...