Цифровой сертификат. Электронный сертификат X.509 обзор Расширенная область применения ключа

Необходимость защиты информации

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

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

Для чего нужна криптография

Система криптографической защиты должна обеспечивать:

  • Конфиденциальность - Информация должна быть защищена от несанкционированного прочтения как при хранении, так и при передаче. Если сравнивать с бумажной технологией, то это аналогично запечатыванию информации в конверт. Содержание становится известно только после того, как будет открыт запечатанный конверт. В системах криптографической защиты обеспечивается шифрованием.
  • Контроль доступа - Информация должна быть доступна только для того, для кого она предназначена. Если сравнивать с бумажной технологией, то только разрешенный получатель может открыть запечатанный конверт. В системах криптографической защиты обеспечивается шифрованием.
  • Аутентификацию - Возможность однозначно идентифицировать отправителя. Если сравнивать с бумажной технологией, то это аналогично подписи отправителя. В системах криптографической защиты обеспечивается электронной цифровой подписью и сертификатом.
  • Целостность - Информация должна быть защищена от несанкционированной модификации как при хранении, так и при передаче. В системах криптографической защиты обеспечивается электронной цифровой подписью и имитозащитой.
  • Неотрекаемость - Отправитель не может отказаться от совершенного действия. Если сравнивать с бумажной технологией, то это аналогично предъявлению отправителем паспорта перед выполнением действия. В системах криптографической защиты обеспечивается электронной цифровой подписью и сертификатом.

Что такое криптография с открытыми ключами

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

Криптография делится на два класса: с симметричными ключами и открытыми ключами.

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

Преимущества криптографии с симметричными ключами:

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

Недостатки криптографии с симметричными ключами:

  • Распределение ключей - Так как для шифрования и расшифрования используется один и тот же ключ, при использовании криптографии с симметричными ключами требуются очень надежные механизмы для распределения ключей.
  • Масштабируемость - Так как используется единый ключ между отправителем и каждым из получателей, количество необходимых ключей возрастает в геометрической прогрессии. Для 10 пользователей нужно 45 ключей, а для 100 уже 499500.
  • Ограниченное использование - Так как криптография с симметричными ключами используется только для шифрования данных и ограничивает доступ к ним, при ее использовании невозможно обеспечить аутентификацию и неотрекаемость.

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

Криптография с открытыми ключами обеспечивает все требования, предъявляемые к криптографическим системам. Но реализация алгоритмов требует больших затрат процессорного времени. Поэтому в чистом виде криптография с открытыми ключами в мировой практике обычно не применяется. Для шифрования данных используются симметричные (сеансовые) ключи, которые в свою очередь шифруются с использованием открытых для передачи сеансовых ключей по сети.

Криптография с открытыми ключами требует наличия Инфраструктуры Открытых Ключей (PKI - Public Key Infrastructure) - неотъемлемого сервиса для управления электронными сертификатами и ключами пользователей, прикладного обеспечения и систем.

Верификация открытого ключа

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

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

Верификация цепочки сертификатов

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

Процедура верификации цепочки сертификатов описана в рекомендациях X.509 и RFC 2459 и проверяет связанность между именем Владельца сертификата и его открытым ключом. Процедура верификации цепочки подразумевает, что все "правильные" цепочки начинаются с сертификатов, изданных одним доверенным центром сертификации. Под доверенным центром понимается главный ЦС, открытый ключ которого содержится в самоподписанном сертификате. Такое ограничение упрощает процедуру верификации, хотя наличие самоподписанного сертификата и его криптографическая проверка не обеспечивают безопасности. Для обеспечения доверия к открытому ключу такого сертификата должны быть применены специальные способы его распространения и хранения, так как на данном открытом ключе проверяются все остальные сертификаты.

Алгоритм верификации цепочек использует следующие данные:

  • Х.500 имя Издателя сертификата;
  • Х.500 имя Владельца сертификата;
  • открытый ключ Издателя;
  • срок действия открытого (секретного) ключа Издателя и Владельца;
  • ограничивающие дополнения, используемые при верификации цепочек (basicConstraints, nameConstraints, policyConstrains);
  • СОС для каждого Издателя (даже если он не содержит отзываемых сертификатов).

