Похоже, что электронные подписи вошли в нашу жизнь навсегда. И если обычным гражданам ещё можно обойтись шариковой ручкой, то с организациями такое уже не пройдёт. Доступ к программам для сдачи отчетностей и на различные сервисы (такие, например, как клиент-банки) осуществляется только с помощью ЭЦП (электронных цифровых подписей).
Технологии новые, но проблемы старые. Если раньше бухгалтер подписывал за руководителя кучу бумажных документов, то сейчас это происходит с помощью ЭЦП. Последний чаще всего даже не догадывается какие документы он регулярно «подписывает», особенно это касается всяких бюджетных и иных окологосударственных организаций.
В подавляющем большинстве случаев для создания электронных подписей используется программа КриптоПро CSP, с помощью которой заявитель сам генерирует закрытый ключ и подает запрос на создание открытого ключа в удостоверяющий центр. Удостоверяющий центр проверяет заявителя и выпускает сертификат с открытым ключом. После чего остается только «связать» сертификат с закрытым ключом. Всё. Можно подписывать.
Открытый ключ выглядит вот так:
С закрытым ключом сложнее. Задумывалось, что правильный ключ должен выглядеть вот так:
Но стоимость такого «свистка» начинается от 1500 рублей, поэтому у большинства «бюджетников», а это всякие детские сады, школы, библиотеки и т.д., где административно-хозяйственное направление богато на персонал, покупают обычные флешки:
И стоит в разы дешевле и по прямому назначению можно использовать. Покупай умнее, живи веселее!
Спустя год, месяц, неделю обнаруживается:
Ой, а флешку-то я в другой сумочке дома оставила.
— директор Алевтина Игоревна
Кажется сыну в школу отдала.
— бухгалтер Зинаида Степановна
Как не работает? Пустая? Вирусы съели, я ничего не трогала, оно само.
— заместитель директора по гламурным вопросам Оленька
А тут, как назло, последний день, когда надо подписать документы или деньги отправить, поэтому следующим местом хранения ключей обычно становится реестр Windows:
А что? Деньги тратить и никакие флешки вставлять не надо, а то вон у Зинаиды Степановны процессор старый и флешки не держит, а под стол каждый раз ей лезть неудобно. Все подписи можно держать сразу на компьютере, даже на нескольких компьютерах сразу, потом только сиди и выбирай нужную.
Счастье вечным не бывает. Забыли поставить галочку в нужном месте или удостоверяющий центр разрешает только неэкспортируемые ключи, из-за чего они получаются с вечной пропиской в реестре:
Что же делать? Сегодня последний день, последний час, последние минуты, нужно успеть поставить кучу программ, всё настроить, а тут только «Одноклассники» и работают!
Решение есть:
Контейнер с ключами в реестре практически никак не защищен и, если у пользователя есть доступ к реестру, то есть и доступ к ключам. Ниже я покажу рабочий пример с двумя компьютерами. Один старый компьютер с Windows XP (32-битной), а второй новый с Windows 10 (64-битной). Итак, задача. Подпись создана на новом компьютере. Сертификат с открытым ключом скопировать получилось, а закрытый ключ нет. Как перенести закрытый ключ на компьютер с Windows XP штатными средствами и без всяких «левых» программ?
Итак. На компьютере с Windows 10 запускаем Редактор реестра:
У нас 64-битная система, поэтому нам нужна ветка:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Crypto Pro\Settings\Users\
Если бы Windows была 32-битная, то нужна была бы другая ветка:
HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\Users\
Переходим. Внутри будет список так называемых SID или идентификаторов безопасности учетных записей. Страшно от терминов, аж жуть. Открываем ту ветку, которая начинается на S-1-5-21… Как правило, она такая одна. Внутри находим ветку Keys и раскрываем. В ней и будет находиться список контейнеров, которые были созданы или скопированы в реестр на этом компьютере.
В нашем примере полный путь выглядит так:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Crypto Pro\Settings\Users\S-1-5-21-133333333-133333333-133333333-1001\Keys\
S-1-5-21-133333333-133333333-133333333-1001 – это и есть SID, на другом компьютере он будет иным, но начало у всех одинаковое.
Выделяем правой кнопкой мыши нужный контейнер, который мы хотим перенести. В открывшемся меню выбираем пункт «Экспортировать»:
Придумываем файлу любое имя и жмём «Сохранить»:
В итоге у нас получится файл реестра с расширением .reg. Переносим его вместе с сертификатом на компьютер с Windows XP:
Все последующие действия будут происходить только на компьютере с Windows XP, второй компьютер нам больше не потребуется.
Сначала нам нужно узнать SID пользователя нашего компьютера.
Запускаем Редактор реестра, и так как Windows XP 32-битная, то переходим в ветку:
HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\Users\
Снова ищем ветку, которая начинается на S-1-5-21… Внутри тоже будут контейнеры с ключами, если их конечно делали раньше, но сейчас нам нужно только точное название SID. Чтобы не ошибиться можно выбрать правой кнопкой любой контейнер и нажать «Экспортировать»:
В следующем окне в самом низу будет полный путь к выбранному контейнеру:
Можно выделить весь путь или только цифры SID и скопировать.
В примере полный путь выглядит так:
HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\Users\S-1-5-21-7777777777-7777777777-7777777777-500\Keys\Илья Муромец
Теперь возвращаемся к полученному ранее файлу реестра. В нём нужно будет отредактировать одну строку.
Для этого выделяем его правой кнопкой мыши и в открывшемся меню выбираем пункт «Изменить»:
Откроется Блокнот:
В самом начале файла находим строку, похожую на эту:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Crypto Pro\Settings\Users\S-1-5-21-133333333-133333333-133333333-1001\Keys\Идолище Поганое]
В ней нам нужно заменить SID и убрать Wow6432Node\
Должно получиться так:
[HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\Users\S-1-5-21-7777777777-7777777777-7777777777-500\Keys\Идолище Поганое]
Сохраняем изменения. Запускаем этот файл. Соглашаемся на внесение изменений в реестре и всё. Контейнер закрытого ключа установлен. Можно устанавливать сертификат: