Как открыть закрытый ключ эцп
Чем отличаются открытый и закрытый ключи ЭЦП?
При создании электронной цифровой подписи с помощью криптографических алгоритмов формируется ключевая пара — открытый и закрытый ключи. Расскажем подробно о том, что такое ключевая пара, чем отличаются части ЭЦП, какие функции они выполняют.
Открытый ключ ЭЦП
Эта часть ключевой пары представляет собой уникальный набор символов, который формируется криптопровайдером (средством криптографической защиты информации). Открытый ключ находится в сертификате проверки электронной подписи (в электронной и бумажной версии). Он доступен всем, так как используется для расшифровки ЭЦП. То есть с его помощью получатель подписанного электронного документа может идентифицировать и проверить ЭЦП. Удостоверяющие центры хранят выданные открытые ключи в специальном реестре.
Закрытый ключ ЭЦП
Это секретный уникальный набор символов, который также формируется криптопровайдером. Закрытый ключ необходим для формирования ЭЦП на электронном документе и хранится в зашифрованном виде на носителе (токене). Доступ к закрытому ключу имеет только владелец ЭЦП, он защищен PIN-кодом. Теоретически, скопировать закрытый ключ на другой носитель можно, но делать это рекомендуется, так как безопасность использования ЭЦП гарантирована только тогда, когда закрытый ключ существует в единственном экземпляре. Если носитель с закрытым ключом утерян, то в целях безопасности необходимо отозвать ЭЦП, чтобы злоумышленники не могли ей воспользоваться.
В ключевой паре открытая и закрытая части привязаны друг к другу.
Как найти и выгрузить ключи на компьютер?
Чаще всего появляется необходимость выгрузить открытый ключ, например, чтобы предоставить его контрагентам для проверки ЭЦП. На токене сертификат проверки ключа скрыт. Как его открыть? Сделать это можно через свойства браузера или программу КриптоПро CSP. Чтобы экспортировать ключ, в первую очередь необходимо подключить токен к компьютеру.
Через свойства браузера:
В ОС Windows необходимо открыть: «Пуск» — «Панель управления» — «Свойства браузера».
В появившемся окне выбрать вкладку «Содержание», а далее — «Сертификаты».
Появится список сертификатов, в котором следует выбрать нужный, а затем нажать кнопку «Экспорт».
Появится окно «Мастер экспорта сертификатов», где нужно выбрать «Не экспортировать закрытый ключ», если это не требуется.
Выбрать формат файла «Файлы в DER-кодировке X.509 (.CER)».
Выбрать место хранения ключа и сохранить.
Через КриптоПро CSP:
В ОС Windows надо перейти в «Пуск» — «Панель управления» — «КриптоПро CSP».
В открывшемся окне следует выбрать вкладку «Сервис» и нажать «Просмотреть сертификаты в контейнере».
Через кнопку «Обзор» нужно выбрать контейнер.
В окне «Сертификат для просмотра» следует нажать кнопку «Свойства» и на вкладке «Состав» нажать «Копировать в файл».
Далее порядок действий в окне «Мастер экспорта сертификатов» аналогичный: выбрать, нужно ли сохранять закрытый ключ, установить формат и определить место хранения.
Выгрузка закрытого ключа через свойства браузера выполняется по тому же алгоритму, что и в случае с открытым. Только в окне «Мастер экспорта сертификатов» нужно выбрать «Экспортировать закрытый ключ». А порядок действий при выгрузке из КриптоПро CSP следующий:
В ОС Windows нажать «Пуск» перейти на «Панель управления» и выбрать «КриптоПро CSP».
Далее — вкладка «Сервис» и кнопка «Скопировать контейнер».
Через кнопку «Обзор» нужно выбрать контейнер и подтвердить (потребуется ввести PIN-код).
Затем нужно ввести название копии закрытого ключа и нажать «Готово».
Далее нужно выбрать, куда будет записан ключ, установить пароль для обеспечения дополнительной защиты и подтвердить действия.
Ещё раз напомним, что экспортировать закрытый ключ без необходимости, не рекомендуется. Его может использовать любой, кто имеет доступ к компьютеру, на который он скопирован.
Заказав электронную цифровую подпись в СберКорус, вы сможете самостоятельно настроить компьютер для работы с ЭЦП, посмотрев видеоинструкцию. При возникновении сложностей мы поможем настроить компьютер бесплатно. А также в любое время проконсультируем по интересующим вопросам.
Читаем контейнер закрытого ключа КриптоПро средствами OpenSSL
Речь пойдет о файлах primary.key, masks.key и header.key, которые лежат в директории ххххх.000 на флешке. Данные файлы входят в состав криптоконтейнера закрытого ключа электронной подписи криптопровайдера КриптоПро, формат которого нигде не опубликован. Целью данной статьи является чтение контейнера и преобразование закрытого ключа в формат, который может быть прочитан в библиотеке OpenSSL. Долгое время было распространено ошибочное суждение, что достаточно сделать нечто вида (primary_key XOR masks_key) и мы получим закрытый ключ в чистом (raw) виде, однако забегая вперед, можно утверждать, что в КриптоПро было применено более сложное преобразование, в худшем случае состоящее из более чем 2000 (двух тысяч) операций хеширования.
Файл primary.key
Содержит 32 байта ключа в формате Asn1. Это только половина ключа, полный ключ получается при делении этого числа по модулю Q на маску. Поле, хранящее модуль Q в библиотеке OpenSSL имеет название order. Маска лежит в файле masks.key:
Файл masks.key
Содержит 32 байта маски ключа в формате Asn1, зашифрованного на ключе хранения pwd_key. Далее 12 байт «затравочной» информации для генерации ключа хранения pwd_key, если криптоконтейнер защищен паролем, то пароль также участвует в генерации ключа хранения.
Далее контрольная сумма (имитозащита) 4 байта. Контрольной информацией для простоты мы пользоваться не будем, общий контроль будет осуществляться путем генерации открытого ключа и сравнения первых 8 байт полученного ключа с соответствующим полем из файла header.key:
Файл header.key
Читаем закрытый ключ и конвертируем
Основную работу выполняют следующие 3 функции:
1. Создаем ключ хранения исходя из 12-ти байтовой «соли» и пароля.
2. Расшифровываем основной ключ на ключе хранения.
3. Делим ключ с маской на маску.
Но так как в библиотеке OpenSLL операция деления по модулю традиционно отсутствует, пользуемся операцией взятия обратного числа и умножением.
Сборка утилиты конвертирования ключа
Далее сборка исходников описана для Linux версии.
Версию для Windows можно скачать отсюда там же есть сертификаты и закрытый ключ для тестирования, для сборки потребуется бесплатный компилятор Borland C++ 5.5
Компиляция OpenSSL библиотеки
После скачивания и распаковки исходных текстов openssl в целевой директории выполняем команды:
Получаем готовую библиотеку libcrypto.a в текущей директории.
Также потребуются заголовочные файлы из директорий engines/ccgost и include.
Компиляция privkey.c
Формирование файла закрытого ключа private.key
Тестовый закрытый ключ в криптоконтейнере lp-9a0fe.000, сертификат открытого ключа signer.cer и другие файлы для тестирования можно взять отсюда
Получаем результат работы:
Cохраняем в private.key
Пользуемся закрытым ключом private.key для подписывания файла file.txt
Проверяем подпись
Все работает просто замечательно!
Спасибо за внимание. Это была моя первая статья на хабре.
Установка сертификата и закрытого ключа
Мы опишем установку сертификата электронной подписи и закрытого ключа для ОС семейства Windows. В процессе настройки нам понадобятся права Администратора (поэтому нам может понадобится сисадмин, если он у вас есть).
Если вы еще не разобрались что такое Электронная подпись, то пожалуйста ознакомьтесь вот с этой инструкцией. Или если еще не получили электронную подпись, обратитесь в Удостоверяющий центр, рекомендуем СКБ-Контур.
Хорошо, предположим у вас уже есть электронная подпись (токен или флешка), но OpenSRO сообщает что ваш сертификат не установлен, такая ситуация может возникнуть, если вы решили настроить ваш второй или третий компьютер (разумеется подпись не «прирастает» только к одному компьютеру и ее можно использовать на нескольких компьютерах). Обычно первоначальная настройка осуществляется с помощью техподдержки Удостоверяющего центра, но допустим это не наш случай, итак поехали.
1. Убедитесь что КриптоПро CSP 4 установлен на вашем компьютере
Для этого зайдите в меню Пуск КРИПТО-ПРО КриптоПро CSP запустите его и убедитесь что версия программы не ниже 4-й.
Если ее там нет, то скачайте, установите и перезапустите браузер.
2. Если у вас токен (Рутокен например)
Прежде чем система сможет с ним работать понадобится установить нужный драйвер.
Алгоритм такой: (1) Скачиваем; (2) Устанавливаем.
Для токена может понадобиться стандартный (заводской) пин-код, здесь есть стандартные пин-коды носителей.
3. Если закрытый ключ в виде файлов
Тут есть тонкость если эти файлы записаны на жесткий диск вашего компьютера, то КриптоПро CSP не сможет их прочитать, поэтому все действия надо производить предварительно записав их на флешку (съемный носитель), причем нужно расположить их в папку первого уровня, например: E:\Andrey\ <файлики>, если расположить в E:\Andrey\keys\ <файлики>, то работать не будет.
(Если вы не боитесь командной строки, то съемный носитель можно сэмулировать примерно так: subst x: C:\tmp появится новый диск (X:), в нем будет содержимое папки C:\tmp, он исчезнет после перезагрузки. Такой способ можно использовать если вы планируете установить ключи в реестр)
Нашли файлы, записали на флешку, переходим к следующему шагу.
4. Установка сертификата из закрытого ключа
Теперь нам нужно получить сертификат, сделать это можно следующим образом:
5. Использование электронной подписи без токена или флешки (установка в реестр)
Если скорость и удобство работы для вас стоит чуть выше чем безопасность, то можно установить ваш закрытый ключ в реестр Windows. Для этого нужно сделать несколько простых действий:
Чтобы для сертификата проставить ссылку на этот закрытый ключ выполните действия из пункта (4).
Важное замечание: портал OpenSRO не «увидит» сертификат, если вышел срок его действия.
Как работает электронная подпись
Одно из полезных применений асимметричного шифрования — работа с электронной подписью. Рассказываем, как устроена ЭП изнутри и где она применяется.
Что такое электронная подпись
Электронная подпись — это технология, которая помогает подтвердить подлинность электронного документа: договора, справки, выписки или чего-то ещё.
Если упрощённо, работает так:
👉 Есть некий документ, подписанный ЭП
👉 С помощью специальной программы можно проверить подлинность этой подписи и документа
✅ Если программа говорит, что всё окей, то мы можем быть уверены: документ подписал именно тот, кто в нём указан; и с момента подписания в документе ничего не изменилось.
❌ Или программа может сказать, что подпись не совпала. Это значит, что либо документ подписал другой человек, либо после подписания кто-то изменил этот документ (например, дописал ноль в стоимость контракта). Так мы поймём, что этому документу нельзя доверять.
С технической точки зрения ЭП — небольшой файлик, который прилагается к искомому документу. Файлик пересылается вместе с основным документом, его можно передавать по открытым каналам связи, в нём нет ничего секретного.
Электронная подпись нужна, чтобы защищать договоры, выдавать официальные справки, заключать сделки и участвовать в торгах по госзакупкам.
Основа ЭП — асимметричное шифрование
Как работает: сертификаты
Электронная подпись состоит из двух принципиальных частей:
Грубо говоря, ЭП должна гарантировать, что документ подписали именно вы и что вы подписали именно этот документ.
В сертификате хранятся данные о владельце подписи:
Но смысл сертификата не в том, что там хранятся эти данные, а в том, кто эти данные туда положил. В России сертификаты и ЭП выдают специальные удостоверяющие центры — это компании, которые гарантируют, что сертификат выдаётся именно тому, кто в этом сертификате указан.
Чтобы получить сертификат, вы приходите лично в эту компанию (удостоверяющий центр), показываете документы, фотографируетесь. Вас заносят в базу удостоверяющего центра и выдают ключи электронной подписи. Так все участники электронного документооборота будут уверены, что все документы, подписанные вашими ключами, подписаны именно вами.
Как работает: алгоритмы шифрования
Допустим, вы уже сходили в удостоверяющий центр и получили на флешке сертификат и ключ электронной подписи. Теперь нужно скачать специальный софт, который и будет подписывать ваши документы и проверять чужие на подлинность.
Проблема в том, что ЭП основана на алгоритмах асимметричного шифрования, а их много: разложение на простые множители, дискретное логарифмирование, эллиптические кривые и множество других. Ключ из одного алгоритма не подойдёт для использования в другом, поэтому в России договорились использовать стандарт шифрования ГОСТ Р 34.10-2012, основанный на эллиптических кривых. Все государственные органы работают только с таким алгоритмом и не принимают другие ЭП.
Это значит, что нам нужен специальный софт, в котором уже есть этот алгоритм. Чаще всего используют КриптоПРО, реже — ViPNet CSP. С помощью этих программ можно подписать документы и проверить сертификаты на подлинность.
Принцип работы электронной подписи
Электронная подпись — это асимметричное шифрование наоборот: вы зашифровываете закрытым ключом, а расшифровать может кто угодно с помощью открытого ключа, который доступен всем.
👉 Если открытый ключ подходит к сообщению и расшифровывает его, значит, оно было зашифровано именно этим закрытым ключом — то есть именно вами.
А что если подменят сам сертификат?
Все сертификаты, которые выдаёт удостоверяющий центр, тоже подписываются электронной подписью. Чтобы проверить подлинность сертификата, можно зайти на официальный сайт удостоверяющего центра и скачать открытый ключ для проверки. Если хеш самого сертификата совпадает с хешем, который мы получили с помощью открытого ключа с сайта — значит, и сам сертификат подлинный.
Что делать, если забыл пароль к сертификату электронной подписи?
Владельцы электронной подписи часто не могут вспомнить пароль от нее. Ситуация грустная, но не безвыходная. Как восстановить доступ к подписи — читайте в статье.
Пароль или пин-код электронной подписи (ЭП или ЭЦП) схож с пин-кодом банковской карты. Он защищает подпись от мошенников, его нужно запомнить или записать на листочек и хранить подальше от самой подписи. Но, в отличие от пин-кода карточки, пароль ЭП редко используют и часто забывают.
Возьмем экономиста Василия. Он получил электронную подпись, установил ее на компьютер, задал пароль, поставил галочку «Запомнить» — и все, больше никогда эту комбинацию не вводил. Но через полгода Василий переехал в другой кабинет и сел за новый компьютер. Попытался установить на него свою подпись, но не получилось — он забыл пароль электронной подписи, а листочек, на который записывал символы, потерял.
В своей беде Василий не одинок — многие владельцы ЭП не могут вспомнить или не знают, где взять пароль электронной подписи. В этой статье расскажем, что делать в подобной ситуации и когда нужно получать новую ЭП.
Что такое пароль и пин-код электронной подписи
На электронную подпись устанавливают один из типов защиты: пароль или пин-код. Разберемся, чем они отличаются.
Пароль от контейнера электронной подписи
Пароль используют для подписи, сохраненной в память компьютера. Он защищает контейнер ЭП — папку с файлами подписи: сертификатом, закрытым и открытым ключами.
Впервые с паролем владелец ЭП встречается, когда выпускает сертификат ЭП и записывает его в реестр компьютера или на обычную флешку (не токен). Придумать пароль нужно самостоятельно — при записи программа КриптоПро CSP покажет окошко, в которое нужно ввести комбинацию чисел, символов и латинских и русских букв.
Далее этот пароль будет запрашиваться при установке подписи на компьютер, ее копировании и при каждом использовании — подписании документов, работе на электронной торговой площадке или входе в сервисы. Если, конечно, не установить галочку «Запомнить пароль».
Пин-код от токена электронной подписи
Пин-код используется для электронной подписи, которая записана на носитель в виде usb-флешки — на токен. Пин защищает токен, поэтому, если мошенники украдут носитель ЭП, то самой подписью они воспользоваться не смогут.
Впервые владелец ЭП должен ввести пин-код при выпуске подписи — когда ее записывают на токен. Если носитель новый, то нужно ввести «заводское» стандартное значение, например, 12345678 для Рутокена. «Заводское» значение лучше сразу изменить на собственное, чтобы его не смогли подобрать злоумышленники.
После этого пин-код понадобится вводить, чтобы установить сертификат подписи на компьютер, использовать и копировать ЭП, работать с ней за новым компьютером. Чтобы не вводить комбинацию каждый раз, можно нажать галочку «Запомнить пароль». Главное в таком случае самим не забыть последовательность символов.
Как восстановить пароль электронной подписи
Если пароль и пин-код подписи не удается вспомнить, то восстановить его не получится. В этом не поможет даже удостоверяющий центр, выпустивший сертификат, — он не хранит пароли ЭП. Поэтому нужно пытаться вспомнить заветную комбинацию или подобрать ее.
Забыл пароль подписи
Пароль от контейнера ЭП можно вводить неограниченное количество раз. Поэтому можно спокойно подбирать к подписи все знакомые комбинации: важные даты или код из смс, которую при выпуске сертификата присылал удостоверяющий центр. Возможно, именно этот код случайно установили на контейнер в качестве защиты.
Если подобрать пароль не удается, то доступ к сертификату можно вернуть в некоторых случаях. Если раньше пароль сохраняли на компьютере — нажимали галочку «Запомнить», то иногда такой контейнер можно скопировать без ввода пароля. Попытайтесь скопировать папку со всеми файлами подписи на другое устройство или токен. Если в процессе у вас не спросят пароль, то можно продолжать работать с ЭП.
Если не получается ни скопировать подпись, ни вспомнить пароль ЭЦП, то остается только одно — получить новый сертификат ЭП. Для этого нужно отозвать старый в удостоверяющем центре и подать документы и заявку на выпуск нового. На контейнер новой подписи стоит установить пароль, который легко запомнить, но который не угадают мошенники.
Забыл пин-код токена
Восстановить забытый пин-код токена тоже невозможно. Именно из-за этого токен — надежный носитель ЭП: если его украдут мошенники, то пин-код защитит подпись от них.
Однако для владельца ЭП есть два способа, которые помогут подобрать нужную комбинацию.
Решение №1. Заводской пароль.
По умолчанию на новом токене установлен стандартный пин-код от производителя. Можно ввести его, чтобы вернуть доступ к сертификату ЭП. Для разных носителей подойдут разные значения:
Если «заводская» комбинация к токену не подходит, значит ее сменили при записи сертификата. Тогда вернуть доступ к ЭП можно только одним способом — подобрать правильные символы.
Решение №2. Подбор пин-кода и права администратора
На то, чтобы подобрать пин-код к токену, есть десять попыток. После десятого неверного ввода символов заблокируется.
Иногда количество попыток ввода можно увеличить. Для этого нужно зайти на токен в качестве администратора и разблокировать пин-код:
Также, если пин-код администратора известен, то можно сбросить попытки ввода другим способом — через КриптоПро CSP:
После разблокировки счетчик попыток ввода сбросится. Но даже тогда, пока правильную комбинацию к токену не введут, доступ будет закрыт и использовать подпись не получится.
Если вспомнить или изменить нужную комбинацию не удалось, придется получать новый сертификат подписи в УЦ: отозвать старый сертификат и получить новый. Токен можно использовать старый — можете отформатировать носитель, тогда старый пин-код и сертификат удалятся. Отметим, что отформатировать токены марок Рутокен, eToken, JaCarta LT можно без прав администратора. Но для форматирования носителя Jacarta SE нужно знать администраторский пин.
При записи подписи на новый токен советуем поменять стандартный пин-код носителя на собственный. Это, конечно, может привести к тому, что комбинация вновь потеряется. Но лучше получить новый сертификат, чем пострадать от мошенников, которые смогли взломать «заводское» значение на токене и подписали украденной ЭП важные документы.