Цепочка сертификатов представляет собой последовательность из n сертификатов, в которой:

  • для всех x в {1, (n-1)}, Владелец сертификата x есть Издатель сертификата x+1;
  • сертификат x=1 есть самоподписанный сертификат;
  • сертификат x=n есть сертификат конечного пользователя;

Одновременно с цепочкой сертификатов используется цепочка СОС, представляющая собой последовательность из n СОС, в которой:

  • для всех СОС x в {1, n}, Издатель сертификата x есть Издатель СОС x;
  • СОС x=1 есть СОС, изданный Владельцем самоподписанного сертификата;
  • СОС x=n есть СОС, изданный Издателем сертификата конечного пользователя;

После построения двух цепочек (сертификатов и СОС) выполняется:

  • криптографическая проверка сертификатов и СОС в цепочках;
  • проверка сроков действия сертификатов и СОС;
  • проверка соответствия имен Издателя и Владельца с использованием дополнения nameConstraints ;
  • проверка длины цепочки с использованием дополнения basicConstraints ;
  • проверка на отзыв сертификатов, причем, если сертификат промежуточного центра был отозван СОС вышестоящего центра, все сертификаты, изданные промежуточным центром, считаются недействительными;
  • проверка приемлемых регламентов использования сертификата и приемлемых областей использования ключа с использованием дополнений certificatesPolicies и extendedKeyUsage .

Компоненты ИОК и их функции

В состав компонент ИОК входят следующие компоненты:

  • Центр Сертификации;
  • Центр Регистрации;
  • Конечные пользователи;
  • Сетевой справочник.

Центр Сертификации

Центр Сертификации (или Удостоверяющий Центр) - основная управляющая компонента ИОК, предназначенная для формирования электронных сертификатов подчиненных Центров и конечных пользователей. Кроме сертификатов, ЦС формирует список отозванных сертификатов X.509 CRL (СОС) с регулярностью, определенной Регламентом системы.

К основным функция ЦС относятся:

  • Формирование собственного секретного ключа и сертификата ЦС;
  • Формирование сертификатов подчиненных Центров;
  • Формирование сертификатов открытых ключей конечных пользователей;
  • Формирование списка отозванных сертификатов;
  • Ведение базы всех изготовленных сертификатов и списков отозванных сертификатов;

Центр Регистрации

Опциональная компонента ИОК, предназначенная для регистрации конечных пользователей. Основная задача ЦР - регистрация пользователей и обеспечение их взаимодействия с ЦС. В задачи ЦР может также входить публикация сертификатов и СОС в сетевом справочнике LDAP.

Пользователи

Пользователь, приложение или система, являющиеся Владельцами сертификата и использующие ИОК.

Сетевой справочник

Опциональная компонента ИОК, содержащая сертификаты и списки отозванных сертификатов и служащая для целей распространения этих объектов среди пользователей с использованием протокола LDAP (HTTP, FTP).

Использование ИОК в приложениях

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

Электронная почта и документооборот

Защищенные электронная почта и документооборот используют криптографию для шифрования сообщений или файлов и формирования ЭЦП. Из наиболее известных и распространенных стандартов стоит отметить протокол S/MIME (Secure Multipurpose Internet Mail Extensions), который является расширением стандарта Internet почты MIME (Multipurpose Internet Mail Extensions).

Web приложения

Web броузеры и сервера используют ИОК для аутентификации и конфиденциальности сессии, а также для онлайновых банковских приложений и электронных магазинов. Наиболее распространенным протоколом в этой сфере является протокол SSL (Secure Sockets Layer). Протокол SSL не ограничивается применением только для защиты HTTP (Hypertext Transfer Protocol), а также может быть использован для FTP (File Transfer Protocol) и Telnet.

ЭЦП файлов и приложений

Использование ЭЦП для подписи приложений и файлов позволяет безопасно распространять их по сети Internet. При этом пользователь уверен в корректности полученного приложения от фирмы-разработчика.

