Ssl подключение сертификат клиентской аутентификации. Применение шифрования

Протоколы открытых ключей позволяют устанавливать авторизованные шифруемые связи между узлами внутренних сетей и в интернете. Существуют три модели аутентификации, проводимой в этих протоколах; они используются как по отдельности, так и в комбинации.

  • Аутентификация клиента . Позволяет серверу Windows 2000 VPN или веб-серверу IIS идентифицировать пользователя с использованием стандартных методов шифрования на открытом ключе. Осуществляет проверку подлинности сертификата клиента и общего ID, а также проверку того, что эти данные сгенерированы бюро сертификатов, корневой сертификат которого установлен в перечне доверенных CA. Эта проверка очень важна, если сервером является банк, который передает конфиденциальную финансовую информацию клиенту и должен подтвердить личность получателя. На рисунке 8.1 отображен процесс аутентификации.
  • Аутентификация сервера . Позволяет клиенту VPN или браузеру клиента SSL/TLS подтверждать идентичность сервера, проверяя правильность сертификата сервера и идентификатора ID, а также то, что сертификаты выпущены бюро сертификатов (CA), корневой сертификат которого присутствует в перечне доверенных CA клиента. Это подтверждение имеет важное значение для пользователя веб-сайта, который отправляет номер кредитной карты через сеть и хочет удостовериться в том, что это именно тот сервер, который ему нужен.
  • Взаимная аутентификация . Позволяет клиенту и серверу авторизовать друг друга единовременно. Взаимная аутентификация требует, чтобы клиент и сервер имели цифровые сертификаты и соответствующие корневые сертификаты CA в перечнях доверенных CA.

Большая часть коммерческих CA, таких как Verisign, встроены в браузеры Netscape и Microsoft как корневые сертификаты по умолчанию. Пользователям и менеджерам сети не нужно устанавливать сертификаты, аутентификация сервера работает автоматически. Если организация выступает в роли своего собственного бюро сертификатов, то необходимо дополнительно установить корневой сертификат во всех браузерах компьютеров-клиентов интранет-сети и предоставить соответствующие инструкции.

На рисунке 8.1 показано, как работает аутентификация SSL/TLS. На практике в большей части веб-сайтов используется только серверная аутентификация с помощью цифрового сертификата, так как распространение клиентских сертификатов среди всех посетителей сайта представляет собой огромную работу (это сделать несколько легче, если клиенты объединены в сеть интранет).

Аргументом против использования сертификатов на компьютерах-клиентах является то, что при этом система открывается для потенциальных словарных атак. Клиент с браузером аутентифицирует сервер методами открытого ключа, но сервер просто использует пароли для аутентификации своих клиентов, поэтому хакер может выполнить атаку посредством угадывания пароля. Руководство компаний, не использующих сертификаты, считает, что цена разработки выше, чем реальная угроза; как и большая часть бизнес-решений, данное утверждение основывается на экономическом факторе.

Аутентификация представляет собой процедуру проверки подлинности объекта или субъекта.

  1. Речь может идти о проверке подлинности пользователя с помощью сравнения пароля, им веденного, с шифром, сохраненным в базе данных.
  2. Аутентификацией называют и проверку контрольной суммы файла на соответствие сумме, которая была заявлена автором данного файла.

Что значит аутентификация

Аутентификация - эффективный способ удостовериться в подлинности и достоверности важных сообщений. Один из «исторических» примеров системы аутентификации - речевой пароль «Сим-сим, откройся!» в сказке про Али-Бабу и сорок разбойников.

Сегодня, учитывая активное развитие сетевых технологий, нет ничего удивительного в том, что автоматическая аутентификация применяется повсеместно.

Держатели банковских также постоянно имеют дело с аутентификацией, выступая в качестве субъекта аутентификации. Хозяином банковской системы аутентификации является, соответственно, сам банк, характеристики системы - персональный идентификатор и банковская , а в качестве механизма используется программное обеспечение, проверяющее характеристики (карту и идентификатор).

Аутентификация на основе сертификата

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

Применение сертификатов не подразумевает хранения информации: сеть, дающая пользователю доступ к своим ресурсам, не сохраняет данные: пользователи сами предоставляют их в своих запросах в виде сертификатов, удостоверяющих их личность.

