На главную страницу  
+7 (499) 124-62-26
О компании Продукты Демо-версии Купить Цены Контакты Решения
Защита информации в Internet
Электронная подпись на WEB-сайте
О криптографии
Понятия PKI
Криптография в Windows
Протокол TLS
Глоссарий терминов

Работа с сертификатами в Windows

Программные средства криптографической защиты

Средства криптографической защиты информации

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

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

Другие СКЗИ предоставляют криптографические функции пользовательским приложениям. Такие продукты называются криптопровайдерами (или CSP, от Cryptographic Service Provider).

  • Криптопровайдеры

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

    Криптопровайдер — это программное средство, рассчитанное на работу в определенной операционной среде и на взаимодействие с приложениями, работающими в этой среде.

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

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

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

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

    В настоящее время разработано множество различных криптопровайдеров. Криптопровайдеры имеются в составе дистрибутива OC Windows. Кроме того, в операционной системе могут быть установлены дополнительные криптопровайдеры.

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

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

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

    Криптопровайдеров, использующих алгоритмы, соответствующие российским ГОСТам, в составе дистрибутива ОС Windows в настоящий момент нет. Но такие криптопровайдеры существуют и могут быть установлены в системе. Таким криптопровайдером, например, является криптопровайдер МагПро CSP.

    Сертификаты в ОС Windows

    В этом и последующих разделах описывается работа с сертификатами с помощью системных средств ОС Windows.

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

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

    Назначение сертификатов

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

    Например, сертификаты могут иметь следующие назначения:

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

    Назначение сертификата указывается при создании запроса на сертификат.

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

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

    Создание запроса на сертификат

    В ОС Windows нет системных средств для создания запроса на сертификат. Стандартный способ создания запросов—создание запросов через веб-интерфейс. На сервере удостоверяющего центра имеется соответствующая страница, содержащая формы для ввода необходимой информации.

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

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

    В качестве альтернативного варианта пользователям могут быть предоставлены для создания ключей и запросов на сертификат специальные программы-утилиты (например, программа genkey.exe, предназначенная для работы с криптопровайдером МагПро CSP).

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

    Передача сертификатов в файлах

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

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

    Такие файлы называются файлами сертификатов.

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

    Файл сертификатов может быть получен пользователем из УЦ (непосредственно, переслан по электронной почте или загружен с сервера УЦ) или от другого пользователя.

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

    Форматы файлов сертификатов

    Стандартами определены несколько допустимых форматов для файлов, содержащих сертификаты:

    • Файл формата X.509, содержащий только сертификат (файлы с расширениями .crt, .cer);
    • Файл формата PKCS#7. Этот формат предназначен для хранения зашифрованных и подписанных сообщений вместе с необходимыми сертификатами. Файл такого формата также может использоваться для передачи только наборов сертификатов. В данном документе рассматривается использование этого формата только для передачи цепочек сертификатов и списков отзывов (файлы с расширениями .p7r, .p7b);
    • Файл формата PKCS#12. Такой файл может содержать всю цепочку доверия от сертификата пользователя до корневого сертификата удостоверяющего центра и список отзыва сертификатов (CRL), а также закрытый ключ, соответствующий сертификату пользователя. Почти никогда не используется для передачи сертификатов (кроме очень редких специальных случаев), т.к. передача закрытого ключа другим лицам приводит к нарушению важнейшего правила криптографии—доступ к закрытому ключу имеет только его владелец.

    Файлы формата X.509 могут существовать в двух различных кодировках — DER и Base64. Эти кодировки поддерживаются для совместимости с другими операционными системами. Для пользователя Windows разницы между работой с файлами в этих двух кодировках нет.

    При экспорте в файл сертификата, установленного в системе, пользователь может выбирать, создать ли файл формата X.509 или PKCS#7. Как правило, пользователи передают отдельные сертификаты в файлах формата X.509; файлы формата PKCS#7 удобны для передачи сразу всех сертификатов, составляющих цепочку доверия, что бывает необходимо значительно реже. Экспорт сертификата в файл формата PKCS#12 в подавляющем большинстве случаев просто запрещен.

    Файл формата PKCS#7, по сути, представляет собой комплект из нескольких файлов формата X.509. Поэтому по получении файла формата PKCS#7 его обработка сводится к работе с несколькими файлами формата X.509.

    Общие принципы установки сертификатов

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

    Операционные системы Windows предоставляют системные средства для установки сертификатов из файлов сертификатов—так называемый мастер сертификатов.

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

    Во всех случаях должны соблюдаться основные принципы установки сертификата:

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

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

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

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

    Система устанавливает корневые сертификаты, корректность которых подтверждена пользователем, в специальное хранилище «Доверенные корневые сертификаты центров сертификации».

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

    Наследование доверия

    В ОС Windows используется понятие «сертификат наследует доверие от поставщика». Это понятие подразумевает, что корректность сертификата на открытый ключ проверяется на сертификате поставщика (т.е., например, удостоверяющего центра.) Если сертификат удостоверяющего центра является доверенным, и проверка другого сертификата, подписанного на доверенном сертификате, дала положительный результат, данному сертификату тоже можно доверять (т.е. он является подлинным и корректным). Т.е. термин «Наследование доверия» подразумевает передачу доверия от корневого сертификата к некорневым сертификатам на основе проверки электронными средствами.

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

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

    Хранилища сертификатов

    При установке сертификат помещается в так называемое хранилище сертификатов. Каждое такое хранилище предназначено для сертификатов определенных функций и назначений. Так, имеется хранилище «Личные», в котором содержатся личные сертификаты пользователя; имеется хранилище для запросов на сертификаты пользователя; имеются хранилища «Доверенные центры сертификации», «Другие пользователи», «Сторонние центры сертификации», «Доверенные пользователи» и т.д.

    Чаще всего используются хранилища:

    • «Доверенные центры сертификации» — для хранения корневых сертификатов УЦ; доверие к сертификатам, которые хранятся здесь, явно выражено пользователем.
    • «Промежуточные центры сертификации» — для хранения некорневых сертификатов УЦ (подписанных на других сертификатах УЦ).
    • «Личные» — для хранения сертификатов на открытые ключи, принадлежащие данному пользователю; как правило, такие сертификаты соответствуют имеющимся у пользователя закрытым ключам. Эти сертификаты наследуют доверие у коренных сертификатов.
    • «Другие пользователи» — для хранения сертификатов на открытые ключи, принадлежащие другим пользователям. Эти сертификаты наследуют доверие у коренных сертификатов.

    При установке сертификат помещается в хранилище сертификатов, соответствующее его назначению. Выбор хранилища для установки сертификатов производится либо автоматически в соответствии с указанным назначением сертификата, либо пользователь может сам выбрать необходимое хранилище. Автоматически сертификат скорее всего будет установлен в одно из вышеупомянутых хранилищ. Если пользователь желает установить сертификат в какое-то другое хранилище (например, «Доверенные пользователи»—для пользовательских сертификатов, доверие к которым по какой-то причине не наследуется от сертификата УЦ, а объявляется пользователем лично)—следует указать это при установке. Такая ситуация возникает достаточно редко.

    Связывание личных сертификатов пользователя с закрытыми ключами

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

    Как правило, системными средствами такое связывание выполняется автоматически. Но автоматическое связывание сертификата с закрытым ключом возможно только при выполнении определенных требований. В частности, в системе должен присутствовать запрос на устанавливаемый сертификат (т.е. запрос должен быть создан на данном компьютере и в данной операционной системе). Могут быть дополнительные условия (так, в случае хранения ключей в устройстве «Вьюга» таким дополнительным условием является совпадение серийного номера устройства, с которого считываются ключи при установке сертификата, и серийного номера устройства, в которое эти ключи были записаны при создании запроса; а поскольку серийные номера различных экземпляров устройства «Вьюга» уникальны, это означает, что в обоих случаях должен быть использован один и тот же экземпляр).

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

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

    В ОС Windows списки отзыва сертификатов устанавливаются в специальные хранилища, предназначенные для хранения списков отзыва сертификатов.

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

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

    • Размещение списка отзыва сертификатов в локальном хранилище

      При использовании этого варианта распределения списков отзыва сертификатов удостоверяющий центр распределяет списки отзыва в виде файлов, подобных по формату файлам сертификатов (формат X.509) или включает списки отзыва в файлы, содержащие цепочки сертификатов (формат PKSC#7 или PKSC#12). Пользователи устанавливают списки отзыва сертификатов в соответствующие локальные хранилища в своей операционной системы.

    • Размещение списка отзыва сертификатов на сервере (в так называемой точке распространения списков отзыва)

      При использовании этого варианта распределения списков отзыва сертификатов удостоверяющий центр помещает каждый список отзыва на сервер, где список отзыва становится доступен по определенному адресу (URL), называемому точкой распространения списков отзыва сертификатов. Этот адрес удостоверяющий центр включает в каждый выпускаемый сертификат в качестве значения параметра «Точка распространения». Наличие этого параметра в сертификате, как и его значение, можно увидеть при просмотре сертификата на странице «Состав».

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

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

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

    Корректный список отзыва сертификатов, обнаруженный в точке распространения, автоматически сохраняется в операционной системе, но не устанавливается в хранилище, а хранится в каталоге

    %LOCALAPPDATA%\Microsoft\Windows\Temporary Internet Files\Content.IE5

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

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

    Просмотр и удаление установленных сертификатов

    Установленные сертификаты можно просматривать с помощью системных средств. Кроме того, при необходимости установленные сертификаты можно удалить.

    В операционных системах Windows 98/SE/Me/NT доступ к сертификатам возможен через свойства обозревателя («Пуск» — «Настройка»~--- «Панель управления» — «Свойства обозревателя»). В операционных системах Windows 2000/XP доступ к сертификатам осуществляется с помощью программы Microsoft Management Console (оснастка «Сертификаты»).

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

    Обмен сертификатами с другими пользователями

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

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

  •  
    Copyright © ООО "Криптоком". 2001-2016. All Rights Reserved.