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

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

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

  1. Веб-браузер пользователя связывается с сервером по защищенному URL-адресу.

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

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

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

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

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

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

Это правильно?

Add - 1- 5:55 вечера 12/17/2010

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

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

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

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

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

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

Ответы [ 7 ]

18 голосов
/ 17 декабря 2010

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

4 голосов
/ 17 декабря 2010

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

1 голос
/ 21 декабря 2010

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

Есть несколько способов решить эту проблему:

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

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

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

0 голосов
/ 31 мая 2019

.

Ответ - оба. Вы найдете хорошее объяснение в 4 шагах от digicert.com ниже:

.

enter image description here

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

https://www.digicert.com/ssl-cryptography.htm

0 голосов
/ 28 августа 2015

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

0 голосов
/ 11 февраля 2014

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

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

...