Как SSL использует симметричное и асимметричное шифрование? И как мне управлять сертифицированными для нескольких сайтов на одном хосте?

Во-первых, некоторые цитаты из Microsoft TechNet Управление службами сертификатов Microsoft и SSL:

Чтобы повторить, безопасные сеансы SSL устанавливаются с использованием следующего метода:

  • Пользовательский веб-браузер связывается с сервером с помощью защищенного URL.

  • Сервер IIS отправляет браузеру свой открытый ключ и сертификат сервера.

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

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

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

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

Итак, в основном, SSL использует асимметричное шифрование (пара открытого/закрытого ключа) для доставки общего сеансового ключа и, наконец, достигается способ связи с симметричным шифрование.

Правильно ли это?

Добавить - 1 - 17:55 12/17/2010

Я использую IIS для размещения своих сайтов. Предположим, у меня есть несколько сайтов на моей отдельной машине, и я хочу, чтобы клиент-браузер использовал URL-адрес SSL для подключения моих сайтов. Сколько сертификатов мне нужно? Какой из следующих подходов я должен взять?

1 - Применить к одному сертификату и связать его с моей машиной с одним сервером, на которой размещены несколько сайтов.

2 - Подать заявку на несколько сертификатов и связать каждый из моих сайтов с собственным сертификатом.

В IIS7 кажется, что я мог только сделать подход 1.

Обновление - 1 - 6:09 PM 12/17/2010

Я понимаю это. Я могу установить несколько сертификатов на своем сервере и привязать к каждому сайту с отдельным сертификатом по мере необходимости.

Ответы

Ответ 1

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

Ответ 2

Вы ошибаетесь в пунктах 4 и 5. Сервер и клиент самостоятельно вычисляют один и тот же ключ сеанса. Это никогда не передается вообще.

Ответ 3

Я бы предположил, что вы публикуете свое обновление как отдельный вопрос.

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

Ответ 4

У вас может быть только один сертификат SSL для каждого прослушивающего порта на сервере. Это связано с тем, что самое первое, что отправлено, - это сертификат сервера (как и в вашей временной шкале). Это до HTTP-запроса, поэтому, если вы попытаетесь разместить два домена на одном сервере (скажем, foo.com и bar.com), сервер не сможет узнать, какой сертификат отправить клиенту.

Существует несколько способов решения этой проблемы:

  • Размещение разных доменов на разных серверах
  • Принимать разные домены на разных портах (например, foo.com - serverd с 443, а bar.com - с 8443). Если вы разместите свой хост за несколькими балансирами нагрузки, вы можете заставить их обслуживать все сайты на 443.
  • Если разные домены являются все поддоменами одного родительского домена, вы можете получить подстановочный сертификат. (например, домены www.foo.com, bar.foo.com и baz.foo.com могут использовать сертификат для *.foo.com)
  • Получите один сертификат для одного из доменов и укажите другие домены, перечисленные как AltNames. (например, как foo.com, так и bar.com могут использовать сертификат foo.com с bar.com AltName)

Ответ 5

Случай, когда ключ сеанса независимо вычисляется клиентом и сервером без передаваемого ключа, является обменом ключами Диффи-Хеллмана: https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange --- см. рисунок красивой краски PKI обменяет зашифрованный ключ сеанса между клиентом и сервером.

Ответ 6

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

SSL использует как асимметричные, так и симметричные ключи.