Стандарты в области ИОК

Стандарты в области ИОК делятся на две группы: часть из них описывает собственно реализацию ИОК, а вторая часть, которая относится к пользовательскому уровню, использует ИОК, не определяя ее. На приведенном рисунке показана связь приложений со стандартами. Стандартизация в области ИОК позволяет различным приложениям взаимодействовать между собой с использованием единой ИОК.

В особенности стандартизация важна в области:

  • процедуры регистрации и выработки ключа;
  • описания формата сертификата;
  • описания формата СОС;
  • описания формата криптографически защищенных данных;
  • описания онлайновых протоколов.

Основным центром по выпуску согласованных стандартов в области ИОК является рабочая группа ИОК (PKI working group) организации IETF (Internet Engineering Task Force), известная как группа PKIX (от сокращения PKI for X.509 certificates).

Стандарты PKIX

Спецификации PKIX основаны на двух группах стандартов: X.509 ITU-T (Международный комитет по телекоммуникациям) и PKCS (Public Key Cryptography Standards) firmy RSA Data Security. X.509 изначально был предназначен для спецификации аутентификации при использовании в составе сервиса X.500 директории. Фактически же, синтаксис электронного сертификата, предложенный в X.509 признан стандартом де-факто и получил всеобщее распространение независимо от X.500. Однако X.509 ITU-T не был предназначен для полного определения ИОК. В целях применения стандартов X.509 в повседневной практике пользователи, поставщики и комитеты по стандартизации обращаются к стандартам PKCS. PKIX группа издала следующие стандарты Internet (RFC).

Формат и структура сертификата ключа подписи

Детальное описание структуры сертификата, включая перечень ограничений использования СКП и порядок использования полей квалифицированного сертификата ЭП, выданного УЦ ФК (далее – Описание СКП) утверждается УЦ ФК в виде отдельного документа, являющегося неотъемлемой частью настоящего Регламента.

Сертификат ключа проверки электронной подписи в электронной форме представляет собой электронный документ, имеющий структуру, соответствующую стандарту Международного союза телекоммуникаций ITU-T X.509 версии 3 и рекомендаций IETF (Internet Engineering Task Force) RFC 3280 и 5280 и представленный в кодировке Base64.

Структура сертификатов ключей подписи, изготавливаемых УЦ, определяется следующей таблицей:

