Хранить ключи в памяти приложений криптопро не активна кнопка

Обновлено: 02.07.2024

1. Как я могу быть уверен, что ключевая пара сформирована самим устройством токена, а не на компьютере сотрудника налоговой (что сразу же переводит ключ в статус скомпрометирован, так как я по умолчанию не доверяю "Леночке между декретами")?

2. На компьютере с успешно установленными драйверами рутокен-а и утилитой КриптоПро CSP (не ФКН) данный ключ успешно эксплуатируется, из чего я делаю вывод, что криптопреобразования проводятся на ПК а не микропроцессором токена, следовательно ключ покидает токен? . Получается какой-то цирк безопасности?

3. Хотелось бы услышать список причин, по которым признак "неизвлекаемости" ключа стал обязательным.

  • Ксения Шаврова
  • Администратор
  • Неактивен

Далее отвечу по пунктам:

1. Как я могу быть уверен, что ключевая пара сформирована самим устройством токена, а не на компьютере сотрудника налоговой (что сразу же переводит ключ в статус скомпрометирован, так как я по умолчанию не доверяю "Леночке между декретами")?

2. На компьютере с успешно установленными драйверами рутокен-а и утилитой КриптоПро CSP (не ФКН) данный ключ успешно эксплуатируется, из чего я делаю вывод, что криптопреобразования проводятся на ПК а не микропроцессором токена, следовательно ключ покидает токен? . Получается какой-то цирк безопасности?

А вот тут не всегда. Например, «КриптоПро CSP» версии 5.0 R2 может успешно работать с неизвлекаемыми ключами PKCS, используя библиотеку rtpkcsecp и тогда ключи не извлекаются, а может работать с программными ключами и тогда токен будет в пассивном режиме хранить ключи на смарт-карте под PIN-кодом.

3. Хотелось бы услышать список причин, по которым признак "неизвлекаемости" ключа стал обязательным.

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

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

USB-флеш-накопитель (сленг. флешка, флэшка , флеш-драйв) — запоминающее устройство, использующее в качестве носителя флеш-память, и подключаемое к компьютеру или иному считывающему устройству по интерфейсу USB
ПИН (англ. Personal Identification Number — персональный идентификационный номер) — аналог пароля

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

Рекомендации по решению проблемы зависят от типа ключевого носителя, на котором расположен контейнер:

  • USB-флеш-накопитель
  • Rutoken и др. защищенные носители
  • Реестр

Flash-накопитель

Если в качестве ключевого носителя используется flash-накопитель, необходимо выполнить следующие шаги:

1. Убедиться, что в что в корне носителя находится папка, содержащая файлы: header, masks, masks2, name, primary, primary2. Файлы должны иметь расширение.key, а формат названия папки должен быть следующим: xxxxxx.000

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

Rutoken

Если в качестве ключевого носителя используется защищённый носитель Rutoken, необходимо выполнить следующие шаги:

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

2. Обновить драйвер Rutoken (см. Как обновить драйвер Rutoken?).

3. Следует убедиться, что на Rutoken содержатся ключевые контейнеры. Для этого необходимо проверить количество свободной памяти на носителе, выполнив следующие шаги:

  • Открыть «Пуск» ("Настройки") > «Панель управления» > «Панель управления Рутокен» (если данный пункт отсутствует, то следует обновить драйвер Rutoken).
  • В открывшемся окне «Панели управления Рутокен» в пункте «Считыватели» следует выбрать «Activ Co. ruToken 0 (1,2)» и нажать на кнопку «Информация».

1

  • Проверить, какое значение указано в строке «Свободная память (байт)».

В качестве ключевого носителя в сервисных центрах выдаются рутокены объемом памяти около 30000 байт. Один контейнер занимает объем порядка 4 Кб. Объем свободной памяти рутокена, содержащего один контейнер, составляет порядка 26 000 байт, двух контейнеров — 22 000 байт и т д.

Если объем свободной памяти рутокена составляет более 29-30 000 байт, то ключевые контейнеры на нем отсутствуют.

2

Реестр

Если в качестве ключевого носителя используется считыватель Реестр, необходимо выполнить следующие действия:

Убедиться, что в КриптоПро CSP настроен считыватель «Реестр». Для этого:

  • Выбрать меню «Пуск» > «Панель управления» > «КриптоПро CSP»;
  • Перейти на вкладку «Оборудование» и нажать на кнопку «Настроить считыватели».

Если считыватель отсутствует, его необходимо добавить.

В качестве считывателей (устройств — носителей ключевой информации) могут использоваться flash-накопители, реестр, смарт-карты

