SSL

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

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


Содержание

[править] Основные понятия

Цифровая подпись (digital signature) —

Цифровой сертификат (digital certificate) — цифровой документ, подтверждающий соответствие между открытым ключом и информацией, идентифицирующей владельца ключа. Он содержит определенную, цифровым образом подписанную информацию о владельце ключа, сведения об открытом ключе, его назначении и области применения, название доверенного центра и т.д.

[править] Инфраструктура открытого ключа

Основная страница: Криптография

[править] Описание протокола

[править] Пример работы протокола

На рисунке описаны основные сообщения, которыми обмениваются пользователь (Боб) и веб-сервер (Элис). Пользователь, использует браузер для доступа к серверу, который поддерживает SSL. Такая ситуация может возникать, например, при заказе товара по Интернет.

SSL.jpg

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

Для получения сертификата Элис необходимо:

  1. Подготовить запрос на получение сертификата для отправки его CA:
    • Сгенерировать пару открытый/закрытый ключ (с помощью утилиты генерации ключей, которая обычно есть в веб-сервере).
    • Сгенерировать запрос на получение сертификата, который включает в себя идентифицирующую информацию о компании Элис (Distinguished Name) и открытый ключ.
    • Отправить запрос на получение сертификата выбранному CA (например, запрос может быть отправлен почтой).
  2. В ответ на запрос CA отправляет Элис цифровой сертификат, в котором содержится открытый ключ Элис, подписанный CA.
  3. После получения ответа от CA, Элис помещает цифровой сертификат в базу сертификатов веб-сервера.

После того как Элис установила цифровой сертификат подписанный CA, она может начинать работу с клиентами. Когда Боб обращается к веб-серверу Элис, выполняются такие действия:

  1. Боб обращается с веб-серверу Элис. При этом броузер Боба автоматически скачает цифровой сертификат с веб-сервера Элис.
  2. Браузер Боба определит доверяет ли он CA, который подписал цифровой сертификат Элис:
      • Сертификат CA дожен быть уже установлен в браузере Боба.
      • Если сертификат установлен и срок его действия не истек, то дальнейший процесс будет прозрачным для Боба.
      • Браузер дешифрует цифровой сертификат Элис с помощью открытого ключа CA, который получен из цифрового сертификата CA.
      • Теперь у браузера Боба есть открытый ключ Элис.
  3. Боб отправляет Элис сообщение в котором содержится сессионный ключ и шифрует его с помощью открытого ключа Элис:
      • Сессионный ключ используется для шифрования трафика между Бобом и Элис.
      • Этот ключ симметричный и будет использоваться для шифрования и дешифрования данных передаваемых между Бобом и Элис.
      • Так как сообщение можно расшифровать только закрытым ключем Элис, то сессионный ключ безопасно доставляется на веб-сервер Элис.
  4. Как только веб-сервер получает сообщение в котором хранится сессионный ключ, он его дешифрует с помощью закрытого ключа Элис.
      • Все дальнейшие сообщения шифруются с помощью сессионного ключа (может передаваться информация о адресе, телефоне, кредитной карточке Боба).
      • В зависимости от длительности соединения с веб-сервером, может использоваться несколько сессионных ключей, которые будут меняться после истечения их срока жизни.

[править] Отличия SSL и TLS

Отличия между протоколами TLS 1.0 и SSL 3.0 небольшие, но протоколы не взаимозаменяемы. Для взамодействия двух сторон необходимо чтобы обе стороны использовали или SSL или TLS.

Улучшения в протоколе TLS, по сравнению с SSL:

  • Вместо алгоритма Message Authentication Code (MAC), который использовался в SSL, в TLS используется keyed-Hash Message Authentication Code (HMAC).
  • Добавлены новые alert сообщения.
  • В TLS it is not always necessary to include certificates all the way back to the root CA. You can use an intermediary authority.
  • TLS specifies padding block values that are used with block cipher algorithms.
  • TLS не поддерживает шифрование и обмен ключами Fortezza.
  • Небольшие изменения существуют в полях некоторых сообщений.

[править] Примеры использования

Примеры использования TLS/SSL:

  • Безопасные SSL-соединения с сайтами электронной коммерции
  • Доступ к сайтам, которые требуют аутентификации клиента
  • Удаленный доступ
  • Доступ к базам данных
  • Почта

[править] Безопасные SSL-соединения с сайтами электронной коммерции

Один из самых распространенных вариантов использования TLS/SSL это обеспечение безопасности соединения между браузером клиента и веб-сервером. Например, для заказа товаров в Интернет-магазине, когда необходимо предоставлять информацию о кредитной карточке.

В этом случае аутентификацируется только сервер.

[править] Доступ к сайтам, которые требуют аутентификации клиента

В случае обоюдной аутентификации необходимо, чтобы и у сервера и у клиента были сертификаты подписанные CA, которому они оба доверяют.

[править] Удаленный доступ

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

[править] Доступ к базам данных

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

[править] Почта

[править] Дополнительная информация

RFC:

  • RFC4346 — TLS Protocol Version 1.1

LDAP и SSL:

[править] Материалы связанные с SSL на xgu.ru

  • Cisco CA server — Настройка сервера сертификатов на маршрутизаторе Cisco
  • OpenSSL
  • Apache SSL — включение поддержки SSL в Apache
Источник — «http://xgu.ru/wiki/SSL»