Аутентификацию на основе сертификатов можно сравнить с системой проверки на проходной большого предприятия: вахтер пропустит только тех, кто покажет ему пропуск с фотографией, подписью и печатью.

Единая система аутентификации

ЕСИА, единая система идентификации и аутентификации, представляет собой информационную систему РФ, которая дает санкционированный доступ субъектам к информации, содержащейся в информационных государственных системах. Среди основных функциональных возможностей ЕСИА можно выделить:

  • аутентификацию и идентификацию пользователей;
  • авторизацию уполномоченных лиц при доступе к функциям ЕСИА;
  • управление идентификационными данными пользователей;
  • ведение информации о полномочии пользователей.

Ошибка аутентификации

Учитывая тот факт, что аутентификация подразумевает под собой введение пароля, можно сделать вывод, что ошибка аутентификации с большой долей вероятности заключается в неправильно введенном пароле. Если система вам сообщает об ошибке аутентификации, проверьте правильность пароля, в частности, убедитесь в том, что используете нужный язык и раскладку.

Если вы убедились, что пароль правильный, но система продолжает настаивать на ошибке, значит, речь идет о сбое в Сети. В этом случае лучше не предпринимать самостоятельных действий, а обратиться к специалистам. Например, если речь идет о банкоматах, посмотрите на боковой панели оборудования информацию с номерами телефонов службы поддержки - позвоните по телефону и опишите свою проблему. Далее следуйте рекомендациям оператора.

Сертификат клиентской аутентификации

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

Строгий контроль достоверности информации в сертификате позволяет обеспечить максимально строгую криптографическую аутентификацию, что дает возможность подтвердить подпись владельца сертификата под электронными документами.

Изготовление и обслуживание клиентских сертификатов осуществляется на платной основе.

Остальные материалы цикла:

  • Аутентификация клиентов в сетевых службах при помощи цифровых сертификатов — подведение итогов

В первой части серии постов про клиентскую аутентификацию при помощи сертификатов мы сделали вброс и поговорили об основных моментах этой темы. Мы поняли, что сертификаты всяко секурней, чем эти ваши пароли (если их правильно приготовить!). В этой части я предлагаю заняться теорией. Долгой, сложной, нудной, но необходимой. Сегодня теория будет состоять из изучения общего принципа работы аутентификации по сертификатам и как это выглядит в общении клиента и сервера.

Общая схема аутентификации по сертификатам

Когда пользователь аутентифицируется при помощи сертификата на веб-сайте, происходит примерно следующий процесс:

  1. Пользователь запрашивает доступ к некоторой сетевой службе;
  2. По запросу сервер посылает клиенту свой серверный сертификат (сертификат SSL). Клиент проверяет его на валидность. Если проверка провалилась, на этом всё заканчивается;
  3. Если проверка прошла успешно, клиент запрашивает доступ к ресурсам службы;
  4. Служба сконфигурирована на обязательную аутентификацию пользователя и отправляет клиенту доступные (на сервере) методы аутентификации. В нашем случае это требование клиентского сертификата;
  5. Клиент посылает на сервер публичную часть своего сертификата и некоторый объём подписанных клиентским сертификатом данных. Сервер проверяет клиентский сертификат на валидность. Если сертификат не прошёл проверку — разговор клиента и сервера на этом завершается. Если сертификат прошёл проверку, сервер пытается сопоставить (или ассоциировать) сертификат с учётной записью пользователя. Если сопоставление не удалось — разговор завершается.
  6. Если учётная запись найдена и сертификат удалось сопоставить с ней, сервер начинает установку защищённого канала. После установки этого канала, сервер предоставляет пользователю ресурсы в том объёме, в котором это позволяют списки доступа (ACL, например).