Иногда некоторые считыватели могут быть отключены в КриптоПро CSP. Чтобы работать с такими носителями, нужно добавить соответствующие считыватели.

Чтобы добавить считыватели:
1. Запустите КриптоПро CSP от имени администратора.

3

2. На вкладке «Оборудование» нажмите кнопку «Настроить считыватели».

4

3. В появившемся окне нажмите «Добавить».

5

4. В Мастере установки считывателей выберите, какой считыватель добавить: «Все съемные диски», «Реестр», «Все считыватели смарт-карт».

6

5. Нажмите «Далее», задайте имя считывателя при необходимости, нажмите «Готово».

В некоторых случаях для корректной работы добавленного считывателя потребуется перезагрузка.

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

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

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

Введение

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

  1. Перенести или скопировать контейнер закрытого ключа через стандартную оснастку CryptoPro в панели управления. Это самый простой и быстрый способ, если у вас не много сертификатов и ключей. Если же их несколько десятков, а это не такая уж и редкость, то такой путь вам не подходит.
  2. Скопировать сертификаты и ключи непосредственно через перенос самих исходных файлов и данных, где все это хранится. Объем работы одинаков и для 5 и для 50-ти сертификатов, но требуется больше усилий и знаний.

Я опишу оба этих способа, но подробно остановлюсь именно на втором способе. В некоторых ситуациях он является единственно возможным.

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

Копирование закрытого ключа через оснастку КриптоПро

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

Копирование закрытого ключа сертификата через оснастку КриптоПро

Далее вы выбираете текущий контейнер, который хотите скопировать. Это может быть либо токен, либо реестр компьютера. Затем новое имя и новое расположение контейнера. Опять же, это может быть как реестр, так и другой токен.

Выбор контейнер для экспорта

Ошибка копирования контейнера

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

Ошибка копирования контейнера

Ошибка копирования контейнера. У вас нет разрешений на экспорт ключа, потому что при создании ключа не был установлен соответствующий флаг. Ошибка 0x8009000B (-2146893813) Ключ не может быть использован в указанном состоянии. Либо вы просто не сможете его выбрать для копирования, если у вас последняя версия CryptoPro. Он будет неактивен:

Неэкспортируемый контейнер

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

Посмотреть список сертификатов в системе

Выбираем необходимый сертификат и нажимаем Посмотреть свойства сертификата.

Выбор сертификата

Далее переходим на вкладку Состав в информации о сертификате и нажимаем Копировать в файл.

Сохранение сертификата КриптоПро в файл

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

Невозможно экспортировать закрытый ключ

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

Формат экспортируемого ключа

Укажите какой-нибудь пароль и запомните его! Без пароля продолжить нельзя. В завершении укажите имя файла, куда вы хотите сохранить закрытый ключ. Теперь вам нужно скопировать сам сертификат. Только что мы копировали закрытый ключ для него. Не путайте эти понятия, это разные вещи. Опять выбираете этот же сертификат в списке из оснастки Crypto Pro, жмёте Копировать в файл, экспортировать БЕЗ закрытого ключа. И выбираете файл формата .CER.

Перенос сертификата

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

Вам достаточно перенести эти 2 файла на другой компьютер и кликнуть по каждому 2 раза мышкой. Откроется мастер по установке сертификатов. Вам нужно будет выбрать все параметры по умолчанию и понажимать Далее. Сертификат и контейнер закрытого ключа к нему будут перенесены на другой компьютер. Я описал первый способ переноса в ручном режиме. Им можно воспользоваться, если у вас немного сертификатов и ключей. Если их много и руками по одному переносить долго, то переходим ко второму способу.

Массовый перенос ключей и сертификатов CryptoPro с компьютера на компьютер

В интернете достаточно легко находится способ переноса контейнеров закрытых ключей КриптоПро через копирование нужной ветки реестра, где это все хранится. Я воспользуюсь именно этим способом. А вот с массовым переносом самих сертификатов у меня возникли затруднения и я не сразу нашел рабочий способ. Расскажу о нем тоже. Для дальнейшей работы нам надо узнать SID текущего пользователя, у которого мы будем копировать или переносить сертификаты с ключами. Для этого в командной строке выполните команду:

Как узнать SID пользователя

В данном случай user - имя учетной записи, для которой узнаем SID. Далее скопируем контейнеры закрытых ключей в файл. Для этого на компьютере открываем редактор реестра (regedit.exe) и переходим в ветку:

где S-1-5-21-4126888996-1677807805-1843639151-1000 - SID пользователя, у которого копируем сертификаты. Выбираем папку Keys и экспортируем ее. Этот путь актуален для 64-х битных систем - Windows 7, 8, 10. В 32-х битных путь может быть немного другой. Я специально не проверял, но поиском по реестру вы при желании найдете его.

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

