SSL
Материал из Xgu.ru
Содержание |
[править] Основные понятия
Цифровая подпись (digital signature) —
Цифровой сертификат (digital certificate) — цифровой документ, подтверждающий соответствие между открытым ключом и информацией, идентифицирующей владельца ключа. Он содержит определенную, цифровым образом подписанную информацию о владельце ключа, сведения об открытом ключе, его назначении и области применения, название доверенного центра и т.д.
[править] Инфраструктура открытого ключа
- Основная страница: Криптография
[править] Описание протокола
[править] Пример работы протокола
На рисунке описаны основные сообщения, которыми обмениваются пользователь (Боб) и веб-сервер (Элис). Пользователь, использует браузер для доступа к серверу, который поддерживает SSL. Такая ситуация может возникать, например, при заказе товара по Интернет.
Прежде чем веб-сервер начнет взаимодействовать с клиентом, на веб-сервере должен быть установлен сертификат подписанный центром сертификатов (CA). Браузер клиента должен знать этот центр сертификатов (доверять ему). Это значит, что сертификат этого центра сертификатов уже установлен в браузере и срок действия сертификата не истек. Если сертификат не установлен, то при доступе клиента к веб-серверу, у него высветится сообщение предлагающее принять или отклонить сертификат веб-сервера, так как он подписан неизвестным центром сертификатов.
Для получения сертификата Элис необходимо:
- Подготовить запрос на получение сертификата для отправки его CA:
- Сгенерировать пару открытый/закрытый ключ (с помощью утилиты генерации ключей, которая обычно есть в веб-сервере).
- Сгенерировать запрос на получение сертификата, который включает в себя идентифицирующую информацию о компании Элис (Distinguished Name) и открытый ключ.
- Отправить запрос на получение сертификата выбранному CA (например, запрос может быть отправлен почтой).
- В ответ на запрос CA отправляет Элис цифровой сертификат, в котором содержится открытый ключ Элис, подписанный CA.
- После получения ответа от CA, Элис помещает цифровой сертификат в базу сертификатов веб-сервера.
После того как Элис установила цифровой сертификат подписанный CA, она может начинать работу с клиентами. Когда Боб обращается к веб-серверу Элис, выполняются такие действия:
- Боб обращается с веб-серверу Элис. При этом броузер Боба автоматически скачает цифровой сертификат с веб-сервера Элис.
- Браузер Боба определит доверяет ли он CA, который подписал цифровой сертификат Элис:
- Сертификат CA дожен быть уже установлен в браузере Боба.
- Если сертификат установлен и срок его действия не истек, то дальнейший процесс будет прозрачным для Боба.
- Браузер дешифрует цифровой сертификат Элис с помощью открытого ключа CA, который получен из цифрового сертификата CA.
- Теперь у браузера Боба есть открытый ключ Элис.
-
Боб отправляет Элис сообщение в котором содержится сессионный ключ и шифрует его с помощью открытого ключа Элис:
- Сессионный ключ используется для шифрования трафика между Бобом и Элис.
- Этот ключ симметричный и будет использоваться для шифрования и дешифрования данных передаваемых между Бобом и Элис.
- Так как сообщение можно расшифровать только закрытым ключем Элис, то сессионный ключ безопасно доставляется на веб-сервер Элис.
-
Как только веб-сервер получает сообщение в котором хранится сессионный ключ, он его дешифрует с помощью закрытого ключа Элис.
- Все дальнейшие сообщения шифруются с помощью сессионного ключа (может передаваться информация о адресе, телефоне, кредитной карточке Боба).
- В зависимости от длительности соединения с веб-сервером, может использоваться несколько сессионных ключей, которые будут меняться после истечения их срока жизни.
[править] Отличия 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, которому они оба доверяют.
[править] Удаленный доступ
Для безопасного удаленного доступа пользователей к почте или другим корпоративным приложениям.
[править] Доступ к базам данных
При доступе к базе данных будет запрашиваться аутентификация клиента. Кроме того, может потребоваться шифрование данных передаваемых между базой данных и клиентом (например, это может быть медицинская или финансовая информация).
[править] Почта
[править] Дополнительная информация
- How TLS/SSL work
- SSL Tutorial
- OpenSSL
- Introduction to SSL
- SSL 3.0 SPECIFICATION
- Transport Layer Security
- Apache 2 с SSL/TLS
RFC:
- RFC4346 — TLS Protocol Version 1.1
LDAP и SSL:
- SSL соединение при использовании LDAP-сервиса
- RFC2830 (англ.) — Lightweight Directory Access Protocol (v3): Extension for Transport Layer Security
[править] Материалы связанные с SSL на xgu.ru
- Cisco CA server — Настройка сервера сертификатов на маршрутизаторе Cisco
- OpenSSL
- Apache SSL — включение поддержки SSL в Apache
Криптография на Xgu.ru | ||
---|---|---|
Основы | Криптография | |
AAA | Kerberos • EAP • Host-based аутентификация в OpenSSH | |
Шифрование данных на диске | Шифрование LVM • LUKS | |
Шифрование сетевых данных | VPN • IPsec • OpenVPN • SSL • OpenSSL • TLS • SSH | |
Криптография в VoIP | Шифрование звонков в Asterisk • SRTP |