Я посчитал нужным немного развернуть последний пункт, чтобы вы понимали общее устройство этого канала (поскольку, у людей есть некоторые заблуждения на этот счёт):

  1. Клиент запрашивает установку безопасного канала;
  2. Сервер отвечает согласием и пересылает клиенту список поддерживаемых симметричных протоколов шифрования;
  3. Клиент посылает на сервер свой список протоколов симметричного шифрования;
  4. Клиент и сервер договариваются и выбирают наиболее подходящий протокол. Например, — Я умею DES и 3DES, а что умеешь ты? — А я умею только 3DES и AES. — Отлично, давай тогда использовать 3DES;
  5. Клиент на своей стороне генерирует сессионный симметричный ключ шифрования и шифрует его открытым ключом сертификата сервера. Этот процесс называется Key exchange. Как мы знаем, прочитать этот ключ сможет только веб сервер, т.к. только он владеет закрытым ключом, который ассоциирован с конкретным сертификатом SSL;
  6. После этого, все передаваемые данные шифруются именно этим сессионным ключом. Помните, что при передаче данных сертификаты уже не используются (а многие считают, что все данные шифруются открытыми ключами сертификатов). Сертификаты используются только при обновлении сессионного ключа (который периодически меняется).

Немного другой процесс происходит при интерактивном логоне или логоне на сервер терминалов посредством Remote Desktop при помощи смарт-карты.

Логон смарт-картой или PKINIT

Интерактивная аутентификация в Active Directory по сертификату не является самостоятельным механизмом. Как и всегда, основной протокол аутентификации в домене — Kerberos. Чтобы обеспечить взаимодействие между аутентификацией по смарт-карте и Керберосом, применяется нехитрый протокол PKINIT. PKINIT, в свою очередь, является лишь надстройкой над керберосом (или расширением протокола). Вот как он примерно работает:

