SSL: Как сертификаты защищены от атак человека в середине? - PullRequest
11 голосов
/ 21 января 2010

Мой вопрос касается сертификатов конкретно в ssl, но я думаю, что вопросы должны относиться ко всем сертификатам. Я включил процедуру SSL для ясности.

В SSL это, как я понимаю, процедура:

1) Клиент

  • отправляет поддерживаемые криптоалгоритмы
  • отправляет клиенту nonce

2) Сервер

  • выбирает (и отправляет)
    • симметричный алгоритм
    • алгоритм открытого ключа
    • алгоритм MAC
  • отправляет сертификат
  • отправляет одноразовый сервер

3) Клиент

  • проверяет сертификат
    • Извлекает открытый ключ
  • Генерирует секретный ключ перед мастером (pms)
  • шифрует с сервера открытый ключ и отправляет

4) Клиент и сервер

  • вычислить главный секрет (MS) из PMS и одноразовых номеров
  • PMS нарезанный, чтобы генерировать два шифрования и два ключа Mac

5) Клиент

  • отправляет макинтош всех рукопожатий (чтобы убедиться, что они не были ранее модифицированы)

6) Сервер

  • отправляет макинтош всех рукопожатий

Вопрос

Что мешает человеку в средней атаке произойти на втором шаге? Почему человек, находящийся посередине, не может сказать «трудно», захватить сертификат, отправленный сервером, и изменить в нем открытый ключ (на что-то, к чему у него есть закрытый ключ).

Я предполагаю, что сертификат как-то зашифрован.

Однако сервер не может зашифровать сертификат, поскольку у клиента еще нет открытого ключа. Когда сервер получает ключ от органа (например, veri-sign), будет ли ключ предварительно зашифрован с использованием открытого ключа verisign? Я думаю, что это должно работать, потому что все веб-браузеры должны иметь открытые ключи большинства органов власти.

Ответы [ 3 ]

10 голосов
/ 21 января 2010

Нет, сертификат не зашифрован. Но он подписан центром сертификации (ЦС). Поскольку они проверяют информацию, содержащуюся в сертификате (особенно URL-адрес, к которому принадлежит сертификат), для данного URL-адреса не должно быть второго действительного сертификата.

Сертификат CA проверяется в доверенном хранилище (например, в вашем браузере). Если это хранилище доверенных сертификатов взломано или если вы доверяете недействительным сертификатам, защита от атак посредника не защищена

4 голосов
/ 21 января 2010

Сертификаты подписаны неким доверенным органом, таким как Verisign .

Сертификаты для этих корневых прав встроены прямо в браузеры при их загрузке. Вы можете просмотреть корневые сертификаты в Firefox, например, перейдя в Инструменты -> Параметры -> Дополнительно -> Шифрование -> Просмотр сертификатов -> Полномочия .

Если какой-либо из этих корневых центров сертификации скомпрометирован, вы правы в том, что сертификат может быть подделан, что делает возможной атаку "человек посередине".

2 голосов
/ 21 января 2010

Вы на самом деле указали на слабое место PKI.

Скажи, что Труди находится среди тебя и твоего банка (bank.com). Trudy может изменить открытый ключ по желанию на шаге 2, но подпись сертификата будет недействительной. Так что Труди должен снова найти способ сгенерировать подпись. Можно с уверенностью сказать, что доверенные центры сертификации не сделают этого за него. Поэтому он должен подписать поддельный CA, которому ваш браузер не доверяет. Это все еще безопасно теоретически.

Однако, согласно некоторым тестам, большинство браузеров (особенно IE 6) отображают неопределенное предупреждение о безопасности, и большинство людей не понимают и просто игнорируют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...