Недостаток симметричного шифрования в том, что оба участника должны знать секретное значение (ключ) для того, чтобы осуществлять обмен сообщениями. Однако вы не можете передавать эту информацию через Internet, поскольку злоумышленники могут перехватить ее и в результате получить возможность расшифровывать все последующие сообщения. Главный трюк SSL заключается в том, что он комбинирует асимметричное и симметричное шифрование. Асимметричное шифрование используется только при начальной передаче ключа — другими словами, соглашения о секретном значении. Затем это секретное значение используется для симметричной шифровки последующих сообщений, что гарантирует наилучшую возможную производительность.

Весь процесс работает так:

  1. Клиент посылает запрос на соединение с сервером.
  2. Сервер подписывает свой сертификат и отправляет его клиенту. Это завершает фазу квитирования ("рукопожатия").
  3. Клиент проверяет, издан ли сертификат СА, которому он доверяет. Если это так, он переходит к следующему шагу. В сценарии с Web-браузером клиент может предупредить пользователя "грозным" сообщением о том, что он распознал СА и разрешает пользователю решать — продолжать ли дальше.
  4. Клиент сравнивает информацию в сертификате с информацией, присланной сайтом (включая доменное имя и его открытый ключ). Клиент также проверяет правильность сертификата стороны сервера — что он не был отменен и издан заслуживающим доверия СА. Затем клиент принимает соединение.
  5. Клиент сообщает серверу, какие ключи шифрования он поддерживает для коммуникации.
  6. Сервер выбирает наибольшую подходящую длину ключа и информирует клиента.
  7. Используя указанную длину ключа, клиент случайным образом генерирует симметричный ключ шифрования. Он будет использован в период транзакции между сервером и клиентом. Это гарантирует оптимальную производительность, поскольку симметричное шифрование намного быстрее асимметричного.
  8. Клиент шифрует ключ сеанса, используя открытый ключ сервера (из сертификата), и затем посылает серверу зашифрованный ключ сеанса.
  9. Сервер принимает зашифрованный ключ сеанса и расшифровывает его, используя свой защищенный ключ. После этого и клиент, и сервер имеют общий секретный ключ, и могут использовать его для шифрования коммуникаций в период, пока длится сеанс.

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

предыдущая    следующая страница    вначало главы    оглавление

815

Hosted by uCoz