Примечание: если у пользователя уже есть соответствующий сервисный тикет (TGS), выполняются только шаги 5 и 6.

  1. Пользователь вводит PIN от смарт-карты и посылает запрос AS-REQ на контроллер домена (он же Key Distribution Center — KDC). Этот запрос содержит преаутентификационные данные PA_PK_AS_REQ, которые, в свою очередь, содержат логонный сертификат и подписанная временная метка и опциональные атрибуты. В качестве опциональных атрибутов, клиент посылает список поддерживаемых алгоритмов, корневых CA, параметры Diffie-Hellman и т.д. Более детально структуру запроса (а там есть достаточно занятных вещей) можно найти в RFC 4556 §3.2.1 (пункт 5 на странице 12). В связи с этим (например, передача списка доверенных корневых CA от клиента на сервер) время логона смарт-картой будет значительно медленней, чем при связке логин/пароль. Плюс расходы на криптографические операции.
  2. Сервер KDC проверяет запрос и пробует ассоциировать полученный сертификат с учётной записью пользователя. Если сопоставление сертификата с учётной записью произошло успешно, KDC формирует ответ AS-REP, включая в него Ticket-Granting Ticket (TGT) и прочую необходимую информацию. Ответ подписывается сертификатом самого KDC (именно поэтому, при использовании смарт-карты для логона, сервер KDC должен иметь свой собственный сертификат (о нём мы поговорим в следующих статьях).
  3. Клиент проверяет этот ответ и проверяет подпись (вместе с сертификатом KDC). Если с ответом и сертификатом всё хорошо, клиент, на основе имеющегося TGT, генерирует Ticket Granting Service запрос — TGS-REQ для доступа к конкретной службе и отправляет его на KDC.
  4. KDC проверяет запрос TGS-REQ и в случае положительного вердикта формирует ответ Ticket-Granting Service (TGS-REP), включая в него всю необходимую информацию для интерактивного логона, включая все необходимые SID"ы и учётные данные для аутентификации при помощи NTLM.
  5. Клиент генерирует специальный токен GSS-API (

Криптографический протокол SSL (Secure Socket Layer) был разработан в 1996 году компанией Netscape и вскоре стал наиболее популярным методом обеспечения защищенного обмена данными через Интернет. Этот протокол интегрирован в большинство браузеров и веб серверов и использует ассиметричную криптосистему с открытым ключом, разработанную компанией RSA.

Для осуществления SSL соединения необходимо, чтобы сервер имел инсталлированный цифровой сертификат. Цифровой сертификат - это файл, который уникальным образом идентифицирует пользователей и серверы. Это своего рода электронный паспорт, который проводит аутентификацию сервера до того, как устанавливается сеанс SSL соединения. Обычно цифровой сертификат независимо подписывается и заверяется третьей стороной, что гарантирует его достоверность. В роли такой третьей стороны выступают центры сертификации, в частности, компания thawte. Компания thawte является наиболее известным в мире центром сертификации.

Протокол SSL обеспечивает защищенный обмен данными за счет сочетания двух следующих элементов:

Аутентификация Цифровой сертификат привязан к конкретному домену сети Интернет, а центр сертификации проводит проверки, подтверждающие подлинность организации, а уже затем создает и подписывает цифровой сертификат для этой организации. Такой сертификат может быть установлен только на тот домен web-сервера, доля которого он прошел аутентификацию, что и дает пользователям сети Интернет необходимые гарантии.

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

Как выглядит SSL сертификат?

Чтобы увидеть детали SSL сертификата web-сайта, сделайте двойной щелчок мыши по закрытому замочку, который появляется внизу страницы в строке состояния.

Так выглядит цифровой сертификат для браузера IE 6.0:

SSL сертификат web-сервера позволяет посетителям Вашего сайта видеть следующую информацию (детальная информация о сертификате представлена на закладке «Состав»):

* Домен сети Интернет, для которого выпущен этот сертификат. Эта информация позволяет убедиться, что данный SSL сертификат web-сервера был выпущен именно для вашего хоста и домена (http://www.mydomain.com/ ). * Владелец сертификата. Эта информация является дополнительной гарантией, поскольку посетитель может увидеть имя того, с кем ведет бизнес. * Город, где зарегистрирована компания-владелец сертификата. Эта информация еще раз убеждает посетителя, что он имеет дело с реальной организацией. * Срок действия сертификата. Эта информация особенно важна, поскольку показывает пользователю, что ваш цифровой сертификат действующий.

Как установить SSL сессию защищенного обмена данными?

Когда вы устанавливаете сетевое соединение с защищенным web-сервером, таким как https://www.ssl.ua , сервер должен вначале сам аутентифицировать клиентский web-браузер, что осуществляется с помощью цифрового сертификата, после чего устанавливается защищенное соединение.

Следующая диаграмма показывает шаги, необходимые для установки защищенной сессии по протоколу SSL.

В ходе этой процедуры web-браузер проверяет, чтобы:

 доменное имя в сертификате соответствовало тому домену, от которого идет запрос на защищенное соединение

 сертификат не был просрочен

 сертификации, подписавший сертификат домена, входил в число доверенных вашего web-браузера

Этапы этой процедуры проходят без пауз, так что пользователь «не чувствует» этой внутренней работы. Сертификат служит электронным документом, независимым образом заверяемым третьей стороной, такой как компания thawte, которая гарантирует, что домен принадлежит именно этой реально существующей компании. Действующий сертификат дает пользователю гарантию конфиденциальности при передаче прошедшему аутентификацию узлу Интернет. Передача информации осуществляется защищенным образом.

Когда желательно применять SSL сертификаты?

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

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

Значимость аутентификации web-сервера

Информация - это основа жизнеобеспечения вашего бизнеса. Чтобы обеспечить цельность (защиту от фальсификации) и конфиденциальность, необходимо идентифицировать тех, с кем вы имеете дело, а также быть уверенными в надежности получаемых данных. Аутентификация поможет вам установить доверие между сторонами при проведении любых видов транзакций. К числу средств обеспечения надежности относится предотвращение следующих явлений:

 «Спуфинг» (имитация соединения):

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

 Несанкционированные действия:

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

 Неправомочное разглашение информации:

Когда транзакции осуществляются «открытым текстом», хакер может их перехватывать, чтобы получить информацию, важную для ваших клиентов.

 Фальсификация данных:

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

Протокол SSL (Secure Socket Layers - протокол защищенных сокетов), совместно разработанный Netscape Communications и RSA Data Security, позволяет эффективно обеспечить такую безопасность. Протокол SSL обеспечивает безопасность, аутентификацию на базе сертификатов и согласование безопасности по установленному сетевому соединению, поэтому множество компаний и продуктов приняли SSL в качестве коммуникационного протокола.

В этой серии мы сконцентрируемся на двух главных аспектах:

    подробная информация о схеме работы SSL;

    детальная информация о поддержке SSL в версиях 5.1 и 6.0.1 среды ISC.

В данной статье исследуется SSL и объясняется, почему его рекомендуется реализовать в среде ISC. Во второй и третьей частях этой серии будет представлена подробная пошаговая инструкция по реализации и подключению SSL к ISC 5.1 и 6.0.1.

Во-первых, что такое SSL?

Знакомство с ssl

Протокол SSL обеспечивает целостность и конфиденциальность обмена данными между двумя общающимися приложениями, использующими TCP/IP. Данные, перемещающиеся между клиентом и сервером, шифруются симметричным алгоритмом.

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

Цифровые сертификаты

Это подводит нас к обсуждению цифровых сертификатов, играющих важную роль в SSL. Цифровые сертификаты в основном служат двум целям:

    установить личность владельца;

    сделать доступным первичный ключ владельца.

Цифровой сертификат выпускается проверенной полномочной организацией - источником сертификатов (certificate authority - CA) и выдается только на ограниченное время. После истечения срока действия сертификата его необходимо заменить. Протокол SSL использует цифровые сертификаты для обмена ключами, аутентификации серверов и, при необходимости, аутентификации клиентов.

Цифровой сертификат содержит следующие фрагменты информации о личности владельца сертификата и источнике сертификатов:

    полное (уникальное) имя владельца сертификата;

    публичный ключ владельца;

    дата выдачи цифрового сертификата;

    дата окончания действия сертификата;

    полное (уникальное) имя издателя (источника сертификата);

    цифровая подпись издателя.

Подключение по SSL всегда инициируется клиентом вызовом URL-адреса, начинающегося с https:// вместо http:// .

Типы сертификатов

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

Есть три способа получить SSL-сертификат:

    использовать сертификат от источника сертификатов;

    использовать самоподписанный сертификат;

    использовать "пустой" сертификат

Использование сертификата от источника сертификатов

Источники сертификатов (CA) - это организации, которым доверяет вся отрасль и которые занимаются выдачей Интернет-сертификатов. Например, такой сертификат можно получить от компании VeriSign. Чтобы получить сертификат, подписанный источником, необходимо предоставить достаточно информации источнику, чтобы он смог проверить вашу личность. Тогда источник создаст новый сертификат, подпишет его и доставит его вам. Популярные Web-браузеры заранее настроены доверять сертификатам, выданным определенными источниками, так что не нужно никакой дополнительной конфигурации для подключения клиента через SSL к серверу, для которого был выдан сертификат.

Использование самоподписанного сертификата

Самоподписанный сертификат - это сертификат, созданный самим пользователем. При использовании такого сертификата издатель совпадает с владельцем сертификата. Удобство такого решения в том, что для создания самоподписанного сертификата нужно меньше времени, чем для получения сертификата, подписанного источником сертификатов. Однако самоподписанный сертификат требует, чтобы любой клиент, подключающийся по SSL к серверу, установившему такой сертификат, был настроен доверять подписавшему сертификат. Так как сертификат был подписан самим пользователем, такая подпись скорее всего не окажется в файле списка доверенных источников клиента и поэтому должна быть туда добавлена. Если получить доступ к такому файлу любого клиента невозможно, то не стоит использовать такую конфигурацию, лучше получить сертификат от проверенного источника. Самоподписанные сертификаты полезны только тогда, когда каждый клиент, взаимодействующий с сервером, можно настроить так, чтобы он доверял данному сертификату.

Использование "пустого" сертификата

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

Итак, что нужно делать после получения сертификата?

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

Шаг 1. Создание центра сертификации

Чтобы приступить к работе сперва необходимо настроить центр сертификации (CA), это довольно просто. Если на сервере установлен OpenSSL , то СА по умолчанию настроен и готов к работе. Теперь создадим свой собственный доверенный сертифика, он необходим для подписи клиентских сертификатов и для их проверки при авторизации клиента веб-сервером.

Шаг 1.2. Создаем приватный ключ центра сертификации.

Шаг 2.2. Создаем сертификат для веб-сервера.

Шаг 3.2. Создаем клиентский сертификат.

Добавляем сертификаты в систему на примере MacOS

Загружаем client.p12 и установим его в систему.

Переходим в связку ключей и в свойствах установленного сертификата меняем уровень доверия на “Всегда доверять”.

Раскрываем ветку сертификата и предоставляем полный доступ для программ в его свойствах:

Для того, чтобы соединение было доверенным между сервером и клиентом, то обязательно установим корневой сертификат на клиентское устройство (ca.crt )



Просмотров