- •Знакомство с ssl
- •Цифровые сертификаты
- •Типы сертификатов
- •Аутентификация на стороне клиента или сервера
- •Файл ключей и файл со списком доверенных источников
- •Ssl и WebSphere Application Server
- •Ssl и Integrated Solutions Console
- •Какие преимущества дает использование ssl?
- •2. От теории к практике: взлом ssl
- •От теории к практике
- •3. Найдена дыра в протоколе ssl
- •4. Взлом ssl. Перехват паролей в зашифрованных соединениях.
- •Руководство
- •Информационная безопасность
- •Войны в песочнице — Часть 2. Обход https
- •Secure Sockets Layer
- •Пассивное наблюдение
- •Man in the middle
- •Пользовательские интерфейсы
- •Как пользователь использует ssl?
- •Завершение истории
- •Комментарии (53)
- •6. Критическая уязвимость в ssl вышла из разряда теоретических: исследователи выпустили программу для взлома шифрования
- •Криптографический троян
- •Mozilla и OpenSsl: просто ужасно, не так ли?
Аутентификация на стороне клиента или сервера
После того как сертификат был получен, необходимо установить его подлинность (аутентифицировать). В протоколе SSL есть два типа аутентификации:
аутентификация на стороне клиента;
аутентификация на стороне сервера.
SSL-аутентификация сервера позволяет клиенту проверить подлинность сервера. Клиентское ПО, поддерживающее SSL, может с помощью стандартных приемов криптографии с открытым ключом проверить, что сертификат сервера и открытый ключ действительны и были выданы источником, находящимся в списке доверенных источников сертификатов этого клиента. Это подтверждение может быть важным, если пользователь, например, отправляет номер кредитной карты по сети и хочет проверить подлинность сервера-получателя.
SSL-аутентификация клиента позволяет серверу проверить личность пользователя. Используя те же приемы, что и в случае с аутентификацией сервера, серверное ПО с поддержкой SSL может проверить, что сертификат клиента и открытый ключ действительны и были выданы источником сертификатов, имеющимся в списке доверенных источников сервера. Это подтверждение может быть важным, если, например, сервер - это банк, отправляющий конфиденциальную финансовую информацию заказчику, и он хочет проверить личность получателя.
На рисунке 1 приведена диаграмма, иллюстрирующая этот процесс.
Рисунок 1. Процесс аутентификации между клиентом и сервером
Файл ключей и файл со списком доверенных источников
Реализация протокола SSL, используемая в WebSphere® Application Server, хранит персональные сертификаты в файле ключей SSL и сертификаты издателя в файле со списком доверенных источников . Файл ключей содержит коллекцию сертификатов, каждый из которых может быть представлен во время установки SSL соединения для подтверждения подлинности. В файле со списком доверенных источников хранится коллекция сертификатов, которые считаются достоверными и с которыми будет сравниваться представленный сертификат во время установки SSL-соединения для проверки подлинности.
Ssl и WebSphere Application Server
Хорошим примером реализации протокола SSL является его поддержка в IBM WebSphere Application Server. Система безопасности этого сервера имеет многоуровневую архитектуру, показанную на рисунке 2.
Рисунок 2. Многоуровневая безопасность WebSphere Application Server
Уровень сетевой безопасности обеспечивает аутентификацию на транспортном уровне, целостность и шифрование сообщений. Коммуникации между различными серверами WebSphere Application Server могут быть сконфигурированы на использование протоколов SSL и HTTPS. Для дополнительной защиты сообщений также можно использовать протоколы IP Security и VPN (Virtual Private Network - виртуальная частная сеть).
Протокол SSL обеспечивает безопасность на транспортном уровне: аутентификацию, целостность и конфиденциальность для безопасного соединения между клиентом и сервером в WebSphere Application Server. Этот протокол работает поверх TCP/IP и под прикладными протоколами, такими как HTTP, LDAP, IIOP, обеспечивая достоверность и секретность передаваемых данных. В зависимости от конфигурации SSL на клиенте и сервере могут быть установлены различные уровни достоверности, целостности данных и секретности. Понимание основ функционирования протокола SSL очень важно для правильной настройки и достижения требуемого уровня защиты для данных клиента и приложения.
Некоторые функции безопасности, предоставляемые протоколом SSL:
Шифрование данных с целью предотвратить раскрытие конфиденциальных данных во время передачи.
Подписывание данных с целью предотвратить несанкционированное изменение данных во время передачи.
Аутентификация клиента и сервера , позволяющая убедиться, что общение ведется с соответствующим человеком или компьютером.
Протокол SSL может служить эффективным средством обеспечения безопасности информационной среды организации.
Протокол SSL используется различными компонентами внутри WebSphere Application Server для обеспечения достоверности и конфиденциальности. К этим компонентам относятся: встроенный HTTP-транспорт, ORB и безопасный LDAP-клиент.
Реализация SSL, используемая в WebSphere Application Server, - это либо расширение для Java - IBM Java™ Secure Sockets Extension (IBM JSSE), либо IBM System SSL. Провайдер IBM JSSE содержит эталонную реализацию, поддерживающую протоколы SSL и TLS (Transport Layer Security - безопасность транспортного уровня) и API для интеграции. С провайдером IBM JSSE также поставляется стандартный провайдер, предоставляющий поддержку RSA для функциональности цифровой подписи из библиотеки JCA (Java Cryptography Architecture - Архитектура Шифрования для Java) для платформы Java 2, стандартные наборы шифров для SSL и TLS, менеджеров доверенных источников сертификатов и ключей, использующих технологию X509, и реализацию технологии PKCS12 для хранилища цифровых сертификатов JCA.
Конфигурация провайдера JSSE очень похожа на конфигурацию большинства других реализаций SSL, например GSKit, однако пару отличий следует выделить:
Провайдер JSSE поддерживает хранение собственного сертификата и сертификатов издателя в файле ключей SSL, но он также поддерживает и отдельный файл, т.н. файл источников сертификатов (trust file). Этот файл может содержать только сертификаты источников. Можно поместить свои собственные сертификаты в файл ключей SSL, а сертификаты издателей - в trust-файл. Это может потребоваться, например, при наличии недорогого аппаратного криптографического устройства, у которого памяти достаточно только для хранения персонального сертификата. В этом случае файл ключей указывает на аппаратное устройство, а trust-файл указывает на файл на диске, содержащий все сертификаты издателей.
Провайдер JSSE не распознает специальный формат файла ключей SSL, используемый плагином - файлы с расширением .kdb. Провайдер JSSE распознает только стандартные форматы файлов, такие как Java Key Store (JKS - хранилище ключей Java). Совместное использование файлов ключей SSL плагином и сервером приложений невозможно. Более того, для управления ключами сервера приложений и trust-файлами необходимо использовать различные реализации утилиты управления ключами.