сертификата » в виде древовидной структуры с возможностью отметить... Подпись запросов на издание сертификатов ключей подписи ». 4. Для перехода на... Идентификатор ключа ». «Имя Отчество» – имя и отчество владельца сертификата в формате « ...
  • Руководство администратора (2)

    Руководство

    Системами. «Подпись запросов на издание сертификатов ключей подписи » – позволяет руководителю подписывать передаваемые в ТОФК... Структура файла ЭЦП Формирование ЭЦП происходит с использованием криптопровайдера «КриптоПро CSP», версия 2.0 с форматом ...

  • Название

    Описание

    Заявитель

    Организация-заявитель

    Базовые поля сертификата

    Уникальный номер

    Уникальный номер сертификата

    SignatureAlgorithm

    Алгоритм подписи

    1.2.643.2.2.3 (ГОСТ Р 34.11-2001, ГОСТ Р 34.10-2001)

    Издатель сертификата

    Validity Period

    Срок действия сертификата

    Действителен с: дд.мм.гггг чч:мм:сс GMT

    Действителен по: дд.мм.гггг чч:мм:сс GMT

    Владелец сертификата

    CN = Фамилия, Имя, Отчество;

    CN = Наименование организации

    SN=Фамилия;

    SN=Фамилия;

    GN=Имя, Отчество;

    GN=Имя, Отчество;

    О = Наименование Организации-заявителя;

    О = Наименование автоматизированной системы/Службы/Сервиса/ /Сервера Организации заявителя для использования которыми издан сертификат.;

    OU = Структурное подразделение;

    T = Должность;

    T = Должность;

    L = Наименование населенного пункта;

    STREET = Название улицы, номер дома, корпуса, строения, квартиры, помещения;

    S = субъект федерации;

    S = субъект федерации;

    E = EMail = Адрес электронной почты Владельца СКП

    E = EMail = Адрес электронной почты службы эксплуатации автоматизированной системы

    1.2.643.100.1 = OGRN = 000000000000000

    1.2.643.3.131.1.1 = INN = 000000000000

    1.2.643.100.3 = SNILS = 00000000000

    Subject Alternative Name

    Дополнительные сведения о владелеце сертификата

    Расширения (детальное описание представлено в Таблице 3 – Описания СКП)

    Открытый ключ

    Открытый ключ (алгоритм подписи)

    Issuer Signature Algorithm

    Алгоритм подписи издателя сертификата

    ГОСТ Р 34.11/34.10-2001

    ЭЦП издателя сертификата

    Подпись издателя в соответствии с ГОСТ Р 34.11/34.10-2001

    Расширения сертификата

    Private Key Validity Period

    Срок действия закрытого ключа, соответствующего сертификату

    Действителен с (notBefore): дд.мм.гггг чч:мм:сс GMT

    Действителен по(notAfter): дд.мм.гггг чч:мм:сс GMT

    Использование ключа

    Расширение (детальное описание представлено в Таблице 3, Таблице 4– Описания СКП)

    Extended Key Usage

    Улучшенный ключ

    Расширение (детальное описание представлено в Таблице 3 – Описания СКП)

    Application Policy

    Политика применения

    Не применяется

    Certificate Policies

    Политики сертификатов

    Набор областей использования ключей и сертификатов из перечня областей использования, зарегистрированных в Удостоверяющем центре (детальное описание представлено в Таблице 3)

    Subject Key Idendifier

    Идентификатор ключа Владельца СКП

    Расширение (детальное описание представлено в Таблице 3 – Описание СКП)

    Authority Key Identifier

    Идентификатор ключа издателя сертификата

    Идентификатор закрытого ключа Уполномоченного лица Удостоверяющего центра, на котором подписан данный сертификат (детальное описание представлено в Таблице 3 – Описания СКП)

    CRL Distribution Point

    Точка распространения списка отозванных сертификатов

    Множество точек распространения списков аннулированных сертификатов в виде URL (детальное описание представлено в Таблице 3 – Описания СКП).

    Authority Information Access

    Адрес Службы актуальных статусов сертификатов

    URL адреса web-приложения Службы актуальных статусов сертификатов. Заносится в сертификаты, статус которых может быть установлен по протоколу OCSP (детальное описание представлено в Таблице 3 – Описания СКП).

    Common Name or CN is generally used in SSL Certificates. CN is used to define the server name which will be used for secure SSL connection. Generally this SSL certificate used to secure connection between a HTTP/S server and client browser like Chrome, Explorer, Firefox.

    Common Name is used to specify the host or server identity. When a client try to connect to a remote server like HTTP server it will first get the SSL certificate of this server. Then compare the Host name or domain name it want to connect with the Common Name provided in the SSL certificate. If they are same it will use the SSL certificate to encrypt connection.

    Common name technically represented as commonName field in X.509 certificate specification. X.509 specification is used in SSL certificates which is the same.

    We can formulate Command Name like below.

    Common Name = Domain Name + Host Name

    Common Name = Domain Name + Host Name

    We can use following domain and host names as Common Name.

    сайт www.сайт *.сайт

    poftut . com

    www . poftut . com

    * . poftut . com

    Fully Qualified Domain Name (FQDN)

    Fully Qualified Domain Name or FQDN is used with Command Name interchangeable. Fully qualified name is used to define the host name in a strict manner. More details about the FQDN can be found in the following tutorial.

    Organization Name

    Organization name may be misinterpreted with the Common Name. Organization Name is the name of the organization where the IT infrastrure belongs. Organization name shouldn’t be used for common name which will create security problems.

    Достаточно часто администраторы занимаются выпуском сертификатов с использованием нескольких имён. Например, когда нужно привязать один сертификат к нескольким именам: mail.company.com и owa.compny.com. Однако поле Subject может содержать только одно имя. Для разрешения этой проблемы используется расширение Subject Alternative Name (SAN ). В этом расширении вы можете использовать сколько угодно дополнительных имён для сертификата.

    Но как правильно же оформить несколько имён в сертификате на примере mail.company.com и owa.company.com? Здесь варианта всего 2:

    • Использовать поле Subject и расширение SAN

    Данный способ используется чаще для внешних сертификатов. Поле Subject заполняется следующим образом (красным выделены обязательные компоненты):

    CN = mail.company.com
    OU = <название подразделения>
    OU = <ещё какое-то название подразделения>
    O = <название организации>
    L = <местоположение компании>
    C = <код страны, где расположена компания>

    Т.е. включается основное имя сертификата (по правде говоря, при использовании SAN, понятие основного имени отсутствует, т.к. все имена считаются равноценными. Здесь следует указывать имя, которое будет использоваться чаще всего приложениями, неподдерживающими расширение SAN) и опционально можно задать дополнительные DN суффиксы, отражающие принадлежность сертификата. И расширение SAN заполняется следующим образом:

    DNS Name=mail.company.com
    DNS Name=owa.company.com

    Как видите, имя из Subject продублировано в SAN. Дело в том, что если в сертификате есть расширение SAN и приложение умеет его обрабатывать, приложение как правило настраивается только на проверку расширения SAN и в Subject они не заглядывают. Но это не всегда так. Иногда приложение смотрит и в Subject и в SAN. В таком случае имена дублировать не обязательно. Но в целях обеспечения совместимости следует ВСЕГДА дублировать имя из Subject в расширении SAN.

    • Использовать только расширение SAN

    Этот способ редко применяется во внешних сертификатах, а только внутренних. В этом случае поле Subject не заполняется совсем и оставляется пустым. А расширение SAN будет включать все необходимые имена:

    DNS Name=mail.company.com
    DNS Name=owa.company.com

    Такая форма заполнения поддерживается в Internet PKI и описана в RFC 5280 . Согласно этому RFC, если поле Subject не определено (пусто), имя для сертификата выбирается из расширения SAN, а само расширение помечается как критичное (см. RFC 5280 §4.2.1.6). Вот примерные пруфпики, как это выглядит в жизни:

    на вкладке General имя формируется либо из первого имени в расширении SAN или из имени используемого конкретным приложением (например, при просмотре из браузера) и котрое перечислено в расширении SAN.

    Здесь продемонстрировано пустое поле Subject.

    И перечисление необходимых имён в расширении SAN. Критичность расширения определяется по наличию жёлтого треугольничка и восклицательного знака.

    На заметку : что такое критичное расширение (critical extension)? Это просто расширение, которое приложение должно проверить в обязательном порядке. Если приложение видит такое расширение, приложение должно уметь его обработать и понять значение в этом расширении. Если приложение не знает, что делать с этим расширением или приложение не может разобрать значение этого расширения, приложение обязано отклонить данный сертификат. Более подробно о порядке поведения приложения.

    Примечание: хоть и заявляется, что приложение должно отклонить сертификат, если значение расширения непонятно, это не в полной мере относится к расширению SAN. Приложение не обязано поддерживать все формы SAN, а может поддерживать только некоторые формы, например, только DNS Name. Но если поддерживаемая форма не может быть распознана, сертификат должен быть отклонён.

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

    Какой способ из двух выбрать? А какой считаете более приемлемым. Если это сертификат внешнего веб-сервера, целесообразно использовать первый вариант, поскольку при помощи DN суффиксов можно конкретизировать принадлежность сертификата к вашей компании. А так же если предполагается доступ из приложений неподдерживающих расширение SAN. Это не обязательно компьютерные приложения, это могут быть приложения мобильных устройств. В целях избежания чрезмерного пиара VeriSign"a в моём бложике, представляю образцово-показательный сертификат выполненный первым способом на сайте Thawte: https://www.thawte.com/

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



    Просмотров