На чтение 7 мин Просмотров 2.5к. Опубликовано 18.11.2019
В период широко распространяющегося внедрения инновационных технологий электронный документооборот уверенно вытесняет стандартные бумажные носители. Для защиты официальной информации от несанкционированного использования цифровой подписи сторонними лицами нужно знать, где хранятся сертификаты ЭЦП на компьютере.
Что такое сертификат ЭЦП
Сегодня все чаще встречается дистанционное оформление бумаг. Сделки заключаются удаленно, присутствие сторон необязательно. Удостоверяющий центр выпускает специальную бумагу в электронном или бумажном формате. С его помощью подтверждается подлинность цифровой подписи, перекрывается доступ сторонним лицам к закрытой информации.
В сертификате ЭЦП содержатся следующие данные:
- сведения о владельце;
- срок действия;
- название удостоверяющего центра, издавшего документ;
- наименование средства;
- проверочный ключ;
- информация об ограничениях в области применения.
В отдельных случаях в него включаются дополнительные данные пользователя и издателя, адреса служб штампов времени и действующих статусов сертификатов и т.п.
Аккредитованный удостоверяющий центр в момент выпуска документа генерирует ключ проверки. При этом сохраняются сведения о владельце электронной подписи в специальном файловом массиве.
Места хранения ЭЦП
Допускается использовать ЭЦП одновременно на нескольких устройствах. Предварительно нужно узнать, где на персональном компьютере хранится файл сертификата.
На ПК
Доступ к открытому ключу для возможности его прочтения на ПК можно получить посредством проводника. Для этого задается направление по адресу: C:UsersПОЛЬЗОВАТЕЛЬAppDataRoamingMicrosoftSystemCertificates. Способ используется на платформе Vista и более поздних версиях программного обеспечения.
Получить доступ к закрытому сертификату через жесткий диск компьютера не удастся. Информация, предназначенная для генерации открытых ключей, заносится на защищенный USB-рутокен. Открыть файл можно исключительно после ввода пароля, полученного в аккредитованном удостоверяющем центре.
Кроме того, найти сертификат ЭЦП на компьютере можно в зашифрованном формате в отдельной папке Windows. Просмотреть или сделать дубликаты содержащихся в ней данных не удастся, т.к. операционная система ограничивает доступ.
Следует учитывать, что пользователям, не наделенным правами администратора, не разрешен просмотр файла сертификата. Посетители в статусе «Гость» не допускаются к просмотру информации, содержащейся в системных папках компьютерного диска С.
В операционной системе Windows XP
В ОС Windows XP открытые ключи размещаются в персональном хранилище. От несанкционированного изменения общедоступные сведения защищает электронная подпись аккредитованного центра сертификации. Для просмотра ищем папку Documents and Setting. После этого вводится следующая информация:
- имя пользователя;
- ApplicationData;
- Microsoft SystemCertificates;
- My Certificates;
- наименование профиля.
Открытые сертификаты регистрируются в локальном реестре. Процедура повторяется при каждом входе в систему Windows Server.
В перемещаемых пользовательских профилях контейнер закрытого ключа хранится в папке RSA на доменном контроллере, защищенном специальным шифрованием с использованием симметричного кода. Для создания базового шифра, состоящего из 64 символов, задействуется генератор случайных чисел. Загрузка сертификационного файла выполняется на время работы компьютера.
В реестре
Допускается хранить сертификаты ЭЦП в реестре по аналогии со стандартными ключевыми носителями. Найти перенесенные ключи цифровой подписи можно в папках:
- HKEY_LOCAL_MACHINESOFTWARECryptoProSettingUsers(идентификатор пользователя)Keys название контейнера (для 32-битной ОС Windows);
- для 364-битной операционной системы «Виндовс» файл находится по адресу: HKEY_LOCAL_MACHINESOFTWAREWow6432NodeCryptoProSettingUsers(идентификатор пользователя)Keys наименование сертификата;
- в отдельных случаях для поиска папки, в которой хранится электронная подпись, задается направление: HKEY_USERSS-1-5-21-{SID}_ClassesVirtualStoreMACHINESOFTWAREWow6432NodeCryptoProSettingUSERSS-1-5-21-{SID}Keys.
Под Keys SID подразумевается персональное пользовательское имя, удостоверяющее подлинность подписи.
Узнать ключевую комбинацию символов переменной длины можно с использованием командной строки. Для этого в соответствующем окне набирается WHOAMI/ User и нажимается клавиша Enter.
В системе Linux
Задействовав утилиту Csptest, размещенную в директории /opt/cprocsp/bin/<архитектура>, находят сертификационные файлы ЭЦП в операционной системе Linux.
Перечень открытых ключей персонального компьютера: csptest -keyset -enum_cont -verifycontext -fqcn -machinekeys.
Список сертификатов пользователя: csptest -keyset -enum_cont -verifycontext -fqcn.
Наименования контейнеров задаются в формате, воспринимаемом бинарными программами, составляющими дистрибутив CSP.
На жестком диске размещено хранилище HDImageStore, куда заносятся закрытые ключи. Доступ к ним открыт и для JCP.
Для хранения сертификатов в ОС Linux создается специальная директория. Путь к ним открывается вручную вводом особых команд.
Как посмотреть
Для просмотра перечня проверочных ключей электронно-цифровой подписи, удаления элементов или копирования на внешний носитель пользуются браузером Internet Explorer, панелью управления или специфическими утилитами.
Через «КриптоПро»
Алгоритм действий:
- нажать кнопку «Пуск»;
- в строке «Все программы» выбрать «КриптоПРО»;
- войти в раздел «Сертификаты».
На дисплее появится окно со списком всех установленных на жестком диске сертификационных файлов. Информацию можно просматривать, копировать и удалять. Для этого необходимо обладать правами администратора. Пользователям в гостевом статусе доступ к функциям программы закрыт.
Через Certmgr
Встроенный в ОС Windows менеджер позволяет работать с хранящимися на компьютере сертификатами. Используя его, можно просмотреть информацию о действующих ключах, данные удостоверяющего центра-партнера корпорации Microsoft для предоставления привилегий отдельным программам.
Порядок действий:
- войти в меню «Пуск»;
- в командную строку ввести certmgr.msc и нажать Enter;
- в появившемся окне выбрать вкладки «Личное» и «Корневые сертификаты удостоверяющего центра», содержащие полный перечень установленных проверочных ключей.
Невозможно запустить приложение, не обладая правами администратора. Другой недостаток программы – некорректное отображение отдельных электронных подписей из-за проблем в работе с зашифрованными специальным кодом сертификатами.
Через Internet Explorer
В Internet Explorer для просмотра информации об ЭЦП действуют по инструкции:
- открыть страницу веб-обозревателя;
- в меню выбрать пункт «Свойства браузера»;
- во появившемся окне кликнуть на раздел «Содержание»;
- нажать на графу «Сертификаты».
Откроется вкладка, содержащая полный перечень установленных сертификационных файлов. Программное обеспечение сторонних поставщиков отображается отдельно.
Альтернативный вариант действий включает прохождение по такому пути: «Центр управления сетями и общим доступом» – «Свойства браузера» – «Содержание» – «Сертификаты».
Преимущество просмотра ключей через веб-обозреватель – отсутствие необходимости обладания правами администратора. Недостаток – невозможность удаления информации.
Через контроль управления
Разработчики программного обеспечения встроили в Windows специальный инструмент, позволяющий просматривать сертификационные файлы ЭЦП. Порядок действий:
- сочетанием клавиш Win+R и вводом «cmd» вызвать командную строку и нажать «Энтер»;
- после этого перейти по команде mmc в терминал;
- открыть вкладку «Файл»;
- в предлагаемом перечне выбрать «Добавить изолированную оснастку»;
- кликнуть на раздел «Сертификаты».
Для благополучного выполнения процедуры обязательно обладание правами администратора.
Способы добавления новой ЭЦП
Для добавления новой ЭЦП с помощью программы «КриптоПро» рекомендуется использовать способ установки через контейнер. Для этого нужно выйти из меню «Пуск» в панель управления, найти и открыть соответствующую утилиту. Во вкладке «Сервис» активировать опцию просмотра. Порядок дальнейших действий:
- кликнуть на «Обзор», нажав «Ок», подтвердить согласие после выбора из предлагаемого списка нужного контейнера;
- в новом окне нажать «Далее» и запустить функцию установки;
- согласиться с условиями, описанными в предложении системы.
Установить выбранный сертификат в последних версиях программного обеспечения можно кликом на одноименную кнопку в разделе «Общие». Место хранения загруженных ключей – папка «Личное». Альтернатива автоматическому выбору хранилища – ручной ввод адреса сертификационного файла ЭЦП.
При правильном выполнении процедуры Windows оповещает пользователя о благополучном завершении импорта. Новая электронно-цифровая подпись добавлена на жесткий диск персонального компьютера.
Альтернативный способ установки ЭЦП через меню личных сертификатов не заслуживает внимания ввиду редкого использования.
Добрый день! Уважаемые читатели и гости крупного IT блога рунета pyatilistnik.org. Продолжаем нашу с вами тему с сертификатами и работе с ними. В прошлый раз я вам подробно рассказал, как получить тестовый сертификат криптопро, посмотрите очень интересная заметка. Согласитесь, что для тестирования вам может потребоваться не один сертификат, а гораздо больше, и очень удобно иметь возможность работать с ними, без привязки к физическим токенам, например, на виртуальных машинах Vmware. Для таких задач, есть возможность поместить сертификаты КриптоПРО в реестр Windows, чем мы с вами и займемся.
Когда нужно копировать сертификаты КриптоПРО в реестр
Существует ряд задач, когда удобно иметь вашу ЭЦП подпись в реестре Windows:
1. При тестировании настроенного окружения для торговых площадок, для входа на которые используется ЭЦП подпись.
2. Когда у вас виртуальная инфраструктура и нет возможности, произвести проброс USB устройств по локальной сети
3. Ситуации, когда КриптоПРО не видит USB токена
4. Ситуации, когда USB ключей очень много и нужно работать одновременно с 5-ю и более ключами, примером может служить программа по сдачи отчетности СБИС
Как скопировать сертификат в реестр КриптоПРО
CryptoPRo позволяет производить установку с копирование закрытого ключа (сертификата) в реестр Windows.
Хочу вас сразу предупредить, что с точки зрения безопасности, это очень не надежно и ваши закрытые ключи могут быть похищены, если вы не организовываете надлежащий уровень безопасности
И так, у меня есть USB токен SafeNet, на который я выпустил тестовую ЭЦП, ее я буду переносить вместе с закрытым ключом в реестр Windows. Открываем утилиту CryptoPRO с правами администратора.
Переходите на вкладку «Сервис» и нажимаете «скопировать»
У вас откроется окно «Контейнер закрытого ключа», тут вам нужно нажать кнопку «Обзор», что бы выбрать ваш сертификат, который вы хотите скопировать в реестр.
В итоге у вас в поле «Имя ключевого контейнера» отобразиться абракадабровое имя.
Нажимаем далее.
У вас появится окно с вводом пин-кода от вашего USB токена.
Теперь вам необходимо задать имя для копируемого сертификата в реестр Windows, КриптоПРО благо, это позволяет. Я назвал его «Копия сертификата в реестре (Семин Иван)»
Теперь вам необходимо положить сертификаты КриптоПРО в реестр, для этого выбираем соответствующий пункт и нажимаем «Ок».
На следующем шаге вам предложат установить новый пароль на ваш контейнер с закрытым ключом, советую установить его и желательно посложнее.
Установка закрытого ключа в реестр
Теперь когда ваш закрытый ключ находится в реестре, давайте установим личный сертификат. Для этого откройте на вкладке «Сервис» кнопку «Посмотреть сертификат в контейнере»
Далее в окне «онтейнер закрытого ключа» нажмите кнопку «Обзор».
И выберите сертификат из реестра, он будет с тем именем, что вы ему задавали.
Нажимаем далее.
После чего производится установка закрытого ключа в реестр, через соответствующую кнопку.
Видим, что сертификат был установлен в хранилище «Личные» текущего пользователя.Как видите, было очень просто скопировать закрытый ключ в реестр операционной системы.
Где хранится закрытый ключ в реестре Windows
После процедуры добавления сертификата в реестр КриптоПРО, я бы хотел показать, где вы все это дело можете посмотреть. Ранее я вам рассказывал, о том как добавить оснастку сертификаты. Нас будет интересовать раздел «Сертификаты пользователя — Личное».
Либо вы можете зайти в свойства Internet Explorer на вкладку «Содержание’. Потом перейти в пункт «Сертификаты», где у вас будут отображаться все ваши SSL сертификаты, и те, что КриптоПРО скопировал в реестр операционной системы.
Если нужно найти ветку реестра с закрытым ключом, то я вам приводил уже пример в статье, когда я переносил ЭЦП с компьютера на компьютер.
HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeCrypto ProSettingsUsersВаш SID, как его определить читайте по ссылкеKeysКопия сертификата в реестре (Семин Иван)
Про копирование ЭЦП с закрытыми ключами мы разобрали, теперь ситуация обратная.
Как скопировать эцп из реестра на флешку
Предположим, что у вас стоит задача скопировать контейнер из реестра, так как он уже там, то он экспортируемый, для этого открываем криптопро, «Сервис-Скопировать»
Выбираете «Обзор» и ваш сертификат из реестра.
Задаете ему новое имя, удобное для себя.
После чего вас попросят указать флешку, на которую вы будите копировать контейнер с закрытым ключом из реестра.
Обязательно задайте новый пароль.
Ну и собственно теперь открывайте вашу флешку и лицезрейте перенесенный на него контейнер, он будет состоять из файликов с форматом key.
Как видите КриптоПРО, это конвейер, который позволяет легко скопировать сертификат из реестра на флешку или даже дискету, если они еще используются.
Важная составляющая электронной подписи — сертификат, который не только хранит важную информацию, но и является своеобразным паспортом участника электронного документооборота. Чтобы работа с ЭП не вызывала затруднений, пользователю необходимо знать о том, где хранится электронная подпись и ее сертификат, и как установить или добавить ЭЦП с ключом в хранилище.
Содержание
- 1 Что такое сертификат пользователя
- 2 Где хранится ЭЦП в реестре
- 3 Где хранится сертификат в ОС Windows
- 4 Добавление новой ЭЦП
Что такое сертификат пользователя
Сертификат цифровой подписи — это бумажный или электронный документ, выданный аккредитованным удостоверяющим центром, и подтверждающий принадлежность ЭЦП конкретному владельцу. В процессе генерации ключа вся информация о его владельце сохраняется, а полученный файл и есть сертификат ключа ЭЦП. Обязательная составляющая файла — открытый ключ и данные о владельце подписи, а также УЦ, выдавшем ЭП.
Как долго нужно хранить документ
Сертификат ЭЦП действителен лишь в течение строго установленного периода времени, равного одному году. По прошествии года цифровая подпись теряет свою функциональность и становится обязательной к замене. Вместе с новой ЭП владелец получает и новый сертификат.
Сколько времени нужно хранить сертификат ЭЦП зависит от того, какая информация в нем содержится. Полезный срок действия и содержание документа связаны между собой: чем больше информации, тем полезный срок действия документа меньше. Объясняется это тем, что данные, указанные в документе, могут измениться. Часто владельцы ЭЦП ждут истечения срока действия подписи, чтобы обновить информацию, поэтому минимум информации в электронном документе позволит продлить его актуальность.
В удостоверяющем центре сроки хранения ключа в электронной форме определяются договорными условиями между УЦ и владельцем ЭЦП. В течение срока хранения ключа все участники информационной системы имеют к нему доступ. После аннулирования сроки хранения в УЦ определяются статьей ФЗ о законном сроке исковой давности. После его истечения сертификат исключается из единого реестра ключей ЭЦП и переводится на архивное хранение, которое составляет 5 лет. В течение этого срока выдача копий осуществляется по запросу и в соответствии с действующим законодательством.
На бумажном носителе ключ хранится в течение срока, установленного ФЗ РФ об архивном деле и архивах. С 2003 г. согласно новым поправкам срок хранения составляет 50 лет с момента поступления документа.
Где хранится ЭЦП в реестре
В реестре хранить ключи электронной подписи можно как на обычном ключевом носителе. После переноса они находятся в папках:
- HKEY_LOCAL_MACHINESOFTWARECryptoProSettingUsers(идентификатор пользователя)Keys имя контейнера (для 32-битной ОС Windows);
- HKEY_LOCAL_MACHINESOFTWAREWow6432NodeCryptoProSettingUsers(идентификатор пользователя)Keys имя контейнера (для 364-битной ОС Windows);
- Иногда хранятся сертификаты эцп на компьютере тут: HKEY_USERSS-1-5-21-{SID}_ClassesVirtualStoreMACHINESOFTWAREWow6432NodeCryptoProSettingUSERSS-1-5-21-{SID}Keys.
SID — это идентификатор пользователя или информационная структура переменной длины, идентифицирующая персональную запись пользователя или группы, ПК или домена. Узнать его можно через командную строку при помощи команды WHOAMI/User:
Для удобства пользователя номер можно скопировать в файл на рабочем столе, чтобы каждый раз не выполнять операцию по его проверке.
Где хранится сертификат в ОС Windows
Установка или просмотр корневого или личного сертификата (ЛС) невозможна без знания места хранения подписи в ОС. Все версии Windows помещают ключи ЭЦП в так называемый контейнер, который раздел на часть для пользователя и ПК.
Поменять настройки хранения ключа можно через mmc оснастку, которая выводится комбинацией клавиш WIN+R:
В корне консоли комбинацией клавиш CTRL+M через Файл можно добавить или удалить оснастку:
В открывшемся окне пользователь выбирает поле доступных оснасток, затем «Сертификаты» и нажимает добавление:
Диспетчер позволяет добавить новую оснастку для персональной учетной записи, учетной записи ПК или службы. Если добавляется учетная запись ПК, то в ней есть дополнительные настройки:
Выбрать необходимо локальный ПК, после чего нажать «Готово». Откроется вот такое окно:
Созданную оснастку нужно сохранить через пункт меню «Файл». Для удобства работы местом сохранения выбирают рабочий стол:
В корневой консоли область сертификатов разделена на 2 части для пользователя и ПК. Область пользователя содержит несколько папок:
- Личное;
- Корневые доверительные и промежуточные сертификаты;
- Пользовательские объекты AD;
- Сертификаты, к которым не установлено доверие;
- Доверенные лица и издатели и т.п.
Обычно изначально папка «Личное» не содержит сертификатов. Перенести один сертификат в папку можно через запрос или импорт:
Далее необходимо нажать в мастере импортирования «Далее». Нужный сертификат обычно имеет следующий формат:
- PKCS # 12 (.PFX, .P12);
- Стандарт Cryprograhic Message Syntax — сертификаты PKCS #7;
- Хранилище сериализованных сертификатов.
Через вкладку доверенных сертификатов откроется большой список корневых, который необходим для нормальной работы на интернет-пространстве:
Состав любого из них можно посмотреть через двойной щелчок мыши, а из действий пользователю доступен экспорт для последующей переустановки на другой ПК. Экспорт возможен в разных распространенных форматах:
Полезной для пользователя будет и папка, содержащая недействительные и просроченные сертификаты. Поскольку их своевременное обновление и замена позволят избежать проблем с работой компьютера.
Добавление новой ЭЦП
Добавить в хранилище сертификатов через меню КриптоПро CSP новый объект можно двумя способами:
- Через «Посмотреть установленные сертификаты в контейнере»;
- Через «Установить личный сертификат (ЛС)».
Для ОС Windows 7 без установленного SP1 рекомендован второй путь.
Установка через контейнер
Для начала нужно открыть Панель управления ПК, выбрать там КриптоПро и вкладку Сервис, после чего нажать кнопку просмотра:
В новом окне через «Обзор» пользователь выбирает нужный контейнер, и подтверждает действие через «ОК»:
Если после нажатия «Далее» выходит ошибка о том, что в контейнере закрытых ключей и сертификатов не обнаружен ключ шифрования, то рекомендуется совершить установку вторым методом.
В программе КриптоПро CSP версии 3.6 и выше в открывшемся окне необходимо нажать «Далее», «Установить» и согласиться с предложенными условиями. В иных версиях программы в поле «Сертификат для просмотра» пользователь должен открыть свойства.
Следующий шаг: через вкладку «Общие» перейти к установке сертификата:
На последних версиях ПО просто выберите хранилище ключей ЭЦП. Обычно после подтверждения действия в автоматическом режиме ключ попадает в папку «Личные»:
Если все сделано правильно, то появится сообщение об успешном импорте.
Установка через меню ЛС
Установка ключа ЭЦП этим способом требует наличия файла с расширением .cer, который обычно находится на жестком диске ПК или на токене. Начинается работа аналогичным образом через панель управления ПК, папки с программой КриптоПро и вкладки «Сервис». Нажать нужно на кнопку установки личного сертификата:
Откроется Мастер установки, в котором сначала пользователь нажимает «Далее», а затем переходит к выбору нужного файла через «Обзор»:
Чтобы выбрать путь, нужно открыть хранилище сертификатов, и нажать «Далее». Пароль на хранилище ключей обычно стандартный, и равен комбинации чисел от 1 до 6:
Если есть необходимость, то в новом окне можно посмотреть информацию о сертификате, а если нет — можно сразу переходить к следующему шагу:
Пользователь должен ввести или указать контейнер закрытого ключа КриптоПро, который содержит искомый электронный документ. Сделать это можно через кнопку «Обзор»:
Подтверждает свой выбор пользователь через нажатие «Далее»:
Следующий шаг — выбор хранилища, куда будет помещен новый ключ. Для этого в соответствующем окне нажимают «Обзор». В версии КриптоПро 3.6 и выше необходимо также установить флажок напротив пункта об установке сертификата в контейнер:
Далее нужно выбрать хранилище и подтвердить действие:
Если после последующего нажатия «Далее» и «Готово» появилось сообщение о том, что данный сертификат уже имеется на ПК, и его можно заменить на новый с проставленной ссылкой на закрытый ключ, то нужно нажать «Да». При правильно выполненных действиях в течение нескольких секунд появится сообщение об успешной установке ЛС на компьютер.
Работа с электронной цифровой подписью иногда требует обновления или переустановки сертификатов, а также проверки их актуальности. Для этого пользователю необходимо знать и место их хранения в реестре, и в операционной системе и понимать, как можно осуществить установку или экспорт. Обычно процесс поиска интересующего ключа ЭЦП занимает несколько минут и при следовании инструкции не вызывает ошибок или проблем. Если во время установки сертификатов происходят повторяющиеся сбои или системные ошибки, то лучше обратиться в службу технической поддержки для разъяснения ситуации.
Содержание
- Открываем «Хранилище сертификатов»
- Способ 1: Окно «Выполнить»
- Способ 2: Панель управления
- Вопросы и ответы
Сертификаты являются одним из вариантов безопасности для Виндовс 7. Это цифровая подпись, которая проверяет достоверность и подлинность различных веб-узлов, служб и всевозможных устройств. Выдача сертификатов осуществляется сертификационным центром. Они хранятся в специализированном месте системы. В данной статье мы рассмотрим, где находится «Хранилище сертификатов» в ОС Windows 7.
Открываем «Хранилище сертификатов»
Чтобы просмотреть сертификаты в Виндовс 7, заходим в ОС с правами администратора.
Подробнее: Как получить права администратора в Windows 7
Необходимость в доступе к сертификатам особенно важна для пользователей, которые часто совершают платежи в интернете. Все сертификаты хранятся в одном месте, так называемом Хранилище, которое разбито на две части.
Способ 1: Окно «Выполнить»
- При помощи нажатия комбинации клавиш «Win+R» попадаем в окошко «Выполнить». Вводим в командную строку
certmgr.msc
. - Цифровые подписи хранятся в папке, которая находятся в директории «Сертификаты – текущий пользователь». Здесь сертификаты находятся в логических хранилищах, которые разделены по свойствам.
В папках «Доверенные корневые центры сертификации» и «Промежуточные центры сертификации» находится основной массив сертификатов Виндовс 7.
- Чтобы посмотреть информацию о каждом цифровом документе, наводим на него и кликаем ПКМ. В открывшемся меню выбираем «Открыть».
Переходим во вкладку «Общие». В разделе «Сведения о сертификате» будет отображено предназначение каждой цифровой подписи. Также представлена информация «Кому выдан», «Кем выдан» и сроки действия.
Способ 2: Панель управления
Также есть возможность посмотреть сертификаты в Windows 7 через «Панель управления».
- Открываем «Пуск» и переходим в «Панель управления».
- Открываем элемент «Свойства обозревателя».
- В открывшемся окне переходим во вкладку «Содержание» и щелкаем по надписи «Сертификаты».
- В открывшемся окошке предоставлен перечень различных сертификатов. Чтобы посмотреть подробную информацию об определённой цифровой подписи, жмём по кнопке «Просмотр».
После прочтения данной статьи вам не составит никакого труда открыть «Хранилище сертификатов» Windows 7 и узнать подробную информацию о свойствах каждой цифровой подписи в вашей системе.
Еще статьи по данной теме:
Помогла ли Вам статья?
Система цифровых сертификатов используется аналогично паролям, для подтверждения личности пользователя или ПК, обмена электронной информацией в виртуальной сети. Легковесные файлы содержат личные данные, которые применяются при идентификации личности. Хранилище сертификатов в ОС Windows 10 находится в секретном месте. Иногда фирмам приходится настраивать личные сертификаты, поэтому им важно знать местоположение файлов.
Для чего знать, где хранятся сертификаты?
Каждый файл в хранилище предусмотрен для защиты операционки цифрового устройства. Они препятствуют проникновению вредоносных программ в систему. Отдельная цифровая подпись отвечает за определенный скачанный софт.
Знание о том, где хранятся такие файлы, требуется в случае просмотра или установки корневых, личных сертификатов. В «десятке» инструменты находятся в контейнере двух типов:
- Certificate store локального ПК – включают список файлов для проверки оригинальности сервера.
- Certificate store для пользователя – хранят сертификаты утилит, которые запускает юзер.
Сертификаты представляют собой корневые и личные файлы. Первые являются составным элементом секретного ключа. Вторые предназначены для идентификации юзеров при обмене электронных данных. Поменять настройки в «десятке» можно через mmc оснастки, в том числе через хранилище.
Список важных объектов: сертификаты для оборудования, персональные файлы – находят несколькими способами с помощью встроенных инструментов, сторонних утилит.
Через «КриптоПро»
Криптопровайдер предназначен для организации защиты программных обеспечений методом шифрования. Менеджер защищает конфиденциальную информацию при обмене данными через сеть интернет, обеспечивает юридическую достоверность электронных документов.
Для включения программы ее требуется скачать с официального сайта разработчика, инсталлировать на компьютер. Все действия выполняются с правами Администратора. Во время установки ПО можно выполнять настройки через панель свойств. После инсталляции потребуется перезагрузить устройство.
Просмотр проверочных ключей ЭЦП происходит по следующему алгоритму:
- Зайти в меню Пуск.
- Открыть «Все программы».
- Выбрать «КриптоПро».
- Щелкнуть по пункту «Сертификаты».
В открывшемся окне пользователь увидит все актуальные корневые, личные файлы. Обладая администраторскими правами, можно управлять файлами в «десятке»: выполнять копирование, редактирование, деинсталлировать файлы.
Через Certmgr
Диспетчер разрешает проводить различные действия с цифровыми документами. Консоль является частью операционной системы, включает инструменты для функций управления.
Для просмотра данных нужно следовать инструкции:
- Зайти в Пуск.
- Открыть Командную строку, набрать: c Нажать «Enter».
- В меню появившегося окна выбрать «Личное» и «Корневые сертификаты…». Зайдя в разделы, можно развернуть реестры с полным списком ключей.
Без прав Администратора утилита не заработает. Софт имеет ограничение в шифровании данных, где происходит специальное кодирование файлов.
Через Internet Explorer
Браузер интегрирован в ОС Виндовс 10, включает набор инструментов, позволяющих искать и просматривать информацию в виртуальной сети. Если веб-проводник отсутствует в «десятке», его легко можно скачать с официального источника.
С помощью браузера можно найти ЭЦП, следуя инструкции:
- Запустить Интернет Эксплорер.
- Выбрать «Свойства браузера».
- Тапнуть по разделу «Содержание».
- Нажать на подраздел «Сертификаты».
В результате откроется содержимое с полным списком искомых файлов. В веб-сервисе существует возможность их добавления. Юзеру стоит помнить, что корневые ЭЦП удостоверяющих центров деактивировать запрещено.
Аналогичный способ поиска документов выполняется через Центр управления сетями или общим доступом:
- Открыть Панель управления.
- Войти в «Свойства браузера».
- Зайти в меню «Содержание» и «Сертификаты».
Преимущество метода заключается в том, что посмотреть список ЭЦП можно без администраторских прав. Для обычных людей доступен только просмотр, вносить изменения запрещено.
Через контроль управления
Представляет собой один из важнейших компонентов ОС Виндовс 10. С помощью встроенного средства осуществляется управление, запуск, настройка большинства системных функций. Также можно найти, где лежат сертифицированные файлы ЭЦП для их редактирования.
Пошаговая инструкция:
- Нажать: «Win + R».
- Ввести в строку запроса: cmd. Нажать «Enter».
- после этого перейти по команде mmc в терминал;
- Щелкнуть по вкладке «Файл».
- В открывшемся списке тапнуть «Добавить изолированную оснастку».
- Нажать на раздел «Сертификаты».
Все действия пользователь может выполнять только с правами Администратора. Такой вариант подходит не каждому человеку, так как некоторые запросы вводятся через Командную строку. Сервисом обычно пользуются системные администраторы или люди, хорошо разбирающиеся в теме.
Существует целый список сторонних ресурсов, позволяющих управлять сертификатами, инсталлированными в ОС Виндовс 10. Но пользоваться такими утилитами не рекомендуется, так как нет гарантии, что в них присутствует команда отправки сертификата на внешний сервер. Надежное сертифицированное приложение – это «КриптоПро», которое дает гарантию защиты от несанкционированного доступа посторонних лиц к ЭЦП.
Также в последних версиях Винды зашифрованные файлы просматривают, перейдя по пути: C:UsersПОЛЬЗОВАТЕЛЬAppDataRoamingMicrosoftSystemCertificates. Словосочетание «Пользователь» меняется на название учетной записи. В результате откроется полный список засекреченных данных.
Сертификаты созданы для безопасной работы цифровой техники. Их достоверность гарантирована сертификационным центром. Управление ЭЦП требует определенных знаний, поэтому работу должен выполнять специалист или продвинутый пользователь.
Данный материал является переводом оригинальной статьи «ATA Learning : Michael Soule : Manage Certs with Windows Certificate Manager and PowerShell».
Работа с сертификатами обычно является одной из тех дополнительных задач, которые вынужден брать на себя системный администратор Windows. Диспетчер Сертификатов Windows (Windows Certificate Manager) — это один из основных инструментов, который позволяет выполнять эту работу.
В этой статье мы рассмотрим работу с сертификатами применительно к операционной системе Windows. Если же вы хотите узнать больше о том, как работают сертификаты в целом, ознакомьтесь с сопутствующей статьей «Your Guide to X509 Certificates».
Понимание хранилищ сертификатов
В диспетчере сертификатов Windows все сертификаты находятся в логических хранилищах, называемых «хранилищами сертификатов». Хранилища сертификатов – это «корзины», в которых Windows хранит все сертификаты, которые в настоящее время установлены, и сертификат может находиться более чем в одном хранилище.
К сожалению, хранилища сертификатов — не самая интуитивно понятная концепция для работы. О том, как различать эти хранилища и как с ними работать, вы прочитаете ниже.
Каждое хранилище находится в Реестре Windows и в файловой системе. При работе с сертификатом в хранилище вы взаимодействуете с логическим хранилищем, не изменяя напрямую реестр или файловую систему. Этот более простой способ позволяет вам работать с одним объектом, в то время как Windows заботится о том, как представить этот объект на диске.
Иногда можно встретить хранилища сертификатов, называемые физическими или логическими хранилищами. Физические хранилища ссылаются на фактическую файловую систему или место в реестре, где хранятся разделы реестра и / или файл(ы). Логические хранилища — это динамические ссылки, которые ссылаются на одно или несколько физических хранилищ. С логическими хранилищами намного проще работать, чем с физическими хранилищами для наиболее распространенных случаев использования.
Windows хранит сертификаты в двух разных областях — в контексте пользователя и компьютера. Сертификат помещается в один из этих двух контекстов в зависимости от того, должен ли сертификат использоваться одним пользователем, несколькими пользователями или самим компьютером. В остальной части этой статьи сертификат в контексте пользователя и компьютера будет неофициально называться сертификатами пользователей и сертификатами компьютеров.
Сертификаты пользователей
Если вы хотите, чтобы сертификат использовался одним пользователем, то идеальным вариантом будет хранилище пользовательских сертификатов внутри Диспетчера сертификатов Windows. Это общий вариант использования процессов аутентификации на основе сертификатов, таких как проводной IEEE 802.1x.
Сертификаты пользователей находятся в профиле текущего пользователя и логически отображаются только в контексте этого пользователя. Сертификаты пользователей «сопоставлены» и уникальны для каждого пользователя даже в одних и тех же системах.
Компьютерные сертификаты
Если сертификат будет использоваться всеми пользователями компьютера или каким-либо системным процессом, его следует поместить в хранилище в контексте компьютера. Например, если сертификат будет использоваться на веб-сервере для шифрования связи для всех клиентов, размещение сертификата в контексте компьютера будет подходящим вариантом.
Вы увидите, что хранилище сертификатов компьютера логически сопоставлено для всех пользовательских контекстов. Это позволяет всем пользователям использовать сертификаты в хранилище сертификатов компьютера в зависимости от разрешений, настроенных для закрытого ключа.
Сертификаты компьютера находятся в кусте реестра локального компьютера и в подкаталогах ProgramData. Сертификаты пользователя находятся в кусте реестра текущего пользователя и в подкаталогах AppData. Ниже вы можете увидеть, где каждый тип хранилища находится в реестре и файловой системе.
Контекст | Путь реестра | Объяснение |
---|---|---|
User | HKEY_CURRENT_USER SOFTWAREMicrosoftSystemCertificates |
Физическое хранилище для пользовательских открытых ключей |
User | HKEY_CURRENT_USER SOFTWAREPoliciesMicrosoftSystemCertificates |
Физическое хранилище для пользовательских открытых ключей, установленных объектами групповой политики Active Directory (AD) (GPO) |
Computer | HKEY_LOCAL_MACHINE SOFTWAREMicrosoftSystemCertificates |
Физическое хранилище общедоступных ключей для всей машины |
Computer | HKEY_LOCAL_MACHINE SOFTWAREMicrosoftCryptographyServices |
Физическое хранилище ключей, связанных с определенной службой |
Computer | HKEY_LOCAL_MACHINE SOFTWAREPoliciesMicrosoftSystemCertificates |
Физическое хранилище открытых ключей для всей машины, установленных объектами групповой политики. |
Computer | HKEY_LOCAL_MACHINE SOFTWAREMicrosoftEnterpriseCertificates |
Физическое хранилище общедоступных ключей, установленных корпоративными контейнерами PKI в домене AD |
Контекст | Расположение файла | Объяснение |
---|---|---|
User | $env:APPDATAMicrosoftSystemCertificates | Физическое хранилище для пользовательских открытых ключей и указателей на закрытые ключи |
User | $env:APPDATAMicrosoftCrypto | Физическое хранилище для контейнеров закрытых ключей для конкретных пользователей |
Computer | $env:ProgramDataMicrosoftCrypto | Физическое хранилище для контейнеров закрытых ключей для всей машины |
Предварительные требования
В оставшейся части этой статьи вы найдете несколько примеров, демонстрирующих взаимодействие с хранилищами сертификатов Windows. Чтобы воспроизвести эти примеры, убедитесь, что выполняются следующие требования:
- Windows Vista, Windows Server 2008 или более новая операционная система. В показанных примерах используется Windows 10 Корпоративная версии 1903.
- Знакомство с PowerShell. Хотя это и не обязательно, этот язык будет использоваться для ссылки на сертификаты, где это необходимо. Все показанные примеры были созданы с помощью Windows PowerShell 5.1.
- Вам не потребуется устанавливать какие-либо специальные сертификаты, но использование самозаверяющего сертификата полезно.
Управление сертификатами в Windows
В Windows есть три основных способа управления сертификатами:
- Оснастка консоли управления Microsoft (MMC) сертификатов (certmgr.msc)
- PowerShell
- Инструмент командной строки certutil
В этой статье вы узнаете, как управлять сертификатами с помощью оснастки Certificates MMC и PowerShell. Если вы хотите узнать больше о том, как использовать certutil, ознакомьтесь с документацией Microsoft.
PowerShell против диспетчера сертификатов Windows
Поскольку в Windows можно управлять сертификатами несколькими способами, встаёт вопрос выбора, что лучше использовать — GUI (MMC) или командную строку с PowerShell.
Во-первых, рассмотрим жизненный цикл сертификата. Если вы собираетесь установить или удалить один сертификат только один раз, рассмотрите возможность использования MMC. Но если вы управляете несколькими сертификатами или выполняете одну и ту же задачу снова и снова, использование командной строки может оказаться правильным решением. Даже если вы не умеете писать сценарии PowerShell, вам стоит этому научиться, если у вас есть много разных сертификатов, которыми нужно управлять.
Давайте сначала посмотрим, как обнаружить сертификаты, установленные в Windows, с помощью диспетчера сертификатов и PowerShell.
Использование диспетчера сертификатов Windows (certmgr.msc)
Чтобы просмотреть сертификаты с помощью MMC, откройте Диспетчер сертификатов: откройте меню «Пуск» и введите certmgr.msc. Это вызовет Windows Certificates MMC. Это начальное представление предоставит обзор всех логических хранилищ, отображаемых в левом окне.
На снимке экрана ниже видно, что выбрано логическое хранилище доверенных корневых центров сертификации
Просмотр физических хранилищ
По умолчанию Диспетчер сертификатов Windows не отображает физические хранилища. Чтобы показать их, в верхнем меню оснастки выбирайте «View» > «Options«. Затем вы увидите варианты отображения физических хранилищ сертификатов. Включение этого параметра упрощает определение конкретных путей в Windows.
Теперь вы можете видеть, что дополнительные контейнеры показаны в примере логического хранилища доверенных корневых центров сертификации, показанном ранее. Сертификаты по-прежнему сгруппированы относительно их логических хранилищ, но теперь вы можете увидеть физическое хранилище «Реестр».
Проверка атрибутов в диспетчере сертификатов Windows
Есть много атрибутов сертификата, которые вы можете увидеть при просмотре их с помощью MMC. Например, вы, вероятно, захотите выбрать определенные сертификаты по их атрибутам. Самый простой способ сделать это — указать Serial Number сертификата или значение Thumbprint. Если сертификат был подписан центром сертификации (CA), при выдаче он будет иметь серийный номер. Thumbprint вычисляется каждый раз при просмотре сертификата.
Вы можете увидеть некоторые атрибуты сертификата, открыв его в MMC, как показано ниже.
Следует отметить одну важную особенность — встроенные закрытые ключи. Сертификаты в Windows также могут иметь соответствующий закрытый ключ. Эти закрытые ключи хранятся в соответствующих физических хранилищах в виде зашифрованных файлов.
Чтобы быстро отличать сертификаты с соответствующим закрытым ключом и без него, посмотрите на значок сертификата. В Диспетчере сертификатов Windows, если значок просто выглядит как лист бумаги с лентой, соответствующий закрытый ключ отсутствует. Если у сертификата есть закрытый ключ, вы увидите ключ на значке MMC, и ключ в нижней части вкладки «Общие» при открытии сертификата
Использование PowerShell по физическому хранилищу
Как и в случае с MMC, вы можете просматривать сертификаты и управлять ими с помощью PowerShell. Давайте сначала проверим сертификаты в их физических хранилищах (реестр и файловая система).
Используя PowerShell командлет Get-ChildItem, вы можете перечислить все ключи и значения внутри родительского пути в реестре. Приведенная ниже команда перечислит все сертификаты вошедшего в систему пользователя в логическом хранилище промежуточных центров сертификации.
Get-ChildItem -Path 'HKCU:SoftwareMicrosoftSystemCertificatesCACertificates'
Каждая запись в кусте реестра, который вы видите, будет соответствовать отпечатку сертификата доверенного центра сертификации и его сертификату в соответствующем свойстве. Вы можете увидеть пример вывода ниже.
Другое распространенное хранилище — это Personal store. Ваши сертификаты для этого хранилища находятся в файловой системе, а не в реестре. В следующих командах мы покажем эти различные физические пути и их цели.
Каждый файл в каталоге, возвращенный приведенной ниже командой, соответствует сертификату, установленному в личном хранилище текущего пользователя.
Get-ChildItem -Path $env:APPDATAMicrosoftSystemCertificatesMyCertificates
Каждый файл, возвращаемый в приведенной ниже команде, является ссылкой на объект для закрытого ключа, созданный поставщиком хранилища ключей (KSP). Имя файла соответствует идентификатору ключа субъекта сертификата. К каждому устанавливаемому вами закрытому ключу будет добавлен соответствующий файл.
Get-ChildItem -Path $env:APPDATAMicrosoftSystemCertificatesMyKeys
Каждый файл в каталоге, возвращаемый следующей командой, является уникальным контейнером для зашифрованного закрытого ключа, созданного KSP. Нет прямой связи между именем файла и сертификатом, но файл является целью указателя в предыдущей команде.
Get-ChildItem -Path $env:APPDATAMicrosoftCryptoKeys
Использование PowerShell по логическому хранилищу
Поскольку работа с сертификатами на их физических путях встречается редко, в остальных примерах вы будете работать с логическими хранилищами.
PowerShell может получить доступ к логическим хранилищам Windows с помощью PSDrive-объекта «Cert:«, который сопоставляет сертификаты с физическими хранилищами так же, как это делает MMC.
К сожалению, MMC и «Cert:» не маркируют логические хранилища одинаково. Ниже вы можете увидеть сравнительную таблицу общих хранилищ и их названий как в MMC, так и в «Cert:» PSDrive.
Cert: | Certificates MMC |
---|---|
My | Personal |
Remote Desktop | Remote Desktop |
Root | Trusted Root Certification Authorities |
CA | Intermediate Certification Authorities |
AuthRoot | Third-Party Root Certification Authorities |
TrustedPublisher | Trusted Publishers |
Trust | Enterprise Trust |
UserDS | Active Directory User Object |
Выбор сертификатов
Когда вы работаете с сертификатами, вам понадобится способ фильтрации и выбора сертификатов для выполнения определенных операций. В большинстве случаев вы будете фильтровать и выбирать сертификаты на основе значения определенного расширения.
Для следующих примеров вам нужно начать с перечисления всех установленных сертификатов в хранилище корневого ЦС.
Get-ChildItem -Path 'Cert:CurrentUserRoot'
Возвращенные объекты будут объектами сертификатов, которые вы можете использовать в следующих примерах.
Общие расширения уже доступны как свойства объектов сертификата. В приведенном ниже примере вы используете Get-Member для вывода списка всех свойств возвращаемых объектов.
Get-ChildItem -Path 'Cert:CurrentUserRoot' | Get-Member -MemberType Properties
Как видим, некоторые из этих расширений, например «Issuer», помогают найти сертификат, который вы ищете. Расширения предоставляют информацию о сертификате, например, кому он выдан, для чего его можно использовать и любые ограничения на него.
В более сложных случаях использования вам может понадобиться найти сертификаты других расширений, таких как используемый шаблон сертификата. Сложность в том, что значения этих расширений возвращаются как массив целых чисел. Эти целые числа соответствуют содержимому в кодировке ASN.1.
Покажем пример взаимодействия с свойствами типа ScriptProperty. В приведенной ниже команде вы извлекаете Key Usages.
((Get-ChildItem -Path 'Cert:CurrentUserRoot' | Select -First 1).Extensions | Where-Object {$_.Oid.FriendlyName -eq 'Key Usage'}).format($true)
Новая часть, которую мы вводим в приведенной выше команде, — это метод форматирования, который выполняет декодирование ASN.1. Вы передаете ему логическое значение (например, $true), чтобы определить, хотим ли мы, чтобы возвращаемый объект был однострочным или многострочным.
Попробуем использовать значение Thumbprint из сертификата в приведенной ниже команде. Значение Thumbprint устанавливается как переменная PowerShell и используется для выбора конкретного сертификата в приведенных ниже командах.
$thumb = "cdd4eeae6000ac7f40c3802c171e30148030c072"
Get-ChildItem -Path 'Cert:CurrentUserRoot' | Where-Object {$_.Thumbprint -eq $thumb}
Создание самозаверяющих (self-signed) сертификатов с помощью PowerShell
PowerShell может создавать самозаверяющие (self-signed) сертификаты с помощью командлета New-SelfSignedCertificate. Самозаверяющие сертификаты полезны для тестирования, поскольку они позволяют генерировать пару открытого и закрытого ключей без использования центра сертификации.
Теперь давайте создадим самозаверяющий сертификат в хранилищах текущего пользователя и локального компьютера, чтобы использовать его в примерах для следующих шагов.
В приведенном ниже примере PowerShell создает пару открытого и закрытого ключей, самозаверяющий сертификат и устанавливает их все в соответствующие хранилища сертификатов.
New-SelfSignedCertificate -Subject 'User-Test' -CertStoreLocation 'Cert:CurrentUserMy'
New-SelfSignedCertificate -Subject 'Computer-Test' -CertStoreLocation 'Cert:LocalMachineMy'
Использование самозаверяющих сертификатов для продуктивных сервисов не рекомендуется, поскольку не существует всех механизмов, основанных на доверии.
Импорт и экспорт сертификатов в MMC
Криптография с открытым ключом основана на широкой доступности открытого ключа. Учитывая это, вам нужны стандартные способы эффективного обмена сертификатами. Не менее важна безопасность ваших личных ключей. Хранение закрытых ключей на недоступных носителях или с материалами для аварийного восстановления — обычная практика для определенных закрытых ключей.
Оба они требуют способов хранения этих криптографических объектов в стандартных форматах. Экспорт предоставляет функции для сохранения этих объектов и обеспечения использования широко распространенных стандартных форматов файлов. Импорт позволяет вам переносить криптографические объекты в операционные системы Windows.
Экспорт сертификатов из MMC относительно прост. Чтобы экспортировать сертификат без закрытого ключа, щелкните сертификат в MMC, выберите меню «Все задачи», а затем «Экспорт».
Во время экспорта вам будет предложено указать формат файла, как показано ниже. Наиболее распространены варианты кодирования — DER или Base-64
Экспорт закрытых ключей
Чтобы экспортировать сертификат с соответствующим закрытым ключом, вы должны соответствовать двум критериям:
- Вошедшая в систему учетная запись должна иметь разрешение на закрытый ключ (только для сертификатов компьютеров);
- Закрытый ключ должен быть помечен как экспортируемый.
Чтобы проверить разрешения для закрытых ключей локального компьютера, вы можете выбрать сертификат с закрытым ключом, выбрать «Все задачи» и «Управление закрытыми ключами» в MMC «Сертификаты». В открывшемся диалоговом окне отображаются записи управления доступом для закрытых ключей.
Когда выше обозначенные условия выполнены, вы можете выбрать сертификат, щелкнуть «Все задачи», а затем «Экспорт», как если бы вы использовали сертификат только с открытым ключом. При экспорте теперь у вас должна присутствовать возможность выбора экспорта закрытого ключа («Yes, export the private key»), как показано ниже.
Когда вы экспортируете закрытый ключ в Windows, вы можете сохранить файл только как PFX. Этот и другие типы файлов и форматы кодирования подробно описаны в этом посте.
Для остальных параметров, отображаемых в мастере экспорта, вы можете использовать значения по умолчанию. В таблице ниже приводится краткое изложение каждого из них.
Настройка | Описание |
---|---|
Including all certificates in the certification path if possible | Помогает с переносимостью эмитентов сертификатов и включает все соответствующие открытые ключи в PFX. |
Delete the private key if the export is successful | Удаляет закрытый ключ из файла и имеет несколько распространенных вариантов использования, но одним из примеров является проверка доступа к закрытым ключам. |
Export all extended properties | Будет включать любые расширения в текущем сертификате, они относятся к сертификатам [конкретные настройки] для интерфейсов Windows. |
Enable certificate privacy | Обычно в экспортируемом PFX-файле шифруется только закрытый ключ, этот параметр шифрует все содержимое PFX-файла. |
Group or user names | Вы можете использовать участника безопасности группы или пользователя из Active Directory для шифрования содержимого файла PFX, но пароль является наиболее переносимым вариантом для устаревших систем или компьютеров, не присоединенных к тому же домену. |
Импорт сертификатов
Функция импорта одинакова для всех поддерживаемых типов файлов сертификатов. Единственная разница в том, что если файл содержит закрытый ключ, вы можете «Отметить этот ключ как экспортируемый», о чем вы узнаете подробнее ниже. Windows будет использовать мастер импорта сертификатов.
При использовании мастера импорта сертификатов для PFX вам потребуется указать пароль, используемый для шифрования закрытого ключа. Вот еще один обзор вариантов импорта.
Настройка | Описание |
---|---|
Enable strong private key protection | Требуется пароль для каждого доступа к закрытому ключу. Будьте осторожны с новыми функциями, поскольку они не будут поддерживаться во всех программах. |
Mark this key as exportable | Вы должны стараться избегать использования этого параметра в любой конечной системе, закрытые ключи следует рассматривать так же, как и хранение паролей. |
Protect private key using [virtualization-based security] | Этот параметр обеспечивает дополнительные функции безопасности для защиты закрытых ключей от сложных атак вредоносного ПО. |
Include all extended properties | Относится к тем же настройкам Windows, что и при экспорте. |
Сертификаты для подписи кода PowerShell — хороший вариант использования надежной защиты закрытого ключа.
С автоматическим размещением сертификатов следует проявлять осторожность. Скорее всего, вы получите наилучшие результаты, выбрав хранилище сертификатов вручную.
Импорт и экспорт сертификатов в PowerShell
Теперь с помощью PowerShell экспортируйте один из самозаверяющих сертификатов, которые вы создали ранее. В этом примере вы выбираете сертификат в личном логическом хранилище CurrentUser, который был самозаверяющим.
$certificate = Get-Item (Get-ChildItem -Path 'Cert:CurrentUserMy' | Where-Object {$_.Subject -eq $_.Issuer}).PSPath
Теперь, когда вы выбрали сертификат, вы можете использовать команду Export-Certificate, чтобы сохранить файл в кодировке DER, используя команду ниже.
Export-Certificate -FilePath $env:USERPROFILEDesktopcertificate.cer -Cert $certificate
Теперь давайте посмотрим на экспорт закрытого ключа. Ниже вы проверяете, что у выбранного сертификата есть закрытый ключ. Если он не возвращает True, то команда Get-Item, скорее всего, выбрала неправильный сертификат.
$certificate.HasPrivateKey
Ниже вы установите пароль, который будет использоваться для шифрования закрытого ключа. Затем экспортируйте выбранный сертификат в файл PFX и используйте пароль, который вы ввели ранее, чтобы зашифровать файл.
$pfxPassword = "ComplexPassword!" | ConvertTo-SecureString -AsPlainText -Force
Export-PfxCertificate -FilePath $env:USERPROFILEDesktopcertificate.pfx -Password $pfxPassword -Cert $certificate
В случае, если необходимо выполнить импорт, как и при экспорте, есть две команды. Одна команда для импорта сертификатов и одна для импорта файлов PFX.
Ниже команда Import-Certificate импортирует файл в формате DER, который вы экспортировали ранее, в личное хранилище текущего пользователя.
Import-Certificate -FilePath $env:USERPROFILEDesktopcertificate.cer -CertStoreLocation 'Cert:CurrentUserMy'
Допустим, вы тоже хотите установить закрытый ключ этого сертификата.
$pfxPassword = "ComplexPassword!" | ConvertTo-SecureString -AsPlainText -Force
Import-PfxCertificate -Exportable -Password $pfxPassword -CertStoreLocation 'Cert:CurrentUserMy' -FilePath $env:USERPROFILEDesktopcertificate.pfx
Имейте в виду, что пароль должен быть защищенной строкой. Кроме того, если вы импортируете в хранилище локального компьютера (например, «Cert:LocalMachine«), вам нужно будет запустить команду из командной строки администратора с повышенными привилегиями.
В приведенном выше примере вы также используете параметр -Exportable с командой, отмечая закрытый ключ как экспортируемый в будущем. По умолчанию (без указания этого параметра) экспорт не используется. Экспортируемые закрытые ключи – отельный аспект информационной безопасности, заслуживающий отдельного внимания.
Удаление сертификатов с помощью PowerShell
При удалении сертификатов помните, что понятие «Корзина Windows» в этом случае отсутствует. Как только вы удалите сертификат, он исчезнет! Это означает, что очень важно подтвердить, что вы удаляете правильный сертификат, путем проверки уникального идентификатора, такого как серийный номер или значение расширения Thumbprint.
Как и выше, в приведенной ниже команде мы выбираем самозаверяющий сертификат из личного хранилища текущего пользователя.
$certificate = Get-Item (Get-ChildItem -Path 'Cert:CurrentUserMy' | Where-Object {$_.Subject -eq $_.Issuer}).PSPath
Ниже вы можете увидеть свойства отпечатка, серийного номера и темы для выбранного сертификата, чтобы убедиться, что это именно тот сертификат, который вы собираетесь выбрать.
$certificate.Thumbprint
$certificate.SerialNumber
$certificate.Subject
Убедитесь, что вы выбрали правильный сертификат, который собираетесь удалить.
Приведенная ниже команда удаляет все выбранные объекты сертификата, используйте с осторожностью! Передав объект $certificate через конвейер в командлет Remove-Item в приведенной ниже команде, вы удалите все содержимое сертификата без каких-либо запросов на проверку.
$certificate | Remove-Item
Резюме
На протяжении всей этой статьи вы работали с сертификатами в Windows, изучая, как получить к ним доступ, и некоторые инструменты, которые можно использовать при работе с ними. По этой теме можно изучить гораздо больше, в том числе о том, как связать установленные сертификаты с конкретными службами или даже о том, как реализовать инфраструктуру закрытого открытого ключа (PKI) путем развертывания собственных центров сертификации (CA).
Обновлено 24.11.2016
Добрый день уважаемые читатели блога Pyatilistnik.org, меня уже на протяжении этого месяца, несколько раз спрашивали в электронной почте, где хранятся сертификаты в windows системах, ниже я подробнейшим образом вам расскажу про этот вопрос, рассмотрим структуру хранилища, как находить сертификаты и где вы это можете использовать на практике, особенно это интересно будет для тех людей, кто часто пользуется ЭЦП (электронно цифровой подписью)
Для чего знать где хранятся сертификаты в windows
Давайте я вам приведу основные причины, по которым вы захотите обладать этим знанием:
- Вам необходимо посмотреть или установить корневой сертификат
- Вам необходимо посмотреть или установить личный сертификат
- Любознательность
Ранее я вам рассказывал какие бывают сертификаты и где вы их можете получить и применять, советую ознакомиться с данной статьей, так как информация изложенная в ней является фундаментальной в этой теме.
Во всех операционных системах начиная с Windows Vista и вплоть до Windows 10 Redstone 2 сертификаты хранятся в одном месте, неком таком контейнере, который разбит на две части, один для пользователя, а второй для компьютера.
В большинстве случаев в Windows поменять те или иные настройки вы можете через mmc оснастки, и хранилище сертификатов не исключение. И так нажимаем комбинацию клавиш WIN+R и в открывшемся окне выполнить, пишем mmc.
Вы конечно можете ввести команду certmgr.msc, но таким образом вы сможете открыть только личные сертификаты
Теперь в пустой mmc оснастке, вы нажимаете меню Файл и выбираете Добавить или удалить оснастку (сочетание клавиш CTRL+M)
В окне Добавление и удаление оснасток, в поле Доступные оснастки ищем Сертификаты и жмем кнопку Добавить.
Тут в диспетчере сертификатов, вы можете добавить оснастки для:
- моей учетной записи пользователя
- учетной записи службы
- учетной записи компьютера
Я обычно добавляю для учетной записи пользователя
и компьютера
У компьютера есть еще дополнительные настройки, это либо локальный компьютер либо удаленный (в сети), выбираем текущий и жмем готово.
В итоге у меня получилось вот такая картина.
Сразу сохраним созданную оснастку, чтобы в следующий раз не делать эти шаги. Идем в меню Файл > Сохранить как.
Задаем место сохранения и все.
Как вы видите консоль хранилище сертификатов, я в своем примере вам показываю на Windows 10 Redstone, уверяю вас интерфейс окна везде одинаковый. Как я ранее писал тут две области Сертификаты — текущий пользователь и Сертификаты (локальный компьютер)
Сертификаты — текущий пользователь
Данная область содержит вот такие папки:
- Личное > сюда попадают личные сертификаты (открытые или закрытые ключи), которые вы устанавливаете с различных рутокенов или etoken
- Доверительные корневые центры сертификации > это сертификаты центров сертификации, доверяя им вы автоматически доверяете всем выпущенным ими сертификатам, нужны для автоматической проверки большинства сертификатов в мире. Данный список используется при цепочках построения доверительных отношений между CA, обновляется он в месте с обновлениями Windows.
- Доверительные отношения в предприятии
- Промежуточные центры сертификации
- Объект пользователя Active Directory
- Доверительные издатели
- Сертификаты, к которым нет доверия
- Сторонние корневые центры сертификации
- Доверенные лица
- Поставщики сертификатов проверки подлинности клиентов
- Local NonRemovable Certificates
- Доверительные корневые сертификаты смарт-карты
В папке личное, по умолчанию сертификатов нет, если вы только их не установили. Установка может быть как с токена или путем запроса или импорта сертификата.
В мастере импортирования вы жмете далее.
далее у вас должен быть сертификат в формате:
- PKCS # 12 (.PFX, .P12)
- Стандарт Cryprograhic Message Syntax — сертификаты PKCS #7 (.p7b)
- Хранилище сериализованных сертификатов (.SST)
На вкладке доверенные центры сертификации, вы увидите внушительный список корневых сертификатов крупнейших издателей, благодаря им ваш браузер доверяет большинству сертификатов на сайтах, так как если вы доверяете корневому, значит и всем кому она выдал.
Двойным щелчком вы можете посмотреть состав сертификата.
Из действий вы их можете только экспортировать, чтобы потом переустановить на другом компьютере.
Экспорт идет в самые распространенные форматы.
Еще интересным будет список сертификатов, которые уже отозвали или они просочились.
Список пунктов у сертификатов для компьютера, слегка отличается и имеет вот такие дополнительные пункты:
- AAD Token Issue
- Windows Live ID Token
- Доверенные устройства
- Homegroup Machine Certificates
Думаю у вас теперь не встанет вопрос, где хранятся сертификаты в windows и вы легко сможете найти и корневые сертификаты и открытые ключи.
Сообщение об ошибке
- Warning: strpos() expects parameter 1 to be string, array given в функции DrupalTextMetaTag->getValue() (строка 540 в файле /home/y/y4achek/drupal7/public_html/sites/all/modules/metatag/metatag.inc).
- Warning: preg_match_all() expects parameter 2 to be string, array given в функции token_scan() (строка 124 в файле /home/y/y4achek/drupal7/public_html/includes/token.inc).
- Warning: explode() expects parameter 2 to be string, array given в функции DrupalTextMetaTag->getValue() (строка 578 в файле /home/y/y4achek/drupal7/public_html/sites/all/modules/metatag/metatag.inc).
- Warning: array_filter() expects parameter 1 to be array, null given в функции DrupalTextMetaTag->getValue() (строка 578 в файле /home/y/y4achek/drupal7/public_html/sites/all/modules/metatag/metatag.inc).
- Warning: array_values() expects parameter 1 to be array, null given в функции DrupalTextMetaTag->getValue() (строка 578 в файле /home/y/y4achek/drupal7/public_html/sites/all/modules/metatag/metatag.inc).
- Warning: Invalid argument supplied for foreach() в функции DrupalTextMetaTag->getValue() (строка 586 в файле /home/y/y4achek/drupal7/public_html/sites/all/modules/metatag/metatag.inc).
- Warning: implode(): Invalid arguments passed в функции DrupalTextMetaTag->getValue() (строка 607 в файле /home/y/y4achek/drupal7/public_html/sites/all/modules/metatag/metatag.inc).
В Windows есть стандартный набор сертификатов, которые хранятся в хранилище сертификатов. В это хранилище сертификатов так же попадают сертификаты с цифровой подписи. Иногда есть необходимость удалить не правильно установленный сертификат с целью его переустановки.
Где же находится хранилище сертификатов в Windows?
Чтобы открыть хранилище сертификатов в Windows необходимо иметь права администратора на учетной записи или открыть утилиту «Выполнить» от имени администратора.
Если Ваша учетная запись имеет права администатора — на клавиатеру нажимаем сочетание клавиш: Win+R и слева внизу откроется окно «Выполнить».
Если у Вас нет прав администратора — нажимаете на меню «Пуск» (слева внизу экрана). Далее находите строку поиска и в ней пишете слово «Выполнить«. Затем увидете нужную нам утилиту. Нажмите по ней правой кнопкой мыши и выберите пункт меню «Открыть от имени администратора«.
Затем в командную строку вводите команду ниже и нажимаете «ОК«:
certmgr.msc
Откроется окно со всеми сертификатами текущего пользователя. С левой стороны — каталоги сертификатов, а с правой сами сертификаты.
Системное хранилище сертификатов в windows у Вас открыто! Тут можно просмотреть и удалить при необходимости систмные сертификаты или сертификаты пользователя.
Поделитесь материалом с друзьями!
Содержание
- Что такое сертификаты Windows 10
- Где хранятся сертификаты
- Просмотр сертификатов
Что такое сертификаты Windows 10
Сертификат — это зашифрованные файлы с личной информацией, посредством которых обеспечивается безопасный обмен данными в сети между сторонами, участвующими в таком обмене. Благодаря сертификатам пользователь или субъект может быть идентифицирован издателем или владельцем. По такому принципу работают сайты государственных услуг. Для подачи запроса на получение какого-либо документа нет необходимости лично ехать в госорган и предоставлять паспорт, ваша личность подтверждается с помощью цифрового сертификата.
Сертификат включает в себя поле открытый ключ владельца, в который пользователем вносятся данные и после чего передаются в зашифрованном виде. Для открытия сообщений и их расшифровки владелец использует закрытый ключ. Сертификаты выдаются центром сертификации (удостоверяющим центром) — органом или организацией которые, как правило, являются сторонними издателями сертификатов.
Где хранятся сертификаты
Для хранения сертификатов используются специальные хранилища. В системе они представлены обычно 2-мя типами:
- хранилище локального компьютера
- хранилище текущего пользователя.
Пользователь с правами администратора имеет возможность просмотра всех хранилищ. Обычные пользователи, не обладающие правами администратора, имеют доступ лишь ко второму типу.
В хранилище локального компьютера содержатся сертификаты глобальные для всех пользователей, а в хранилище текущего пользователя находятся сертификаты для конкретной учетной записи.
В свою очередь хранилища внутри разделяются на вложенные хранилища, т.е. сертификаты группируются в зависимости от назначения сертификата.
Сертификаты для текущего пользователя наследуют содержимое хранилищ с сертификатами локального компьютера.
Просмотр сертификатов
Если в работе с сертификатами перед вами встал вопрос о необходимости их просмотра, проверки каких-либо свойств или просто из любопытства ниже мы рассмотрим доступные для этих целей способы.
С помощью консоли управления
На клавиатуре наберите сочетание клавиш Win+R → в строку открыть введите «MMC» → Ok. Если на экран будет выведено окно контроля учетных записей нажмите кнопку «Да», тем самым дав разрешение на внесение изменений приложением.
После открытия консоли в меню Файл → выберите Добавить или удалить оснастку.
В открывшемся окне справа вы увидите список доступных оснасток. Выберите Сертификаты → нажмите кнопку Добавить.
Далее будет предложено выбрать какими сертификатами нужно управлять. Выберите «учетной записи компьютера» → Далее.
Если вы не являетесь администратором компьютера управление сертификатами можно будет осуществлять только для учетной записи пользователя под которой был выполнен вход в систему.
В следующем окне оставьте выбранным параметр «локальным компьютером» → нажмите кнопку Готово.
Вы вернетесь к окну Добавление и удаление оснасток, где в выбранных оснастках (слева) появятся Сертификаты (локальный компьютер) → нажмите Ok.
В Корне консоли разверните список каталогов. Все установленные сертификаты будут отсортированы по типам. Раскрыв нужный тип можно выполнить просмотр, экспорт, импорт или удаление сертификатов.
Диспетчер сертификатов
Для просмотра сертификатов пользователя можно воспользоваться командой certmgr.msc (сертификаты локального компьютера можно открыть командой certlm.msc) введя ее в диалоговое окно Выполнить. После чего будет открыт диспетчер сертификатов. Для просмотра нужного типа щелкните по сертификату в левой части окна.
Internet Explorer
Запустите браузер Internet Explorer (например, найдя его через кнопку Поиск на панели задач) → щелкните по значку в виде шестеренки Сервис (или Alt+X) → Свойства браузера.
В окне Свойств браузера перейдите ко вкладке Содержание → в разделе Сертификаты щелкните одноименную кнопку.
В открывшемся окне можно управлять установленными сертификатами (! не имея при этом прав администратора в системе). Для удобства просмотра можно отфильтровать их по назначению либо воспользоваться вкладками, группирующими сертификаты по типу.
Окно свойство браузера можно также открыть через Панель управления. Для этого откройте классическую Панель управления → Свойства браузера → Содержание → Сертификаты.
Система цифровых сертификатов используется аналогично паролям, для подтверждения личности пользователя или ПК, обмена электронной информацией в виртуальной сети. Легковесные файлы содержат личные данные, которые применяются при идентификации личности. Хранилище сертификатов в ОС Windows 10 находится в секретном месте. Иногда фирмам приходится настраивать личные сертификаты, поэтому им важно знать местоположение файлов.
Для чего знать, где хранятся сертификаты?
Каждый файл в хранилище предусмотрен для защиты операционки цифрового устройства. Они препятствуют проникновению вредоносных программ в систему. Отдельная цифровая подпись отвечает за определенный скачанный софт.
Знание о том, где хранятся такие файлы, требуется в случае просмотра или установки корневых, личных сертификатов. В «десятке» инструменты находятся в контейнере двух типов:
- Certificate store локального ПК – включают список файлов для проверки оригинальности сервера.
- Certificate store для пользователя – хранят сертификаты утилит, которые запускает юзер.
Сертификаты представляют собой корневые и личные файлы. Первые являются составным элементом секретного ключа. Вторые предназначены для идентификации юзеров при обмене электронных данных. Поменять настройки в «десятке» можно через mmc оснастки, в том числе через хранилище.
Список важных объектов: сертификаты для оборудования, персональные файлы – находят несколькими способами с помощью встроенных инструментов, сторонних утилит.
Через «КриптоПро»
Криптопровайдер предназначен для организации защиты программных обеспечений методом шифрования. Менеджер защищает конфиденциальную информацию при обмене данными через сеть интернет, обеспечивает юридическую достоверность электронных документов.
Для включения программы ее требуется скачать с официального сайта разработчика, инсталлировать на компьютер. Все действия выполняются с правами Администратора. Во время установки ПО можно выполнять настройки через панель свойств. После инсталляции потребуется перезагрузить устройство.
Просмотр проверочных ключей ЭЦП происходит по следующему алгоритму:
- Зайти в меню Пуск.
- Открыть «Все программы».
- Выбрать «КриптоПро».
- Щелкнуть по пункту «Сертификаты».
В открывшемся окне пользователь увидит все актуальные корневые, личные файлы. Обладая администраторскими правами, можно управлять файлами в «десятке»: выполнять копирование, редактирование, деинсталлировать файлы.
Через Certmgr
Диспетчер разрешает проводить различные действия с цифровыми документами. Консоль является частью операционной системы, включает инструменты для функций управления.
Для просмотра данных нужно следовать инструкции:
- Зайти в Пуск.
- Открыть Командную строку, набрать: c Нажать «Enter».
- В меню появившегося окна выбрать «Личное» и «Корневые сертификаты…». Зайдя в разделы, можно развернуть реестры с полным списком ключей.
Без прав Администратора утилита не заработает. Софт имеет ограничение в шифровании данных, где происходит специальное кодирование файлов.
Через Internet Explorer
Браузер интегрирован в ОС Виндовс 10, включает набор инструментов, позволяющих искать и просматривать информацию в виртуальной сети. Если веб-проводник отсутствует в «десятке», его легко можно скачать с официального источника.
С помощью браузера можно найти ЭЦП, следуя инструкции:
- Запустить Интернет Эксплорер.
- Выбрать «Свойства браузера».
- Тапнуть по разделу «Содержание».
- Нажать на подраздел «Сертификаты».
В результате откроется содержимое с полным списком искомых файлов. В веб-сервисе существует возможность их добавления. Юзеру стоит помнить, что корневые ЭЦП удостоверяющих центров деактивировать запрещено.
Аналогичный способ поиска документов выполняется через Центр управления сетями или общим доступом:
- Открыть Панель управления.
- Войти в «Свойства браузера».
- Зайти в меню «Содержание» и «Сертификаты».
Преимущество метода заключается в том, что посмотреть список ЭЦП можно без администраторских прав. Для обычных людей доступен только просмотр, вносить изменения запрещено.
Через контроль управления
Представляет собой один из важнейших компонентов ОС Виндовс 10. С помощью встроенного средства осуществляется управление, запуск, настройка большинства системных функций. Также можно найти, где лежат сертифицированные файлы ЭЦП для их редактирования.
Пошаговая инструкция:
- Нажать: «Win + R».
- Ввести в строку запроса: cmd. Нажать «Enter».
- после этого перейти по команде mmc в терминал;
- Щелкнуть по вкладке «Файл».
- В открывшемся списке тапнуть «Добавить изолированную оснастку».
- Нажать на раздел «Сертификаты».
Все действия пользователь может выполнять только с правами Администратора. Такой вариант подходит не каждому человеку, так как некоторые запросы вводятся через Командную строку. Сервисом обычно пользуются системные администраторы или люди, хорошо разбирающиеся в теме.
Существует целый список сторонних ресурсов, позволяющих управлять сертификатами, инсталлированными в ОС Виндовс 10. Но пользоваться такими утилитами не рекомендуется, так как нет гарантии, что в них присутствует команда отправки сертификата на внешний сервер. Надежное сертифицированное приложение – это «КриптоПро», которое дает гарантию защиты от несанкционированного доступа посторонних лиц к ЭЦП.
Также в последних версиях Винды зашифрованные файлы просматривают, перейдя по пути: C:UsersПОЛЬЗОВАТЕЛЬAppDataRoamingMicrosoftSystemCertificates. Словосочетание «Пользователь» меняется на название учетной записи. В результате откроется полный список засекреченных данных.
Сертификаты созданы для безопасной работы цифровой техники. Их достоверность гарантирована сертификационным центром. Управление ЭЦП требует определенных знаний, поэтому работу должен выполнять специалист или продвинутый пользователь.
Участие в торгах, сдача отчетности, маркировка товаров невозможны без электронной подписи (ЭП или ЭЦП), которая заменяет реальную подпись человека при дистанционной подготовке документов.
Если вы еще не получили электронную подпись, оформите ЭП в удостоверяющем центре, который прошел аккредитацию. В УЦ Контура есть подписи для сотрудников и руководителей, торгов, отчетности и личных дел.
Заказать
Чаще всего владельцы электронной подписи сталкиваются с сертификатом, когда подписывают контракт на торговой площадке или отчет для налоговой. Тогда система, где подписывается документ, предлагает «Выбрать сертификат», которым будет подписан документ.
Сертификат — это электронное свидетельство, которое подтверждает, кому ЭП принадлежит. В нем содержатся сведения:
- Срок действия;
- Статус: действителен или нет;
- Кому он выдан и каким удостоверяющим центром (УЦ);
- Наличие закрытого ключа;
- Значение открытого ключа;
- Уникальный номер сертификата.
Сертификат получают в удостоверяющем центре. Для этого нужно обратиться в УЦ, сообщить свои данные, показать паспорт и подтвердить личность. Сотрудники УЦ сообщат, как пользователю сгенерировать ключи электронной подписи, а потом выдадут на них сертификат — он подтвердит, что ключи принадлежат вам и позволит использовать их для подписания документов. Вы сможете записать его на токен (защищенный носитель, похожий на флешку) или сохранить на компьютер.
Файл сертификата имеет расширение.cer. Иконка файла — выглядит как конверт с ключом и печатью.
Как выглядит файл с сертификатом ЭП
Сертификат, открытый и закрытый ключи хранятся вместе на внешнем носителе или в компьютере. Вместе эти три компонента обеспечивают работу ЭП. Сертификат без ключей не позволит подписать электронный документ.
Повреждение или удаление файлов приведет к необходимости перевыпуска ЭП.
Тариф «Марафон» от Удостоверяющего центра Контура позволяет перевыпускать сертификат столько, сколько нужно без доплат. Также тариф избавляет от ежегодной подготовки документов для новой ЭП
Заказать
При первом получении сертификата и ключей ЭП пользователь выбирает, на каком носителе будет их хранить. Это возможно, если правила системы или УЦ, где он получает сертификат, разрешает выбрать разные носители.
Всего есть четыре возможных носителя для сертификата:
- Токен — специальный защищенный носитель, который внешне похож на флешку. Содержимое носителя защищено пин-кодом, поэтому просто так файл с закрытым ключом с токена не скопировать. Купить такой носитель можно в УЦ или у производителя токенов.
- Флешка — обычный носитель, на нем контейнер с сертификатом и ключами будет храниться, как папка с файлами.
- Обычная папка на компьютере — или ее также называют «директория».
- Реестр компьютера — база с информацией о настройках и параметрах компьютера.
В дальнейшем пользователь может сделать копию ключа и сертификата и записать их на второй носитель. Это возможно, если в сертификате нет запрета на копирование. Например, не удастся скопировать сертификат УЦ ФНС или сертификат для ЕГАИС Алкоголь, так как они защищены от копирования. При этом другие квалифицированные сертификаты — например, подпись для торгов или налоговой отчетности — можно дублировать и хранить на нескольких носителях.
Подробнее разберем хранение сертификата на компьютере: в папке (директории) и в реестре.
Папка в операционной системе
При сохранении сертификата на компьютере программа КриптоПро CSP сама определяет конкретную папку, куда запишет ключи и сертификат. Выбрать другой путь сохранения файла пользователю не удастся.
В этом случае файл закрытого ключа проще найти и скопировать — это будет обычная папка с файлами. Путь к папке будет таким:
- в Windows — %localappdata%/crypto prо;
- в Linux, Unix, MacOS — /var/opt/cprocsp/keys/{username}, где username — это название учетной записи.
Реестр
Реестр компьютера — это список настроек и параметров ПК. Увидеть реестр компьютера можно, набрав в строке поиска на панели «Пуск» — «regedit». Поиск позволит открыть служебную программу — редактора реестра.
Путь к сертификату через реестр
Найти сертификат на ПК можно несколькими путями:
- с помощью программы КриптоПро CSP;
- программы CertMgr;
- браузера;
- консоли MMC.
Все четыре способа позволят открыть сертификат, выгрузить его в виде файла, просмотреть сведения об ЭП, а при необходимости и удалить сертификат. Когда не нужно удалять сертификат.
В КриптоПро CSP и браузере также можно скопировать сертификат вместе с закрытым ключом, в программе CertMgr и консоли ММС — только файл сертификата. Для такого копирования сертификата и его ключа рекомендуем использовать сервис копирования сертификатов на Установочном диске, где пользователю не требуется детально погружаться в механизмы работы ЭП.
Поиск сертификата через КриптоПро CSP
КриптоПро CSP — это программа для работы с электронной подписью. Она есть у большинства пользователей, работающих с квалифицированной ЭП.
Чтобы найти сертификат через КриптоПро CSP на ПК:
- Открываем программу: Пуск → Все программы — КриптоПро CSP.
- В программе переходим по вкладкам: Сертификаты пользователя → Личное → Сертификаты.
- Выбираем нужный сертификат и делаем с ним то, что планировали: смотрим информацию в сертификате, экспортируем его или удаляем.
Поиск сертификата через КриптоПро CSP
После открытия сертификата через КриптоПро CSP, вкладка с ним появится в меню «Пуск». В следующий раз сертификат можно будет открыть быстрее — сразу из этого меню.
При удалении сертификата через КриптоПро CSP, программа сотрет с компьютера все компоненты ЭП вместе с корневым сертификатом УЦ. После этого восстановить их невозможно. Что такое корневой сертификат.
Поиск сертификата через CertMgr
CertMgr — это программа для работы с сертификатами на ПК. Также через программу можно посмотреть справочную информацию о консоли управления Microsoft Management Console (MMC) и о том, как настроить удаленное подключение к компьютеру.
Поиск сертификатов на ПК с помощью CertMgr аналогичен поиску через КриптоПро CSP:
- Открываем меню «Пуск» и в поисковой строке пишем название диспетчера сертификатов — «CertMgr», запускаем программу CertMgr.
- В программе — выбираем папку «Личное», тип объекта — «Сертификаты». Диспетчер выдаст перечень сертификатов, которые установлены на компьютер.
- Выбираем из списка нужный сертификат и открываем его.
Поиск сертификата через CertMgr
Поиск сертификата через Internet Explorer
Internet Explorer — один из наиболее популярных браузеров для работы с сертификатами ЭП. Долгое время только его можно было использовать для сертификатов. Другие браузеры начали поддерживать работу сертификатов позже — в 2015-2017 годах. Но до сих пор использовать сертификат на некоторых ресурсах можно только в Internet Explorer.
Как найти сертификат с помощью браузера Internet Explorer:
- Открываем браузер и нажимаем: Настройки → Свойства браузера → Содержание → Сертификаты
- Появится окно с сертификатами, установленными на компьютер. Можно будет просмотреть информацию о них.
Поиск сертификата через Internet Explorer
Полностью удалить сертификат из браузера Internet Explorer невозможно — только открытый ключ. Поэтому если сертификат удалили из браузера по ошибке, то его можно восстановить с помощью программы КриптоПро CSP.
В браузере Chrome и основанных на нем браузерах (Яндекс.Браузер, Opera) сертификаты также можно найти:
Настройки браузера → Приватность и защита → Безопасность и защита → Сертификаты → Просмотр сертификатов.
В браузере Firefox найти сертификат не получится. Этот браузер не работает с российскими сертификатами и отечественными криптографическими алгоритмами.
Поиск сертификата через консоль управления
Консоль MMC (Microsoft Management Console) — это место для хранения инструментов и программ, которые предназначены для обслуживания компьютера. Эти средства называются оснастками и служат для управления оборудованием, программным обеспечением и сетевыми компонентами Windows.
Что именно находится в консоли, выбирает пользователь. Перед тем, как пользоваться инструментами консоли, сначала их нужно туда добавить, то есть «Добавить оснастку».
Рассказываем, как запустить консоль и добавить оснастку:
- Открываем меню «Пуск» и в поисковой строке указываем — «MMC».
- В результатах поиска выбираем консоль управления Windows MMC и запускаем ее.
- Нажимаем на вкладку «Файл» и выбираем функцию «Добавить или удалить оснастку». Система выдаст список доступных оснасток.
- Выбираем строку «Сертификаты» в перечне оснасток и нажимаем кнопку «Добавить».
- Указываем, для какой учетной записи выбираем оснастку — «Моей учетной записи пользователя» и нажимаем «Готово». После этого список сертификатов перейдет из перечня доступных оснасток в окне слева в перечень выбранных оснасток в окне справа.
- Подтверждаем выбор: в окне выбранных оснасток выбираем инструмент «Сертификаты» и нажимаем «Ок».
- Прописываем название консоли и выбираем, куда ее сохранить.
Добавление сертификата в консоль управления Windows
После добавления сертификатов в консоль управления Windows, с ними можно будет работать напрямую через эту консоль.
Как запустить консоль, в которую добавлены сертификаты:
- Открываем меню «Пуск» и в поисковой строке указываем название консоли. Например, «Консоль1».
- Выбираем консоль, запускаем ее и нажимаем: Корень консоли → Сертификаты → Личное → Сертификаты.
- Нажимаем на иконку сертификата и открываем его.
Просмотр сертификата в консоли управления Windows
Сертификат на компьютере можно найти несколькими путями. Наиболее простые через программу КриптоПро CSP или браузер. Чуть более сложные — через диспетчер сертификатов CertMgr или консоль управления Windows.
Если поиск не дал результатов, значит сертификата на компьютере нет. Это значит, что файл сертификата удален. Восстановить его можно только в случае, если закрытый ключ не тронут. В противном случае нужно использовать копию сертификата, если заранее ее сделали, или обратиться в удостоверяющий центр за новым сертификатом.
Если у вас оформлен тариф «Марафон» от Удостоверяющего центра Контура, платить за перевыпуск не придется. Тариф не только избавляет от ежегодной подготовки документов для новой ЭП, но и позволяет перевыпускать сертификат столько, сколько нужно
Заказать
Обновлено 24.11.2016
Добрый день уважаемые читатели блога Pyatilistnik.org, меня уже на протяжении этого месяца, несколько раз спрашивали в электронной почте, где хранятся сертификаты в windows системах, ниже я подробнейшим образом вам расскажу про этот вопрос, рассмотрим структуру хранилища, как находить сертификаты и где вы это можете использовать на практике, особенно это интересно будет для тех людей, кто часто пользуется ЭЦП (электронно цифровой подписью)
Для чего знать где хранятся сертификаты в windows
Давайте я вам приведу основные причины, по которым вы захотите обладать этим знанием:
- Вам необходимо посмотреть или установить корневой сертификат
- Вам необходимо посмотреть или установить личный сертификат
- Любознательность
Ранее я вам рассказывал какие бывают сертификаты и где вы их можете получить и применять, советую ознакомиться с данной статьей, так как информация изложенная в ней является фундаментальной в этой теме.
Во всех операционных системах начиная с Windows Vista и вплоть до Windows 10 Redstone 2 сертификаты хранятся в одном месте, неком таком контейнере, который разбит на две части, один для пользователя, а второй для компьютера.
В большинстве случаев в Windows поменять те или иные настройки вы можете через mmc оснастки, и хранилище сертификатов не исключение. И так нажимаем комбинацию клавиш WIN+R и в открывшемся окне выполнить, пишем mmc.
Вы конечно можете ввести команду certmgr.msc, но таким образом вы сможете открыть только личные сертификаты
Теперь в пустой mmc оснастке, вы нажимаете меню Файл и выбираете Добавить или удалить оснастку (сочетание клавиш CTRL+M)
В окне Добавление и удаление оснасток, в поле Доступные оснастки ищем Сертификаты и жмем кнопку Добавить.
Тут в диспетчере сертификатов, вы можете добавить оснастки для:
- моей учетной записи пользователя
- учетной записи службы
- учетной записи компьютера
Я обычно добавляю для учетной записи пользователя
и компьютера
У компьютера есть еще дополнительные настройки, это либо локальный компьютер либо удаленный (в сети), выбираем текущий и жмем готово.
В итоге у меня получилось вот такая картина.
Сразу сохраним созданную оснастку, чтобы в следующий раз не делать эти шаги. Идем в меню Файл > Сохранить как.
Задаем место сохранения и все.
Как вы видите консоль хранилище сертификатов, я в своем примере вам показываю на Windows 10 Redstone, уверяю вас интерфейс окна везде одинаковый. Как я ранее писал тут две области Сертификаты — текущий пользователь и Сертификаты (локальный компьютер)
Сертификаты — текущий пользователь
Данная область содержит вот такие папки:
- Личное > сюда попадают личные сертификаты (открытые или закрытые ключи), которые вы устанавливаете с различных рутокенов или etoken
- Доверительные корневые центры сертификации > это сертификаты центров сертификации, доверяя им вы автоматически доверяете всем выпущенным ими сертификатам, нужны для автоматической проверки большинства сертификатов в мире. Данный список используется при цепочках построения доверительных отношений между CA, обновляется он в месте с обновлениями Windows.
- Доверительные отношения в предприятии
- Промежуточные центры сертификации
- Объект пользователя Active Directory
- Доверительные издатели
- Сертификаты, к которым нет доверия
- Сторонние корневые центры сертификации
- Доверенные лица
- Поставщики сертификатов проверки подлинности клиентов
- Local NonRemovable Certificates
- Доверительные корневые сертификаты смарт-карты
В папке личное, по умолчанию сертификатов нет, если вы только их не установили. Установка может быть как с токена или путем запроса или импорта сертификата.
В мастере импортирования вы жмете далее.
далее у вас должен быть сертификат в формате:
- PKCS # 12 (.PFX, .P12)
- Стандарт Cryprograhic Message Syntax — сертификаты PKCS #7 (.p7b)
- Хранилище сериализованных сертификатов (.SST)
На вкладке доверенные центры сертификации, вы увидите внушительный список корневых сертификатов крупнейших издателей, благодаря им ваш браузер доверяет большинству сертификатов на сайтах, так как если вы доверяете корневому, значит и всем кому она выдал.
Двойным щелчком вы можете посмотреть состав сертификата.
Из действий вы их можете только экспортировать, чтобы потом переустановить на другом компьютере.
Экспорт идет в самые распространенные форматы.
Еще интересным будет список сертификатов, которые уже отозвали или они просочились.
Список пунктов у сертификатов для компьютера, слегка отличается и имеет вот такие дополнительные пункты:
- AAD Token Issue
- Windows Live ID Token
- Доверенные устройства
- Homegroup Machine Certificates
Думаю у вас теперь не встанет вопрос, где хранятся сертификаты в windows и вы легко сможете найти и корневые сертификаты и открытые ключи.
Данный материал является переводом оригинальной статьи «ATA Learning : Michael Soule : Manage Certs with Windows Certificate Manager and PowerShell».
Работа с сертификатами обычно является одной из тех дополнительных задач, которые вынужден брать на себя системный администратор Windows. Диспетчер Сертификатов Windows (Windows Certificate Manager) — это один из основных инструментов, который позволяет выполнять эту работу.
В этой статье мы рассмотрим работу с сертификатами применительно к операционной системе Windows. Если же вы хотите узнать больше о том, как работают сертификаты в целом, ознакомьтесь с сопутствующей статьей «Your Guide to X509 Certificates».
Понимание хранилищ сертификатов
В диспетчере сертификатов Windows все сертификаты находятся в логических хранилищах, называемых «хранилищами сертификатов». Хранилища сертификатов – это «корзины», в которых Windows хранит все сертификаты, которые в настоящее время установлены, и сертификат может находиться более чем в одном хранилище.
К сожалению, хранилища сертификатов — не самая интуитивно понятная концепция для работы. О том, как различать эти хранилища и как с ними работать, вы прочитаете ниже.
Каждое хранилище находится в Реестре Windows и в файловой системе. При работе с сертификатом в хранилище вы взаимодействуете с логическим хранилищем, не изменяя напрямую реестр или файловую систему. Этот более простой способ позволяет вам работать с одним объектом, в то время как Windows заботится о том, как представить этот объект на диске.
Иногда можно встретить хранилища сертификатов, называемые физическими или логическими хранилищами. Физические хранилища ссылаются на фактическую файловую систему или место в реестре, где хранятся разделы реестра и / или файл(ы). Логические хранилища — это динамические ссылки, которые ссылаются на одно или несколько физических хранилищ. С логическими хранилищами намного проще работать, чем с физическими хранилищами для наиболее распространенных случаев использования.
Windows хранит сертификаты в двух разных областях — в контексте пользователя и компьютера. Сертификат помещается в один из этих двух контекстов в зависимости от того, должен ли сертификат использоваться одним пользователем, несколькими пользователями или самим компьютером. В остальной части этой статьи сертификат в контексте пользователя и компьютера будет неофициально называться сертификатами пользователей и сертификатами компьютеров.
Сертификаты пользователей
Если вы хотите, чтобы сертификат использовался одним пользователем, то идеальным вариантом будет хранилище пользовательских сертификатов внутри Диспетчера сертификатов Windows. Это общий вариант использования процессов аутентификации на основе сертификатов, таких как проводной IEEE 802.1x.
Сертификаты пользователей находятся в профиле текущего пользователя и логически отображаются только в контексте этого пользователя. Сертификаты пользователей «сопоставлены» и уникальны для каждого пользователя даже в одних и тех же системах.
Компьютерные сертификаты
Если сертификат будет использоваться всеми пользователями компьютера или каким-либо системным процессом, его следует поместить в хранилище в контексте компьютера. Например, если сертификат будет использоваться на веб-сервере для шифрования связи для всех клиентов, размещение сертификата в контексте компьютера будет подходящим вариантом.
Вы увидите, что хранилище сертификатов компьютера логически сопоставлено для всех пользовательских контекстов. Это позволяет всем пользователям использовать сертификаты в хранилище сертификатов компьютера в зависимости от разрешений, настроенных для закрытого ключа.
Сертификаты компьютера находятся в кусте реестра локального компьютера и в подкаталогах ProgramData. Сертификаты пользователя находятся в кусте реестра текущего пользователя и в подкаталогах AppData. Ниже вы можете увидеть, где каждый тип хранилища находится в реестре и файловой системе.
Контекст | Путь реестра | Объяснение |
---|---|---|
User | HKEY_CURRENT_USER SOFTWAREMicrosoftSystemCertificates |
Физическое хранилище для пользовательских открытых ключей |
User | HKEY_CURRENT_USER SOFTWAREPoliciesMicrosoftSystemCertificates |
Физическое хранилище для пользовательских открытых ключей, установленных объектами групповой политики Active Directory (AD) (GPO) |
Computer | HKEY_LOCAL_MACHINE SOFTWAREMicrosoftSystemCertificates |
Физическое хранилище общедоступных ключей для всей машины |
Computer | HKEY_LOCAL_MACHINE SOFTWAREMicrosoftCryptographyServices |
Физическое хранилище ключей, связанных с определенной службой |
Computer | HKEY_LOCAL_MACHINE SOFTWAREPoliciesMicrosoftSystemCertificates |
Физическое хранилище открытых ключей для всей машины, установленных объектами групповой политики. |
Computer | HKEY_LOCAL_MACHINE SOFTWAREMicrosoftEnterpriseCertificates |
Физическое хранилище общедоступных ключей, установленных корпоративными контейнерами PKI в домене AD |
Контекст | Расположение файла | Объяснение |
---|---|---|
User | $env:APPDATAMicrosoftSystemCertificates | Физическое хранилище для пользовательских открытых ключей и указателей на закрытые ключи |
User | $env:APPDATAMicrosoftCrypto | Физическое хранилище для контейнеров закрытых ключей для конкретных пользователей |
Computer | $env:ProgramDataMicrosoftCrypto | Физическое хранилище для контейнеров закрытых ключей для всей машины |
Предварительные требования
В оставшейся части этой статьи вы найдете несколько примеров, демонстрирующих взаимодействие с хранилищами сертификатов Windows. Чтобы воспроизвести эти примеры, убедитесь, что выполняются следующие требования:
- Windows Vista, Windows Server 2008 или более новая операционная система. В показанных примерах используется Windows 10 Корпоративная версии 1903.
- Знакомство с PowerShell. Хотя это и не обязательно, этот язык будет использоваться для ссылки на сертификаты, где это необходимо. Все показанные примеры были созданы с помощью Windows PowerShell 5.1.
- Вам не потребуется устанавливать какие-либо специальные сертификаты, но использование самозаверяющего сертификата полезно.
Управление сертификатами в Windows
В Windows есть три основных способа управления сертификатами:
- Оснастка консоли управления Microsoft (MMC) сертификатов (certmgr.msc)
- PowerShell
- Инструмент командной строки certutil
В этой статье вы узнаете, как управлять сертификатами с помощью оснастки Certificates MMC и PowerShell. Если вы хотите узнать больше о том, как использовать certutil, ознакомьтесь с документацией Microsoft.
PowerShell против диспетчера сертификатов Windows
Поскольку в Windows можно управлять сертификатами несколькими способами, встаёт вопрос выбора, что лучше использовать — GUI (MMC) или командную строку с PowerShell.
Во-первых, рассмотрим жизненный цикл сертификата. Если вы собираетесь установить или удалить один сертификат только один раз, рассмотрите возможность использования MMC. Но если вы управляете несколькими сертификатами или выполняете одну и ту же задачу снова и снова, использование командной строки может оказаться правильным решением. Даже если вы не умеете писать сценарии PowerShell, вам стоит этому научиться, если у вас есть много разных сертификатов, которыми нужно управлять.
Давайте сначала посмотрим, как обнаружить сертификаты, установленные в Windows, с помощью диспетчера сертификатов и PowerShell.
Использование диспетчера сертификатов Windows (certmgr.msc)
Чтобы просмотреть сертификаты с помощью MMC, откройте Диспетчер сертификатов: откройте меню «Пуск» и введите certmgr.msc. Это вызовет Windows Certificates MMC. Это начальное представление предоставит обзор всех логических хранилищ, отображаемых в левом окне.
На снимке экрана ниже видно, что выбрано логическое хранилище доверенных корневых центров сертификации
Просмотр физических хранилищ
По умолчанию Диспетчер сертификатов Windows не отображает физические хранилища. Чтобы показать их, в верхнем меню оснастки выбирайте «View» > «Options«. Затем вы увидите варианты отображения физических хранилищ сертификатов. Включение этого параметра упрощает определение конкретных путей в Windows.
Теперь вы можете видеть, что дополнительные контейнеры показаны в примере логического хранилища доверенных корневых центров сертификации, показанном ранее. Сертификаты по-прежнему сгруппированы относительно их логических хранилищ, но теперь вы можете увидеть физическое хранилище «Реестр».
Проверка атрибутов в диспетчере сертификатов Windows
Есть много атрибутов сертификата, которые вы можете увидеть при просмотре их с помощью MMC. Например, вы, вероятно, захотите выбрать определенные сертификаты по их атрибутам. Самый простой способ сделать это — указать Serial Number сертификата или значение Thumbprint. Если сертификат был подписан центром сертификации (CA), при выдаче он будет иметь серийный номер. Thumbprint вычисляется каждый раз при просмотре сертификата.
Вы можете увидеть некоторые атрибуты сертификата, открыв его в MMC, как показано ниже.
Следует отметить одну важную особенность — встроенные закрытые ключи. Сертификаты в Windows также могут иметь соответствующий закрытый ключ. Эти закрытые ключи хранятся в соответствующих физических хранилищах в виде зашифрованных файлов.
Чтобы быстро отличать сертификаты с соответствующим закрытым ключом и без него, посмотрите на значок сертификата. В Диспетчере сертификатов Windows, если значок просто выглядит как лист бумаги с лентой, соответствующий закрытый ключ отсутствует. Если у сертификата есть закрытый ключ, вы увидите ключ на значке MMC, и ключ в нижней части вкладки «Общие» при открытии сертификата
Использование PowerShell по физическому хранилищу
Как и в случае с MMC, вы можете просматривать сертификаты и управлять ими с помощью PowerShell. Давайте сначала проверим сертификаты в их физических хранилищах (реестр и файловая система).
Используя PowerShell командлет Get-ChildItem, вы можете перечислить все ключи и значения внутри родительского пути в реестре. Приведенная ниже команда перечислит все сертификаты вошедшего в систему пользователя в логическом хранилище промежуточных центров сертификации.
Get-ChildItem -Path 'HKCU:SoftwareMicrosoftSystemCertificatesCACertificates'
Каждая запись в кусте реестра, который вы видите, будет соответствовать отпечатку сертификата доверенного центра сертификации и его сертификату в соответствующем свойстве. Вы можете увидеть пример вывода ниже.
Другое распространенное хранилище — это Personal store. Ваши сертификаты для этого хранилища находятся в файловой системе, а не в реестре. В следующих командах мы покажем эти различные физические пути и их цели.
Каждый файл в каталоге, возвращенный приведенной ниже командой, соответствует сертификату, установленному в личном хранилище текущего пользователя.
Get-ChildItem -Path $env:APPDATAMicrosoftSystemCertificatesMyCertificates
Каждый файл, возвращаемый в приведенной ниже команде, является ссылкой на объект для закрытого ключа, созданный поставщиком хранилища ключей (KSP). Имя файла соответствует идентификатору ключа субъекта сертификата. К каждому устанавливаемому вами закрытому ключу будет добавлен соответствующий файл.
Get-ChildItem -Path $env:APPDATAMicrosoftSystemCertificatesMyKeys
Каждый файл в каталоге, возвращаемый следующей командой, является уникальным контейнером для зашифрованного закрытого ключа, созданного KSP. Нет прямой связи между именем файла и сертификатом, но файл является целью указателя в предыдущей команде.
Get-ChildItem -Path $env:APPDATAMicrosoftCryptoKeys
Использование PowerShell по логическому хранилищу
Поскольку работа с сертификатами на их физических путях встречается редко, в остальных примерах вы будете работать с логическими хранилищами.
PowerShell может получить доступ к логическим хранилищам Windows с помощью PSDrive-объекта «Cert:«, который сопоставляет сертификаты с физическими хранилищами так же, как это делает MMC.
К сожалению, MMC и «Cert:» не маркируют логические хранилища одинаково. Ниже вы можете увидеть сравнительную таблицу общих хранилищ и их названий как в MMC, так и в «Cert:» PSDrive.
Cert: | Certificates MMC |
---|---|
My | Personal |
Remote Desktop | Remote Desktop |
Root | Trusted Root Certification Authorities |
CA | Intermediate Certification Authorities |
AuthRoot | Third-Party Root Certification Authorities |
TrustedPublisher | Trusted Publishers |
Trust | Enterprise Trust |
UserDS | Active Directory User Object |
Выбор сертификатов
Когда вы работаете с сертификатами, вам понадобится способ фильтрации и выбора сертификатов для выполнения определенных операций. В большинстве случаев вы будете фильтровать и выбирать сертификаты на основе значения определенного расширения.
Для следующих примеров вам нужно начать с перечисления всех установленных сертификатов в хранилище корневого ЦС.
Get-ChildItem -Path 'Cert:CurrentUserRoot'
Возвращенные объекты будут объектами сертификатов, которые вы можете использовать в следующих примерах.
Общие расширения уже доступны как свойства объектов сертификата. В приведенном ниже примере вы используете Get-Member для вывода списка всех свойств возвращаемых объектов.
Get-ChildItem -Path 'Cert:CurrentUserRoot' | Get-Member -MemberType Properties
Как видим, некоторые из этих расширений, например «Issuer», помогают найти сертификат, который вы ищете. Расширения предоставляют информацию о сертификате, например, кому он выдан, для чего его можно использовать и любые ограничения на него.
В более сложных случаях использования вам может понадобиться найти сертификаты других расширений, таких как используемый шаблон сертификата. Сложность в том, что значения этих расширений возвращаются как массив целых чисел. Эти целые числа соответствуют содержимому в кодировке ASN.1.
Покажем пример взаимодействия с свойствами типа ScriptProperty. В приведенной ниже команде вы извлекаете Key Usages.
((Get-ChildItem -Path 'Cert:CurrentUserRoot' | Select -First 1).Extensions | Where-Object {$_.Oid.FriendlyName -eq 'Key Usage'}).format($true)
Новая часть, которую мы вводим в приведенной выше команде, — это метод форматирования, который выполняет декодирование ASN.1. Вы передаете ему логическое значение (например, $true), чтобы определить, хотим ли мы, чтобы возвращаемый объект был однострочным или многострочным.
Попробуем использовать значение Thumbprint из сертификата в приведенной ниже команде. Значение Thumbprint устанавливается как переменная PowerShell и используется для выбора конкретного сертификата в приведенных ниже командах.
$thumb = "cdd4eeae6000ac7f40c3802c171e30148030c072"
Get-ChildItem -Path 'Cert:CurrentUserRoot' | Where-Object {$_.Thumbprint -eq $thumb}
Создание самозаверяющих (self-signed) сертификатов с помощью PowerShell
PowerShell может создавать самозаверяющие (self-signed) сертификаты с помощью командлета New-SelfSignedCertificate. Самозаверяющие сертификаты полезны для тестирования, поскольку они позволяют генерировать пару открытого и закрытого ключей без использования центра сертификации.
Теперь давайте создадим самозаверяющий сертификат в хранилищах текущего пользователя и локального компьютера, чтобы использовать его в примерах для следующих шагов.
В приведенном ниже примере PowerShell создает пару открытого и закрытого ключей, самозаверяющий сертификат и устанавливает их все в соответствующие хранилища сертификатов.
New-SelfSignedCertificate -Subject 'User-Test' -CertStoreLocation 'Cert:CurrentUserMy'
New-SelfSignedCertificate -Subject 'Computer-Test' -CertStoreLocation 'Cert:LocalMachineMy'
Использование самозаверяющих сертификатов для продуктивных сервисов не рекомендуется, поскольку не существует всех механизмов, основанных на доверии.
Импорт и экспорт сертификатов в MMC
Криптография с открытым ключом основана на широкой доступности открытого ключа. Учитывая это, вам нужны стандартные способы эффективного обмена сертификатами. Не менее важна безопасность ваших личных ключей. Хранение закрытых ключей на недоступных носителях или с материалами для аварийного восстановления — обычная практика для определенных закрытых ключей.
Оба они требуют способов хранения этих криптографических объектов в стандартных форматах. Экспорт предоставляет функции для сохранения этих объектов и обеспечения использования широко распространенных стандартных форматов файлов. Импорт позволяет вам переносить криптографические объекты в операционные системы Windows.
Экспорт сертификатов из MMC относительно прост. Чтобы экспортировать сертификат без закрытого ключа, щелкните сертификат в MMC, выберите меню «Все задачи», а затем «Экспорт».
Во время экспорта вам будет предложено указать формат файла, как показано ниже. Наиболее распространены варианты кодирования — DER или Base-64
Экспорт закрытых ключей
Чтобы экспортировать сертификат с соответствующим закрытым ключом, вы должны соответствовать двум критериям:
- Вошедшая в систему учетная запись должна иметь разрешение на закрытый ключ (только для сертификатов компьютеров);
- Закрытый ключ должен быть помечен как экспортируемый.
Чтобы проверить разрешения для закрытых ключей локального компьютера, вы можете выбрать сертификат с закрытым ключом, выбрать «Все задачи» и «Управление закрытыми ключами» в MMC «Сертификаты». В открывшемся диалоговом окне отображаются записи управления доступом для закрытых ключей.
Когда выше обозначенные условия выполнены, вы можете выбрать сертификат, щелкнуть «Все задачи», а затем «Экспорт», как если бы вы использовали сертификат только с открытым ключом. При экспорте теперь у вас должна присутствовать возможность выбора экспорта закрытого ключа («Yes, export the private key»), как показано ниже.
Когда вы экспортируете закрытый ключ в Windows, вы можете сохранить файл только как PFX. Этот и другие типы файлов и форматы кодирования подробно описаны в этом посте.
Для остальных параметров, отображаемых в мастере экспорта, вы можете использовать значения по умолчанию. В таблице ниже приводится краткое изложение каждого из них.
Настройка | Описание |
---|---|
Including all certificates in the certification path if possible | Помогает с переносимостью эмитентов сертификатов и включает все соответствующие открытые ключи в PFX. |
Delete the private key if the export is successful | Удаляет закрытый ключ из файла и имеет несколько распространенных вариантов использования, но одним из примеров является проверка доступа к закрытым ключам. |
Export all extended properties | Будет включать любые расширения в текущем сертификате, они относятся к сертификатам [конкретные настройки] для интерфейсов Windows. |
Enable certificate privacy | Обычно в экспортируемом PFX-файле шифруется только закрытый ключ, этот параметр шифрует все содержимое PFX-файла. |
Group or user names | Вы можете использовать участника безопасности группы или пользователя из Active Directory для шифрования содержимого файла PFX, но пароль является наиболее переносимым вариантом для устаревших систем или компьютеров, не присоединенных к тому же домену. |
Импорт сертификатов
Функция импорта одинакова для всех поддерживаемых типов файлов сертификатов. Единственная разница в том, что если файл содержит закрытый ключ, вы можете «Отметить этот ключ как экспортируемый», о чем вы узнаете подробнее ниже. Windows будет использовать мастер импорта сертификатов.
При использовании мастера импорта сертификатов для PFX вам потребуется указать пароль, используемый для шифрования закрытого ключа. Вот еще один обзор вариантов импорта.
Настройка | Описание |
---|---|
Enable strong private key protection | Требуется пароль для каждого доступа к закрытому ключу. Будьте осторожны с новыми функциями, поскольку они не будут поддерживаться во всех программах. |
Mark this key as exportable | Вы должны стараться избегать использования этого параметра в любой конечной системе, закрытые ключи следует рассматривать так же, как и хранение паролей. |
Protect private key using [virtualization-based security] | Этот параметр обеспечивает дополнительные функции безопасности для защиты закрытых ключей от сложных атак вредоносного ПО. |
Include all extended properties | Относится к тем же настройкам Windows, что и при экспорте. |
Сертификаты для подписи кода PowerShell — хороший вариант использования надежной защиты закрытого ключа.
С автоматическим размещением сертификатов следует проявлять осторожность. Скорее всего, вы получите наилучшие результаты, выбрав хранилище сертификатов вручную.
Импорт и экспорт сертификатов в PowerShell
Теперь с помощью PowerShell экспортируйте один из самозаверяющих сертификатов, которые вы создали ранее. В этом примере вы выбираете сертификат в личном логическом хранилище CurrentUser, который был самозаверяющим.
$certificate = Get-Item (Get-ChildItem -Path 'Cert:CurrentUserMy' | Where-Object {$_.Subject -eq $_.Issuer}).PSPath
Теперь, когда вы выбрали сертификат, вы можете использовать команду Export-Certificate, чтобы сохранить файл в кодировке DER, используя команду ниже.
Export-Certificate -FilePath $env:USERPROFILEDesktopcertificate.cer -Cert $certificate
Теперь давайте посмотрим на экспорт закрытого ключа. Ниже вы проверяете, что у выбранного сертификата есть закрытый ключ. Если он не возвращает True, то команда Get-Item, скорее всего, выбрала неправильный сертификат.
$certificate.HasPrivateKey
Ниже вы установите пароль, который будет использоваться для шифрования закрытого ключа. Затем экспортируйте выбранный сертификат в файл PFX и используйте пароль, который вы ввели ранее, чтобы зашифровать файл.
$pfxPassword = "ComplexPassword!" | ConvertTo-SecureString -AsPlainText -Force
Export-PfxCertificate -FilePath $env:USERPROFILEDesktopcertificate.pfx -Password $pfxPassword -Cert $certificate
В случае, если необходимо выполнить импорт, как и при экспорте, есть две команды. Одна команда для импорта сертификатов и одна для импорта файлов PFX.
Ниже команда Import-Certificate импортирует файл в формате DER, который вы экспортировали ранее, в личное хранилище текущего пользователя.
Import-Certificate -FilePath $env:USERPROFILEDesktopcertificate.cer -CertStoreLocation 'Cert:CurrentUserMy'
Допустим, вы тоже хотите установить закрытый ключ этого сертификата.
$pfxPassword = "ComplexPassword!" | ConvertTo-SecureString -AsPlainText -Force
Import-PfxCertificate -Exportable -Password $pfxPassword -CertStoreLocation 'Cert:CurrentUserMy' -FilePath $env:USERPROFILEDesktopcertificate.pfx
Имейте в виду, что пароль должен быть защищенной строкой. Кроме того, если вы импортируете в хранилище локального компьютера (например, «Cert:LocalMachine«), вам нужно будет запустить команду из командной строки администратора с повышенными привилегиями.
В приведенном выше примере вы также используете параметр -Exportable с командой, отмечая закрытый ключ как экспортируемый в будущем. По умолчанию (без указания этого параметра) экспорт не используется. Экспортируемые закрытые ключи – отельный аспект информационной безопасности, заслуживающий отдельного внимания.
Удаление сертификатов с помощью PowerShell
При удалении сертификатов помните, что понятие «Корзина Windows» в этом случае отсутствует. Как только вы удалите сертификат, он исчезнет! Это означает, что очень важно подтвердить, что вы удаляете правильный сертификат, путем проверки уникального идентификатора, такого как серийный номер или значение расширения Thumbprint.
Как и выше, в приведенной ниже команде мы выбираем самозаверяющий сертификат из личного хранилища текущего пользователя.
$certificate = Get-Item (Get-ChildItem -Path 'Cert:CurrentUserMy' | Where-Object {$_.Subject -eq $_.Issuer}).PSPath
Ниже вы можете увидеть свойства отпечатка, серийного номера и темы для выбранного сертификата, чтобы убедиться, что это именно тот сертификат, который вы собираетесь выбрать.
$certificate.Thumbprint
$certificate.SerialNumber
$certificate.Subject
Убедитесь, что вы выбрали правильный сертификат, который собираетесь удалить.
Приведенная ниже команда удаляет все выбранные объекты сертификата, используйте с осторожностью! Передав объект $certificate через конвейер в командлет Remove-Item в приведенной ниже команде, вы удалите все содержимое сертификата без каких-либо запросов на проверку.
$certificate | Remove-Item
Резюме
На протяжении всей этой статьи вы работали с сертификатами в Windows, изучая, как получить к ним доступ, и некоторые инструменты, которые можно использовать при работе с ними. По этой теме можно изучить гораздо больше, в том числе о том, как связать установленные сертификаты с конкретными службами или даже о том, как реализовать инфраструктуру закрытого открытого ключа (PKI) путем развертывания собственных центров сертификации (CA).
Многие задаются вопросом: «Как подписывать ЭЦП без флешки?». В этой статье мы расскажем, что нужно сделать, если вы хотите подписывать документы электронной подписью просто и быстро без установки физического носителя в порт USB. Носитель понадобится только один раз — скопировать ЭЦП с флешки на компьютер. Как это правильно сделать, расскажем в нашей инструкции. А если не получится, обращайтесь к нашим специалистам. Мы будем рады помочь!
Обращаем внимание наших читателей, что скопировать ЭЦП, выпущенную Федеральной налоговой службой, способами, описанными ниже не получится. В настоящее время в целях безопасности контейнер закрытого ключа при выпуске ЭЦП защищают от копирования и экспорта. Поэтому стандартными способами скопировать ЭЦП не удастся. Но наши специалисты помогут Вам скопировать ЭЦП, защищенную от копирования удалённо.
Как скопировать ЭЦП на компьютер с помощью КриптоПро CSP
- Вставьте носитель с ЭЦП в порт USB. Если подключенное устройство не определяется системой, попробуйте подключить в другой порт или установить драйвера для носителя.
- Откройте приложение КриптоПро CSP.
Как скачать и установить КриптоПро CSP на Windows?
Наша инструкция на тот случай, если у вас приложение не установлено.
- Перейдите во вкладку «Сервис».
- В разделе «Контейнер закрытого ключа» нажмите на кнопку «Скопировать».
- Появится новое окно «Копирование контейнера закрытого ключа». Нажмите на кнопку «Обзор».
- Выберите контейнер, который размещён на флешке с ЭЦП. В нашем случае надо выбрать считыватель «Rutoken Lite». Нажмите кнопку «ОК».
- Придумайте название контейнеру закрытого ключа или оставьте название по умолчанию и нажмите кнопку «Готово».
- После этого появится новое окно «Выбор ключевого носителя КриптоПро CSP». Выберите размещение контейнера в Реестре. Нажмите кнопку «ОК». В этом случае в качестве хранилища ключей будет использован реестр Windows.
- Рекомендуем ввести пароль для нового контейнера с электронной цифровой подписью, чтобы избежать использования ЭЦП третьими лицами. После того как написали и запомнили пароль, нажмите «ОК».
- После этого приложение КриптоПро CSP сообщит, что контейнер с флешки успешно скопирован в выбранное вами расположение — локальный реестр. Нажмите кнопку «ОК».
- Вернитесь в окно «КриптоПро CSP» и перейдите в раздел «Сертификаты в контейнере закрытого ключа». Нажмите кнопку «Просмотреть сертификаты в контейнере…».
- Появится соответствующее окно. Нажмите кнопку «Обзор».
- Найдите только что скопированный контейнер по считывателю «Реестр» и имени, которое вы ранее присвоили контейнеру.
- Нажмите на контейнер и подтвердите выбор, нажав кнопку «ОК».
- После этого откроется окно с возможностью просмотра информации о сертификате (субъекте, поставщике и сроке действия). Нажмите кнопку «Установить».
- Если всё прошло без ошибок, появится новое окно. Программа сообщит, что «Сертификат был установлен в хранилище «Личное» текущего пользователя. Нажмите кнопку «ОК».
Как скопировать ЭЦП на компьютер с помощью инструментов КриптоПро
Данный способ является универсальным. Скопировать ЭЦП на компьютер таким образом можно и на Windows и на MacOS (при условии, что используется актуальная версия программы КриптоПро).
- Запустите приложение Инструменты КриптоПро.
- Перейдите в раздел «Контейнеры».
- Выберите считыватель (флешку, на которую записана ЭЦП) и нажмите кнопку «Скопировать контейнер».
- В открывшемся окне выберите «Реестр» и нажмите «ОК».
- Выберите только что созданный контейнер закрытого ключа, ориентируясь на считыватель «Registry», и нажмите «Установить сертификат».
После этого программа сообщит, что сертификат был успешно установлен.
Теперь можете извлечь носитель с ЭЦП из порта USB и проверить, как работает ЭЦП без флешки.
Удалось ли скопировать ЭЦП с флешки на компьютер?
Расскажите в комментариях 😉
Участие в торгах, сдача отчетности, маркировка товаров невозможны без электронной подписи (ЭП или ЭЦП), которая заменяет реальную подпись человека при дистанционной подготовке документов.
Если вы еще не получили электронную подпись, оформите ЭП в удостоверяющем центре, который прошел аккредитацию. В УЦ Контура есть подписи для сотрудников и руководителей, торгов, отчетности и личных дел.
Заказать
Чаще всего владельцы электронной подписи сталкиваются с сертификатом, когда подписывают контракт на торговой площадке или отчет для налоговой. Тогда система, где подписывается документ, предлагает «Выбрать сертификат», которым будет подписан документ.
Сертификат — это электронное свидетельство, которое подтверждает, кому ЭП принадлежит. В нем содержатся сведения:
- Срок действия;
- Статус: действителен или нет;
- Кому он выдан и каким удостоверяющим центром (УЦ);
- Наличие закрытого ключа;
- Значение открытого ключа;
- Уникальный номер сертификата.
Сертификат получают в удостоверяющем центре. Для этого нужно обратиться в УЦ, сообщить свои данные, показать паспорт и подтвердить личность. Сотрудники УЦ сообщат, как пользователю сгенерировать ключи электронной подписи, а потом выдадут на них сертификат — он подтвердит, что ключи принадлежат вам и позволит использовать их для подписания документов. Вы сможете записать его на токен (защищенный носитель, похожий на флешку) или сохранить на компьютер.
Файл сертификата имеет расширение.cer. Иконка файла — выглядит как конверт с ключом и печатью.
Как выглядит файл с сертификатом ЭП
Сертификат, открытый и закрытый ключи хранятся вместе на внешнем носителе или в компьютере. Вместе эти три компонента обеспечивают работу ЭП. Сертификат без ключей не позволит подписать электронный документ.
Повреждение или удаление файлов приведет к необходимости перевыпуска ЭП.
Тариф «Марафон» от Удостоверяющего центра Контура позволяет перевыпускать сертификат столько, сколько нужно без доплат. Также тариф избавляет от ежегодной подготовки документов для новой ЭП
Заказать
При первом получении сертификата и ключей ЭП пользователь выбирает, на каком носителе будет их хранить. Это возможно, если правила системы или УЦ, где он получает сертификат, разрешает выбрать разные носители.
Всего есть четыре возможных носителя для сертификата:
- Токен — специальный защищенный носитель, который внешне похож на флешку. Содержимое носителя защищено пин-кодом, поэтому просто так файл с закрытым ключом с токена не скопировать. Купить такой носитель можно в УЦ или у производителя токенов.
- Флешка — обычный носитель, на нем контейнер с сертификатом и ключами будет храниться, как папка с файлами.
- Обычная папка на компьютере — или ее также называют «директория».
- Реестр компьютера — база с информацией о настройках и параметрах компьютера.
В дальнейшем пользователь может сделать копию ключа и сертификата и записать их на второй носитель. Это возможно, если в сертификате нет запрета на копирование. Например, не удастся скопировать сертификат УЦ ФНС или сертификат для ЕГАИС Алкоголь, так как они защищены от копирования. При этом другие квалифицированные сертификаты — например, подпись для торгов или налоговой отчетности — можно дублировать и хранить на нескольких носителях.
Подробнее разберем хранение сертификата на компьютере: в папке (директории) и в реестре.
Папка в операционной системе
При сохранении сертификата на компьютере программа КриптоПро CSP сама определяет конкретную папку, куда запишет ключи и сертификат. Выбрать другой путь сохранения файла пользователю не удастся.
В этом случае файл закрытого ключа проще найти и скопировать — это будет обычная папка с файлами. Путь к папке будет таким:
- в Windows — %localappdata%/crypto prо;
- в Linux, Unix, MacOS — /var/opt/cprocsp/keys/{username}, где username — это название учетной записи.
Реестр
Реестр компьютера — это список настроек и параметров ПК. Увидеть реестр компьютера можно, набрав в строке поиска на панели «Пуск» — «regedit». Поиск позволит открыть служебную программу — редактора реестра.
Путь к сертификату через реестр
Найти сертификат на ПК можно несколькими путями:
- с помощью программы КриптоПро CSP;
- программы CertMgr;
- браузера;
- консоли MMC.
Все четыре способа позволят открыть сертификат, выгрузить его в виде файла, просмотреть сведения об ЭП, а при необходимости и удалить сертификат. Когда не нужно удалять сертификат.
В КриптоПро CSP и браузере также можно скопировать сертификат вместе с закрытым ключом, в программе CertMgr и консоли ММС — только файл сертификата. Для такого копирования сертификата и его ключа рекомендуем использовать сервис копирования сертификатов на Установочном диске, где пользователю не требуется детально погружаться в механизмы работы ЭП.
Поиск сертификата через КриптоПро CSP
КриптоПро CSP — это программа для работы с электронной подписью. Она есть у большинства пользователей, работающих с квалифицированной ЭП.
Чтобы найти сертификат через КриптоПро CSP на ПК:
- Открываем программу: Пуск → Все программы — КриптоПро CSP.
- В программе переходим по вкладкам: Сертификаты пользователя → Личное → Сертификаты.
- Выбираем нужный сертификат и делаем с ним то, что планировали: смотрим информацию в сертификате, экспортируем его или удаляем.
Поиск сертификата через КриптоПро CSP
После открытия сертификата через КриптоПро CSP, вкладка с ним появится в меню «Пуск». В следующий раз сертификат можно будет открыть быстрее — сразу из этого меню.
При удалении сертификата через КриптоПро CSP, программа сотрет с компьютера все компоненты ЭП вместе с корневым сертификатом УЦ. После этого восстановить их невозможно. Что такое корневой сертификат.
Поиск сертификата через CertMgr
CertMgr — это программа для работы с сертификатами на ПК. Также через программу можно посмотреть справочную информацию о консоли управления Microsoft Management Console (MMC) и о том, как настроить удаленное подключение к компьютеру.
Поиск сертификатов на ПК с помощью CertMgr аналогичен поиску через КриптоПро CSP:
- Открываем меню «Пуск» и в поисковой строке пишем название диспетчера сертификатов — «CertMgr», запускаем программу CertMgr.
- В программе — выбираем папку «Личное», тип объекта — «Сертификаты». Диспетчер выдаст перечень сертификатов, которые установлены на компьютер.
- Выбираем из списка нужный сертификат и открываем его.
Поиск сертификата через CertMgr
Поиск сертификата через Internet Explorer
Internet Explorer — один из наиболее популярных браузеров для работы с сертификатами ЭП. Долгое время только его можно было использовать для сертификатов. Другие браузеры начали поддерживать работу сертификатов позже — в 2015-2017 годах. Но до сих пор использовать сертификат на некоторых ресурсах можно только в Internet Explorer.
Как найти сертификат с помощью браузера Internet Explorer:
- Открываем браузер и нажимаем: Настройки → Свойства браузера → Содержание → Сертификаты
- Появится окно с сертификатами, установленными на компьютер. Можно будет просмотреть информацию о них.
Поиск сертификата через Internet Explorer
Полностью удалить сертификат из браузера Internet Explorer невозможно — только открытый ключ. Поэтому если сертификат удалили из браузера по ошибке, то его можно восстановить с помощью программы КриптоПро CSP.
В браузере Chrome и основанных на нем браузерах (Яндекс.Браузер, Opera) сертификаты также можно найти:
Настройки браузера → Приватность и защита → Безопасность и защита → Сертификаты → Просмотр сертификатов.
В браузере Firefox найти сертификат не получится. Этот браузер не работает с российскими сертификатами и отечественными криптографическими алгоритмами.
Поиск сертификата через консоль управления
Консоль MMC (Microsoft Management Console) — это место для хранения инструментов и программ, которые предназначены для обслуживания компьютера. Эти средства называются оснастками и служат для управления оборудованием, программным обеспечением и сетевыми компонентами Windows.
Что именно находится в консоли, выбирает пользователь. Перед тем, как пользоваться инструментами консоли, сначала их нужно туда добавить, то есть «Добавить оснастку».
Рассказываем, как запустить консоль и добавить оснастку:
- Открываем меню «Пуск» и в поисковой строке указываем — «MMC».
- В результатах поиска выбираем консоль управления Windows MMC и запускаем ее.
- Нажимаем на вкладку «Файл» и выбираем функцию «Добавить или удалить оснастку». Система выдаст список доступных оснасток.
- Выбираем строку «Сертификаты» в перечне оснасток и нажимаем кнопку «Добавить».
- Указываем, для какой учетной записи выбираем оснастку — «Моей учетной записи пользователя» и нажимаем «Готово». После этого список сертификатов перейдет из перечня доступных оснасток в окне слева в перечень выбранных оснасток в окне справа.
- Подтверждаем выбор: в окне выбранных оснасток выбираем инструмент «Сертификаты» и нажимаем «Ок».
- Прописываем название консоли и выбираем, куда ее сохранить.
Добавление сертификата в консоль управления Windows
После добавления сертификатов в консоль управления Windows, с ними можно будет работать напрямую через эту консоль.
Как запустить консоль, в которую добавлены сертификаты:
- Открываем меню «Пуск» и в поисковой строке указываем название консоли. Например, «Консоль1».
- Выбираем консоль, запускаем ее и нажимаем: Корень консоли → Сертификаты → Личное → Сертификаты.
- Нажимаем на иконку сертификата и открываем его.
Просмотр сертификата в консоли управления Windows
Сертификат на компьютере можно найти несколькими путями. Наиболее простые через программу КриптоПро CSP или браузер. Чуть более сложные — через диспетчер сертификатов CertMgr или консоль управления Windows.
Если поиск не дал результатов, значит сертификата на компьютере нет. Это значит, что файл сертификата удален. Восстановить его можно только в случае, если закрытый ключ не тронут. В противном случае нужно использовать копию сертификата, если заранее ее сделали, или обратиться в удостоверяющий центр за новым сертификатом.
Если у вас оформлен тариф «Марафон» от Удостоверяющего центра Контура, платить за перевыпуск не придется. Тариф не только избавляет от ежегодной подготовки документов для новой ЭП, но и позволяет перевыпускать сертификат столько, сколько нужно
Заказать
Операционная система Windows умерла и нет возможности восстановить. В системе находились ключевые контейнеры записанные в реестр и на других носителях их не существует. Перенесем ключевые контейнеры со старого реестра в новую систему.
Содержание:
- 1 Введение
- 2 Ключевые контейнеры в реестре как с ними работать?
- 3 Необходимые данные в старом реестре
- 3.1 Подключаем старый реестр в новый
- 3.2 Серийный номер КриптоПро в реестре
- 3.3 Где хранятся контейнеры ключей в реестре
- 3.4 Сохранение ключевых контейнеров
- 4 Добавление контейнеров в новый реестр
- 4.1 Смотрим UID необходимого пользователя
- 4.2 Меняем данные в файле
- 4.3 Экспортирует контейнеры в новый реестр
- 4.4 Выгружаем старый реестр
- 4.5 Проверка добавления ключевых контейнеров
- 4.6 Перенос личных сертификатов пользователя
- 4.6.1 Добавление сертификата через Крипто ПРО
- 4.6.2 Перенос всех сертификатов
- 5 Вывод
Введение
Конечно лучше всегда хранить резервные копии всех получаемых ключей, но это делают только те кто уже имел проблемы с потерей а в последствии долгим и мучительным процессом восстановления необходимых ключей. Самая большая проблема в том что не каждый контейнер в реестре содержит в себе открытый ключ. Государственным учреждениям выдают, как правило на флешке, ключевой контейнер и личный сертификат которые работают в системе только в связке. Некоторые бережно хранят эту связку ну а большинство устанавливают контейнер в реестр системы и используют дальше флэшку в личных целях не задумываясь удаляя все лишнее в случае необходимости. Сохранность данных дело каждого мое дело решить задачу из сложившихся реалий о чем я и поведаю. Вариант подойдёт и для случая когда нет желание переносить каждый ключ а хочется перенести все сразу на новый компьютер.
Ключевые контейнеры в реестре как с ними работать?
Для работы со старым реестрам нужны права на открытие необходимых данных иначе вылезет предупреждение:
Для работы со старым реестром выполним следующие действия:
- Скачиваем программу PsTools и распаковываем в любую папку;
- Копируем необходимый файл PsExec.exe в папку C:WindowsSystem32;
- Запускаем командную строку cmd от имени администратора;
- Вставляем команду psexec -i -d -s c:windowsregedit.exe и нажимаем Enter.
Вот так это должно выглядеть в cmd:
Теперь вы можем спокойно работать с реестром и не получать предупреждения о невозможности просмотра данных.
Необходимые данные в старом реестре
Файлы реестра находятся по пути Windows/system32/config файл который нас интересует называется SOFTWARE. В нашем случае он был исправен в противном случае восстановить нужные данные не получиться.
Подключаем старый реестр в новый
Для подключения необходимо выполнить следующие действия:
- Выбрать необходимую ветку реестра HKEY_LOCAL_MACHINE;
- Перейти в меню Файл → Загрузить куст;
- Выбрать необходимый файл SOFTWARE;
- Назначить имя загруженному кусту (в моем случае old).
После успешного подключение вы увидите куст с введенным ранее названием.
Серийный номер КриптоПро в реестре
Определить какая стояла версия и серийный номер можно посмотрев записи на скрине ниже (внизу указан путь где смотреть):
Где хранятся контейнеры ключей в реестре
Все контейнеры вы можете найти по пути (для 64): HKEY_LOCAL_MACHINESOFTWAREWow6432NodeCrypto ProSettings
USERS(идентификатор пользователя)Keys(Название контейнера)
Сохранение ключевых контейнеров
Теперь нам необходимо экспортировать раздел с ключами для выполнения необходимых изменений и загрузки в рабочий реестр. После экспортирования я получил файл с названием reestr.reg.
Добавление контейнеров в новый реестр
Перед тем как добавить в новый реестр контейнеры нам надо сменить uid пользователя и отредактировать путь убрав название загруженного куста.
Смотрим UID необходимого пользователя
В командной строке cmd вносим команду WHOAMI /USER и видим нужный sid пользователя:
Чтобы скопировать текст из командной строки Windows, необходимо нажать правой кнопкой мыши на заголовок окна консоли и в меню «Свойства» на вкладке «Общие» включить опцию «Выделение мышью». Вставляется текст по нажатию правой кнопки мыши!
Меняем данные в файле
Открываем файл в блокноте и делаем замену:
Не забудьте убрать название куда добавляли куст! Вам надо загрузить в рабочую часть реестра!
Экспортирует контейнеры в новый реестр
Выгружаем старый реестр
Не ищите возможности удаления старого куста который мы добавляли! Ненужный больше куст можно только выгрузить!
Проверка добавления ключевых контейнеров
Открываем программу Crypto Pro и смотрим что у нас есть в реестре:
Всё прошло успешно и все ключевые контейнеры присутствуют.
Перенос личных сертификатов пользователя
Добавление сертификата через Крипто ПРО
Берём открытый сертификат что нам нужен и устанавливаем его через Crypto Pro указав автоматический поиск контейнера. В случае если ставили контейнеры не вводя пароль просто жмите Ентер ( если вводили то ищите куда записали).
Все действия с ключами выполняйте через программу Crypto Pro!
Перенос всех сертификатов
Все сертификаты в системе Windows находятся по пути C:UsersНУЖНЫЙ ПОЛЬЗОВАТЕЛЬAppDataRoamingMicrosoftSystemCertificatesMy. Достаточно скопировать эту папку в аналогичное место на новом компьютере и ключи будут перенесены.
Вывод
Вывод только один — храните резервные копии ключей. В моем случае мне удалось восстановить закрытые контейнеры ключей и личные сертификаты. Стараюсь всегда или переносить ключи в реестра и хранить оригиналы, если это возможно. Не ленитесь делать резервные копии.
Понравилась статья? Поделитесь ей с друзьями!
Пожалуйста, оставляйте свои комментарии
Читая их я получаю информацию которая позволяет мне улучшить качество написания статей. Кроме того, оставляя комментарии вы помогаете сайту получить более высокий рейтинг у поисковых систем. Давайте общаться.
Данный материал является переводом оригинальной статьи «ATA Learning : Michael Soule : Manage Certs with Windows Certificate Manager and PowerShell».
Работа с сертификатами обычно является одной из тех дополнительных задач, которые вынужден брать на себя системный администратор Windows. Диспетчер Сертификатов Windows (Windows Certificate Manager) — это один из основных инструментов, который позволяет выполнять эту работу.
В этой статье мы рассмотрим работу с сертификатами применительно к операционной системе Windows. Если же вы хотите узнать больше о том, как работают сертификаты в целом, ознакомьтесь с сопутствующей статьей «Your Guide to X509 Certificates».
Понимание хранилищ сертификатов
В диспетчере сертификатов Windows все сертификаты находятся в логических хранилищах, называемых «хранилищами сертификатов». Хранилища сертификатов – это «корзины», в которых Windows хранит все сертификаты, которые в настоящее время установлены, и сертификат может находиться более чем в одном хранилище.
К сожалению, хранилища сертификатов — не самая интуитивно понятная концепция для работы. О том, как различать эти хранилища и как с ними работать, вы прочитаете ниже.
Каждое хранилище находится в Реестре Windows и в файловой системе. При работе с сертификатом в хранилище вы взаимодействуете с логическим хранилищем, не изменяя напрямую реестр или файловую систему. Этот более простой способ позволяет вам работать с одним объектом, в то время как Windows заботится о том, как представить этот объект на диске.
Иногда можно встретить хранилища сертификатов, называемые физическими или логическими хранилищами. Физические хранилища ссылаются на фактическую файловую систему или место в реестре, где хранятся разделы реестра и / или файл(ы). Логические хранилища — это динамические ссылки, которые ссылаются на одно или несколько физических хранилищ. С логическими хранилищами намного проще работать, чем с физическими хранилищами для наиболее распространенных случаев использования.
Windows хранит сертификаты в двух разных областях — в контексте пользователя и компьютера. Сертификат помещается в один из этих двух контекстов в зависимости от того, должен ли сертификат использоваться одним пользователем, несколькими пользователями или самим компьютером. В остальной части этой статьи сертификат в контексте пользователя и компьютера будет неофициально называться сертификатами пользователей и сертификатами компьютеров.
Сертификаты пользователей
Если вы хотите, чтобы сертификат использовался одним пользователем, то идеальным вариантом будет хранилище пользовательских сертификатов внутри Диспетчера сертификатов Windows. Это общий вариант использования процессов аутентификации на основе сертификатов, таких как проводной IEEE 802.1x.
Сертификаты пользователей находятся в профиле текущего пользователя и логически отображаются только в контексте этого пользователя. Сертификаты пользователей «сопоставлены» и уникальны для каждого пользователя даже в одних и тех же системах.
Компьютерные сертификаты
Если сертификат будет использоваться всеми пользователями компьютера или каким-либо системным процессом, его следует поместить в хранилище в контексте компьютера. Например, если сертификат будет использоваться на веб-сервере для шифрования связи для всех клиентов, размещение сертификата в контексте компьютера будет подходящим вариантом.
Вы увидите, что хранилище сертификатов компьютера логически сопоставлено для всех пользовательских контекстов. Это позволяет всем пользователям использовать сертификаты в хранилище сертификатов компьютера в зависимости от разрешений, настроенных для закрытого ключа.
Сертификаты компьютера находятся в кусте реестра локального компьютера и в подкаталогах ProgramData. Сертификаты пользователя находятся в кусте реестра текущего пользователя и в подкаталогах AppData. Ниже вы можете увидеть, где каждый тип хранилища находится в реестре и файловой системе.
Контекст | Путь реестра | Объяснение |
---|---|---|
User | HKEY_CURRENT_USER SOFTWAREMicrosoftSystemCertificates |
Физическое хранилище для пользовательских открытых ключей |
User | HKEY_CURRENT_USER SOFTWAREPoliciesMicrosoftSystemCertificates |
Физическое хранилище для пользовательских открытых ключей, установленных объектами групповой политики Active Directory (AD) (GPO) |
Computer | HKEY_LOCAL_MACHINE SOFTWAREMicrosoftSystemCertificates |
Физическое хранилище общедоступных ключей для всей машины |
Computer | HKEY_LOCAL_MACHINE SOFTWAREMicrosoftCryptographyServices |
Физическое хранилище ключей, связанных с определенной службой |
Computer | HKEY_LOCAL_MACHINE SOFTWAREPoliciesMicrosoftSystemCertificates |
Физическое хранилище открытых ключей для всей машины, установленных объектами групповой политики. |
Computer | HKEY_LOCAL_MACHINE SOFTWAREMicrosoftEnterpriseCertificates |
Физическое хранилище общедоступных ключей, установленных корпоративными контейнерами PKI в домене AD |
Контекст | Расположение файла | Объяснение |
---|---|---|
User | $env:APPDATAMicrosoftSystemCertificates | Физическое хранилище для пользовательских открытых ключей и указателей на закрытые ключи |
User | $env:APPDATAMicrosoftCrypto | Физическое хранилище для контейнеров закрытых ключей для конкретных пользователей |
Computer | $env:ProgramDataMicrosoftCrypto | Физическое хранилище для контейнеров закрытых ключей для всей машины |
Предварительные требования
В оставшейся части этой статьи вы найдете несколько примеров, демонстрирующих взаимодействие с хранилищами сертификатов Windows. Чтобы воспроизвести эти примеры, убедитесь, что выполняются следующие требования:
- Windows Vista, Windows Server 2008 или более новая операционная система. В показанных примерах используется Windows 10 Корпоративная версии 1903.
- Знакомство с PowerShell. Хотя это и не обязательно, этот язык будет использоваться для ссылки на сертификаты, где это необходимо. Все показанные примеры были созданы с помощью Windows PowerShell 5.1.
- Вам не потребуется устанавливать какие-либо специальные сертификаты, но использование самозаверяющего сертификата полезно.
Управление сертификатами в Windows
В Windows есть три основных способа управления сертификатами:
- Оснастка консоли управления Microsoft (MMC) сертификатов (certmgr.msc)
- PowerShell
- Инструмент командной строки certutil
В этой статье вы узнаете, как управлять сертификатами с помощью оснастки Certificates MMC и PowerShell. Если вы хотите узнать больше о том, как использовать certutil, ознакомьтесь с документацией Microsoft.
PowerShell против диспетчера сертификатов Windows
Поскольку в Windows можно управлять сертификатами несколькими способами, встаёт вопрос выбора, что лучше использовать — GUI (MMC) или командную строку с PowerShell.
Во-первых, рассмотрим жизненный цикл сертификата. Если вы собираетесь установить или удалить один сертификат только один раз, рассмотрите возможность использования MMC. Но если вы управляете несколькими сертификатами или выполняете одну и ту же задачу снова и снова, использование командной строки может оказаться правильным решением. Даже если вы не умеете писать сценарии PowerShell, вам стоит этому научиться, если у вас есть много разных сертификатов, которыми нужно управлять.
Давайте сначала посмотрим, как обнаружить сертификаты, установленные в Windows, с помощью диспетчера сертификатов и PowerShell.
Использование диспетчера сертификатов Windows (certmgr.msc)
Чтобы просмотреть сертификаты с помощью MMC, откройте Диспетчер сертификатов: откройте меню «Пуск» и введите certmgr.msc. Это вызовет Windows Certificates MMC. Это начальное представление предоставит обзор всех логических хранилищ, отображаемых в левом окне.
На снимке экрана ниже видно, что выбрано логическое хранилище доверенных корневых центров сертификации
Просмотр физических хранилищ
По умолчанию Диспетчер сертификатов Windows не отображает физические хранилища. Чтобы показать их, в верхнем меню оснастки выбирайте «View» > «Options«. Затем вы увидите варианты отображения физических хранилищ сертификатов. Включение этого параметра упрощает определение конкретных путей в Windows.
Теперь вы можете видеть, что дополнительные контейнеры показаны в примере логического хранилища доверенных корневых центров сертификации, показанном ранее. Сертификаты по-прежнему сгруппированы относительно их логических хранилищ, но теперь вы можете увидеть физическое хранилище «Реестр».
Проверка атрибутов в диспетчере сертификатов Windows
Есть много атрибутов сертификата, которые вы можете увидеть при просмотре их с помощью MMC. Например, вы, вероятно, захотите выбрать определенные сертификаты по их атрибутам. Самый простой способ сделать это — указать Serial Number сертификата или значение Thumbprint. Если сертификат был подписан центром сертификации (CA), при выдаче он будет иметь серийный номер. Thumbprint вычисляется каждый раз при просмотре сертификата.
Вы можете увидеть некоторые атрибуты сертификата, открыв его в MMC, как показано ниже.
Следует отметить одну важную особенность — встроенные закрытые ключи. Сертификаты в Windows также могут иметь соответствующий закрытый ключ. Эти закрытые ключи хранятся в соответствующих физических хранилищах в виде зашифрованных файлов.
Чтобы быстро отличать сертификаты с соответствующим закрытым ключом и без него, посмотрите на значок сертификата. В Диспетчере сертификатов Windows, если значок просто выглядит как лист бумаги с лентой, соответствующий закрытый ключ отсутствует. Если у сертификата есть закрытый ключ, вы увидите ключ на значке MMC, и ключ в нижней части вкладки «Общие» при открытии сертификата
Использование PowerShell по физическому хранилищу
Как и в случае с MMC, вы можете просматривать сертификаты и управлять ими с помощью PowerShell. Давайте сначала проверим сертификаты в их физических хранилищах (реестр и файловая система).
Используя PowerShell командлет Get-ChildItem, вы можете перечислить все ключи и значения внутри родительского пути в реестре. Приведенная ниже команда перечислит все сертификаты вошедшего в систему пользователя в логическом хранилище промежуточных центров сертификации.
Get-ChildItem -Path 'HKCU:SoftwareMicrosoftSystemCertificatesCACertificates'
Каждая запись в кусте реестра, который вы видите, будет соответствовать отпечатку сертификата доверенного центра сертификации и его сертификату в соответствующем свойстве. Вы можете увидеть пример вывода ниже.
Другое распространенное хранилище — это Personal store. Ваши сертификаты для этого хранилища находятся в файловой системе, а не в реестре. В следующих командах мы покажем эти различные физические пути и их цели.
Каждый файл в каталоге, возвращенный приведенной ниже командой, соответствует сертификату, установленному в личном хранилище текущего пользователя.
Get-ChildItem -Path $env:APPDATAMicrosoftSystemCertificatesMyCertificates
Каждый файл, возвращаемый в приведенной ниже команде, является ссылкой на объект для закрытого ключа, созданный поставщиком хранилища ключей (KSP). Имя файла соответствует идентификатору ключа субъекта сертификата. К каждому устанавливаемому вами закрытому ключу будет добавлен соответствующий файл.
Get-ChildItem -Path $env:APPDATAMicrosoftSystemCertificatesMyKeys
Каждый файл в каталоге, возвращаемый следующей командой, является уникальным контейнером для зашифрованного закрытого ключа, созданного KSP. Нет прямой связи между именем файла и сертификатом, но файл является целью указателя в предыдущей команде.
Get-ChildItem -Path $env:APPDATAMicrosoftCryptoKeys
Использование PowerShell по логическому хранилищу
Поскольку работа с сертификатами на их физических путях встречается редко, в остальных примерах вы будете работать с логическими хранилищами.
PowerShell может получить доступ к логическим хранилищам Windows с помощью PSDrive-объекта «Cert:«, который сопоставляет сертификаты с физическими хранилищами так же, как это делает MMC.
К сожалению, MMC и «Cert:» не маркируют логические хранилища одинаково. Ниже вы можете увидеть сравнительную таблицу общих хранилищ и их названий как в MMC, так и в «Cert:» PSDrive.
Cert: | Certificates MMC |
---|---|
My | Personal |
Remote Desktop | Remote Desktop |
Root | Trusted Root Certification Authorities |
CA | Intermediate Certification Authorities |
AuthRoot | Third-Party Root Certification Authorities |
TrustedPublisher | Trusted Publishers |
Trust | Enterprise Trust |
UserDS | Active Directory User Object |
Выбор сертификатов
Когда вы работаете с сертификатами, вам понадобится способ фильтрации и выбора сертификатов для выполнения определенных операций. В большинстве случаев вы будете фильтровать и выбирать сертификаты на основе значения определенного расширения.
Для следующих примеров вам нужно начать с перечисления всех установленных сертификатов в хранилище корневого ЦС.
Get-ChildItem -Path 'Cert:CurrentUserRoot'
Возвращенные объекты будут объектами сертификатов, которые вы можете использовать в следующих примерах.
Общие расширения уже доступны как свойства объектов сертификата. В приведенном ниже примере вы используете Get-Member для вывода списка всех свойств возвращаемых объектов.
Get-ChildItem -Path 'Cert:CurrentUserRoot' | Get-Member -MemberType Properties
Как видим, некоторые из этих расширений, например «Issuer», помогают найти сертификат, который вы ищете. Расширения предоставляют информацию о сертификате, например, кому он выдан, для чего его можно использовать и любые ограничения на него.
В более сложных случаях использования вам может понадобиться найти сертификаты других расширений, таких как используемый шаблон сертификата. Сложность в том, что значения этих расширений возвращаются как массив целых чисел. Эти целые числа соответствуют содержимому в кодировке ASN.1.
Покажем пример взаимодействия с свойствами типа ScriptProperty. В приведенной ниже команде вы извлекаете Key Usages.
((Get-ChildItem -Path 'Cert:CurrentUserRoot' | Select -First 1).Extensions | Where-Object {$_.Oid.FriendlyName -eq 'Key Usage'}).format($true)
Новая часть, которую мы вводим в приведенной выше команде, — это метод форматирования, который выполняет декодирование ASN.1. Вы передаете ему логическое значение (например, $true), чтобы определить, хотим ли мы, чтобы возвращаемый объект был однострочным или многострочным.
Попробуем использовать значение Thumbprint из сертификата в приведенной ниже команде. Значение Thumbprint устанавливается как переменная PowerShell и используется для выбора конкретного сертификата в приведенных ниже командах.
$thumb = "cdd4eeae6000ac7f40c3802c171e30148030c072"
Get-ChildItem -Path 'Cert:CurrentUserRoot' | Where-Object {$_.Thumbprint -eq $thumb}
Создание самозаверяющих (self-signed) сертификатов с помощью PowerShell
PowerShell может создавать самозаверяющие (self-signed) сертификаты с помощью командлета New-SelfSignedCertificate. Самозаверяющие сертификаты полезны для тестирования, поскольку они позволяют генерировать пару открытого и закрытого ключей без использования центра сертификации.
Теперь давайте создадим самозаверяющий сертификат в хранилищах текущего пользователя и локального компьютера, чтобы использовать его в примерах для следующих шагов.
В приведенном ниже примере PowerShell создает пару открытого и закрытого ключей, самозаверяющий сертификат и устанавливает их все в соответствующие хранилища сертификатов.
New-SelfSignedCertificate -Subject 'User-Test' -CertStoreLocation 'Cert:CurrentUserMy'
New-SelfSignedCertificate -Subject 'Computer-Test' -CertStoreLocation 'Cert:LocalMachineMy'
Использование самозаверяющих сертификатов для продуктивных сервисов не рекомендуется, поскольку не существует всех механизмов, основанных на доверии.
Импорт и экспорт сертификатов в MMC
Криптография с открытым ключом основана на широкой доступности открытого ключа. Учитывая это, вам нужны стандартные способы эффективного обмена сертификатами. Не менее важна безопасность ваших личных ключей. Хранение закрытых ключей на недоступных носителях или с материалами для аварийного восстановления — обычная практика для определенных закрытых ключей.
Оба они требуют способов хранения этих криптографических объектов в стандартных форматах. Экспорт предоставляет функции для сохранения этих объектов и обеспечения использования широко распространенных стандартных форматов файлов. Импорт позволяет вам переносить криптографические объекты в операционные системы Windows.
Экспорт сертификатов из MMC относительно прост. Чтобы экспортировать сертификат без закрытого ключа, щелкните сертификат в MMC, выберите меню «Все задачи», а затем «Экспорт».
Во время экспорта вам будет предложено указать формат файла, как показано ниже. Наиболее распространены варианты кодирования — DER или Base-64
Экспорт закрытых ключей
Чтобы экспортировать сертификат с соответствующим закрытым ключом, вы должны соответствовать двум критериям:
- Вошедшая в систему учетная запись должна иметь разрешение на закрытый ключ (только для сертификатов компьютеров);
- Закрытый ключ должен быть помечен как экспортируемый.
Чтобы проверить разрешения для закрытых ключей локального компьютера, вы можете выбрать сертификат с закрытым ключом, выбрать «Все задачи» и «Управление закрытыми ключами» в MMC «Сертификаты». В открывшемся диалоговом окне отображаются записи управления доступом для закрытых ключей.
Когда выше обозначенные условия выполнены, вы можете выбрать сертификат, щелкнуть «Все задачи», а затем «Экспорт», как если бы вы использовали сертификат только с открытым ключом. При экспорте теперь у вас должна присутствовать возможность выбора экспорта закрытого ключа («Yes, export the private key»), как показано ниже.
Когда вы экспортируете закрытый ключ в Windows, вы можете сохранить файл только как PFX. Этот и другие типы файлов и форматы кодирования подробно описаны в этом посте.
Для остальных параметров, отображаемых в мастере экспорта, вы можете использовать значения по умолчанию. В таблице ниже приводится краткое изложение каждого из них.
Настройка | Описание |
---|---|
Including all certificates in the certification path if possible | Помогает с переносимостью эмитентов сертификатов и включает все соответствующие открытые ключи в PFX. |
Delete the private key if the export is successful | Удаляет закрытый ключ из файла и имеет несколько распространенных вариантов использования, но одним из примеров является проверка доступа к закрытым ключам. |
Export all extended properties | Будет включать любые расширения в текущем сертификате, они относятся к сертификатам [конкретные настройки] для интерфейсов Windows. |
Enable certificate privacy | Обычно в экспортируемом PFX-файле шифруется только закрытый ключ, этот параметр шифрует все содержимое PFX-файла. |
Group or user names | Вы можете использовать участника безопасности группы или пользователя из Active Directory для шифрования содержимого файла PFX, но пароль является наиболее переносимым вариантом для устаревших систем или компьютеров, не присоединенных к тому же домену. |
Импорт сертификатов
Функция импорта одинакова для всех поддерживаемых типов файлов сертификатов. Единственная разница в том, что если файл содержит закрытый ключ, вы можете «Отметить этот ключ как экспортируемый», о чем вы узнаете подробнее ниже. Windows будет использовать мастер импорта сертификатов.
При использовании мастера импорта сертификатов для PFX вам потребуется указать пароль, используемый для шифрования закрытого ключа. Вот еще один обзор вариантов импорта.
Настройка | Описание |
---|---|
Enable strong private key protection | Требуется пароль для каждого доступа к закрытому ключу. Будьте осторожны с новыми функциями, поскольку они не будут поддерживаться во всех программах. |
Mark this key as exportable | Вы должны стараться избегать использования этого параметра в любой конечной системе, закрытые ключи следует рассматривать так же, как и хранение паролей. |
Protect private key using [virtualization-based security] | Этот параметр обеспечивает дополнительные функции безопасности для защиты закрытых ключей от сложных атак вредоносного ПО. |
Include all extended properties | Относится к тем же настройкам Windows, что и при экспорте. |
Сертификаты для подписи кода PowerShell — хороший вариант использования надежной защиты закрытого ключа.
С автоматическим размещением сертификатов следует проявлять осторожность. Скорее всего, вы получите наилучшие результаты, выбрав хранилище сертификатов вручную.
Импорт и экспорт сертификатов в PowerShell
Теперь с помощью PowerShell экспортируйте один из самозаверяющих сертификатов, которые вы создали ранее. В этом примере вы выбираете сертификат в личном логическом хранилище CurrentUser, который был самозаверяющим.
$certificate = Get-Item (Get-ChildItem -Path 'Cert:CurrentUserMy' | Where-Object {$_.Subject -eq $_.Issuer}).PSPath
Теперь, когда вы выбрали сертификат, вы можете использовать команду Export-Certificate, чтобы сохранить файл в кодировке DER, используя команду ниже.
Export-Certificate -FilePath $env:USERPROFILEDesktopcertificate.cer -Cert $certificate
Теперь давайте посмотрим на экспорт закрытого ключа. Ниже вы проверяете, что у выбранного сертификата есть закрытый ключ. Если он не возвращает True, то команда Get-Item, скорее всего, выбрала неправильный сертификат.
$certificate.HasPrivateKey
Ниже вы установите пароль, который будет использоваться для шифрования закрытого ключа. Затем экспортируйте выбранный сертификат в файл PFX и используйте пароль, который вы ввели ранее, чтобы зашифровать файл.
$pfxPassword = "ComplexPassword!" | ConvertTo-SecureString -AsPlainText -Force
Export-PfxCertificate -FilePath $env:USERPROFILEDesktopcertificate.pfx -Password $pfxPassword -Cert $certificate
В случае, если необходимо выполнить импорт, как и при экспорте, есть две команды. Одна команда для импорта сертификатов и одна для импорта файлов PFX.
Ниже команда Import-Certificate импортирует файл в формате DER, который вы экспортировали ранее, в личное хранилище текущего пользователя.
Import-Certificate -FilePath $env:USERPROFILEDesktopcertificate.cer -CertStoreLocation 'Cert:CurrentUserMy'
Допустим, вы тоже хотите установить закрытый ключ этого сертификата.
$pfxPassword = "ComplexPassword!" | ConvertTo-SecureString -AsPlainText -Force
Import-PfxCertificate -Exportable -Password $pfxPassword -CertStoreLocation 'Cert:CurrentUserMy' -FilePath $env:USERPROFILEDesktopcertificate.pfx
Имейте в виду, что пароль должен быть защищенной строкой. Кроме того, если вы импортируете в хранилище локального компьютера (например, «Cert:LocalMachine«), вам нужно будет запустить команду из командной строки администратора с повышенными привилегиями.
В приведенном выше примере вы также используете параметр -Exportable с командой, отмечая закрытый ключ как экспортируемый в будущем. По умолчанию (без указания этого параметра) экспорт не используется. Экспортируемые закрытые ключи – отельный аспект информационной безопасности, заслуживающий отдельного внимания.
Удаление сертификатов с помощью PowerShell
При удалении сертификатов помните, что понятие «Корзина Windows» в этом случае отсутствует. Как только вы удалите сертификат, он исчезнет! Это означает, что очень важно подтвердить, что вы удаляете правильный сертификат, путем проверки уникального идентификатора, такого как серийный номер или значение расширения Thumbprint.
Как и выше, в приведенной ниже команде мы выбираем самозаверяющий сертификат из личного хранилища текущего пользователя.
$certificate = Get-Item (Get-ChildItem -Path 'Cert:CurrentUserMy' | Where-Object {$_.Subject -eq $_.Issuer}).PSPath
Ниже вы можете увидеть свойства отпечатка, серийного номера и темы для выбранного сертификата, чтобы убедиться, что это именно тот сертификат, который вы собираетесь выбрать.
$certificate.Thumbprint
$certificate.SerialNumber
$certificate.Subject
Убедитесь, что вы выбрали правильный сертификат, который собираетесь удалить.
Приведенная ниже команда удаляет все выбранные объекты сертификата, используйте с осторожностью! Передав объект $certificate через конвейер в командлет Remove-Item в приведенной ниже команде, вы удалите все содержимое сертификата без каких-либо запросов на проверку.
$certificate | Remove-Item
Резюме
На протяжении всей этой статьи вы работали с сертификатами в Windows, изучая, как получить к ним доступ, и некоторые инструменты, которые можно использовать при работе с ними. По этой теме можно изучить гораздо больше, в том числе о том, как связать установленные сертификаты с конкретными службами или даже о том, как реализовать инфраструктуру закрытого открытого ключа (PKI) путем развертывания собственных центров сертификации (CA).
Варианты хранения криптографических ключей
Продолжает расти популярность решений на основе PKI — всё больше сайтов переходят на HTTPS, предприятия внедряют цифровые сертификаты для аутентификации пользователей и компьютеров, S/MIME доказывает свою состоятельность и для шифрования электронной почты, и как способ проверки источника сообщений для противодействия фишингу. Но шифрование и аутентификация в этих приложениях практически бессмысленны без правильного управления ключами.
Каждый раз при выдаче цифрового сертификата от центра сертификации (ЦС) или самоподписанного сертификата нужно сгенерировать пару из закрытого и открытого ключей. Согласно лучшим практикам, ваши секретные ключи должны быть защищены и быть, ну… секретными! Если кто-то их получит, то сможет, в зависимости от типа сертификата, создавать фишинговые сайты с сертификатом вашей организации в адресной строке, аутентифицироваться в корпоративных сетях, выдавая себя за вас, подписывать приложения или документы от вашего лица или читать ваши зашифрованные электронные письма.
Во многих случаях секретные ключи — личные удостоверения ваших сотрудников (и, следовательно, часть персональных данных организации), так что их защита приравнивается к защите отпечатков пальцев при использовании биометрических учётных данных. Вы же не позволите хакеру добыть отпечаток своего пальца? То же самое и с секретными ключами.
В этой статье мы обсудим варианты защиты и хранения закрытых ключей. Как вы увидите, эти варианты могут незначительно отличаться в зависимости от типа сертификата(ов) и от того, как вы его используете (например, рекомендации для сертификатов SSL/TLS отличаются от рекомендаций для сертификатов конечных пользователей).
Хранилища сертификатов/ключей в ОС и браузерах
Примеры: хранилище сертификатов Windows, связка ключей Mac OS
В некоторых операционных системах и браузерах есть хранилища сертификатов или ключей. Это программные базы данных, которые локально на вашем компьютере хранят пару из закрытого и открытого ключей как часть сертификата. Такое хранение ключей довольно популярно: многие приложения автоматически сразу ищут ключи здесь, и не нужно вручную каждый раз указывать файл сертификата, так что это довольно удобный вариант.
Ещё один плюс такого варианта — его довольно легко настраивать. Вы можете включить/отключить экспорт закрытого ключа, включить для него надёжную защиту (ввод пароля при каждом использовании сертификата), и можно создать резервные копии, если закрытый ключ экспортируется. Кроме того, при включении роуминга профилей в Windows сертификат привязывается к профилю и становится доступным при входе на другой компьютер с этим профилем.
Если решите выбрать такой вариант, то следует учесть несколько аспектов. Во-первых, даже если пометить закрытый ключ как неэкспортируемый, некоторые утилиты могут обойти эту защиту (то есть невозможность экспорта не гарантирована). Кроме того, если кто-то работал под вашей учётной записью, а вы не включили сильную защиту закрытого ключа (пароль при использовании сертификата), то они могут использовать ваш сертификат. Наконец, если ваш закрытый ключ помечен как экспортируемый, то кто-нибудь за вашим компьютером сможет экспортировать его. Даже если у вас включена защита секретного ключа, при экспорте пароль не спрашивается.
И последнее: Chrome и IE используют хранилище сертификатов Windows, в то время как у Firefox собственное хранилище сертификатов (от Mozilla). Это значит, что если вы импортируете сертификат в хранилище Windows, то Chrome и IE автоматически найдут его, а Firefox нет.
Типичные приложения:
- Приложения для цифровой подписи (например, Adobe Acrobat, Microsoft Outlook и Office будут обращаться в хранилище сертификатов Windows [пользовательское]).
- Сервер Microsoft IIS тоже ищет SSL-сертификаты в хранилище сертификатов Windows [общем для компьютера].
- Аутентификация клиента (пользователя или компьютера), в зависимости от настроек, чаще всего обращается к хранилищу сертификатов Windows.
- Подпись кода в Windows (приложения и драйверы).
Файлы .pfx и .jks (хранилища ключей)
Файлы PKCS#12 (.pfx или .p12) и .jks* (созданные инструментом Java Keytool) содержат ваши закрытый и открытый ключи. В отличие от локальных хранилищ для ОС и браузеров, эти файлы могут размещаться практически в любом месте, включая удалённые серверы, и всегда защищены паролем (то есть каждый раз при использовании своего секретного ключа нужно ввести пароль). Другая привлекательная особенность: поскольку это просто файлы, то несложно разослать копии для нескольких человек, которым нужно использовать сертификат.
Если решите сохранить файл на удалённом сервере, то следует особенно позаботиться об ограничении доступа к нему. Если кто-то получит доступ, то сможет использовать ваш сертификат. Аналогично, следует быть особенно осторожным с лёгким копированием и распространением этих файлов. Хотя это и большое удобство для вас, но одновременно и злоумышленнику будет просто сделать копию, если он получит доступ к вашему хранилищу ключей. Пароль закрытого ключа по-прежнему необходим для эффективного использования скопированного файла. Это еще одна причина, чтобы использовать надёжные пароли из 15-ти и больше символов, содержащие заглавные буквы, цифры и специальные символы. С этим вариантом хранения нужно учитывать ещё одну вещь: на конечного пользователя накладывается больше ответственности с точки зрения того, где находится файл и правильно ли он хранится.
Если вы не можете использовать криптографическое оборудование или хранилище ключей Windows (описано выше), но всё же хотите повысить безопасность (вместо того, чтобы просто разместить файл хранилища ключей на компьютере), то можно записать этот файл на флэшку, которая будет лежать в безопасном месте. Конечно, здесь теряется некоторое удобство, так что если нужно часто использовать подпись, то вы скорее захотите хранить файл локально для облегчения доступа.
Типичные приложения:
- Подписание кода Windows или Java.
- FDA ESG и IRS IDES используют .pfx для безопасной связи с американскими госслужбами.
- Некоторые веб-серверы (например, Apache Tomcat или Jboss).
* Примечание: Java недавно перешла с JKS на PKCS#12 в качестве типа хранилища ключей по умолчанию.
Криптографические токены и смарт-карты
Как вскользь упомянуто выше, можно повысить безопасность, если хранить секретный ключ на отдельном оборудовании. Но есть большая разница между использованием криптографических токенов или смарт-карт и стандартных флэш-накопителей. С криптографическим оборудованием ключ генерируется на самом оборудовании и не экспортируется. Закрытый ключ никогда не покидает устройство, что сильно затрудняет постороннему получение доступа и компрометацию.
Примечание: если вы хотите дополнительно обезопасить закрытый ключ, который уже сгенерирован ранее (т. е. не на самом токене), то можно импортировать .pfx-файл на токен, а затем удалить оригинальный .pfx.
С токеном каждый раз при использовании сертификата нужно вводить пароль. Это значит, что даже если кто-то получит ваш токен, ему всё равно понадобится пароль. Хранение ключа в токене означает, что вы можете безопасно использовать один и тот же сертификат на нескольких компьютерах без необходимости создания нескольких копий и прохождения процесса экспорта/импорта. Криптографическое оборудование соответствует FIPS, что требуется для некоторых отраслевых и государственных регламентов.
Конечно, есть некоторые другие соображения, которые следует иметь в виду, если вы решите выбрать такой вариант. Кроме дополнительных сложностей управления токенами, такой вариант может не работать с автоматическими сборками из-за требования ввести пароль при каждом использовании сертификата. Также нет никакого способа создать резервную копию сертификата, поскольку закрытый ключ не экспортируется (недостаток дополнительной безопасности). Наконец, в некоторых сценариях такой вариант хранения просто невозможен. Например, если специализированные устройства не поддерживают токены или смарт-карты. Или в ситуациях, когда сотрудники не имеют физического доступа к компьютеру, а работают с удалённых терминалов.
Типичные приложения:
Как правило, все варианты использования, перечисленные для хранилищ в ОС/браузере (подпись документов и кода, аутентификация клиента, Windows IIS), поддерживают крипто-токены или смарт-карты — если есть соответствующие драйверы. Однако это не всегда практично (например, в веб-серверах или автоматизированных системах сборки для подписи кода, которые будут требовать ввод пароля каждый раз при применении подписи).
Соответствие нормативным требованиям — одна из основных причин использования криптографических токенов.
- Обязательно для подписания кода расширенной проверки (EV) в соответствии с рекомендациями форума CA/Browser.
- Рекомендуется для стандартной подписи кода в соответствии с минимальными требованиями CA Security Council. Центры сертификации обязаны рекомендовать криптографическое оборудование в качестве основного варианта выдачи сертификатов. Если криптографическое оборудование не выдаётся, клиент должен подписать соглашение, что будет хранить закрытый ключ на каком-то съёмном оборудовании (которое вынимается после подписания).
- Требуется для цифровой подписи и получения доверенного статуса в программах Adobe, в соответствии с требованиями Adobe Approved Trust List (AATL).
- Отраслевые правила, такие как CFR 21 часть 11 от FDA и требования к цифровой подписи в отдельных странах часто говорят о секретном ключе, который находится в единоличном владении собственника. Хранение на криптографическом оборудовании отвечает этим требованиям.
Аппаратные криптографические модули (HSM)
HSM — ещё одно аппаратное решение для хранения ключей, особенно если вы не хотите полагаться на отдельные токены либо это кажется слишком обременительным. В то время как токены больше ориентированы на ручной ввод или отдельные приложения (например, подписание небольшого количества документов или кода, аутентификация в VPN или других сетях), то HSM предоставляют API, поддерживают автоматизированные рабочие процессы и автоматизированную сборку. Они также соответствуют требованиям FIPS и обычно обеспечивают более высокий рейтинг, чем токены.
Традиционно HSM — это локальные физические устройства, требующие квалифицированных ресурсов для управления и обеспечения базовых требований и SLA. Обслуживание HSM может оказаться дорогим и ресурсоёмким процессом, что в прошлом препятствовало распространению этой технологии. К счастью, в последние годы появились облачные модули HSM, которые предоставляют многие из преимуществ локальных HSM, не нуждаясь в локальном обслуживании.
Примером может служить знакомый многим сервис Key Vault в облаке Microsoft Azure, которое хранит криптографические ключи в облачном HSM от Microsoft. Если у вас небольшая организация, которая не позволит себе покупку и управление собственным HSM, то это отличное решение, которое интегрируется с публичными центрами сертификации, включая GlobalSign.
Если вы рассматриваете вариант с подписью документов, то недавно мы запустили новую службу Digital Signing Service, где тоже используется облачное хранилище HSM для закрытых ключей. Стоит отметить, что новая служба поддерживает индивидуальные подписи всех сотрудников. В прошлом в большинстве HSM-решений для подписи поддерживались только идентификаторы на уровне отделов или организаций (например, бухгалтерия, маркетинг, финансы), а не отдельных людей (например, Джон Доу). Следовательно, для работы на уровне отдельных сотрудников организациям приходилось разворачивать инфруструктуру токенов, которая, как мы отметили выше, может оказаться обременительной. С помощью этой новой службы цифровые подписи отдельных сотрудников внедряются без необходимости самостоятельно управлять HSM (и без риска потери токенов сотрудниками).
Типичные приложения:
- Подпись документов или кода в большом количестве.
- SSL (в зависимости от конфигурации сервера).
- Инфраструктура ЦС для работы собственного ЦС (корневого ЦС, подчинённого ЦС, сервера меток времени RFC 3161) в офлайне или онлайне (корневой ЦС, как правило, работает в офлайне).
Будущие методы хранения ключей
Мы рассмотрели основные варианты, которые использовались в течение многих лет. Но кажется, что ничто в мире информационной безопасности, в том числе и хранение ключей, не застраховано от влияния IoT, так что разрабатываются новые варианты.
По мере того как все больше и больше устройств подключаются к сети с необходимостью аутентификации и безопасного обмена данными, многие разработчики и производители обращаются к решениям на основе PKI. В свою очередь, это приводит к новым соображениям, требованиям и технологиям защиты закрытых ключей. Ниже приведены две тенденции, которые мы видим в этой области.
Доверенный платформенный модуль (TPM)
Модули TPM сами по себе не новы, но всё чаще их используют для защиты закрытых ключей. Доверенный платформенный модуль можно использовать для хранения (или переноса) корневого ключа и защиты дополнительных ключей, созданных приложением. Ключи приложений нельзя использовать без TPM, что делает его очень полезным методом аутентификации для оконечных точек, таких как ноутбуки, серверы и производители устройств Интернета вещей. В то время как многие ноутбуки уже поставляются с TPM, пока эта технология не слишком широко используется в корпоративном секторе. Однако в мире IoT они часто применяются для безопасной индентификации устройств как аппаратный корень доверия.
IoT создал проблему, когда много анонимно взаимодействующих устройств облегчают хакерам перехват сообщений или имперсонификацию устройств. Модуль TPM внедряется ещё на этапе производства для защиты криптографического ключа и, следовательно, для надёжной идентификации устройства.
При производстве генерируется пара из закрытого и открытого ключей. Открытый ключ отправляется в центр сертификации для подписания и выдачи цифрового сертификата. Закрытый ключ никогда не покидает устройство. Он хранится на чипе и не может быть экспортирован/скопирован/уничтожен. Теперь сертификат — это паспорт устройства, а защищённый закрытый ключ формирует аппаратный корень доверия.
Мы тесно сотрудничаем с Infineon для разработки решений Интернета вещей, сочетающих идентификацию устройств на основе PKI с корнями доверия на основе TPM. Для получения дополнительной информации ознакомьтесь с подтверждением концепции: «Безопасная аутентификация и управление оборудованием с помощью облачных служб сертификатов GlobalSign и OPTIGA TPM от Infineon.»
Физически неклонируемые функции (PUF)
Технология физически неклонируемых функций (PUF) — это сдвиг парадигмы в защите ключей. Вместо хранения ключей (с вероятностью физической атаки) они генерируются из уникальных физических свойств статической памяти SRAM конкретного чипа и существуют только при включении питания. То есть вместо надёжного хранения закрытого ключа один и тот же ключ восстанавливается снова и снова по требованию (пока устройство не выйдет из строя). Этот ключ гарантированно уникален, потому что при генерации используется присущая неконтролируемая неупорядоченность в кремниевой структуре чипа.
Технология PUF в сочетании с доверенной средой исполнения (TEE) — привлекательное решение, если требуется недорогая, простая в интеграции и ультра-безопасная защита ключа. PUF вместе с PKI составляют исчерпывающее решение для идентификации.
Наш партнёр Intrinsic ID разработал такую систему подготовки ключа на основе SRAM PUF, которая производит уникальные, защищённые от подделки и копирования идентификаторы устройств на аппаратном уровне. Используя наши службы сертификации, мы переводим эти идентификаторы в цифровые удостоверения, добавляя возможности PKI. Таким образом, каждому устройству присваивается уникальная, защищённая от клонирования пара ключей, которая не хранится на устройстве в выключенном состоянии, но устройство способно воссоздать этот ключ по запросу. Это защищает от атаки на выключенное устройство.
Дополнительно о нашем совместном решении для идентификации
устройств Интернета вещей см. недавний вебинар: «Стойкие идентификаторы устройств с сертификатами на основе SRAM PUF».
Не теряйте (секретные) ключи от своей крепости!
Хранение закрытого ключа не должно быть чёрной магией. В конечном счёте, правильный вариант зависит от того, кто и для чего использует сертификаты, какие нормы приходится соблюдать, какова цена, текущее окружение и внутренние ресурсы. Надеюсь, эта статья поможет в вашем решении.
_______________________________________________________
АКЦИЯ GLOBALSIGN: Wildcard SSL + 1 ГОД В ПОДАРОК
Защитите все субдомены одним сертификатом!
Экономьте до 30 тысяч рублей при покупке сертификата Wildcard SSL на 2 года!
Промо-код: WC001HRFR
Акция действует для подписчиков блога GlobalSign до 15 июня 2018 г.
Дополнительную информацию вы можете получить у менеджеров GlobalSign по телефону: +7 (499) 678 2210 либо заполнив форму на сайте с указанием промо-кода.