Введение в Client Certificate – сертификаты пользователей для аутентификации и авторизации – Часть 1.

May 9th, 2012 § 0 comments

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

  1. аутентификация пользователя,
  2. авторизация пользователя,
  3. обеспечение блокировки пользователя при необходимости, например увольнении.

Особенностью клиентского сертификата заключается тот факт, что для одного пользователя их может быть выдано большое количество. В Microsoft Active Directory (AD) сертификаты пользователя привязываются к учетной записи. Тоесть в AD создается пользователь, после этого выдается на него сертфикат, открытая часть которого подписывается в Корпоративном Центре Сертификации (ЦС).

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

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

Благодаря этому гениальному асинхронному шифрованию и появилась возможность производить 2 действия:

  1. подписывать сообщения, чтобы все могли удостовериться, что данное сообщение написано именно тем субъектом, за кого он себя выдает;
  2. обмениваться сообщениями между субъектами и быть уверенным, что прочитать его сможет только тот, кому оно предназначается.

Конечно же, вышеописанные 2 пункта действуют только при условии, что секретный ключ не был утерян или украден у настоящего владельца.

Секрет асинхронного шифрования заключается в том, что:

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

Это действительно просто (если не вдаваться в подробности как это все происходит на уровне математики).

А теперь самое главное для понимания. В применении к области защиты информации, асинхронное шифрование содержит:

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

Таких пар ключей очень много, поэтому их хватит на всех, кому они необходимы.

Закрытый ключ – данный ключ применяется:

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

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

А немного позже напишу пост о http_x_arr_clientcert – переменная, которая применяется в Microsoft IIS при настройке редиректа.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>