Сохраняем ветку реестра в файл. В ней хранятся закрытые ключи. Теперь нам нужно скопировать сразу все сертификаты. В Windows 7, 8 и 10 они живут в директории - C:\Users\user\AppData\Roaming\Microsoft\SystemCertificates\My. Сохраняйте эту директорию. Для переноса ключей и сертификатов нам надо скопировать на другой компьютер сохраненную ветку реестра и директорию с сертификатами My.

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

Замена SID пользователя

После этого запускаем .reg файл и вносим данные из файла в реестр. Теперь скопируйте папку My с сертификатами в то же место в профиле нового пользователя. На этом перенос сертификатов и контейнеров закрытых ключей КриптоПро завершен. Можно проверять работу. Я не раз пользовался этим методом, на текущий момент он 100% рабочий. Написал статью, чтобы помочь остальным, так как сам не видел в интернете подробной и понятной с первого раза статьи на эту тему. Надеюсь, моя таковой получилась.

КриптоПро CSP ошибка 0x80090010 Отказано в доступе

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

КриптоПро CSP ошибка 0x80090010 Отказано в доступе

Права доступа в реестре на ключи

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

Часто задаваемые вопросы по теме статьи (FAQ)

Можно ли перенести сертификат, который находится на токене и защищен от копирования?

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

Безопасно ли хранить сертификаты в реестре?

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

Подойдет ли предложенный способ копирования сертификатов CryptoPro для VipNet?

Нет, не подойдет. В статье описан способ переноса сертификатов CryptoPro. Другие криптопровайдеры хранят сертификаты по-другому. Универсального способа для всех не существует.

Есть ли какой-то очень простой способ скопировать сертификаты crypto pro? То, что описано в статье слишком сложно для меня.

Да, есть статья на сайте контура, в ней ссылка на утилиту для копирования контейнеров Certfix. Можете воспользоваться ей.

вопросы

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

Что может послужить причиной такой ошибки

ошибка в контейнере закрытого ключа и причины её появления

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

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

Решение ошибки: отсутствие электронного сертификата в контейнере закрытого ключа

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

программа криптопро предложит указать место хранение сертификата

Далее, через кнопку «обзор» указываем путь, где сохранен открытый ключ – файл с расширением *.cert или *.crt

Необходимо выбрать файл и открыть его с помощью криптопро

Жмём «Далее», в мастере установки сертификата мы увидим путь, который указывали до нашего сертификата.

Убедившись, что криптопро верно распознало путь установки сертификата, подтверждаем установку

Нам отображается информация, содержащаяся в открытом ключе на пользователя, жмём «далее»

Перед импортом сертификата надо проверить содержащуюся в нем информацию

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

  • «найти контейнер автоматически
  • вручную через «обзор»

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

Мы рекомендуем использовать функцию КриптоПро «найти контейнер автоматически» или указать его вручную через «обзор»

Самый простой вариант выбрать автоматический поиск, затем после «обнаружения» необходимого контейнера, мы увидим заполненную строчку с его именем и после жмём «Далее»

после того, как указан контейнер, можно продолжить установку

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

Важно! Не забудьте поставить галку в настройках КриптоПро «установить сертификат (цепочку сертификатов) в контейнер

>

В случае успешной установки КриптоПро выдаст окно с информацией об окончании процедуры и жмём «Готово»

Можно завершать установку сетификата

Затем появится окно с подтверждением данной операции, жмём «ДА»

Криптопро предложит перезаписать сертификат – соглашаемся

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

Готово. Сертификат установлен

Особенности версий КриптоПро

С января 2019 года квалифицированные сертификаты могут выпускаться только по ГОСТ 2012, выпуск по другому ГОСТу прекращен. Мы об этом писали ранее в статье. Важно помнить, что версии криптопро на ГОСТ 2012 работают только с версии 4.0 и выше. Все старые версии КриптоПро, для нормальной работы, потребуется обновить или заменить на актуальную. Сделать это нужно не позднее 31 декабря 2019 года.

Произошла внутренняя ошибка сервера, в результате которой серверу не удалось завершить обработку Вашего запроса.

