2013-08-02 3 views
1

Я искал информацию о SSL-сертификатах и ​​протоколах шифрования. Я получил очень хорошие ответы, особенно на этом сайте.Сертификат SSL и проверка подлинности

Есть только одно, чего я не понимаю. Если я получу это право, проверка личности (я имею в виду проверку идентификатора сервера, а не идентификатор сертификата) выполняется с использованием асимметричной криптографии.

Это означает, что шаги будут (остановить меня, если я ошибаюсь):

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

Что мешает поддельному серверу сделать это так, с реальным сертификатом, например, на www.example.com, но без секретного ключа?

  • Клиент использует проверенный открытый ключ для шифрования строки случайных вызовов и отправки ее на сервер.
  • Поддельный сервер отправляет зашифрованную строку случайных вызовов на сайт www.example.com, как клиент, желающий проверить его личность.
  • www.example.com отправляет обратно расшифрованную строку случайных вызовов на поддельный сервер.
  • Поддельный сервер отправляет его обратно клиенту.
  • Идентификация подтверждена?

ответ

2

Клиент использует проверенный открытый ключ для шифрования строки случайного вызова и отправки его на сервер.

Режим обмена ключами, когда клиент шифрует что-либо с открытым ключом сервера, является режимом обмена ключами RSA. Это полное описание в section F.1.1.2 of the TLS specification.

По существу клиент генерирует секретный ключ, который шифрует его с помощью открытого ключа сервера (находится в сертификате сервера, отправленного сервером) и отправляет его на сервер (в сообщении обмена ключами клиента). Вот и все. Только сервер с соответствующим личным ключом может расшифровать его. Сервер не отправляет какую-либо расшифрованную версию обратно клиенту, поэтому не может потребовать от третьей стороны выполнить любую операцию, которую вы, похоже, имеете в виду.

-2

Это всего лишь аргумент соломы. Шаги, которые вы указали, полностью мнимы. В фактические шаги:

  1. Сервер отправляет свой сертификат в рамках рукопожатия TLS.
  2. Сервер отправляет цифровую подпись по ее сертификату и другим сообщениям подтверждения, подписанным его закрытым ключом.
  3. Клиент использует открытый ключ в сертификате для проверки цифровой подписи.

Только сервер, имеющий закрытый ключ, соответствующий открытому ключу сертификата, может быть успешным.

Я предлагаю вам прочитать, а не случайные публикации в Интернете: попробуйте нормативную ссылку: RFC 2246.

+0

@BabuSrinivasan Вы ошибаетесь. # 2 не так. Вы сбиваете с толку подпись, содержащуюся в сертификате, подписанном эмитентом, с подписью, обмениваемой во время протокола квитирования TLS, который до сих пор вычисляется по всему рукопожатию, включая сертификат. Без этого клиент не может аутентифицировать то, что сервер действительно владеет этим сертификатом. Вы, кажется, ничего не знаете об этом откровенно. Я предлагаю вам прочитать RFC 2246. Вы, очевидно, тоже не слышали о самозаверяющих сертификатах. – EJP

+0

@downvoter Еще один правильный ответ на мой трофейный кабинет. Такое злоупотребление системой голосования только ухудшает полезность этого сайта. – EJP

+0

ссылка на вашу «нормативную ссылку» отсутствует, а также ваш пост – user1855153

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