Применение шифрования
Работа с безопасными соединениями IIS
С точки зрения безопасности нешифруемое соединение между сайтом IIS и браузером доступно любому. В общем случае это не является проблемой при использовании сайта только в рамках интранет-сети, в которой отсутствует конфиденциальная информация, или при использовании сайта для широкого распространения рекламы компании и ее продукции. Но если на сайте ведется прием заказов или передается секретная информация, тогда необходимо обеспечить защиту данных.
Протоколы SSL/TLS виртуально защищают все интерактивные банковские операции, денежно-кредитные транзакции и покупки. Например, все финансовые институты используют SSL для обеспечения безопасной передачи номера PIN каждого из клиентов и других конфиденциальных данных, связанных с учетной записью. Когда клиент использует кредитую карту для интерактивной покупки товаров, данные формы заказа передаются, как правило, через SSL-защищенный "туннель", доступный только сотрудникам отдела заказов поставщика выбранного товара.
Совет. Протокол SSL изначально разработан компанией Netscape в середине 1990-х годов. С этого времени IETF работает над новым вариантом системы шифрования данных между клиентами и серверами под названием Transport Layer Security (TLS), основой которого является Netscape SSL 3.0 (эти версии не являются взаимозаменяемыми). Microsoft IIS поддерживает TLS 1.0 (новая версия) и SSL 3.0 (для обеспечения совместимости с более ранними версиями).
SSL и TLS обеспечивают очень надежное шифрование. Хорошо известны случаи похищения номеров кредитных карт с веб-сайтов, использующих технологию SSL/TLS, но эти преступления удалось совершить лишь потому, что информация хранилась в базе данных некорректным образом, а не потому, что хакер взломал шифр SSL/TLS.
Как работает безопасное веб-соединение
TLS и SSL составляют неотъемлемую часть большинства веб-браузеров (клиентов) и веб-серверов. В SSL/TLS используется уровень приложений, расположенный между протоколами HTTP и TCP, которые являются частью браузеров Microsoft и Netscape и встроены в IIS. Под сокетами (от названия протокола Secure Socket Layer) понимается возможность всех операционных систем, используемых приложениями, передавать и принимать данные через сеть.
Шифруемое соединение SSL/TLS позволяет шифровать на сервере и расшифровывать на клиенте (и наоборот) всю информацию, передаваемую между ними. Шифрование осуществляется с помощью симметричного шифра после безопасного обмена сеансовыми ключами посредством шифрования на открытом ключе (см. раздел "Комбинирование методов шифрования"). Алгоритмом открытого ключа является RSA, а симметричным шифром, используемым по умолчанию, – RC-4. Дополнительно все данные, передаваемые через шифруемые соединения, защищаются механизмом обнаружения злоумышленных действий, который отслеживает изменение данных при передаче.
Сеанс SSL между клиентом и сервером устанавливается следующим образом.
- Клиент открывает сокет и запрашивает подключение к серверу.
- Сервер аутентифицирует клиента (либо по паролю, либо посредством сертификата, отправляемого клиентом).
- После установки соединения сервер передает браузеру свой открытый ключ посредством отправки сертификата сервера, выпущенного доверенным бюро сертификатов.
- Клиент аутентифицирует сертификат.
- Клиент и сервер осуществляют обмен настроечной информацией для определения типа и силы шифрования, используемых в сеансе соединения.
- Клиент создает сеансовый ключ, используемый для шифрования данных.
- Клиент шифрует сеансовый ключ с помощью открытого ключа сервера (полученного из сертификата сервера) и отправляет его серверу. Секретный ключ, с помощью которого можно расшифровать сеансовый ключ, находится только на сервере.
- Сервер расшифровывает сеансовый ключ и использует его для создания безопасной сессии, через которую будет осуществляться обмен данными с клиентом.
Необходимым условием успешной реализации этих шагов является заранее установленный на клиенте корневой сертификат, полученный от доверенного бюро сертификатов. При использовании сертификата, полученного от коммерческого CA, корневой сертификат которого уже имеется в Microsoft Internet Explorer и Netscape Communicator (например, Verisign), не нужно беспокоиться об этом. При использовании сертификатов клиентов серверу необходимо установить клиентский корневой сертификат, выпущенный клиентским бюро сертификатов.
Настройка IIS на работу с SSL/TLS
При настройке сайта IIS на шифрование SSL/TLS нужно выполнить четыре процедуры.
- Создание пары открытых ключей, используемых в CA при запросе сертификата.
- Запрос сертификата сервера от CA.
- Установка сертификата.
- Настройка каталогов и страниц, безопасность которых необходимо обеспечить.
Совет. При приобретении сертификата у коммерческого бюро сертификатов весь процесс займет больше времени, причем оно будет потрачено, в основном, на ожидание завершения процедуры подтверждения в бюро сертификатов. Этот процесс может занять несколько дней, поэтому вы не сможете выполнить все четыре шага за один раз. Вам придется предоставить бюро сертификатов достаточное количество документов, подтверждающих заявленный статус и сферу деятельности вашей организации, и только после проверки этих данных вы получите сертификат. Тем не менее, некоторые коммерческие CA предоставляют через интернет пробные сертификаты, срок действия которых сильно ограничен, но это, по крайней мере, позволяет завершить экспериментальную настройку.