Error message:
DBI connect('host=mysql.azbykar.etersoft.ru;database=eter_bugs','eter_bugs'. ) failed: Unknown MySQL server host 'mysql.azbykar.etersoft.ru' (0) at /usr/lib/perl5/DBI.pm line 696. DBI::__ANON__(undef, undef) called at /usr/lib/perl5/DBI.pm line 753 DBI::connect("DBI", "dbi:mysql:host=mysql.azbykar.etersoft.ru;database=eter_bugs", "eter_bugs", "XyLLCu4z7djbB6mU", HASH(0xcaabd04)) called at /usr/share/perl5/DBIx/Connector.pm line 32 DBIx::Connector::_connect(DBIx::Connector=HASH(0xc8495a0)) called at /usr/share/perl5/DBIx/Connector.pm line 76 DBIx::Connector::dbh(DBIx::Connector=HASH(0xc8495a0)) called at (eval 359) line 17 Bugzilla::DB::dbh(Bugzilla::DB::Mysql=HASH(0xcc92c38)) called at /var/www/bugs.etersoft.ru/Bugzilla/DB.pm line 63 Bugzilla::DB::__ANON__(Bugzilla::DB::Mysql=HASH(0xcc92c38), "SELECT schema_data, version FROM bz_schema") called at /var/www/bugs.etersoft.ru/Bugzilla/DB.pm line 1467 Bugzilla::DB::_bz_real_schema(Bugzilla::DB::Mysql=HASH(0xcc92c38)) called at /var/www/bugs.etersoft.ru/Bugzilla/DB.pm line 1204 Bugzilla::DB::bz_column_info(Bugzilla::DB::Mysql=HASH(0xcc92c38), "fielddefs", "obsolete") called at /var/www/bugs.etersoft.ru/Bugzilla/Object.pm line 675 Bugzilla::Object::_check_field("Bugzilla::Field", "obsolete", "match") called at /var/www/bugs.etersoft.ru/Bugzilla/Object.pm line 345 Bugzilla::Object::match("Bugzilla::Field", HASH(0xcb6f5dc)) called at /var/www/bugs.etersoft.ru/Bugzilla/Field.pm line 405 Bugzilla::Field::match("Bugzilla::Field", HASH(0xcb6f5dc)) called at /var/www/bugs.etersoft.ru/Bugzilla.pm line 628 Bugzilla::active_custom_fields("Bugzilla") called at /var/www/bugs.etersoft.ru/Bugzilla/Bug.pm line 66 Bugzilla::Bug::DB_COLUMNS("Bugzilla::Bug") called at /var/www/bugs.etersoft.ru/Bugzilla/Object.pm line 892 Bugzilla::Object::_get_db_columns("Bugzilla::Bug") called at /var/www/bugs.etersoft.ru/Bugzilla/Object.pm line 107 Bugzilla::Object::_load_from_db("Bugzilla::Bug", HASH(0xce58620)) called at /var/www/bugs.etersoft.ru/Bugzilla/Object.pm line 82 Bugzilla::Object::new("Bugzilla::Bug", HASH(0xce58620)) called at /var/www/bugs.etersoft.ru/Bugzilla/Bug.pm line 341 Bugzilla::Bug::new(undef, HASH(0xce58620)) called at /var/www/bugs.etersoft.ru/Bugzilla/Bug.pm line 383 Bugzilla::Bug::check("Bugzilla::Bug", HASH(0xce58620)) called at /var/www/bugs.etersoft.ru/show_bug.cgi line 54 ModPerl::ROOT::Bugzilla::ModPerl::ResponseHandler::var_www_bugs_2eetersoft_2eru_show_bug_2ecgi::handler(Apache2::RequestRec=SCALAR(0xcb6fac8)) called at /usr/lib/perl5/ModPerl/RegistryCooker.pm line 207 eval <. >called at /usr/lib/perl5/ModPerl/RegistryCooker.pm line 207 ModPerl::RegistryCooker::run(Bugzilla::ModPerl::ResponseHandler=HASH(0xce1317c)) called at /usr/lib/perl5/ModPerl/RegistryCooker.pm line 173 ModPerl::RegistryCooker::default_handler(Bugzilla::ModPerl::ResponseHandler=HASH(0xce1317c)) called at /usr/lib/perl5/ModPerl/Registry.pm line 32 ModPerl::Registry::handler("Bugzilla::ModPerl::ResponseHandler", Apache2::RequestRec=SCALAR(0xcb6fac8)) called at /var/www/bugs.etersoft.ru/mod_perl.pl line 140 Bugzilla::ModPerl::ResponseHandler::handler("Bugzilla::ModPerl::ResponseHandler", Apache2::RequestRec=SCALAR(0xcb6fac8)) called at -e line 0 eval <. >called at -e line 0 at /usr/share/perl5/DBIx/Connector.pm line 32. ,

Если Вы считаете, что это ошибка сервера, пожалуйста, сообщите об этом веб-мастеру.

Читайте также: