Рутокен файл rsf не найден ошибка 0x6a82

Не удалось получить всю информацию о токене. Файл/ RSF не найден.

Описание

При нажатии на кнопку «Информация» на вкладке «Администрирование » в Панели Управления Рутокен появляется ошибка: Ошибка: Не удалось получить всю информацию о токене Код ошибки: 0x6a82 Описание ошибки: Файл/ RSF не найден

Причина

Вероятнее всего, ошибка указывает на ошибку файловой системы токена.

Решение

1) Подключите Рутокен к другому USB порту. Повторите попытку ввести PIN-код.

2) По возможности, установите Драйверы Рутокен на другой компьютер и подключите токен. Попробуйте ввести PIN-код.

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

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

Содержание

  1. Ошибки Рутокен
  2. Ошибка: Сертификат ненадежен/Не удалось проверить статус отзыва
  3. Ошибка: Rutoken перестает определяться (Windows 10)
  4. Ошибка: Панель управления не видит Рутокен ЭЦП 2.0
  5. Почему компьютер не видит носитель рутокен
  6. Первичная диагностика неисправности Рутокен
  7. 1. Повреждение/разлом корпуса или USB-разъема Рутокена
  8. 3. Рутокен со следами оплавления и/или почернения корпуса изнутри носителя, отпаявшаяся микросхема или вспученная поверхность микросхемы
  9. 1. Рутокен не определяется в «Панели управления Рутокен»
  10. 2. Рутокен определяется панелью управления, кнопка «Ввести PIN-код…» активна, но авторизация с PIN-кодом пользователя/администратора выполняется с ошибкой. Дальнейшие действия зависят от формулировки возникающей ошибки:
  11. 2.1 Ошибка “Не удалось получить всю информацию о токене Код ошибки: 0x6a82 Описание ошибки: Файл/ RSF не найден”
  12. 2.2 Ошибка “Не удалось получить всю информацию о токене код ошибки: 0х6400 Описание ошибки: Состояние памяти Rutoken не изменилось”
  13. 2.3 Ошибка “Не удалось получить всю информацию о токене Код ошибки 0xF003 Описание ошибки Неверное значение”
  14. 2.4 Ошибка «Обнаружено повреждение системной области памяти (ошибка CRC)» код ошибки 0x6F20
  15. 2.5 Референсные данные не найдены
  16. 2.6 «PIN-код заблокирован»
  17. 1. Проверка целостности контейнера с сертификатом “КриптоПро CSP” или “VipNet CSP”
  18. 2. Проверка целостности сертификата с неизвлекаемыми ключами
  19. Почему компьютер не видит носитель рутокен
  20. Почему компьютер не видит рутокен
  21. Установка драйвера для Windows Vista Windows Seven
  22. Установка драйвера для Windows XP
  23. Подготовка
  24. Установка драйверов и модулей ruToken
  25. Настройка считывателя в КриптоПро
  26. Установка сертификатов
  27. Почему не виден сертификат ЭЦП на носителе
  28. Причина 1: драйвер не установлен или устройство отображается в диспетчере устройств с восклицательным знаком
  29. Причина 2: долгое опознание носителя на Windows 7
  30. Причина 3: USB-порт работает некорректно
  31. Причина 4: носитель неисправен
  32. Почему выходит ошибка при создании подписи
  33. Устранение ошибки ненайденного элемента ЭЦП
  34. Устранение ошибки с построением цепочки сертификатов

Ошибки Рутокен

Из нашей статьи вы узнаете:

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

Ошибка: Сертификат ненадежен/Не удалось проверить статус отзыва

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

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

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

Ошибка: Rutoken перестает определяться (Windows 10)

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

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

Ошибка: Панель управления не видит Рутокен ЭЦП 2.0

Для решения проблемы выполните следующие действия:

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

Источник

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

Рутокен при подключении к компьютеру не отображается в Панели управления Рутокен, кнопка «Ввести PIN-код» неактивна.

image2018 5 8 14 29 34

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

Определите модель Рутокен по маркировке на самом ключе, воспользовавшись этой инструкцией.

Возможно, не хватает питания для Рутокена. Попробуйте подключить Рутокен в другой USB-порт.

Если используется удлинитель, подключите Рутокен напрямую.

Проверьте работают ли флешки, другие токены или смарт-карты.

Модель Рутокен S должна отображаться в разделе Контроллеры USB.

image2018 5 8 14 53 13

Модели Рутокен ЭЦП 2.0, Рутокен Lite должны отображаться в разделе Устройства чтения смарт-карт.

*Иногда могут отображаться как «USB Smart Card reader», «Rutoken ECP» или «Rutoken Lite»

image2018 5 8 14 52 26

Откройте Панель управления Рутокен и перейдите на вкладку Настройки.

Проверьте значение в раскрывающемся списке Количество считывателей Рутокен S. Если установлен «0», то увеличьте это значение до 1 и примените изменения

image2018 5 8 14 56 13

Если на другом компьютере Рутокен так же не определяется, скорее всего, он вышел из строя. Обратитесь в компанию, где приобретался Рутокен для его замены.

Источник

Первичная диагностика неисправности Рутокен

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

Отправка токена на экспертизу производится через ту компанию, с которой у компании «Актив» имеются договорные отношения.

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

Узнать срок гарантии на устройство Рутокен можно в той компании, в которой он приобретался.

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

Самые частые ошибки мы собрали в этой статье.

Первичная диагностика состоит из 3 этапов:

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

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

1. Повреждение/разлом корпуса или USB-разъема Рутокена

image2020 4 17 15 35 9 image2020 4 17 15 34 16

image2020 4 17 15 32 7

3. Рутокен со следами оплавления и/или почернения корпуса изнутри носителя, отпаявшаяся микросхема или вспученная поверхность микросхемы

image2020 4 17 16 55 37 image2020 4 17 16 56 4

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

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

Подключите Рутокен к компьютеру и запустите «Панель управления Рутокен».

Запуск панели управления Рутокен выполняется через меню Пуск / Панель управления / Панель управления Рутокен.

image2020 4 17 17 4 50

Если Рутокен определяется в «Панели управления Рутокен», активна кнопка «Ввести PIN-код…»

Нажмите на кнопку «Информация» на вкладке «Администрирование». Ошибок возникать не должно.

Попробуйте авторизоваться с PIN-кодом пользователя и/или администратора.

Если при нажатии на кнопку «Информация» ошибок не возникает, а авторизация выполняется успешно, следует перейти к третьему этапу диагностики носителя Рутокен

(Рутокен работает корректно, необходимо проверить целостность ключевой информации на Рутокене).

После подключения Рутокена к компьютеру возможны следующие ошибки в Панели управления Рутокен:

1. Рутокен не определяется в «Панели управления Рутокен»

image2020 4 17 17 5 41

Рутокен не определяется в «Панели управления Рутокен» (список «Подключенные Рутокен» пустой) и, как следствие, неактивны кнопки «Ввести PIN-код…» и «Информация…». В данном случае необходимо воспользоваться инструкцией.

2. Рутокен определяется панелью управления, кнопка «Ввести PIN-код…» активна, но авторизация с PIN-кодом пользователя/администратора выполняется с ошибкой. Дальнейшие действия зависят от формулировки возникающей ошибки:

2.1 Ошибка “Не удалось получить всю информацию о токене Код ошибки: 0x6a82 Описание ошибки: Файл/ RSF не найден”

Oshibka

Подключите Рутокен к другому USB порту. Повторите попытку ввода PIN-кода. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

2.2 Ошибка “Не удалось получить всю информацию о токене код ошибки: 0х6400 Описание ошибки: Состояние памяти Rutoken не изменилось”

6400

Подключите Рутокен к другому USB порту. Повторите попытку ввести PIN-код. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

2.3 Ошибка “Не удалось получить всю информацию о токене Код ошибки 0xF003 Описание ошибки Неверное значение”

F003

Подключите Рутокен к другому USB порту. Повторите попытку ввести PIN-код. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

2.4 Ошибка «Обнаружено повреждение системной области памяти (ошибка CRC)» код ошибки 0x6F20

image2020 4 17 17 8 59

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

2.5 Референсные данные не найдены

image001

Подключите Рутокен к другому USB порту. Повторите попытку ввести PIN-код. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

Более подробная информация об ошибке есть в статье нашей Базы Знаний.

2.6 «PIN-код заблокирован»

image2020 4 17 17 9 17

Ошибка «PIN-код заблокирован» означает, что Рутокен был заблокирован в результате превышения количества попыток ввода PIN-кода.

Если заблокирован PIN-код пользователя, воспользуйтесь инструкцией.

Если заблокирован PIN-код Администратора, воспользуйтесь инструкцией.

На третьем этапе проверяется целостность ключевой информации, которая содержится на Рутокене.

Определите модель Рутокена по инструкции.

Если используется носитель из семейства Рутокен ЭЦП, проверьте формат ключей по инструкции.

1. Проверка целостности контейнера с сертификатом “КриптоПро CSP” или “VipNet CSP”

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

Тестирование целостности контейнера через «КриптоПро CSP» необходимо проводить по инструкции.

Тестирование целостности контейнера через «VipNet CSP» необходимо проводить по инструкции.

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

2. Проверка целостности сертификата с неизвлекаемыми ключами

Тестирование носителей Рутокен ЭЦП 2.0 с записанными на него неизвлекаемыми ключами ЭП (PKCS#11) пользователями самостоятельно не производится. Удаленная диагностика выполняется сотрудниками технической поддержки компании Актив.

Источник

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

После прохождения проверки условий подключения по сертификату ключа проверки ЭЦП и выбора сертификата в личном кабинете юридического лица на сайте nalog.ru через Yandex браузер возникает одно из двух сообщений:

«Не удается обнаружить токен или смарт-карту. Подключите Рутокен в любой USB-порт компьютера или к картридеру» или «На Рутокене нет сертификатов. Для доступа к сайту запишите на Рутокен сертификат«.

image2019 9 5 16 7 19 image2019 9 5 16 8 6

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

Необходимо определить нужно ли расширение Рутокен Коннект и какой вариант входа нужно использовать.

Расширение Рутокен Коннект должно использоваться для входа на сайт nalog.ru только если используется модель Рутокен ЭЦП 2.0 с записанным на него сертификатом формата PKCS#11 (как для ЕГАИС).

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

2. Если используется другая модель Рутокен и/или на Рутокене содержится сертификат формата «КриптоПро CSP», то выбран правильный вариант:

нужно выполнить одно из трех действий:

a) Удалите адрес lkul.nalog.ru:443 из настроек Рутокен Коннект

image2019 9 5 17 32 40

image2019 9 5 17 37 4

b) Или удалите Адаптер Рутокен Коннект

image2019 9 5 17 41 56

с) Или удалите приложение Рутокен Коннект

image2019 9 5 18 2 17

После выполнения одного из трех действий повторите Проверку условий подключения по сертификату ЭЦП.

Источник

Почему компьютер не видит рутокен

1. Возможно, на токене перегорел светодиод (лампочка). Для проверки следует:

5469

2. Подключить Rutoken к другому USB-порту.

3. Запустить / перезапустить службу «Смарт-карта». Для этого:

4. Переустановить драйвер Rutoken, предварительно отключив носитель от компьютера.
Для этого открыть меню «Пуск» > «Панель управления» > «Установка и удаление программ» (для ОС Windows Vista Windows Seven меню «Пуск» > «Панель управления» > «Программы и компоненты»). В списке найти пункт «Rutoken Drivers» и выбрать «Удалить». После удаления необходимо перезагрузить компьютер и установить драйвер Rutoken заново.

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

Установка драйвера для Windows Vista Windows Seven

1. Кликнуть по значку «Мой компьютер» правой кнопкой мыши и выбрать элемент «Свойства».

2. В открывшемся меню выбрать «Диспетчер устройств».

picture 1502

3. В открывшемся окне проверить, нет ли в списке элемента «Другие устройства», обозначенного желтым значком.

picture 826

4. Необходимо выделить строку «ruToken» и выбрать «Обновить драйверы».

picture 827

5. Далее выбрать «Выполнить поиск драйверов на этом компьютере».

picture 828

6. Нажать на кнопку «Обзор», указать каталог C:WindowsSystem32Aktiv Co и нажать на кнопку «Далее». Указанный каталог может быть скрытым. В таком случае необходимо выбрать меню «Сервис» > «Параметры папок» > «Вид», установить переключатель «Показывать скрытые файлы, папки и диски» и повторить выбор каталога.

picture 829

7. Дождаться окончания установки и нажать на кнопку «Закрыть».

picture 830

8. После установки драйвера устройство будет отображаться в разделе «Контроллеры USB». На токене также должен загореться диод.

picture 831

Установка драйвера для Windows XP

1. Кликнуть по значку «Мой компьютер» правой кнопкой мыши и выбрать элемент «Свойства».

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

picture 832

3. В открывшемся окне проверить, нет ли в списке элемента «ruToken» (либо «Неизвестное устройство»), обозначенного желтым значком. Необходимо кликнуть по нему правой кнопкой мыши и выбрать «Обновить драйвер».

picture 833

4. В окне «Мастер обновления оборудования» установить переключатель «Установка из указанного места».

picture 834

5. В открывшемся окне нажать на кнопку «Обзор», указать путь к каталогу C:Windowssystem32Aktiv Co
t USB и нажать на кнопку «Далее». Указанный каталог может быть скрытым. В таком случае необходимо выбрать меню «Сервис» > «Параметры папок» > «Вид», установить переключатель «Показывать скрытые файлы, папки и диски» и повторить выбор каталога

picture 835

6. Дождаться окончания установки и нажать на кнопку «Готово».

picture 836

7. По завершении установки драйвера устройство будет отображаться в разделе «Контроллеры универсальной последовательной шины USB». На токене также должен загореться диод.

picture 837

6. В случае если выполнение инструкций не помогло исправить ошибку, токен, скорее всего, неисправен. Чтобы в этом убедиться, следует присоединить Rutoken к компьютеру, на котором никогда не устанавливался драйвер. Если носитель работает корректно, то должен запуститься «Мастер установки нового оборудования». Если при присоединении рутокена ничего не происходит, то носитель, вероятнее всего, неисправен, и его необходимо сменить.

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

%D0%9C%D0%B0%D1%80%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0 %D0%BE%D0%B1%D1%89 206%D1%8577 11.18

%D0%91%D0%B0%D0%BD%D0%BD%D0%B5%D1%80 216%D1%8590 11.10.17

vk 180

Подготовка

Установка драйверов и модулей ruToken

Для установки драйверов необходимо:

Настройка считывателя в КриптоПро

Откроется окно со списком установленных считывателей. Если в списке нет считывателя Все считыватели смарт-карт, нажмите кнопку «Добавить»

Если кнопка «Добавить» не активна, то нужно перейти на вкладку «Общие» и нажать на ссылку «Запустить с правами администратора».
RU 3.6 2.0

Для продолжения установки считывателя нажмите кнопку «Далее»

В следующем окне выберите считыватель Все считыватели смарт-карт и нажмите кнопку «Далее»
RU 3.6 3.0

Для продолжения установки нажмите кнопку «Далее»
RU 3.6 4.0

Установка сертификатов

Для того, чтобы система стала запрашивать ruToken при входе, с него нужно установить сертификат. Чтобы узнать, как это сделать, перейдите по данной ссылке (нажмите здесь чтобы перейти).

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

rabota za kompyuterom

Почему не виден сертификат ЭЦП на носителе

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

Причина 1: драйвер не установлен или устройство отображается в диспетчере устройств с восклицательным знаком

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

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

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

Причина 2: долгое опознание носителя на Windows 7

При работе в ОС Windows 7 драйверы могут долго назначаться. Решение проблемы — дождитесь окончания процесса или обновите версию ОС.

Причина 3: USB-порт работает некорректно

Убедитесь, что проблема в USB-порте, а не в носителе ЭЦП, для этого переключите токен к другому порту. Если носитель определился системой, то перезагрузите ПК. Обычно это помогает справиться с проблемой и запустить работу всех USB-портов. Если перезагрузка не помогла, то желательно обратиться в техническую поддержку для устранения неисправности.

sertifikat jeup ne viden na nositele

Причина 4: носитель неисправен

Если при переключении носителя к другому ПК или USB-порту флешку компьютер не видит, то проблема в носителе. Чтобы устранить неисправность, обратитесь в сервисный центр для выпуска нового токена.

Почему выходит ошибка при создании подписи

Ошибка создания подписи обычно имеет в расшифровке два значения:

Неисправность работы подписи связана с некорректной работой криптопровайдера, неустановленными или необновленными сертификатами.

Решение проблемы зависит от типа ошибки и обычно не требует обращения в техническую поддержку.

Устранение ошибки ненайденного элемента ЭЦП

Переустановите криптопровайдер на неисправном ПК с официального портала КриптоПро (https://www.cryptopro.ru/downloads). После этого очистите кэш и временные файлы в используемом браузере, а также кэш Java. Затем удалите личные сертификаты и сертификаты главного удостоверяющего центра. Используйте КриптоПро и заново установите новые в соответствии с именем контейнера. После установки корневых сертификатов:

Если после проделанной работы ошибка сохраняется, то нужно обратиться в сервисный центр.

Устранение ошибки с построением цепочки сертификатов

Обычно ошибку вызывает отсутствие сертификатов доверенных корневых центров. Чтобы устранить неисправность, нужно открыть список сертификатов и найти проблемный. Он будет иметь отметку о проблеме в проверке отношений:

rundll 1

Затем пользователь скачивает с официальной страницы сертификат Минкомсвязи РФ и сертификат удостоверяющего центра, имеющего проблемы в работе. Устанавливают их в раздел «‎Корневые сертификаты»‎, а пошаговый процесс выглядит так:

В нужном сертификате нажать «‎Установить».

error 02

В мастере импорта сертификатов нажать «‎Далее» и в новом окне поставить галочку напротив «‎Поместить все сертификаты в следующем хранилище». Нажать «‎Обзор».

error 03

В открывшемся списке выбрать «‎Доверенные корневые центры» и нажать последовательно «‎ОК» и «‎Далее».

error 04

Нажать «‎Готово», а затем подтвердить установку.

error 05

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

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

Источник

Содержание

  1. 0x54f внутренняя ошибка рутокен
  2. Стандартные коды ошибок
  3. Первичная диагностика неисправности Рутокен
  4. Первый этап диагностики — Визуальный осмотр Рутокена
  5. 1. Повреждение/разлом корпуса или USB-разъема Рутокена
  6. 2. На корпусе Рутокена видны следы попыток вскрыть носитель
  7. 3. Рутокен со следами оплавления и/или почернения корпуса изнутри носителя, отпаявшаяся микросхема или вспученная поверхность микросхемы
  8. Второй этап диагностики — Возможные ошибки при работе с Панелью управления Рутокен
  9. 1. Рутокен не определяется в «Панели управления Рутокен»
  10. 2. Рутокен определяется панелью управления, кнопка «Ввести PIN-код…» активна, но авторизация с PIN-кодом пользователя/администратора выполняется с ошибкой. Дальнейшие действия зависят от формулировки возникающей ошибки:
  11. 2.1 Ошибка “Не удалось получить всю информацию о токене Код ошибки: 0x6a82 Описание ошибки: Файл/ RSF не найден”
  12. 2.2 Ошибка “Не удалось получить всю информацию о токене код ошибки: 0х6400 Описание ошибки: Состояние памяти Rutoken не изменилось”
  13. 2.3 Ошибка “Не удалось получить всю информацию о токене Код ошибки 0xF003 Описание ошибки Неверное значение”
  14. 2.4 Ошибка «Обнаружено повреждение системной области памяти (ошибка CRC)» код ошибки 0x6F20
  15. 2.5 Референсные данные не найдены
  16. 2.6 «PIN-код заблокирован»
  17. Третий этап диагностики — Диагностика ключевой информации, содержащейся на Рутокене
  18. 1. Проверка целостности контейнера с сертификатом “КриптоПро CSP” или “VipNet CSP”
  19. 2. Проверка целостности сертификата с неизвлекаемыми ключами
  20. 0x54f внутренняя ошибка рутокен
  21. Стандартные коды ошибок
  22. Ошибки Рутокен
  23. Ошибка: Сертификат ненадежен/Не удалось проверить статус отзыва
  24. Ошибка: Rutoken перестает определяться (Windows 10)
  25. Ошибка: Панель управления не видит Рутокен ЭЦП 2.0

0x54f внутренняя ошибка рутокен

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

  • стандартные коды ошибок, которые описаны в стандарте. Для каждого кода ошибки есть разъяснение, в каких ситуациях он может быть возвращен.
  • специальные коды ошибок, которые определяются каждым разработчиком реализации стандарта PKCS#11. Ситуации, в которых могут быть возвращены специальные коды ошибок разработчик реализации стандарта определяет самостоятельно.

Все функции из реализации стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).

Все функции из реализации расширения стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).

Стандартные коды ошибок

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

В таблице ниже приведен список кодов ошибок стандарта PKCS#11 и их описаний, поддерживаемых устройствами Рутокен. Подробную информацию по каждому коду ошибки можно найти в стандарте (английский язык).

Коды ошибок стандарта PKCS #11, поддерживаемые устройствами Рутокен

Источник

Первичная диагностика неисправности Рутокен

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

Отправка токена на экспертизу производится через ту компанию, с которой у компании «Актив» имеются договорные отношения.

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

Узнать срок гарантии на устройство Рутокен можно в той компании, в которой он приобретался.

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

Самые частые ошибки мы собрали в этой статье.

Первичная диагностика состоит из 3 этапов:

  1. Визуальный осмотр Рутокена. На данном этапе определяется, попадает ли Рутокен под гарантию по сроку его использования, а также выявляются механические повреждения Рутокена.
  2. Возможные ошибки в «Панели управления Рутокен» На данном этапе определяются неисправности, которые могут быть выявлены только путем подключения Рутокена к компьютеру.
  3. Диагностика ключевой информации, содержащейся на Рутокене. На данном этапе проверяется целостность ключевой информации, которая содержится на носителе Рутокен с помощью вспомогательных инструментов, таких как: “Панель управления Рутокен”, “КриптоПро CSP” или «ViPNet CSP».

Первый этап диагностики — Визуальный осмотр Рутокена

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

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

1. Повреждение/разлом корпуса или USB-разъема Рутокена

2. На корпусе Рутокена видны следы попыток вскрыть носитель

3. Рутокен со следами оплавления и/или почернения корпуса изнутри носителя, отпаявшаяся микросхема или вспученная поверхность микросхемы

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

Второй этап диагностики — Возможные ошибки при работе с Панелью управления Рутокен

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

Подключите Рутокен к компьютеру и запустите «Панель управления Рутокен».

Запуск панели управления Рутокен выполняется через меню Пуск / Панель управления / Панель управления Рутокен.

Если Рутокен определяется в «Панели управления Рутокен», активна кнопка «Ввести PIN-код…»

Нажмите на кнопку «Информация» на вкладке «Администрирование». Ошибок возникать не должно.

Попробуйте авторизоваться с PIN-кодом пользователя и/или администратора.

Если при нажатии на кнопку «Информация» ошибок не возникает, а авторизация выполняется успешно, следует перейти к третьему этапу диагностики носителя Рутокен

(Рутокен работает корректно, необходимо проверить целостность ключевой информации на Рутокене).

После подключения Рутокена к компьютеру возможны следующие ошибки в Панели управления Рутокен:

1. Рутокен не определяется в «Панели управления Рутокен»

Рутокен не определяется в «Панели управления Рутокен» (список «Подключенные Рутокен» пустой) и, как следствие, неактивны кнопки «Ввести PIN-код…» и «Информация…». В данном случае необходимо воспользоваться инструкцией.

2. Рутокен определяется панелью управления, кнопка «Ввести PIN-код…» активна, но авторизация с PIN-кодом пользователя/администратора выполняется с ошибкой. Дальнейшие действия зависят от формулировки возникающей ошибки:

2.1 Ошибка “Не удалось получить всю информацию о токене Код ошибки: 0x6a82 Описание ошибки: Файл/ RSF не найден”

Подключите Рутокен к другому USB порту. Повторите попытку ввода PIN-кода. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

2.2 Ошибка “Не удалось получить всю информацию о токене код ошибки: 0х6400 Описание ошибки: Состояние памяти Rutoken не изменилось”

Подключите Рутокен к другому USB порту. Повторите попытку ввести PIN-код. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

2.3 Ошибка “Не удалось получить всю информацию о токене Код ошибки 0xF003 Описание ошибки Неверное значение”

Подключите Рутокен к другому USB порту. Повторите попытку ввести PIN-код. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

2.4 Ошибка «Обнаружено повреждение системной области памяти (ошибка CRC)» код ошибки 0x6F20

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

2.5 Референсные данные не найдены

Подключите Рутокен к другому USB порту. Повторите попытку ввести PIN-код. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

Более подробная информация об ошибке есть в статье нашей Базы Знаний.

2.6 «PIN-код заблокирован»

Ошибка «PIN-код заблокирован» означает, что Рутокен был заблокирован в результате превышения количества попыток ввода PIN-кода.

Если заблокирован PIN-код пользователя, воспользуйтесь инструкцией.

Если заблокирован PIN-код Администратора, воспользуйтесь инструкцией.

Третий этап диагностики — Диагностика ключевой информации, содержащейся на Рутокене

На третьем этапе проверяется целостность ключевой информации, которая содержится на Рутокене.

Определите модель Рутокена по инструкции.

Если используется носитель из семейства Рутокен ЭЦП, проверьте формат ключей по инструкции.

1. Проверка целостности контейнера с сертификатом “КриптоПро CSP” или “VipNet CSP”

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

Тестирование целостности контейнера через «КриптоПро CSP» необходимо проводить по инструкции.

Тестирование целостности контейнера через «VipNet CSP» необходимо проводить по инструкции.

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

2. Проверка целостности сертификата с неизвлекаемыми ключами

Тестирование носителей Рутокен ЭЦП 2.0 с записанными на него неизвлекаемыми ключами ЭП (PKCS#11) пользователями самостоятельно не производится. Удаленная диагностика выполняется сотрудниками технической поддержки компании Актив.

Если у вас возникли вопросы — обращайтесь в службу технической поддержки компании “Актив”.

Источник

0x54f внутренняя ошибка рутокен

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

  • стандартные коды ошибок, которые описаны в стандарте. Для каждого кода ошибки есть разъяснение, в каких ситуациях он может быть возвращен.
  • специальные коды ошибок, которые определяются каждым разработчиком реализации стандарта PKCS#11. Ситуации, в которых могут быть возвращены специальные коды ошибок разработчик реализации стандарта определяет самостоятельно.

Все функции из реализации стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).

Все функции из реализации расширения стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).

Стандартные коды ошибок

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

В таблице ниже приведен список кодов ошибок стандарта PKCS#11 и их описаний, поддерживаемых устройствами Рутокен. Подробную информацию по каждому коду ошибки можно найти в стандарте (английский язык).

Коды ошибок стандарта PKCS #11, поддерживаемые устройствами Рутокен

Источник

Ошибки Рутокен

Из нашей статьи вы узнаете:

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

Ошибка: Сертификат ненадежен/Не удалось проверить статус отзыва

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

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

  • выберите ваш сертификат в панели управления;
  • нажмите кнопку «Свойства»;
  • выберите вкладку «Путь сертификации».

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

Ошибка: Rutoken перестает определяться (Windows 10)

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

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

Ошибка: Панель управления не видит Рутокен ЭЦП 2.0

Для решения проблемы выполните следующие действия:

  • подключите токен к другому USB-разъему или компьютеру для оценки работоспособности;
  • определите наличие устройства через «Диспетчер устройств» в разделе «Контроллеры USB»;
  • проконтролируйте наличие доступа к веткам реестра
    • HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptographyCalais и
    • HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptographyCalaisReaders у текущего пользователя и Local Service (если необходимо, то добавьте), также убедитесь, что Служба «Смарт-карта» запущена от имени NT AUTHORITYLocalService («Пуск» — «Панель управления» — «Администрирование» — «Службы»).;
  • проверьте количество считывателей в настройках панели управления (должно быть значение 1);
  • переустановите комплект драйверов для исключения сбоя программного обеспечения.

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

Источник

В этой статье мы познакомимся со стандартом PKCS#11, предназначенным для работы с различными криптографическими устройствами. Для демонстрации мы будем использовать токены и смарт-карты Рутокен ЭЦП 2.0.

Чтобы вам было проще понять эту информацию, перед её прочтением желательно:

  • ознакомиться с инфраструктурой PKI;

  • знать, что такое CMS-подпись;

  • знать, для чего нужен Рутокен и что он может.

Исходя из определения из Википедии:

PKCS #11 — один из стандартов семейства Public-Key Cryptography Standards (PKCS). Он определяет платформонезависимый программный интерфейс доступа к криптографическим устройствам смарт-картам, токенам, криптографическим ускорителям, серверам ключей и другим средствам криптографической защиты информации. Иногда именуется Cryptoki.

Проще говоря, PKCS#11 определяет платформонезависимый набор функций, структуры, константы и т.п. для работы с криптографическими устройствами. Эти функции могут быть реализованы внутри различных библиотек, например, opensc-pkcs11 или в нашей библиотеке по работе с устройствами Рутокен rtpkcs11ecp. Библиотеки могут отличаться не только реализацией, но и самим набором функций, типов и констант. Это возможно, так как стандарт PKCS#11 описывает различные способы расширения, что позволяет добавлять свои функции, например, для работы с CMS-подписью, флеш-памятью и т.п.

Но давайте обо всем по порядку. В первую очередь, определимся, что из себя представляют функции PKCS#11-библиотек. Функции PKCS#11 внутри — это обертки для работы с токенами и смарт-картами через APDU команды…

Про APDU

APDU — “язык ассемблера” для устройств.

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

  1. Токену или смарт-карте посылается байтовая последовательность;

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

Что же могут содержать внутри себя такие команды? Все, что угодно! Начиная с просьбы отправить информацию об устройстве или записать какие-то данные на него и заканчивая просьбой зашифровать указанное сообщение. Более того, эти команды могут быть разбиты на несколько, что позволяет оптимизировать работу с токеном и сделать ее конвейерной. К примеру, при шифровании сообщения устройству может передаваться небольшая часть сообщения, а он в ответ будет высылать результат шифрования только этой части. Эта особенность может быть использована при работе с данными больших размеров.

И вот вроде бы все хорошо: APDU даёт полную возможность для общения с токеном и смарт-картой, но зачем же тогда нужна PKCS#11-обертка? Причины достаточно очевидны:

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

  • Программирование через APDU-команды имеет “низкий КПД”. При выполнении даже самой простой операции надо написать множество команд. PKCS#11 устраняет эту проблему: при выполнении одной функции PKCS#11 посылается несколько APDU команд. Меньше пишешь — больше делаешь.

Теперь, когда мы знаем что лежит в основе PKCS#11-команд, перейдем к рассмотрению цикла работы с устройством.

Репозиторий с примерами

Чтобы улучшить понимание представленных ниже примеров рекомендуем:

  1. Клонировать репозиторий с примерами.

  2. Выполнить настройку системы согласно README.

  3. Попробовать собрать примеры.

  4. Отформатировать устройство семейства Рутокен ЭЦП 2.0 с помощью примера ex0_format_token.

Цикл работы с токеном

Придержим пока описание содержимого стандарта PKCS#11 и дадим поверхностное представление о том, как происходит работа с токеном в целом. Для этого рассмотрим листинг смены PIN-кода Пользователя на токене и смарт-карте:

#include 
#include "utils.h"

extern CK_FUNCTION_LIST_PTR functionList;                 // Указатель на список функций PKCS#11, хранящийся в структуре CK_FUNCTION_LIST
extern CK_FUNCTION_LIST_EXTENDED_PTR functionListEx;      // Указатель на список функций расширения PKCS#11, хранящийся в структуре CK_FUNCTION_LIST_EXTENDED

int change_pin_code(CK_SLOT_ID slot, char* oldPin, char* newPin);

int main(void)
{
    CK_SLOT_ID_PTR slots;                              // Массив идентификаторов слотов
    CK_ULONG slotCount;                                // Количество идентификаторов слотов в массиве
    char* oldPin = "12345678";
    char* newPin = "12345678";

    CK_RV rv;                                          // Код возврата. Могут быть возвращены только ошибки, определенные в PKCS#11
    int errorCode = 1;                                 // Флаг ошибки

    // инициализируем библиотеку
    if (init_pkcs11()) 
        goto exit;

    // получаем список слотов
    if (get_slot_list(&slots, &slotCount))
        goto free_pkcs11;

    if (slotCount == 0) {
        printf("No token foundn");
        goto free_slots;
    }

    // изменяем PIN-код
    if (change_pin_code(slots[0], oldPin, newPin))
        goto free_slots;


    errorCode = 0;

    /*************************************************************************
    * Очистить память, выделенную под слоты                                  *
    *************************************************************************/
free_slots:
    free(slots);

    /*************************************************************************
    * Деинициализировать библиотеку                                          *
    *************************************************************************/
free_pkcs11:
    free_pkcs11();

exit:
    if (errorCode) {
        printf("nnSome error occurred. Sample failed.n");
    } else {
        printf("nnSample has been completed successfully.n");
    }

    return errorCode;
}

Внутри заголовочного файла utils.h находится описание функций init_pkcs11, free_pkcs11, get_slot_list. Их определение мы дадим ниже.

Всю работу с токеном можно разделить на три этапа:

Подготовительный этап

Мы реализовали его внутри функции init_pkcs11:

#include "utils.h"

CK_FUNCTION_LIST_PTR functionList;                 // Указатель на список функций PKCS#11, хранящийся в структуре CK_FUNCTION_LIST
CK_FUNCTION_LIST_EXTENDED_PTR functionListEx;      // Указатель на список функций расширения PKCS#11, хранящийся в структуре CK_FUNCTION_LIST_EXTENDED
static HMODULE module;

int init_pkcs11()
{
    CK_C_GetFunctionList getFunctionList;              // Указатель на функцию C_GetFunctionList
    CK_C_EX_GetFunctionListExtended getFunctionListEx; // Указатель на функцию C_EX_GetFunctionListExtended

    /* Параметры для инициализации библиотеки: разрешаем использовать объекты синхронизации операционной системы */
    CK_C_INITIALIZE_ARGS initArgs = { NULL_PTR, NULL_PTR, NULL_PTR, NULL_PTR, CKF_OS_LOCKING_OK, NULL_PTR };

    CK_RV rv;                      // Код возврата PKCS#11 функций
    int errorCode = 1;                                 // Флаг ошибки

    /*************************************************************************
    * Выполнить действия для начала работы с библиотекой PKCS#11             *
    *************************************************************************/
    printf("Initialization...n");

    /*************************************************************************
    * Загрузить библиотеку                                                   *
    *************************************************************************/
    module = LoadLibrary(PKCS11_LIBRARY_DIR "/" PKCS11ECP_LIBRARY_NAME);
    CHECK(" LoadLibrary", module != NULL, exit);

    /*************************************************************************
    * Получить адрес функции запроса структуры с указателями на функции      *
    *************************************************************************/
    getFunctionList = (CK_C_GetFunctionList)GetProcAddress(module, "C_GetFunctionList");
    CHECK(" GetProcAddress (C_GetFunctionList)", getFunctionList != NULL, unload_pkcs11);

    /*************************************************************************
    * Получить адрес функции запроса структуры с указателями на функции      *
    * расширения стандарта PKCS#11                                           *
    *************************************************************************/
    getFunctionListEx = (CK_C_EX_GetFunctionListExtended)GetProcAddress(module, "C_EX_GetFunctionListExtended");
    CHECK(" GetProcAddress (C_EX_GetFunctionListExtended)", getFunctionList != NULL, unload_pkcs11);

    /*************************************************************************
    * Получить структуру с указателями на функции                            *
    *************************************************************************/
    rv = getFunctionList(&functionList);
    CHECK_AND_LOG(" Get function list", rv == CKR_OK, rvToStr(rv), unload_pkcs11);

    /*************************************************************************
    * Получить структуру с указателями на функции расширения стандарта       *
    *************************************************************************/
    rv = getFunctionListEx(&functionListEx);
    CHECK_AND_LOG(" Get function list extended", rv == CKR_OK, rvToStr(rv), unload_pkcs11);

    /*************************************************************************
    * Инициализировать библиотеку                                            *
    *************************************************************************/
    rv = functionList->C_Initialize(&initArgs);
    CHECK_AND_LOG(" C_Initialize", rv == CKR_OK, rvToStr(rv), unload_pkcs11);

    errorCode = 0;

    /*************************************************************************
    * Выгрузить библиотеку из памяти                                         *
    *************************************************************************/
unload_pkcs11:
    if (errorCode)
        CHECK_RELEASE(" FreeLibrary", FreeLibrary(module), errorCode);
exit:
    return errorCode;
}

Здесь происходит следующее:

  1. В память процесса подгружается PKCS#11-библиотека, хранящаяся по пути PKCS11ECP_LIBRARY_NAME, с помощью функции LoadLibrary (стандартная функция для Windows-систем, для Linux-систем определена обертка).

  2. Далее из библиотеки вытаскиваются указатели на функции C_GetFunctionList и C_EX_GetFunctionListExtended. Первая функция определена в стандарте PKCS#11 и позволяет получить структуру указателей на функции библиотеки. Вторая — является специфичной для библиотеки rtpkcs11ecp и позволяет получить схожую структуру указателей на функции расширения библиотеки. О функциях расширения мы поговорим позже.

  3. Потом мы вызываем полученную функцию C_GetFunctionList и получаем уже саму структуру указателей на функции.

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

Основной этап

Основной этап можно разделить на работу со слотами и работу внутри сессии

Этап работы со слотами

Слот — это дескриптор виртуального интерфейса, куда подключен токен. Конкретно в нашем примере весь этап работы со слотами уместился в определение одной функции get_slot_list:

int get_slot_list(CK_SLOT_ID_PTR* slots_ptr, CK_ULONG_PTR slotCount)
{
    CK_RV rv;
    int errorCode = 1;

    /*************************************************************************
    * Получить количество слотов c подключенными токенами                    *
    *************************************************************************/
    rv = functionList->C_GetSlotList(CK_TRUE, NULL_PTR, slotCount);
    CHECK_AND_LOG(" C_GetSlotList (number of slots)", rv == CKR_OK, rvToStr(rv), exit);

    CHECK_AND_LOG(" Checking available tokens", *slotCount > 0, " No tokens available", exit);

    /*************************************************************************
    * Получить список слотов c подключенными токенами                        *
    *************************************************************************/
    *slots_ptr = (CK_SLOT_ID_PTR)malloc(*slotCount * sizeof(CK_SLOT_ID));
    CHECK(" Memory allocation for slots", *slots_ptr != NULL_PTR, exit);

    rv = functionList->C_GetSlotList(CK_TRUE, *slots_ptr, slotCount);
    CHECK_AND_LOG(" C_GetSlotList", rv == CKR_OK, rvToStr(rv), free_slots);
    printf(" Slots available: %dn", (int)*slotCount);

    /*************************************************************************
    * Выставить признак успешного завершения программы                       *
    *************************************************************************/
    errorCode = 0;

free_slots:
    if (errorCode)
    {
        free(*slots_ptr);
    }

exit:
    return errorCode;
}

Работа со слотами происходит примерно в такой последовательности:

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

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

Этап работы внутри сессии

Сессия — это дескриптор контекста выполнения последовательности операций. Обычно во время сессий выполняются основные функции работы с токеном или смарт-картой: шифрование, подпись и т.п. В нашем случае выполняется смена PIN-кода:

int change_pin_code(CK_SLOT_ID slot, char* oldPin, char* newPin)
{
    CK_SESSION_HANDLE session;                         // Хэндл открытой сессии
    CK_RV rv;                                          // Код возврата. Могут быть возвращены только ошибки, определенные в PKCS#11
    int errorCode = 1;

    /*************************************************************************
    * Открыть RW сессию в первом доступном слоте                             *
    *************************************************************************/
    rv = functionList->C_OpenSession(slot, CKF_SERIAL_SESSION | CKF_RW_SESSION, NULL_PTR, NULL_PTR, &session);
    CHECK_AND_LOG(" C_OpenSession", rv == CKR_OK, rvToStr(rv), exit);

    /*************************************************************************
    * Выполнить аутентификацию Пользователя                                *
    *************************************************************************/
    rv = functionList->C_Login(session, CKU_USER, oldPin, strlen(oldPin));
    CHECK_AND_LOG(" C_Login (CKU_USER)", rv == CKR_OK, rvToStr(rv), close_session);

    /*************************************************************************
    * Установить PIN-код Пользователя по умолчанию                           *
    *************************************************************************/
    printf("nChanging user PIN to default...n");

    rv = functionList->C_SetPIN(session, NULL_PTR, 0, newPin, strlen(newPin));
    CHECK_AND_LOG(" C_SetPIN", rv == CKR_OK, rvToStr(rv), logout);

    printf("User PIN has been changed to default successfully.n");

    errorCode = 0;

    /*************************************************************************
    * Сбросить права доступа                                                 *
    *************************************************************************/
logout:
    rv = functionList->C_Logout(session);
    CHECK_RELEASE_AND_LOG(" C_Logout", rv == CKR_OK, rvToStr(rv), errorCode);

    /*************************************************************************
    * Закрыть открытую сессию в слоте                                        *
    *************************************************************************/
close_session:
    rv = functionList->C_CloseSession(session);
    CHECK_RELEASE_AND_LOG(" C_CloseSession", rv == CKR_OK, rvToStr(rv), errorCode);
exit:
    return errorCode;
}

Работу внутри сессий можно разделить на несколько этапов:

  1. Открытие сессии в слоте с помощью функции C_OpenSession.

  2. Аутентификация пользователя с помощью функции C_Login. Стандартно на Рутокене присутствуют два пользователя: Администратор (CKU_SO) и Пользователь (CKU_USER). Аутентификация на устройстве — не является обязательной операцией. Она нужна, когда мы хотим получить доступ к операциям и объектам, которые требуют наличия соответствующих прав доступа. В нашем случае, это операция смены PIN-кода Пользователя.

  3. Выполнение различных функций по работе с сессиями. В нашем случае это функция C_SetPIN.

  4. Далее по нисходящей могут идти операции сброса прав доступа (C_Logout) и завершения сессии (C_CloseSession).

Завершающий этап

Весь наш завершающий этап поместился внутри определения функции free_pkcs11:

int free_pkcs11()
{
        CK_RV rv;
        int errorCode;

        printf("nFinalizing... n");

    rv = functionList->C_Finalize(NULL_PTR);
        CHECK_RELEASE_AND_LOG(" C_Finalize", rv == CKR_OK, rvToStr(rv), errorCode);

    CHECK_RELEASE(" FreeLibrary", FreeLibrary(module), errorCode);

        return errorCode;
}

Завершающий этап можно разделить на:

  1. Деинициализацию библиотеки с помощью функции C_Finalize.

  2. Выгрузку библиотеки из памяти процесса через функцию FreeLibrary (для Linux-систем имеется обертка).

Классификация функций PKCS#11

Стандартные функции и функции расширения

В общем виде все функции внутри PKCS#11-библиотек можно разделить на:

  • Стандартные — те, что явно описаны в стандарте. Список указателей на эти функции можно получить с помощью функции C_GetFunctionList, хранящейся в этой же библиотеке. Сами же стандартные функции имеют префикс «C_».

  • Расширения — те, что были добавлены разработчиками библиотеки и не описаны в стандарте. Стандарт явно не определяет функцию для получения списка расширенных функций. Но в библиотеке rtpkcs11ecp этой функцией является C_EX_GetFunctionListExtended. Сами же функции-расширения обычно имеют префикс «C_EX_».

Описание стандартных функций можно найти в документации PKCS#11. Про то, как работать с расширениями — надо смотреть у разработчиков конкретных библиотек. Например, у нас для этого есть отдельная страница на портале документации.

Разделение по предназначению

С другой стороны, функции PKCS#11 можно классифицировать по их предназначению. Логично выделить следующие виды функций:

  • Функции общего назначения. Например, для получения списка функций или получения информации о библиотеке.

  • Функции работы со слотами. Они не зависят от контекста работы с токеном. Например, C_GetSlotInfo, C_GetTokenInfo и т.п.

  • Функции для работы с сессиями. Как уже говорилось ранее, обычно во время выполнения этих функций осуществляется основное взаимодействие с токеном. При выполнении функции внутри сессии контекст работы с токеном не теряется. Самый простой пример этих функций: функция аутентификации (C_Login), функции работы с закрытым ключом на токене (C_Sign, C_Encrypt) и т.п.

Атомарные и составные операции

Некоторые операции в PKCS#11 работают привычным для нас образом: вызвал функцию — получил результат. Но есть и операции, реализация которых выстроена через многократный вызов функций. Ярким примером такой операции является блочное шифрование: чтобы зашифровать данные нужно вызвать функции: C_EncryptInit, C_EncryptUpdate, C_EncryptFinal. Пример этого будет приведен ниже. Эта особенность связана с тем, что внутри библиотеки PKCS#11 скрыт вызов APDU-команд, который как раз предусматривает разбиение некоторых команд на несколько итераций. Как уже говорилось ранее, это способствует эффективному использованию PKCS#11 с потоками данных.

Работа со слотами

Слоты — это виртуальные устройства библиотеки для подключения токенов и смарт-карт. PKCS#11 предоставляет функции для получения списка слотов и ожидания изменения состояний слотов. Также с помощью специальных функций можно получать информацию о состоянии слота, например, наличие токена в нем, информация о подключенном токене и т.п. Давайте подробнее рассмотрим функции по работе со слотами.

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

Одна из самых важных операций, которую мы будем использовать в 99 процентах случаев — это получение списка активных слотов. Для этого в PKCS#11 есть функция C_GetSlotList. Примером ее использования является функция get_slot_list, определенная ниже:

int get_slot_list(CK_SLOT_ID_PTR* slots_ptr, CK_ULONG_PTR slotCount)
{
    CK_RV rv;
    int errorCode = 1;

    /*************************************************************************
    * Получить количество слотов c подключенными токенами                    *
    *************************************************************************/
    rv = functionList->C_GetSlotList(CK_TRUE, NULL_PTR, slotCount);
    CHECK_AND_LOG(" C_GetSlotList (number of slots)", rv == CKR_OK, rvToStr(rv), exit);

    CHECK_AND_LOG(" Checking available tokens", *slotCount > 0, " No tokens available", exit);

    /*************************************************************************
    * Получить список слотов c подключенными токенами                        *
    *************************************************************************/
    *slots_ptr = (CK_SLOT_ID_PTR)malloc(*slotCount * sizeof(CK_SLOT_ID));
    CHECK(" Memory allocation for slots", *slots_ptr != NULL_PTR, exit);

    rv = functionList->C_GetSlotList(CK_TRUE, *slots_ptr, slotCount);
    CHECK_AND_LOG(" C_GetSlotList", rv == CKR_OK, rvToStr(rv), free_slots);
    printf(" Slots available: %dn", (int)*slotCount);

    /*************************************************************************
    * Выставить признак успешного завершения программы                       *
    *************************************************************************/
    errorCode = 0;

free_slots:
    if (errorCode)
    {
        free(*slots_ptr);
    }

exit:
    return errorCode;
}

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

Первым аргументом C_GetSlotList является флаг, говорящий библиотеке, возвращать ли только слоты с подключенными устройствами (CK_TRUE) или нет (CK_FALSE).

Мониторинг событий слотов и получение информации о слоте

Тем не менее, хоть функция C_GetSlotList и является самой часто используемой, она неудобна при написании приложений, которые хотят динамически следить за состоянием слотов. Особенно это может быть критично при написании многопоточных приложений. На помощь может прийти функция мониторинга событий слотов C_WaitForSlotEvent. Она прерывает свою работу при любом изменении состояния какого-либо слота и возвращает идентификатор измененного слота. Работа с этой функцией выглядит примерно следующим образом:

int monitor_slot_event()
{
    int errorCode = 0;

    while (1) {
        CK_SLOT_ID slot ;
            CK_RV rv = functionList->C_WaitForSlotEvent(0, &slot, NULL_PTR);

        if (CKR_CRYPTOKI_NOT_INITIALIZED == rv) break; // Индикатор того, что PKCS#11 деинициализирована из памяти.
        CHECK_RELEASE_AND_LOG(" C_WaitForSlotEvent", rv == CKR_OK, rvToStr(rv), errorCode);
        if (errorCode)
            break;

        CK_SLOT_INFO slotInfo;
        rv = functionList->C_GetSlotInfo(slot, &slotInfo); // получение информации о слоте

        if (CKR_CRYPTOKI_NOT_INITIALIZED == rv) break; // Индикатор того, что PKCS#11 деинициализирована из памяти.
        CHECK_RELEASE_AND_LOG(" C_GetSlotInfo", rv == CKR_OK, rvToStr(rv), errorCode);
        if (errorCode)
            break;

        if (CKF_TOKEN_PRESENT & slotInfo.flags) { 
                    token_inserted(slot);
        }
    }
}

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

Первым аргументом в функцию C_WaitForSlotEvent передается флаг блокировки (CKF_DONT_BLOCK). Если он установлен, то функция не является блокирующей. В таком случае, если никакой слот не был изменен, то возвращается код CKR_NO_EVENT.

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

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

Объекты

Всё есть объект — это почти про PKCS#11.

Теперь начнём знакомство с PKCS#11-объектами. А чтобы закрепить материал по функциям, будем рассматривать множество примеров с их использованием. Поскольку одним из самых важных объектов, которые обычно хранятся на токене или смарт-карте является ключевая пара, мы начнём знакомство с объектами через генерацию ключевой пары.

Создание объектов — на примере генерации ключевых пар

В первую очередь, напишем функцию, которая будет генерировать ключевую пару ГОСТ Р 34.10-2012 256 бит на указанном слоте:

int gen_gost_key_pair(CK_SESSION_HANDLE session)
{
    CK_KEY_TYPE keyTypeGostR3410_2012_256 = CKK_GOSTR3410;
    CK_BYTE keyPairIdGost2012_256[] = { "GOST R 34.10-2012 (256 bits) sample key pair ID (Aktiv Co.)" };
    CK_BYTE parametersGostR3410_2012_256[] = { 0x06, 0x07, 0x2a, 0x85, 0x03, 0x02, 0x02, 0x23, 0x01 };
    CK_BYTE parametersGostR3411_2012_256[] = { 0x06, 0x08, 0x2a, 0x85, 0x03, 0x07, 0x01, 0x01, 0x02, 0x02 };
    CK_BBOOL attributeTrue = CK_TRUE;
    CK_BBOOL attributeFalse = CK_FALSE;

    CK_OBJECT_CLASS publicKeyObject = CKO_PUBLIC_KEY;

    CK_ATTRIBUTE publicKeyTemplate[] =
    {
        { CKA_CLASS, &publicKeyObject, sizeof(publicKeyObject)},                                        // Класс - открытый ключ
        { CKA_ID, &keyPairIdGost2012_256, sizeof(keyPairIdGost2012_256) - 1 },                          // Идентификатор ключевой пары (должен совпадать у открытого и закрытого ключей)
        { CKA_KEY_TYPE, &keyTypeGostR3410_2012_256, sizeof(keyTypeGostR3410_2012_256) },                // Тип ключа - ГОСТ Р 34.10-2012(256)
        { CKA_TOKEN, &attributeTrue, sizeof(attributeTrue)},                                            // Ключ является объектом токена
        { CKA_PRIVATE, &attributeFalse, sizeof(attributeFalse)},                                        // Ключ доступен без аутентификации на токене
        { CKA_GOSTR3410_PARAMS, parametersGostR3410_2012_256, sizeof(parametersGostR3410_2012_256) },   // Параметры алгоритма ГОСТ Р 34.10-2012(256)
        { CKA_GOSTR3411_PARAMS, parametersGostR3411_2012_256, sizeof(parametersGostR3411_2012_256) }    // Параметры алгоритма ГОСТ Р 34.11-2012(256)
    };

    CK_OBJECT_CLASS privateKeyObject = CKO_PRIVATE_KEY;

    CK_ATTRIBUTE privateKeyTemplate[] =
    {
        { CKA_CLASS, &privateKeyObject, sizeof(privateKeyObject)},                                      // Класс - закрытый ключ
        { CKA_ID, &keyPairIdGost2012_256, sizeof(keyPairIdGost2012_256) - 1 },                          // Идентификатор ключевой пары (должен совпадать у открытого и закрытого ключей)
        { CKA_KEY_TYPE, &keyTypeGostR3410_2012_256, sizeof(keyTypeGostR3410_2012_256) },                // Тип ключа - ГОСТ Р 34.10-2012(256)
        { CKA_TOKEN, &attributeTrue, sizeof(attributeTrue)},                                            // Ключ является объектом токена
        { CKA_PRIVATE, &attributeTrue, sizeof(attributeTrue)},                                          // Ключ доступен только после аутентификации на токене
        { CKA_GOSTR3410_PARAMS, parametersGostR3410_2012_256, sizeof(parametersGostR3410_2012_256) },   // Параметры алгоритма ГОСТ Р 34.10-2012(256)
        { CKA_GOSTR3411_PARAMS, parametersGostR3411_2012_256, sizeof(parametersGostR3411_2012_256) }    // Параметры алгоритма ГОСТ Р 34.11-2012(256)
    };

    CK_OBJECT_HANDLE privateKey;                      // Хэндл закрытого ключа ГОСТ (ключевая пара для подписи и шифрования)    
    CK_OBJECT_HANDLE publicKey;                       // Хэндл открытого ключа ГОСТ (ключевая пара для подписи и шифрования)    

    CK_MECHANISM gostR3410_2012_256KeyPairGenMech = { CKM_GOSTR3410_KEY_PAIR_GEN, NULL_PTR, 0 };

    CK_RV rv;   
    int errorCode = 1;

    /*************************************************************************
    * Генерация ключевой пары на токене                                      *
    *************************************************************************/
    rv = functionList->C_GenerateKeyPair(session, &gostR3410_2012_256KeyPairGenMech, 
    publicKeyTemplate, arraysize(publicKeyTemplate),
    privateKeyTemplate, arraysize(privateKeyTemplate),
    &publicKey, &privateKey);
    CHECK_AND_LOG(" C_GenerateKeyPair", rv == CKR_OK, rvToStr(rv), exit);

    errorCode = 0;
    printf("Gost key pair generated successfullyn");

exit:
    return errorCode;
}

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

Теперь перейдём к объектам. Внутри функции gen_gost_key_pair происходит создание двух объектов на токене: открытого и закрытого ключей. Вот, что стандарт PKCS#11 говорит про объекты:

Cryptoki recognizes a number of classes of objects, as defined in the CK_OBJECT_CLASS data type. An object consists of a set of attributes, each of which has a given value. Each attribute that an object possesses has precisely one value.

То есть стандарт не даёт явное определение объекта, но из того, что там написано, мы знаем:

  • объект относится к определенному классу;

  • объект состоит из множества атрибутов, имеющих заданное значение;

  • каждый атрибут имеет ровно одно значение.

Также в стандарте представлена классификация объектов:

Иерархия PKCS#11 объектов

Иерархия PKCS#11 объектов

Заголовок диаграммы определяет класс объекта, а то что ниже — некоторые из его атрибутов.
Видно, что объектом может являться некоторый механизм (о механизмах мы поговорим позже), встроенные функции токена (Hardware feature), некоторые данные на токене (Storage). В нашем случае мы выполнили действие с данными.

Название всех атрибутов начинается с префикса «CKA_». Одним из самых важных атрибутов является CKA_ID. Он задаёт идентификатор объекта и используется для связи ключевых пар и сертификатов. Атрибут CKA_TOKEN является булевым и показывает, является ли объект — объектом токена. Атрибут CKA_PRIVATE тоже является булевым и определяет нужна ли предварительная аутентификация для получения доступа к объекту. Атрибут CKA_ID — задаёт шестнадцатеричный идентификатор объекта. Также есть булевые атрибуты CKA_MODIFIABLE, CKA_COPYABLE, CKA_DESTROYABLE для более тонкой настройки доступа к объекту. Подробнее про возможные атрибуты конкретных классов объектов можно прочитать непосредственно в самом стандарте для каждого класса объектов.

Объекты данных могут быть самыми разнообразными: асимметричные ключи, симметричные ключи, сертификаты, просто какая-либо информация на токене. В нашем примере мы создали два объекта, но сделали это неявно с помощью механизма генерации ключей. C_GenerateKeyPair приняла на вход механизм генерации ключевой пары, шаблоны открытого и закрытого ключа и с помощью механизма сгенерировала объекты ключевой пары (publicKey и privateKey). Мы пока ещё не описывали механизмы, но, говоря простым языком, механизм — это идентификатор операции, которая выполняет какую-то криптографическую функцию. В нашем случае — это функция генерации объекта.

Поиск объектов и создание сырой подписи

В прошлом разделе мы сгенерировали ключевую пару. На этот раз будем считать, что у нас нет хендлов на сгенерированные ключи, но мы знаем их идентификатор – CKA_ID. Попробуем найти объект закрытого ключа на токене:

int findObjects(CK_SESSION_HANDLE session,         // Хэндл открытой сессии
                CK_ATTRIBUTE_PTR attributes,       // Массив с шаблоном для поиска
                CK_ULONG attrCount,                // Количество атрибутов в массиве поиска
                CK_OBJECT_HANDLE objects[],        // Массив для записи найденных объектов
                CK_ULONG* objectsCount             // Количество найденных объектов
                       )
{
    CK_RV rv;                                           // Код возврата. Могут быть возвращены только ошибки, определенные в PKCS#11
    int errorCode = 1;                                  // Флаг ошибки

    /*************************************************************************
    * Инициализировать операцию поиска                                       *
    *************************************************************************/
    rv = functionList->C_FindObjectsInit(session, attributes, attrCount);
    CHECK_AND_LOG("  C_FindObjectsInit", rv == CKR_OK, rvToStr(rv), exit);

    /*************************************************************************
    * Найти все объекты, соответствующие критериям поиска                    *
    *************************************************************************/

    rv = functionList->C_FindObjects(session, objects, *objectsCount, objectsCount);
    CHECK_AND_LOG("  C_FindObjects", rv == CKR_OK, rvToStr(rv), find_final);

    errorCode = 0;

    /*************************************************************************
    * Деинициализировать операцию поиска                                     *
    *************************************************************************/
find_final:
    rv = functionList->C_FindObjectsFinal(session);
    CHECK_RELEASE_AND_LOG("  C_FindObjectsFinal", rv == CKR_OK, rvToStr(rv), errorCode);

exit:
    return errorCode;
}

int find_private_key(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE_PTR privateKey)
{
        CK_BYTE keyPairIdGost2012_256[] = { "GOST R 34.10-2012 (256 bits) sample key pair ID (Aktiv Co.)" };
        CK_OBJECT_CLASS privateKeyObject = CKO_PRIVATE_KEY;

        CK_ATTRIBUTE privateKeyTemplate[] =
        {
                { CKA_CLASS, &privateKeyObject, sizeof(privateKeyObject)},              // Класс - закрытый ключ
                { CKA_ID, &keyPairIdGost2012_256, sizeof(keyPairIdGost2012_256) - 1},   // Идентификатор ключевой пары (должен совпадать у открытого и закрытого ключей)
        };

        CK_ULONG cnt = 1;

        CK_RV rv;
        int errorCode = 1;

        rv = findObjects(session, privateKeyTemplate,
        arraysize(privateKeyTemplate), privateKey, &cnt);

        CHECK(" findObjects", rv == 0, exit);
        CHECK_AND_LOG(" Checking number of keys found", cnt == 1, "No objects foundn", exit);

        errorCode = 0;
exit:
        return errorCode;
}

Данный пример иллюстрирует работу с функцией поиска объекта по заданным атрибутам. Как можно заметить, операция поиска объекта на токене является составной и работа с ней сводится как минимум к вызову трёх функций: C_FindObjectsInit, C_FindObjects, C_FindObjectsFinal. Функция C_FindObjects может вызываться по несколько раз, и каждый раз она будет возвращать следующие объекты поиска. Предпоследний аргумент функции C_FindObjects задаёт размер выходного массива объектов. А последний — количество полученных объектов после очередного поиска.

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

int sign(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE privateKey)
{    
    /* OID алгоритма хеширования ГОСТ Р 34.11-2012(256)                     */
    CK_BYTE parametersGostR3411_256[] = {0x06, 0x08, 0x2a, 0x85, 0x03, 0x07, 0x01, 0x01, 0x02, 0x02};

    /* Механизм подписи/проверки подписи по алгоритму ГОСТ Р 34.10-2012(256) и хешированием по алгоритму ГОСТ Р 34.11-2012(256) */
    CK_MECHANISM gost3410SignWith3411Mech = { CKM_GOSTR3410_WITH_GOSTR3411_12_256, ¶metersGostR3411_256, sizeof(parametersGostR3411_256)};

    CK_BYTE data[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
               0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
               0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
               0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 };

    CK_BYTE_PTR signature;                            // Указатель на буфер, содержащий цифровую подпись для данных
    CK_ULONG signatureSize;                           // Размер буфера, содержащего цифровую подпись для данных, в байтах

    CK_RV rv;
    int errorCode = 1;

    /*************************************************************************
    * Вычислить подпись от данных                                            *
    *************************************************************************/
    printf(" Signing data...n");

    /*************************************************************************
    * Инициализировать операцию подписи данных                               *
    *************************************************************************/
    rv = functionList->C_SignInit(session, &gost3410SignWith3411Mech, privateKey);
    CHECK_AND_LOG("  >C_SignInit", rv == CKR_OK, rvToStr(rv), exit);

    /*************************************************************************
    * Определить размер данных подписи                                       *
    *************************************************************************/
    rv = functionList->C_Sign(session, data, sizeof(data), NULL_PTR, &signatureSize);
    CHECK_AND_LOG("  C_Sign(get size)", rv == CKR_OK, rvToStr(rv), exit);

    /*************************************************************************
    * Подписать данные                                                       *
    *************************************************************************/

    signature = (CK_BYTE*)malloc(signatureSize * sizeof(CK_BYTE));
    CHECK("  Memory allocation for signature", signature != NULL, exit);

    rv = functionList->C_Sign(session, data, sizeof(data), signature, &signatureSize);
    CHECK_AND_LOG("  C_Sign (signing)", rv == CKR_OK, rvToStr(rv), free_signature);


    /*************************************************************************
    * Распечатать буфер, содержащий подпись                                  *
    *************************************************************************/
    printf("  Signature buffer is: n");
    printHex(signature, signatureSize);
    printf("Data has been signed successfully.n");

    errorCode = 0;

free_signature:
    free(signature);
exit:
    return errorCode;
}

В этом примере подпись и хеш можно считать одновременно. Такой вариант рекомендован для безопасности: цепочку «хеширование-подпись» лучше не «разрывать». Чтобы показать, какой алгоритм хеширования использовать, мы передали его OID.

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

Работа с функциями расширения на примере создания запроса на сертификат

Пришло время показать, как работать с функциями-расширениями. Сделаем это на примере библиотеки PKCS#11 от Рутокен и создадим запрос на сертификат для нашей ключевой пары. Генерация запроса на сертификат не описана в стандарте, поэтому сделаем это через функцию-расширение C_EX_CreateCSR.

int create_csr(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE publicKey, CK_OBJECT_HANDLE privateKey)
{
    /*************************************************************************
    * Запрос на получение сертификата                                        *
    *************************************************************************/
    /*************************************************************************
    * Список полей DN (Distinguished Name)                                   *
    *************************************************************************/
    CK_CHAR_PTR dn[] = { (CK_CHAR_PTR)"CN",                   // Тип поля CN (Common Name)
                     (CK_CHAR_PTR)"UTF8String:Иванов",        // Значение
                     (CK_CHAR_PTR)"C",                        // C (Country)
                     (CK_CHAR_PTR)"RU",
                     (CK_CHAR_PTR)"2.5.4.5",                  // SN (Serial Number)
                     (CK_CHAR_PTR)"12312312312",
                     (CK_CHAR_PTR)"1.2.840.113549.1.9.1",     // E (E-mail)
                     (CK_CHAR_PTR)"ivanov@mail.ru",
                     (CK_CHAR_PTR)"ST",                       // ST (State or province)
                     (CK_CHAR_PTR)"UTF8String:Москва",
                     (CK_CHAR_PTR)"O",                        // O (Organization)
                     (CK_CHAR_PTR)"CompanyName",
                     (CK_CHAR_PTR)"OU",                       // OU (Organizational Unit)
                     (CK_CHAR_PTR)"Devel",
                     (CK_CHAR_PTR)"L",                        // L (Locality)
                     (CK_CHAR_PTR)"Moscow", };

    /*************************************************************************
    * Список дополнительных полей                                            *
    *************************************************************************/
    CK_CHAR_PTR exts[] = {(CK_CHAR_PTR)"keyUsage",                                                        // Использование ключа
                      (CK_CHAR_PTR)"digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment",
                      (CK_CHAR_PTR)"extendedKeyUsage",                                                    // Дополнительное использование
                      (CK_CHAR_PTR)"1.2.643.2.2.34.6,1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.4",
                      (CK_CHAR_PTR)"2.5.29.17",                                                           // Дополнительное имя (пример с кодированием в виде DER)
                      (CK_CHAR_PTR)"DER:30:0F:81:0D:65:78:61:6d:70:6c:65:40:79:61:2E:72:75",
                      (CK_CHAR_PTR)"2.5.29.32",                                                           // Политики сертификата (кодирование в виде DER с пометкой "critical")
                      (CK_CHAR_PTR)"critical,DER:30:0A:30:08:06:06:2A:85:03:64:71:01",
                      (CK_CHAR_PTR)"1.2.643.100.111",                                                     // Средства электронной подписи владельца
                      (CK_CHAR_PTR)"ASN1:UTF8String:СКЗИ \"Рутокен ЭЦП 2.0\"", };

    CK_BYTE_PTR csr;                                   // Указатель на буфер, содержащий подписанный запрос на сертификат
    CK_ULONG csrSize;                                  // Размер запроса на сертификат в байтах

    char* csrPem;                                      // Строка с CSR в формате PEM

    CK_RV rv;
    int errorCode = 1;

    /*************************************************************************
    * Создать запрос на сертификат                                           *
    *************************************************************************/
    printf("nCreating CSR...n");

    /*************************************************************************
    * Создание запроса на сертификат                                         *
    *************************************************************************/
    rv = functionListEx->C_EX_CreateCSR(session, publicKey, dn, arraysize(dn), &csr, &csrSize, privateKey, NULL_PTR, 0, exts, arraysize(exts));
    CHECK_AND_LOG(" C_EX_CreateCSR", rv == CKR_OK, rvToStr(rv), exit);

    /*************************************************************************
    * Сконвертировать и распечатать буфер в формате PEM                      *
    *************************************************************************/
    GetCSRAsPEM(csr, csrSize, &csrPem);
    CHECK(" Get CSR in PEM format", csrPem != NULL, free_csr);

    printf("nCertificate request is:n");
    printf("%sn", csrPem);

    errorCode = 0;
    printf("Creating CSR has been completed successfully.n");
free_csr_pem:
    free(csrPem);
free_csr:
    rv = functionListEx->C_EX_FreeBuffer(csr);
    CHECK_RELEASE_AND_LOG(" C_EX_FreeBuffer", rv == CKR_OK, rvToStr(rv), errorCode);
exit:
    return errorCode;
}

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

По полученному запросу можно получить сертификат в Удостоверяющем центре. Например, воспользуемся тестовым УЦ КриптоПро для получения сертификата. Полученный сертификат необходимо скачать в DER-формате, сохранить в файле с именем «cert_2012-256.cer» и положить в директорию, из которой вы запускаете примеры. Полученный сертификат можно импортировать на токен.

Импорт сертификата на токен. Создание объекта вручную

Сертификаты на токене так же как и ключи — являются объектами. Сертификат можно импортировать на токен, создав объект с нужными атрибутами. Для этого мы реализовали функцию: import_cert:

int import_cert(CK_SESSION_HANDLE session)
{
    CK_OBJECT_CLASS certificateObject = CKO_CERTIFICATE;
    CK_BYTE keyPairIdGost2012_256[] = { "GOST R 34.10-2012 (256 bits) sample key pair ID (Aktiv Co.)" };
    CK_BBOOL attributeTrue = CK_TRUE;
    CK_BBOOL attributeFalse = CK_FALSE;
    CK_CERTIFICATE_TYPE certificateType = CKC_X_509;
    CK_ULONG tokenUserCertificate = 1;

    /*************************************************************************
    * Шаблон для импорта сертификата                                         *
    *************************************************************************/
    CK_ATTRIBUTE certificateTemplate[] =
    {
        { CKA_VALUE, 0, 0 },                                                               // Значение сертификата (заполняется в процессе работы)
        { CKA_CLASS, &certificateObject, sizeof(certificateObject) },                      // Класс - сертификат
        { CKA_ID, &keyPairIdGost2012_256, sizeof(keyPairIdGost2012_256) - 1 },             // Идентификатор сертификата (совпадает с идентификатором соответствующего ключа)
        { CKA_TOKEN, &attributeTrue, sizeof(attributeTrue) },                              // Сертификат является объектом токена
        { CKA_PRIVATE, &attributeFalse, sizeof(attributeFalse) },                          // Сертификат доступен без аутентификации
        { CKA_CERTIFICATE_TYPE, &certificateType, sizeof(certificateType) },               // Тип сертификата - X.509
        { CKA_CERTIFICATE_CATEGORY, &tokenUserCertificate, sizeof(tokenUserCertificate) }, // Категория сертификата - пользовательский
    };

    FILE* certFile;                                   // Поток ввода сертификата
    CK_BYTE_PTR certDer;                              // Массив с сертификатом в DER формате
    CK_ULONG certSize;                                // Размер массива сертификата

    CK_OBJECT_HANDLE certificate;                     // Хэндл сертификата

    CK_RV rv;
    int r;
    int errorCode = 1;                                // Флаг ошибки

    /*************************************************************************
    * Открыть поточный ввод сертификата из файла                             *
    *************************************************************************/
    certFile = fopen("cert_2012-256.cer", "rb");
    CHECK_AND_LOG(" fopen", certFile != NULL, ""cert_2012-256.cer" doesn't exist", exit);

    /*************************************************************************
    * Определить размер файла, содержащего сертификат                        *
    *************************************************************************/
    r = fseek(certFile, 0, SEEK_END);
    CHECK(" fseek", r == 0, close_certFile);
    certSize = ftell(certFile);
    CHECK(" ftell", certSize > 0, close_certFile);
    r = fseek(certFile, 0, SEEK_SET);
    CHECK(" fseek", r == 0, close_certFile);

    /*************************************************************************
    * Выделить память для сертификата                                        *
    *************************************************************************/
    certDer = (CK_BYTE_PTR)malloc(certSize);
    CHECK(" malloc", certDer != NULL, close_certFile);

    /*************************************************************************
    * Прочитать сертификат                                                   *
    *************************************************************************/
    r = (int)fread(certDer, 1, (int)certSize, certFile);
    CHECK(" fread", r == (int)certSize, free_certificate);

    /*************************************************************************
    * Задать шаблон сертификата для импорта                                  *
    *************************************************************************/
    certificateTemplate[0].pValue = certDer;
    certificateTemplate[0].ulValueLen = certSize;

    /*************************************************************************
    * Создать сертификат на токене                                         *
    *************************************************************************/
    rv = functionList->C_CreateObject(session, certificateTemplate, arraysize(certificateTemplate), &certificate);
    CHECK_AND_LOG(" C_CreateObject", rv == CKR_OK, rvToStr(rv), free_certificate);

    errorCode = 0;
    printf("Certificate has been created successfullyn");


    /*************************************************************************
    * Очистить память из-под строки с сертификатом                           *
    *************************************************************************/
free_certificate:
    free(certDer);

    /*************************************************************************
    * Закрыть поток ввода сертификата                                        *
    *************************************************************************/
close_certFile:
    r = fclose(certFile);
    CHECK_RELEASE(" fclose", r == 0, errorCode);

exit:
    return errorCode;
}

На этот раз мы создали объект напрямую с помощью функции C_CreateObject. Для создания объекта сертификата мы аналогично передали шаблон с атрибутами объекта: тело сертификата, идентификатор, тип доступа, тип сертификата и т.п.

Функцию C_CreateObject можно использовать не только для создания сертификата на токене, но и для создания других объектов, например, публичных ключей (CKO_PUBLIC_KEY), закрытых ключей (CKO_PRIVATE_KEY), симметричных ключей (CKO_SECRET_KEY), обычных данных (CKO_DATA). Их значение будет также содержаться внутри атрибута CKA_VALUE.

Теперь, когда у нас на токене имеется и ключевая пара и сертификат, для закрепления материала рассмотрим операцию создания CMS-подписи.

Формирование CMS-подписи

Данная возможность является расширением библиотеки Рутокен и может работать только с ГОСТ-ключами. Для создания подписи в формате CMS требуется наличие закрытого ключа и сертификата (неявно содержащего в себе открытый ключ). Создание CMS-подписи реализовано в функции sign_cms:

int sign_cms(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE certificate, CK_OBJECT_HANDLE privateKey)
{
    /*************************************************************************
    * Данные для подписи                                                     *
    *************************************************************************/
    CK_BYTE data[] =
    {
        0x01, 0x00, 0x02, 0x35, 0x35,
        0x02, 0x00, 0x01, 0x01,
        0x81, 0x00, 0x09, 0x34, 0x30, 0x34, 0x34, 0x34, 0x35, 0x39, 0x39, 0x38,
        0x82, 0x00, 0x0A, 0x37, 0x37, 0x38, 0x31, 0x35, 0x36, 0x34, 0x36, 0x31, 0x31,
        0x83, 0x00, 0x13, 0x41, 0x6B, 0x74, 0x69, 0x76, 0x20, 0x52, 0x75, 0x74, 0x6F, 0x6B, 0x65, 0x6E, 0x20, 0x42, 0x61, 0x6E, 0x6B, 0x2E,
        0x84, 0x00, 0x14, 0x34, 0x37, 0x37, 0x37, 0x38, 0x38, 0x38, 0x39, 0x39, 0x39, 0x31, 0x31, 0x31, 0x31, 0x31, 0x32, 0x32, 0x32, 0x37, 0x36,
        0x85, 0x00, 0x0A, 0x33, 0x32, 0x32, 0x38, 0x37, 0x33, 0x36, 0x37, 0x36, 0x35,
        0x86, 0x00, 0x03, 0x52, 0x55, 0x42,
        0xFF, 0x00, 0x0D, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30
    };

    CK_BYTE_PTR signature;                             // Указатель на буфер, содержащий подпись исходных данных
    CK_ULONG signatureSize;                            // Размер буфера, содержащего подпись исходных данных, в байтах
    char* signaturePem;                                // Строка с CMS в формате PEM

    CK_RV rv;
    int errorCode = 1;                                 // Флаг ошибки

    /*************************************************************************
    * Подписать данные                                                       *
    *************************************************************************/
    rv = functionListEx->C_EX_PKCS7Sign(session, data, sizeof(data), certificate,
        &signature, &signatureSize, privateKey, NULL_PTR, 0, USE_HARDWARE_HASH);
    CHECK_AND_LOG(" C_EX_PKCS7Sign", rv == CKR_OK, rvToStr(rv), exit);

        /*************************************************************************
        * Сконвертировать и распечатать буфер в формате PEM                      *
        *************************************************************************/
        GetCMSAsPEM(signature, signatureSize, &signaturePem);
        CHECK(" Get CMS in PEM format", signaturePem != NULL, free_signature);

        printf("nSignature is:n");
        printf("%sn", signaturePem);


    errorCode = 0;
    printf("Data has been signed successfully.n");

free_signature_pem:
    free(signaturePem);

    /*************************************************************************
    * Освободить память, выделенную в библиотеке                             *
    *************************************************************************/
free_signature:
    rv = functionListEx->C_EX_FreeBuffer(signature);
    CHECK_RELEASE_AND_LOG(" C_EX_FreeBuffer", rv == CKR_OK, rvToStr(rv), errorCode);

exit:
    return errorCode;
}

Создание CMS-подписи произошло вызовом всего лишь одной функции расширения C_EX_PKCS7Sign. А объект сертификата нашелся так же просто, как и объект ключа с минимальными отличиями в коде. Все это показывает, как просто и лаконично (по меркам языка C) спроектирован стандарт PKCS#11 с идеей объектного подхода.

Получение и установка атрибутов публичных объектов

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

Логика работы с функцией C_SetAttributeValue очень похожа на логику создания объектов — создаётся шаблон, атрибуты заполняются указанными значениями. Все это передаётся на вход функции C_SetAttributeValue. Изменять атрибуты можно, если у объекта атрибут CKA_MODIFIABLE равен CK_TRUE.

При получении значений атрибутов иногда неизвестно, какой будет выходной размер атрибута. В таком случае создается шаблон с нулевыми значениями указателей на выходные объекта атрибутов и их размеров. Этот шаблон передаётся функции C_GetAttributeValue. Функция заполняет значение выходных размеров атрибутов в этом шаблоне. Мы может воспользоваться этой информацией для выделения памяти под атрибуты в шаблоне и дальнейшего вызова функции C_GetAttributeValue.

Для демонстрации работы функций C_GetAttributeValue и C_SetAttributeValue рассмотрим пример получения тела сертификата и изменения текстовой метки сертификата:

int get_cert(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE cert)
{
    CK_BYTE_PTR body = NULL_PTR;
    CK_ATTRIBUTE template[] = {
        {CKA_VALUE, NULL_PTR, 0}
    };

    char* certPem;

    CK_RV rv;
    int errorCode=1;

        /*************************************************************************
        * Получение размера тела сертификата                                     *
        *************************************************************************/
    rv = functionList->C_GetAttributeValue(session, cert, template, arraysize(template));
    CHECK_AND_LOG(" C_GetAttributeValue", rv == CKR_OK, rvToStr(rv), exit);

    body = (CK_BYTE_PTR) malloc(template[0].ulValueLen);
    template[0].pValue = body;

        /*************************************************************************
        * Получение тела сертификата в формате DER                               *
        *************************************************************************/
    rv = functionList->C_GetAttributeValue(session, cert, template, arraysize(template));
    CHECK_AND_LOG(" C_GetAttributeValue", rv == CKR_OK, rvToStr(rv), free);

        /*************************************************************************
        * Сконвертировать и распечатать буфер в формате PEM                      *
        *************************************************************************/
        GetCertAsPem(body, template[0].ulValueLen, &certPem);
        CHECK(" Get cert in PEM format", certPem != NULL, free);

        printf("nCertificate request is:n");
        printf("%sn", certPem);

    errorCode = 0;
        printf("Getting cert body has been completed successfully.n");

free_cert_pem:
        free(certPem);
free:
    free(body);
exit:
    return errorCode;
}

int set_cert_label(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE cert)
{
    CK_UTF8CHAR label[] = {"GOST certificate"};

    CK_ATTRIBUTE template[] = {
        CKA_LABEL, label, sizeof(label)-1
    };

    CK_RV rv;
    int errorCode = 1;

        /*************************************************************************
        * Установка метки сертификата                                            *
        *************************************************************************/
    rv = functionList->C_SetAttributeValue(session, cert, template, arraysize(template));
    CHECK_AND_LOG(" C_SetAttributeValue", rv == CKR_OK, rvToStr(rv), exit);

    errorCode = 0;

exit:
    return errorCode;
}

Про механизмы

Мы уже ранее встречались с механизмами в примерах и дали краткое описание. Давайте теперь опишем их подробнее. Описание механизмов в PKCS#11 было вынесено в отдельный документ, с которым можно ознакомиться здесь. В этом документе написано:

A mechanism specifies precisely how a certain cryptographic process is to be performed. PKCS #11 implementations MAY use one of more mechanisms defined in this docuоment.

Отсюда следует, что механизмы:

  • Определяют некоторое криптографическое преобразование.

  • PCKS#11 может использовать механизмы, определенные в этом документе.

Более того, некоторые PKCS#11-библиотеки могут использовать и другие механизмы.

Согласно документации механизмы можно разделить на:

  • Механизмы шифрования и расшифрования (Encrypt & Decrypt);

  • Механизмы подписи и проверки подписи (Sign & Verify);

  • Механизм формирования хеша (Digest);

  • Механизм восстановления подписи по публичному ключу (Sign Recover & Verify Recovery);

  • Механизм генерации симметричных и асимметричных ключей (Gen. Key/Key Pair);

  • Экспорт и импорт ключей (Wrap & Unwrap);

  • Выработка общего ключа на основе асимметричных ключей (Derive).

Каждый механизм идентифицирует одну или несколько из этих функций. Так, например, ранее рассмотренный механизм CKM_GOSTR3410_KEY_PAIR_GEN предназначен для генерации ключей, а механизм CKM_AES_ECB может использоваться как для зашифрования/расшифрования, так и для свертки/развертки ключей.

Работа с механизмами, на примере зашифрования сообщения

Механизмы в PKCS#11 задаются через структур CK_MECHANISM. Объекты типа CK_MECHANISM в дальнейшем передаются PKCS#11-функциям для указания нужного механизма. Сама структура CK_MECHANISM состоит из трех элементов:

  1. Идентификатор механизма (mechanism);

  2. Указатель на параметры механизма (pParameter);

  3. Длина в байтах параметров механизма (ulParameterLen).

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

int encrypt_data(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE secretKey)
{
    /* Имитовставка */
    CK_BYTE iv[] = { 0x06, 0x07, 0x2a, 0x85, 0x03, 0x02, 0x02, 0x1f };
    /*  Механизм программного шифрования/расшифрования по алгоритму ГОСТ 28147-89 */
    CK_MECHANISM gost28147EncDecMech = {CKM_GOST28147, iv, sizeof(iv)};

    /*************************************************************************
    * Данные для шифрования                                                  *
    *************************************************************************/
    CK_BYTE data[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
                   0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
                   0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
                   0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00 };

    CK_BYTE_PTR encrypted;                            // Указатель на временный буфер для зашифрованных данных
    CK_ULONG encryptedSize;                           // Размер временного буфера в байтах

    CK_RV rv;
    int errorCode = 1;

    /*************************************************************************
    * Инициализировать операцию шифрования                                   *
    *************************************************************************/
    rv = functionList->C_EncryptInit(session, &gost28147EncDecMech, secretKey);
    CHECK_AND_LOG(" C_EncryptInit", rv == CKR_OK, rvToStr(rv), exit);

    /*************************************************************************
    * Зашифровать данные (при шифровании с использованием механизма          *
    * CKM_GOST28147_ECB размер данных должен быть кратен 8)                  *
    *************************************************************************/
    encryptedSize = sizeof(data);

    encrypted = (CK_BYTE_PTR)malloc(encryptedSize * sizeof(CK_BYTE));
    CHECK("  Memory allocation for encrypted data", encrypted != NULL_PTR, exit);

    rv = functionList->C_Encrypt(session, data, sizeof(data), encrypted, &encryptedSize);
    CHECK_AND_LOG(" C_Encrypt", rv == CKR_OK, rvToStr(rv), free_encrypted);

    /*************************************************************************
    * Распечатать буфер, содержащий зашифрованные данные                     *
    *************************************************************************/
    printf(" Encrypted buffer is:n");
    printHex(encrypted, encryptedSize);

    printf("Encryption has been completed successfully.n");

    errorCode = 0;
free_encrypted:
    free(encrypted);
exit:
    return errorCode;
}

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

Проверка поддержки механизмов

Ранее в примерах мы всегда надеялись на то, что токен поддерживает используемые механизмы, но, вообще говоря, — это может быть не так. Так, например, Рутокен Lite не поддерживает криптографические механизмы. Поэтому перед началом работы с каким-либо механизмом желательно убедиться в том, что он поддерживается устройством. Это можно сделать с помощью функции C_GetMechanismList, которая возвращает список поддерживаемых механизмов токена. Напишем удобную обертку для проверки поддержки определенного механизма:

int mech_supports(CK_SLOT_ID slot, CK_MECHANISM_TYPE mech, int* mechIsSupported)
{
    CK_MECHANISM_TYPE_PTR mechanisms;                 // Массив поддерживаемых механизмов
    CK_ULONG mechanismCount;                          // Количество поддерживаемых механизмов

    CK_RV rv;
    int errorCode = 1;

    /*************************************************************************
    * Получить список поддерживаемых токеном механизмов                      *
    *************************************************************************/
    rv = functionList->C_GetMechanismList(slot, NULL_PTR, &mechanismCount);
    CHECK_AND_LOG(" C_GetMechanismList (number of mechanisms)", rv == CKR_OK, rvToStr(rv), exit);

    CHECK_AND_LOG(" Checking mechanisms available", mechanismCount > 0, " No mechanisms available", exit);

    mechanisms = (CK_MECHANISM_TYPE_PTR)malloc(mechanismCount * sizeof(CK_MECHANISM_TYPE));
    CHECK(" Memory allocation for mechanisms", mechanisms != NULL_PTR, exit);

    rv = functionList->C_GetMechanismList(slot, mechanisms, &mechanismCount);
    CHECK_AND_LOG(" C_GetMechanismList", rv == CKR_OK, rvToStr(rv), free_mechanisms);

    /*************************************************************************
    * Определение поддерживаемых токеном механизмов                          *
    *************************************************************************/
    for (size_t i = 0; i < mechanismCount; ++i) {
        if (mechanisms[i] == mech) {
            *mechIsSupported = 1;
            break;
        }
    }

    errorCode = 0;
    if (*mechIsSupported)
        printf("Mechanism is supportedn");
    else
        printf("Mechanism is not supportedn");

free_mechanisms:
    free(mechanisms);
exit:
}

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

Утилита pkcs11-tool

Часто бывает необходимо просто и быстро выполнить какое-либо обращение к PKCS#11-библиотеке, не прибегая к написанию кода. На помощь может прийти утилита pkcs11-tool, которая распространяется в составе пакета (opensc)[https://github.com/OpenSC/OpenSC].

Утилита pkcs11-tool может гибко выполнять огромное количество стандартных PKCS#11-операций. Например:

  • Генерация ключевых пар:
    pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-256:B --id 45 -l

  • Создание сырой подписи:
    pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --sign --id 45 -l -i file.txt --mechanism GOSTR3410-WITH-GOSTR3411-12-256

  • Генерация псевдослучайных последовательностей:
    pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --generate-random 16

  • Получение списка объектов на токене:
    pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O

  • Получение механизмов, поддерживаемых токеном:
    pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -M

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

Дополнительный материал

Если вы захотите узнать, как работать с более специфичными функциями, то большое количество примеров по работе с PKCS#11 можно найти в нашем SDK. Все примеры по работе с PKCS#11-библиотекой находятся в директории sdkpkcs11samples.

Выводы

Зачастую библиотека PKCS#11 является основным кирпичиком при написании приложений или других библиотек для работы со смарт-картами на других языках программирования. Поэтому знание основ работы с PKCS#11 на языке C может помочь разобраться с тем, как работать с обертками или как лучше реализовать архитектуру новой обертки.

Кроме PKCS#11 с объектами на смарт-картах/токенах можно работать через:

  • OpenSSL API (pkcs11 engine, rutoken engine);

  • C# для .NET Framework 4.5, .NET Standard 2.0, MonoAndroid 2.3, Xamarin.iOS 1.0 и Xamarin.Mac 2.0;

  • CryptoAPI;

  • Java c JDK 8 или новее через интерфейсы PKCS#11-wrapper и JCA;

  • C++ с использованием библиотеки pki-core;

  • JavaScript для большинства популярных браузеров с использованием Рутокен Плагин;

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

Содержание

  1. Ошибки Рутокен
  2. Ошибка: Сертификат ненадежен/Не удалось проверить статус отзыва
  3. Ошибка: Rutoken перестает определяться (Windows 10)
  4. Ошибка: Панель управления не видит Рутокен ЭЦП 2.0
  5. Почему компьютер не видит носитель рутокен
  6. Первичная диагностика неисправности Рутокен
  7. 1. Повреждение/разлом корпуса или USB-разъема Рутокена
  8. 3. Рутокен со следами оплавления и/или почернения корпуса изнутри носителя, отпаявшаяся микросхема или вспученная поверхность микросхемы
  9. 1. Рутокен не определяется в «Панели управления Рутокен»
  10. 2. Рутокен определяется панелью управления, кнопка «Ввести PIN-код…» активна, но авторизация с PIN-кодом пользователя/администратора выполняется с ошибкой. Дальнейшие действия зависят от формулировки возникающей ошибки:
  11. 2.1 Ошибка “Не удалось получить всю информацию о токене Код ошибки: 0x6a82 Описание ошибки: Файл/ RSF не найден”
  12. 2.2 Ошибка “Не удалось получить всю информацию о токене код ошибки: 0х6400 Описание ошибки: Состояние памяти Rutoken не изменилось”
  13. 2.3 Ошибка “Не удалось получить всю информацию о токене Код ошибки 0xF003 Описание ошибки Неверное значение”
  14. 2.4 Ошибка «Обнаружено повреждение системной области памяти (ошибка CRC)» код ошибки 0x6F20
  15. 2.5 Референсные данные не найдены
  16. 2.6 «PIN-код заблокирован»
  17. 1. Проверка целостности контейнера с сертификатом “КриптоПро CSP” или “VipNet CSP”
  18. 2. Проверка целостности сертификата с неизвлекаемыми ключами
  19. Почему компьютер не видит носитель рутокен
  20. Почему компьютер не видит рутокен
  21. Установка драйвера для Windows Vista Windows Seven
  22. Установка драйвера для Windows XP
  23. Подготовка
  24. Установка драйверов и модулей ruToken
  25. Настройка считывателя в КриптоПро
  26. Установка сертификатов
  27. Почему не виден сертификат ЭЦП на носителе
  28. Причина 1: драйвер не установлен или устройство отображается в диспетчере устройств с восклицательным знаком
  29. Причина 2: долгое опознание носителя на Windows 7
  30. Причина 3: USB-порт работает некорректно
  31. Причина 4: носитель неисправен
  32. Почему выходит ошибка при создании подписи
  33. Устранение ошибки ненайденного элемента ЭЦП
  34. Устранение ошибки с построением цепочки сертификатов

Ошибки Рутокен

Из нашей статьи вы узнаете:

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

Ошибка: Сертификат ненадежен/Не удалось проверить статус отзыва

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

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

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

Ошибка: Rutoken перестает определяться (Windows 10)

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

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

Ошибка: Панель управления не видит Рутокен ЭЦП 2.0

Для решения проблемы выполните следующие действия:

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

Источник

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

Рутокен при подключении к компьютеру не отображается в Панели управления Рутокен, кнопка «Ввести PIN-код» неактивна.

image2018 5 8 14 29 34

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

Определите модель Рутокен по маркировке на самом ключе, воспользовавшись этой инструкцией.

Возможно, не хватает питания для Рутокена. Попробуйте подключить Рутокен в другой USB-порт.

Если используется удлинитель, подключите Рутокен напрямую.

Проверьте работают ли флешки, другие токены или смарт-карты.

Модель Рутокен S должна отображаться в разделе Контроллеры USB.

image2018 5 8 14 53 13

Модели Рутокен ЭЦП 2.0, Рутокен Lite должны отображаться в разделе Устройства чтения смарт-карт.

*Иногда могут отображаться как «USB Smart Card reader», «Rutoken ECP» или «Rutoken Lite»

image2018 5 8 14 52 26

Откройте Панель управления Рутокен и перейдите на вкладку Настройки.

Проверьте значение в раскрывающемся списке Количество считывателей Рутокен S. Если установлен «0», то увеличьте это значение до 1 и примените изменения

image2018 5 8 14 56 13

Если на другом компьютере Рутокен так же не определяется, скорее всего, он вышел из строя. Обратитесь в компанию, где приобретался Рутокен для его замены.

Источник

Первичная диагностика неисправности Рутокен

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

Отправка токена на экспертизу производится через ту компанию, с которой у компании «Актив» имеются договорные отношения.

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

Узнать срок гарантии на устройство Рутокен можно в той компании, в которой он приобретался.

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

Самые частые ошибки мы собрали в этой статье.

Первичная диагностика состоит из 3 этапов:

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

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

1. Повреждение/разлом корпуса или USB-разъема Рутокена

image2020 4 17 15 35 9 image2020 4 17 15 34 16

image2020 4 17 15 32 7

3. Рутокен со следами оплавления и/или почернения корпуса изнутри носителя, отпаявшаяся микросхема или вспученная поверхность микросхемы

image2020 4 17 16 55 37 image2020 4 17 16 56 4

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

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

Подключите Рутокен к компьютеру и запустите «Панель управления Рутокен».

Запуск панели управления Рутокен выполняется через меню Пуск / Панель управления / Панель управления Рутокен.

image2020 4 17 17 4 50

Если Рутокен определяется в «Панели управления Рутокен», активна кнопка «Ввести PIN-код…»

Нажмите на кнопку «Информация» на вкладке «Администрирование». Ошибок возникать не должно.

Попробуйте авторизоваться с PIN-кодом пользователя и/или администратора.

Если при нажатии на кнопку «Информация» ошибок не возникает, а авторизация выполняется успешно, следует перейти к третьему этапу диагностики носителя Рутокен

(Рутокен работает корректно, необходимо проверить целостность ключевой информации на Рутокене).

После подключения Рутокена к компьютеру возможны следующие ошибки в Панели управления Рутокен:

1. Рутокен не определяется в «Панели управления Рутокен»

image2020 4 17 17 5 41

Рутокен не определяется в «Панели управления Рутокен» (список «Подключенные Рутокен» пустой) и, как следствие, неактивны кнопки «Ввести PIN-код…» и «Информация…». В данном случае необходимо воспользоваться инструкцией.

2. Рутокен определяется панелью управления, кнопка «Ввести PIN-код…» активна, но авторизация с PIN-кодом пользователя/администратора выполняется с ошибкой. Дальнейшие действия зависят от формулировки возникающей ошибки:

2.1 Ошибка “Не удалось получить всю информацию о токене Код ошибки: 0x6a82 Описание ошибки: Файл/ RSF не найден”

Oshibka

Подключите Рутокен к другому USB порту. Повторите попытку ввода PIN-кода. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

2.2 Ошибка “Не удалось получить всю информацию о токене код ошибки: 0х6400 Описание ошибки: Состояние памяти Rutoken не изменилось”

6400

Подключите Рутокен к другому USB порту. Повторите попытку ввести PIN-код. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

2.3 Ошибка “Не удалось получить всю информацию о токене Код ошибки 0xF003 Описание ошибки Неверное значение”

F003

Подключите Рутокен к другому USB порту. Повторите попытку ввести PIN-код. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

2.4 Ошибка «Обнаружено повреждение системной области памяти (ошибка CRC)» код ошибки 0x6F20

image2020 4 17 17 8 59

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

2.5 Референсные данные не найдены

image001

Подключите Рутокен к другому USB порту. Повторите попытку ввести PIN-код. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

Более подробная информация об ошибке есть в статье нашей Базы Знаний.

2.6 «PIN-код заблокирован»

image2020 4 17 17 9 17

Ошибка «PIN-код заблокирован» означает, что Рутокен был заблокирован в результате превышения количества попыток ввода PIN-кода.

Если заблокирован PIN-код пользователя, воспользуйтесь инструкцией.

Если заблокирован PIN-код Администратора, воспользуйтесь инструкцией.

На третьем этапе проверяется целостность ключевой информации, которая содержится на Рутокене.

Определите модель Рутокена по инструкции.

Если используется носитель из семейства Рутокен ЭЦП, проверьте формат ключей по инструкции.

1. Проверка целостности контейнера с сертификатом “КриптоПро CSP” или “VipNet CSP”

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

Тестирование целостности контейнера через «КриптоПро CSP» необходимо проводить по инструкции.

Тестирование целостности контейнера через «VipNet CSP» необходимо проводить по инструкции.

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

2. Проверка целостности сертификата с неизвлекаемыми ключами

Тестирование носителей Рутокен ЭЦП 2.0 с записанными на него неизвлекаемыми ключами ЭП (PKCS#11) пользователями самостоятельно не производится. Удаленная диагностика выполняется сотрудниками технической поддержки компании Актив.

Источник

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

После прохождения проверки условий подключения по сертификату ключа проверки ЭЦП и выбора сертификата в личном кабинете юридического лица на сайте nalog.ru через Yandex браузер возникает одно из двух сообщений:

«Не удается обнаружить токен или смарт-карту. Подключите Рутокен в любой USB-порт компьютера или к картридеру» или «На Рутокене нет сертификатов. Для доступа к сайту запишите на Рутокен сертификат«.

image2019 9 5 16 7 19 image2019 9 5 16 8 6

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

Необходимо определить нужно ли расширение Рутокен Коннект и какой вариант входа нужно использовать.

Расширение Рутокен Коннект должно использоваться для входа на сайт nalog.ru только если используется модель Рутокен ЭЦП 2.0 с записанным на него сертификатом формата PKCS#11 (как для ЕГАИС).

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

2. Если используется другая модель Рутокен и/или на Рутокене содержится сертификат формата «КриптоПро CSP», то выбран правильный вариант:

нужно выполнить одно из трех действий:

a) Удалите адрес lkul.nalog.ru:443 из настроек Рутокен Коннект

image2019 9 5 17 32 40

image2019 9 5 17 37 4

b) Или удалите Адаптер Рутокен Коннект

image2019 9 5 17 41 56

с) Или удалите приложение Рутокен Коннект

image2019 9 5 18 2 17

После выполнения одного из трех действий повторите Проверку условий подключения по сертификату ЭЦП.

Источник

Почему компьютер не видит рутокен

1. Возможно, на токене перегорел светодиод (лампочка). Для проверки следует:

5469

2. Подключить Rutoken к другому USB-порту.

3. Запустить / перезапустить службу «Смарт-карта». Для этого:

4. Переустановить драйвер Rutoken, предварительно отключив носитель от компьютера.
Для этого открыть меню «Пуск» > «Панель управления» > «Установка и удаление программ» (для ОС Windows Vista Windows Seven меню «Пуск» > «Панель управления» > «Программы и компоненты»). В списке найти пункт «Rutoken Drivers» и выбрать «Удалить». После удаления необходимо перезагрузить компьютер и установить драйвер Rutoken заново.

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

Установка драйвера для Windows Vista Windows Seven

1. Кликнуть по значку «Мой компьютер» правой кнопкой мыши и выбрать элемент «Свойства».

2. В открывшемся меню выбрать «Диспетчер устройств».

picture 1502

3. В открывшемся окне проверить, нет ли в списке элемента «Другие устройства», обозначенного желтым значком.

picture 826

4. Необходимо выделить строку «ruToken» и выбрать «Обновить драйверы».

picture 827

5. Далее выбрать «Выполнить поиск драйверов на этом компьютере».

picture 828

6. Нажать на кнопку «Обзор», указать каталог C:WindowsSystem32Aktiv Co и нажать на кнопку «Далее». Указанный каталог может быть скрытым. В таком случае необходимо выбрать меню «Сервис» > «Параметры папок» > «Вид», установить переключатель «Показывать скрытые файлы, папки и диски» и повторить выбор каталога.

picture 829

7. Дождаться окончания установки и нажать на кнопку «Закрыть».

picture 830

8. После установки драйвера устройство будет отображаться в разделе «Контроллеры USB». На токене также должен загореться диод.

picture 831

Установка драйвера для Windows XP

1. Кликнуть по значку «Мой компьютер» правой кнопкой мыши и выбрать элемент «Свойства».

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

picture 832

3. В открывшемся окне проверить, нет ли в списке элемента «ruToken» (либо «Неизвестное устройство»), обозначенного желтым значком. Необходимо кликнуть по нему правой кнопкой мыши и выбрать «Обновить драйвер».

picture 833

4. В окне «Мастер обновления оборудования» установить переключатель «Установка из указанного места».

picture 834

5. В открывшемся окне нажать на кнопку «Обзор», указать путь к каталогу C:Windowssystem32Aktiv Co
t USB и нажать на кнопку «Далее». Указанный каталог может быть скрытым. В таком случае необходимо выбрать меню «Сервис» > «Параметры папок» > «Вид», установить переключатель «Показывать скрытые файлы, папки и диски» и повторить выбор каталога

picture 835

6. Дождаться окончания установки и нажать на кнопку «Готово».

picture 836

7. По завершении установки драйвера устройство будет отображаться в разделе «Контроллеры универсальной последовательной шины USB». На токене также должен загореться диод.

picture 837

6. В случае если выполнение инструкций не помогло исправить ошибку, токен, скорее всего, неисправен. Чтобы в этом убедиться, следует присоединить Rutoken к компьютеру, на котором никогда не устанавливался драйвер. Если носитель работает корректно, то должен запуститься «Мастер установки нового оборудования». Если при присоединении рутокена ничего не происходит, то носитель, вероятнее всего, неисправен, и его необходимо сменить.

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

%D0%9C%D0%B0%D1%80%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0 %D0%BE%D0%B1%D1%89 206%D1%8577 11.18

%D0%91%D0%B0%D0%BD%D0%BD%D0%B5%D1%80 216%D1%8590 11.10.17

vk 180

Подготовка

Установка драйверов и модулей ruToken

Для установки драйверов необходимо:

Настройка считывателя в КриптоПро

Откроется окно со списком установленных считывателей. Если в списке нет считывателя Все считыватели смарт-карт, нажмите кнопку «Добавить»

Если кнопка «Добавить» не активна, то нужно перейти на вкладку «Общие» и нажать на ссылку «Запустить с правами администратора».
RU 3.6 2.0

Для продолжения установки считывателя нажмите кнопку «Далее»

В следующем окне выберите считыватель Все считыватели смарт-карт и нажмите кнопку «Далее»
RU 3.6 3.0

Для продолжения установки нажмите кнопку «Далее»
RU 3.6 4.0

Установка сертификатов

Для того, чтобы система стала запрашивать ruToken при входе, с него нужно установить сертификат. Чтобы узнать, как это сделать, перейдите по данной ссылке (нажмите здесь чтобы перейти).

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

rabota za kompyuterom

Почему не виден сертификат ЭЦП на носителе

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

Причина 1: драйвер не установлен или устройство отображается в диспетчере устройств с восклицательным знаком

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

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

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

Причина 2: долгое опознание носителя на Windows 7

При работе в ОС Windows 7 драйверы могут долго назначаться. Решение проблемы — дождитесь окончания процесса или обновите версию ОС.

Причина 3: USB-порт работает некорректно

Убедитесь, что проблема в USB-порте, а не в носителе ЭЦП, для этого переключите токен к другому порту. Если носитель определился системой, то перезагрузите ПК. Обычно это помогает справиться с проблемой и запустить работу всех USB-портов. Если перезагрузка не помогла, то желательно обратиться в техническую поддержку для устранения неисправности.

sertifikat jeup ne viden na nositele

Причина 4: носитель неисправен

Если при переключении носителя к другому ПК или USB-порту флешку компьютер не видит, то проблема в носителе. Чтобы устранить неисправность, обратитесь в сервисный центр для выпуска нового токена.

Почему выходит ошибка при создании подписи

Ошибка создания подписи обычно имеет в расшифровке два значения:

Неисправность работы подписи связана с некорректной работой криптопровайдера, неустановленными или необновленными сертификатами.

Решение проблемы зависит от типа ошибки и обычно не требует обращения в техническую поддержку.

Устранение ошибки ненайденного элемента ЭЦП

Переустановите криптопровайдер на неисправном ПК с официального портала КриптоПро (https://www.cryptopro.ru/downloads). После этого очистите кэш и временные файлы в используемом браузере, а также кэш Java. Затем удалите личные сертификаты и сертификаты главного удостоверяющего центра. Используйте КриптоПро и заново установите новые в соответствии с именем контейнера. После установки корневых сертификатов:

Если после проделанной работы ошибка сохраняется, то нужно обратиться в сервисный центр.

Устранение ошибки с построением цепочки сертификатов

Обычно ошибку вызывает отсутствие сертификатов доверенных корневых центров. Чтобы устранить неисправность, нужно открыть список сертификатов и найти проблемный. Он будет иметь отметку о проблеме в проверке отношений:

rundll 1

Затем пользователь скачивает с официальной страницы сертификат Минкомсвязи РФ и сертификат удостоверяющего центра, имеющего проблемы в работе. Устанавливают их в раздел «‎Корневые сертификаты»‎, а пошаговый процесс выглядит так:

В нужном сертификате нажать «‎Установить».

error 02

В мастере импорта сертификатов нажать «‎Далее» и в новом окне поставить галочку напротив «‎Поместить все сертификаты в следующем хранилище». Нажать «‎Обзор».

error 03

В открывшемся списке выбрать «‎Доверенные корневые центры» и нажать последовательно «‎ОК» и «‎Далее».

error 04

Нажать «‎Готово», а затем подтвердить установку.

error 05

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

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

Источник

На чтение 12 мин. Просмотров 188 Опубликовано

Содержание

  1. 1 Ошибка “Не удалось получить всю информацию о токене Код ошибки: 0x6a82 Описание ошибки: Файл/ RSF не найден”
  2. 2 Ошибка “Не удалось получить всю информацию о токене код ошибки: 0х6400 Описание ошибки: Состояние памяти Rutoken не изменилось”
  3. 3 Ошибка “Не удалось получить всю информацию о токене Код ошибки 0xF003 Описание ошибки Неверное значение”
  4. Почему выходит ошибка при создании подписи
  5. Почему не виден сертификат эцп на носителе
  6. Рутокен не определяется в “Панели управления Рутокен”
  7. 4  Ошибка «Обнаружено повреждение системной области памяти (ошибка CRC)» код ошибки 0x6F20
  8. 5 Референсные данные не найдены
  9. 6 «PIN-код заблокирован»
  10. Rtcert. exe. браузер сертификатов rutoken
  11. Ключ рутокен не определяется в системе.
  12. Настройка считывателя в криптопро
  13. Подготовка
  14. Подключите рутокен в любой usb порт компьютера или к картридеру
  15. Причина 2: долгое опознание носителя на windows 7
  16. Причина 3: usb-порт работает некорректно
  17. Причина 4: носитель неисправен
  18. Самые вероятные причины
  19. Установка драйвера для windows vista windows seven
  20. Установка драйвера для windows xp
  21. Установка драйверов и модулей rutoken
  22. Установка сертификатов
  23. Устранение ошибки с построением цепочки сертификатов
  24. Участник

1 Ошибка “Не удалось получить всю информацию о токене Код ошибки: 0x6a82 Описание ошибки: Файл/ RSF не найден”

Воспользуйтесь инструкцией.

Подключите Рутокен к другому USB порту. Повторите попытку ввода PIN-кода. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

2 Ошибка “Не удалось получить всю информацию о токене код ошибки: 0х6400 Описание ошибки: Состояние памяти Rutoken не изменилось”

Подключите Рутокен к другому USB порту. Повторите попытку ввести PIN-код. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

3 Ошибка “Не удалось получить всю информацию о токене Код ошибки 0xF003 Описание ошибки Неверное значение”

Подключите Рутокен к другому USB порту. Повторите попытку ввести PIN-код. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

Почему выходит ошибка при создании подписи

Ошибка создания подписи обычно имеет в расшифровке два значения:

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

Неисправность работы подписи связана с некорректной работой криптопровайдера, неустановленными или необновленными сертификатами.

Решение проблемы зависит от типа ошибки и обычно не требует обращения в техническую поддержку.

Почему не виден сертификат эцп на носителе

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

Рутокен не определяется в “Панели управления Рутокен”

Рутокен не определяется в “Панели управления Рутокен” (список «Подключенные Рутокен» пустой) и, как следствие, неактивны кнопки «Ввести PIN-код…» и «Информация…». В данном случае необходимо воспользоваться инструкцией.

4  Ошибка «Обнаружено повреждение системной области памяти (ошибка CRC)» код ошибки 0x6F20

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

5 Референсные данные не найдены

Подключите Рутокен к другому USB порту. Повторите попытку ввести PIN-код. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

Более подробная информация об ошибке есть в статье нашей Базы Знаний.

6 «PIN-код заблокирован»

Ошибка «PIN-код заблокирован» означает, что Рутокен был заблокирован в результате превышения количества попыток ввода PIN-кода. 

Если заблокирован PIN-код пользователя, воспользуйтесь инструкцией. 

Если заблокирован PIN-код Администратора, воспользуйтесь инструкцией.

Rtcert. exe. браузер сертификатов rutoken

1) Аутентификация Пользователя

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

— Импорт сертификата из файла в память токена

— Экспорт сертификата из памяти токена в PFX-файл

— Назначение и отмена контейнера по умолчанию

— Удаление контейнера с сертификатами из памяти токена

Для выполнения аутентификации нужно выбрать пункт меню Действия|Login. При этом появляется диалог следующего вида, в котором нужно ввести PIN-код и нажать [OK].

2) Добавление сертификата в хранилище сертификатов

Эта операция позволяет зарегистрировать выбранный сертификат в Личном хранилище сертификатов (Рисунок 8) данного компьютера. Для выполнения операции достаточно прав доступа Гостя.

Рисунок 8 — Консоль управления сертификатами

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

Зарегистрированный сертификат можно использовать в соответствующем ПО, даже если токен отсоединен от компьютера.

По завершении операции сертификат в списке помечается как зарегистрированный.

3) Удаление сертификата из хранилища сертификатов

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

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

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

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

Ключ рутокен не определяется в системе.

Итак Устройство чтения смарт-карт Microsoft Usbccid (WUDF) отображается в диспетчере устройств с восклицательным знаком. При этом сам ключ Рутокен не светится, ЭЦП не определяется КриптоПро и в Панели управления Рутокен. Драйвера Рутокена, естественно, установленны.

Устройство чтения смарт-карт Microsoft Usbccid (WUDF) Это устройство работает неправильно, т.к. Windows не удается загрузить для него нужные драйверы.

Настройка считывателя в криптопро

  1. Вставьте ruToken в USB-порт
  2. Запустите Пуск >Программы >КриптоПро CSP (нажмите на ярлык программы правой кнопкой мыши, выберите Запуск от имени Администратора)
  3. Перейдите на вкладку Оборудование
  4. Нажмите на кнопку «Настроить считыватели»
    Подключите рутокен в любой usb порт компьютера или к картридеру

Откроется окно со списком установленных считывателей. Если в списке нет считывателя Все считыватели смарт-карт, нажмите кнопку «Добавить»

Если кнопка «Добавить» не активна, то нужно перейти на вкладку «Общие» и нажать на ссылку «Запустить с правами администратора».
Подключите рутокен в любой usb порт компьютера или к картридеру

Для продолжения установки считывателя нажмите кнопку «Далее»

В следующем окне выберите считыватель Все считыватели смарт-карт и нажмите кнопку «Далее»
Подключите рутокен в любой usb порт компьютера или к картридеруДалее»
Подключите рутокен в любой usb порт компьютера или к картридеру

  • После чего, чтобы сохранить настройки, нажмите «Готово» > «Ок» > «Ок»
  • Подготовка

    • Все описанные ниже действия необходимо выполнять под учетной записью администратора
    • На время установки драйверов закройте все приложения
    • Rutoken нельзя подключать во время установки драйверов

    Подключите рутокен в любой usb порт компьютера или к картридеру

    у меня и на реальной не поучается, не то что на виртуаальной

    в общем есть система электронных торгов. Нас туда подключили и вручили ключ такой красненький с надписью Рутокен (тип Rutoken S 32 K) ключ я воткнул в сервак, дрова поставил, в общем все прекрасно можно пользоваться

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

    в принципе все получилось. Вроде бы )))

    1. Скопировал рутокен в реестр нужному пользователю. 2. Установил этот сертификат в личные именно с этого реестрового ключа 3. Все спокойной заходит и работает))

    Естественно это строго ограниченный анально огороженный спецтерминал для бухгалтеров.

    Цитата:

    копирование в реестр не проканает — закрытый ключ всё равно на токене.

    Речь шла о «контейнере», а не сертификате. «Контейнер» — место хранения закрытого ключа.

    Банк для аутентификации использует JC-Webclient. При установке этого «ПО» на сервер, по умолчанию в RDP сессии, оно не пашет. Сайт рутокена говорит нам, что чтобы JC-Webclient работал в терминальной сессии, он (JC-WebClient) должен быть запущен в контексте текущей сессии. Т.е. в пользовательской сессии открываем терминал и запускаем ручками JC-WebClient.exe -p 24738. Эта хренотень виснет на 127.0.0.1:24738 и вуаля – мы смогли зайти в Банк-клиент.

    Причина 2: долгое опознание носителя на windows 7

    При работе в ОС Windows 7 драйверы могут долго назначаться. Решение проблемы — дождитесь окончания процесса или обновите версию ОС.

    Причина 3: usb-порт работает некорректно

    Убедитесь, что проблема в USB-порте, а не в носителе ЭЦП, для этого переключите токен к другому порту. Если носитель определился системой, то перезагрузите ПК. Обычно это помогает справиться с проблемой и запустить работу всех USB-портов. Если перезагрузка не помогла, то желательно обратиться в техническую поддержку для устранения неисправности.

    Причина 4: носитель неисправен

    Если при переключении носителя к другому ПК или USB-порту флешку компьютер не видит, то проблема в носителе. Чтобы устранить неисправность, обратитесь в сервисный центр для выпуска нового токена.

    Самые вероятные причины

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

    Многие предприниматели путают ключ jacarta с электронной подписью для подачи деклараций в ФСРАР, и пытаются зайти в личный кабинет именно с использованием последней. Проверить, тот ли носитель вы вставили, можно несколькими способами.

    • Изучите сертификат электронной подписи, выданный в удостоверяющем центре. В нем должен быть указан серийный номер вида JC-xxxxxxxxx и тип носителя Jacarta PKI/ГОСТ.
    • откройте «Единый клиент Jacarta». Если флеш-карта обнаружена, но в окне программы не отображаются подключенные токены — вероятно, вы используете не тот носитель.

    Если вы еще не приобрели егаис, где взять jacarta с электронной подписью? Обратитесь в удостоверяющий центр вашего региона, который уполномочен продавать КЭП такого типа.

    Установка драйвера для windows vista windows seven

    1. Кликнуть по значку «Мой компьютер» правой кнопкой мыши и выбрать элемент «Свойства».

    2. В открывшемся меню выбрать «Диспетчер устройств».

    3. В открывшемся окне проверить, нет ли в списке элемента «Другие устройства», обозначенного желтым значком.

    4. Необходимо выделить строку «ruToken» и выбрать «Обновить драйверы».

    5. Далее выбрать «Выполнить поиск драйверов на этом компьютере».

    6. Нажать на кнопку «Обзор», указать каталог C:WindowsSystem32Aktiv Co и нажать на кнопку «Далее». Указанный каталог может быть скрытым. В таком случае необходимо выбрать меню «Сервис» > «Параметры папок» > «Вид», установить переключатель «Показывать скрытые файлы, папки и диски» и повторить выбор каталога.

    7. Дождаться окончания установки и нажать на кнопку «Закрыть».

    8. После установки драйвера устройство будет отображаться в разделе «Контроллеры USB». На токене также должен загореться диод.

    Установка драйвера для windows xp

    1. Кликнуть по значку «Мой компьютер» правой кнопкой мыши и выбрать элемент «Свойства».

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

    3. В открывшемся окне проверить, нет ли в списке элемента «ruToken» (либо «Неизвестное устройство”), обозначенного желтым значком. Необходимо кликнуть по нему правой кнопкой мыши и выбрать «Обновить драйвер».

    4. В окне «Мастер обновления оборудования» установить переключатель «Установка из указанного места».

    5. В открывшемся окне нажать на кнопку «Обзор», указать путь к каталогу C:Windowssystem32Aktiv Cot USB и нажать на кнопку «Далее». Указанный каталог может быть скрытым. В таком случае необходимо выбрать меню «Сервис» > «Параметры папок» > «Вид», установить переключатель «Показывать скрытые файлы, папки и диски» и повторить выбор каталога

    6. Дождаться окончания установки и нажать на кнопку «Готово».

    7. По завершении установки драйвера устройство будет отображаться в разделе «Контроллеры универсальной последовательной шины USB». На токене также должен загореться диод.

    6. В случае если выполнение инструкций не помогло исправить ошибку, токен, скорее всего, неисправен. Чтобы в этом убедиться, следует присоединить Rutoken к компьютеру, на котором никогда не устанавливался драйвер. Если носитель работает корректно, то должен запуститься «Мастер установки нового оборудования». Если при присоединении рутокена ничего не происходит, то носитель, вероятнее всего, неисправен, и его необходимо сменить.

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

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

    Установка драйверов и модулей rutoken

    Для установки драйверов необходимо:

    1. Сохраните на компьютер один файл с драйверами для носителя:
    2. rtDrivers
    3. Запустите установку драйвера rtDrivers
    4. Перезагрузите компьютер

    Установка сертификатов

    Для того, чтобы система стала запрашивать ruToken при входе, с него нужно установить сертификат. Чтобы узнать, как это сделать, перейдите по данной ссылке (нажмите здесь чтобы перейти).

    Устранение ошибки с построением цепочки сертификатов

    Обычно ошибку вызывает отсутствие сертификатов доверенных корневых центров. Чтобы устранить неисправность, нужно открыть список сертификатов и найти проблемный. Он будет иметь отметку о проблеме в проверке отношений:

    Затем пользователь скачивает с официальной страницы сертификат Минкомсвязи РФ и сертификат удостоверяющего центра, имеющего проблемы в работе. Устанавливают их в раздел «‎Корневые сертификаты»‎, а пошаговый процесс выглядит так:

    В нужном сертификате нажать «‎Установить».

    В мастере импорта сертификатов нажать «‎Далее» и в новом окне поставить галочку напротив «‎Поместить все сертификаты в следующем хранилище». Нажать «‎Обзор».

    В открывшемся списке выбрать «‎Доверенные корневые центры» и нажать последовательно «‎ОК» и «‎Далее».

    Нажать «‎Готово», а затем подтвердить установку.

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

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

    Участник

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

    Если Рутокен вставлен в компьютер (в сервер), а к нему пытаются обратиться удаленно, такая схема работать не будет.

    Протокол RDP (Remote Desktop Protocol) не позволяет удаленно работать со смарт-картами, так как это противоречит безопасности.

    Рекомендуем подключать Рутокен в компьютер, с которого будет осуществляться удаленное подключение (в клиент).

    3. Как открыть файл RSF?

    1. 3.1 Найдите и скачайте и установите соответствующее программное обеспечение
      1. 3.1.1 Программы, поддерживающие RSF файлы

      RSF расширение файла

      • Тип файла Mediafour MacDrive Macintosh Resource Fork
      • Разработчик файлов Mediafour Corporation
      • Категория файла Другие файлы
      • Рейтинг популярности файлов

      Что такое RSF файл?

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

      Как открыть файл RSF?

      Шаг 1. Найдите и скачайте и установите соответствующее программное обеспечение

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

      Программы, поддерживающие RSF файлы

      Windows

      Шаг 2. Убедитесь, что файл RSF не заражен вредоносным ПО

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

      Подсказка!

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

      Шаг 3. Убедитесь, что файлы RSF завершены, то есть были ли они загружены правильно

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

      Шаг 4. Убедитесь, что файлы RSF связаны с соответствующим программным обеспечением

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

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

      Шаг 5. Убедитесь, что носитель, на котором хранятся файлы RSF, не поврежден или не поврежден

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

      Почему «криптопро» csp может не видеть ключей на рутокен? следует проверить такие параметры:

      • корректно ли установлена программа (запущена ли служба Windows Installer);
      • есть доступ в сеть;
      • выдан корректный ключ в сертифицированном центре.

      Контейнер Крипто-про занимает примерно 4 килобайта. Второй причиной, почему «КриптоПро» не видит ключи на Рутокен, является некорректный просмотр. Т.е. вы не можете просмотреть сертификат подписи. В этом случае вам необходимо обратиться в УЦ, который выдавал подпись.

      1 Ошибка “Не удалось получить всю информацию о токене Код ошибки: 0x6a82 Описание ошибки: Файл/ RSF не найден”

      Воспользуйтесь инструкцией.

      Подключите Рутокен к другому USB порту. Повторите попытку ввода PIN-кода. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

      Почему криптопро не видит ключ эцп

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

      • закрытый и открытый ключи;
      • сертификат ключа проверки электронной подписи (СКПЭП, СЭП) — привязан к открытому ключу;
      • физический носитель, на который записываются все перечисленные средства.

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

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

      2 Ошибка “Не удалось получить всю информацию о токене код ошибки: 0х6400 Описание ошибки: Состояние памяти Rutoken не изменилось”

      Подключите Рутокен к другому USB порту. Повторите попытку ввести PIN-код. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

      3 Ошибка “Не удалось получить всю информацию о токене Код ошибки 0xF003 Описание ошибки Неверное значение”

      Подключите Рутокен к другому USB порту. Повторите попытку ввести PIN-код. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

      «1с-эдо» не видит криптопро csp

      «1С-ЭДО» — программа для обмена электронными документами, интегрированная в учетную базу «1С». Сервис позволяет удаленно взаимодействовать с контрагентами и отправлять отчетность в надзорные органы (ФНС, ПФР, ФСС, Росстат и др.). Чтобы документы приобрели юридическую силу, их необходимо заверить квалифицированной ЭП. Если сервис «1С-ЭДО» «не видит» ключ в КриптоПро CSP, рекомендованы следующие действия:

      • проверить, установлена ли на компьютере актуальная версия криптопровайдера;
      • при наличии СКЗИ уточнить, соответствует ли оно той программе, которая была указана в настройках обмена с «1С».

      Как проверить настройки криптопровайдера:

      1. Запустить сервис «1С-ЭДО».
      2. Перейти в раздел «Отчеты» → «Регламентированные отчеты».
      3. Нажать кнопку «Настройки».
      4. В подразделе «Документооборот с контролирующими органами» нажать кнопку «Здесь».

      Если в поле «Криптопровайдер» указана не та программа, которая установлена на ПК (например, VipNet), поменяйте ее в настройках и сохраните клавишей ОК. Для правильной работы сервиса ЭДО рекомендуется использовать на одном АРМ только один из сертифицированных провайдеров.

      4 Ошибка «Обнаружено повреждение системной области памяти (ошибка CRC)» код ошибки 0x6F20

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

      5 Референсные данные не найдены

      Подключите Рутокен к другому USB порту. Повторите попытку ввести PIN-код. По возможности, установите Драйверы Рутокен на другой компьютер, подключите токен и попробуйте ввести PIN-код.

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

      Более подробная информация об ошибке есть в статье нашей Базы Знаний.

      6 «PIN-код заблокирован»

      Ошибка «PIN-код заблокирован» означает, что Рутокен был заблокирован в результате превышения количества попыток ввода PIN-кода.

      Если заблокирован PIN-код пользователя, воспользуйтесь инструкцией.

      Если заблокирован PIN-код Администратора, воспользуйтесь инструкцией.

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

      Исправление ошибок при генерации rsa ключа егаис

      Исправление типичных ошибок при генерации RSA ключа ЕГАИС

      При генерации RSA ключа (транспортного ключа) в личном кабинете ЕГАИС могут возникать ошибки.

      Попробуем разобрать типовые ошибки, которые возникают при генерации транспортных RSA ключей ЕГАИС.

      Почему возникает ошибка при генерации ключа ЕГАИС?

      Ошибка при генерации транспортного ключа для ЕГАИС иногда возникает из-за неполадок на сайте ЕГАИС . Но это происходит крайне редко.

      В основном ошибки при генерации связаны с некорректными настройками компьютера.

      Общие рекомендации для успешной генерации транспортного RSA ключа ЕГАИС

      Необходимые требования и рекомендации:

      • Для корректной работы в личном кабинете ЕГАИС рекомендуется отключить все защитники и антивирусные программы на компьютере
      • Операционная система должна быть MS Windows и свежее чем XP (подойдет Vista/7/8/8/1/10, серверные ОС тоже поддерживаются, начиная с 2008). Крайне желательно наличие установленных актуальных обновлений.
      • Браузер Internet Explorer версии не ниже, чем 9.
      • Установлена актуальная версия крипто плагина ФСРАР Крипто (версия не ниже чем 2.00).
      • Установлены и настроены драйвера носителя для ЕГАИС.
      • Во время работы в личном кабинете ЕГАИС и при работе УТМ ЕГАИС должен быть вставлен только один ключ для ЕГАИС.

      Исправление ошибок при генерации RSA ключа ЕГАИС

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

      Если Вы используете носитель Рутокен ЭЦП 0, то вам необходимо выполнить следующие операции:

      Перейдите на вкладку «Настройки» и выберите пункт «Настройка…»

      Исправление ошибок при генерации RSA ключа ЕГАИС

      Установите напротив строки Рутокен ЭЦП значение Microsoft Base Smart Card Crypto Provider .

      Исправление ошибок при генерации RSA ключа ЕГАИС

      Пробуйте сгенерировать транспортный ключ ЕГАИС еще раз.

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

      Ошибка в методе createCertificateRequest Error: CKR_PNI_INCORRECT

      В данной ошибке указано, что неверно введен пин-код.

      Исправление ошибок при генерации RSA ключа ЕГАИС

      Проверьте правильность ввода пин-кодов. Если на вашем носителе установлен пин-код по умолчанию. Напоминаем стандартные пин коды:

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

      Ошибка в методе createCertificateRequest Error: CKR_ATTRIBUTE_TYPE_INVALID

      Такая ошибка была нами зафиксирована при использовании ключа JaCarta SE.

      Исправление ошибок при генерации RSA ключа ЕГАИС

      После успешной инициализации попробуйте снова сгенерировать транспортный ключ.

      Как должно работать

      Почему не видит ЭЦП компьютер? Вроде и ключ в виде флешки есть (тот же RuToken), и утилита «Крипто-Про» установлена, а проверка ЭП не выполняется. Основная причина — ПК изначально не видит флешку ЭЦП. Это возникает обычно, потому что ключ пытаются запустить на устройстве с неподдерживаемой ОС.

      Когда установка криптопровайдера выполнена на поддерживаемом аппарате, по инструкции, но всё равно компьютер не видит ЭЦП, проблема может быть и в самом ключе. Чтобы разобраться, свяжитесь с поддержкой. Там у вас запросят скриншоты:

      • версии/сборки CSP (вкладка «Общие»);
      • ошибок при подключении контейнера ЭЦП.

      Кроме того, укажите специалистам, где получали ЭЦП, на каком носителе у вас установлен контейнер (рутокен, етокен, флешка или реестр) и какая используется ОС (разрядность, сборка).

      Ошибка «Вставьте ключевой носитель» или «Вставлен другой носитель» возникает при попытке подписания электронного документа. Сначала следует убедиться, что USB-токен с сертификатом подключен к ПК (в качестве носителя используются защищенные криптоключи или обычные флешки).

      1. Открыть меню «Пуск» → «Панель управления» → «КриптоПро CSP».
      2. Зайти во вкладку «Сервис» → «Посмотреть сертификаты в контейнере» → «Обзор».
      3. Выбрать из списка ключевой контейнер, нажать ОК и «Далее».
      4. Нажать «Установить». Если появится предупреждение о том, что сертификат уже присутствует в хранилище, дать согласие на его замену.
      5. Дождаться загрузки сертификата в хранилище «Личное» и нажать ОК.

      После переустановки рекомендуется перезагрузить ПК. Для первичной инсталляции СКПЭП применим аналогичный алгоритм действий.

      Не работает служба инициализации

      Если работа сервиса инициализации Crypto Pro приостановлена, СКПЭП тоже не будет работать. Запустите командную строку клавишами Win R:

      1. Введите команду services.msc.
      2. В разделе «Службы» выберите «Службу инициализации» и проверьте в свойствах ее активность.

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

      Недостаточно прав для выполнения операции в криптопро

      Ошибка сопровождается уведомлением «У компонента недостаточно прав для доступа к сертификатам». Чаще всего возникает в двух ситуациях:

      Если система уведомила пользователя, что у него недостаточно прав для выполнения операции в КриптоПро, проблема может иметь следующие причины:

      • не установлен КриптоПро ЭЦП Browser plug-in 2.0 (или стоит его старая сборка);
      • сайт, куда пытается войти клиент, не добавлен в каталог доверенных (надежных) ресурсов.

      Browser plug-in — обязательный компонент для применения ЭП на веб-страницах. Он расширяет возможности криптопровайдера, позволяет формировать и проверять электронную подпись на интернет-ресурсах. Без этой программы, КриптоПро не сможет связаться с веб-страницей и реализовать на ней функции КЭП.

      1. Сохранить дистрибутив cadesplugin.exe.
      2. Запустить инсталляцию, кликнув по значку установщика.
      3. Разрешить программе внесение изменений клавишей «Да».

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

      Для работы с сертификатом ЭП рекомендуется использовать браузер Microsoft Internet Explorer (MIE) — для него не требуются дополнительные настройки. На завершающем этапе необходимо добавить сайт в список доверенных:

      1. Через меню «Пуск» (CTRL ESC) найти продукт КриптоПро CSP.
      2. Зайти в настройки плагина ЭЦП Browser.
      3. В разделе «Список доверенных узлов» ввести адреса всех ресурсов, принимающих ваш сертификат.

      Если после перезагрузки ПК проблема не решена, рекомендуется удалить плагин и выполнить повторную инсталляцию.

      Ошибка исполнения функции при подписании эцп

      Ошибка свидетельствует об отсутствии лицензии на продукт КриптоПро CSP. Зачастую она возникает при попытке подписать документ на торговых площадках или в информационных системах (ЕГАИС, ЖКХ, Росреестр, Госуслуги и др.).

      Лицензия на криптопровайдер может быть привязана к АРМ или встроена в сертификат ЭП. В первом случае необходимо убедиться, что лицензия введена на рабочем ПК и актуальна. Срок действия можно уточнить на вкладке «Общее» в меню запущенного криптопровайдера.

      Ошибка криптопро «0x80090008»: указан неправильный алгоритм

      Если версия CryptoPro не соответствует новым условиям сдачи отчетности, пользователь увидит на экране уведомление с кодом ошибки «0x80090008». Это значит, что на ПК установлен устаревший релиз программы, и его необходимо обновить. Для начала проверьте сертификат:

      При наличии ошибки в СЭП система на нее укажет.

      Ошибка при проверке цепочки сертификатов в криптопро

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

      • корневой сертификат от Минкомсвязи (начальное звено цепи), выданный УЦ;
      • промежуточный сертификат УЦ (ПС);
      • СКПЭП.

      Правильно построенная ЦС подтверждает, что СКПЭП (конечное звено) имеет доверенный путь (от Минкомсвязи к УЦ, от УЦ к пользователю). Ошибка при проверке цепочки сертификатов в КриптоПро свидетельствует о том, что минимум один элемент в этой системе искажен. ЭП при этом считается недействительной и не принимается для подписания файлов.

      При установке желательно делать так:

      Если когда-то были неправильно установлены предыдущие ключи и новый носитель не устанавливается, то нужно очистить реестр (Windows). Для этого в панели CSP есть кнопка «Удалить запомненные пароли».

      Если в событиях приложений ошибок не было, а в системе евент-логи их показали, необходимо проверить файлы Sfc/scannow, а после перерегистрировать компоненты MSIExec/unregister, потом — MSIExec/regserver.

      Проблемы с браузером

      Для заверки электронных файлов в интернете разработчик СКЗИ рекомендует использовать встроенный веб-обозреватель MIE. Но даже с ним бывают сбои. Если это произошло, зайдите в браузер под ролью администратора:

      1. Кликните по значку браузера на рабочем столе.
      2. В контекстном меню выберите соответствующую роль.

      Чтобы всякий раз не предпринимать лишние действия, в настройках можно задать автоматический доступ под нужными правами. Неактуальную версию браузера необходимо обновить до последнего релиза. Также следует отключить антивирусные программы, так как многие из них блокируют работу СКЗИ, воспринимая как вредоносное ПО.

      Сертификаты не отвечают критериям криптопро

      Первый способ устранения сбоя — «снести» СКЗИ и поставить заново, как описано выше. Если это вариант не сработал, значит проблема кроется в неправильном формировании ЦС. Рассмотрим на примере. Отправитель зашел в СКПЭП и в подразделе «Общее» увидел статус «Недостаточно информации для проверки этого сертификата».

      В первую очередь рекомендуется проверить наличие корневого сертификата в цепочке и при его отсутствии выполнить установку (алгоритм описан ранее). Если этот метод не помог, на форуме разработчика приводится еще один способ: от имени администратора вызвать «Пуск» → «Выполнить» → «regedit». Далее необходимо удалить ветки:

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

      Удаление программы

      Если никаких проблем не обнаружено, ошибку неправильного алгоритма поможет устранить переустановка СКЗИ:

      1. Найти криптопровайдер через «Пуск».
      2. Выбрать команду «Удалить».
      3. Перезагрузить ПК.

      Чтобы новая программа работала корректно, перед установкой требуется удалить все следы старой версии с помощью фирменной утилиты cspclean от CryptoPro:

      1. Запустить файл cspclean.exe на рабочем столе.
      2. Подтвердить удаление продукта клавишей «ДА».
      3. Перезагрузить компьютер.

      Контейнеры, сохраненные в реестре, удалятся автоматически.

      Установка актуального релиза

      Дистрибутивы для скачивания СКЗИ размещены в разделе «Продукты» и доступны для скачивания всем авторизованным пользователям. Создание ЛК занимает не более 5 минут:

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

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

      Электронная подпись описи содержания пакета недействительна

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

      Причина сбоя — нарушение доверенной цепочки, о которой было сказано ранее. В первую очередь следует проверить наличие и корректность КС и ПС. Если они установлены, удалите эти файлы и загрузите снова.

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

      • Что такое файл .rsf?
      • Какое программное обеспечение мне нужно открыть файл .rsf?
      • Как файл .rsf быть открыты, отредактированы или напечатано?
      • Как конвертировать .rsf файлов в другой формат?

      Оглавление

      Мы надеемся, что вы найдете на этой странице полезный и ценный ресурс!

      5 расширений и 1 псевдонимы, найденных в базе данных

      .rsf

      Описание (на английском языке):
      RSF file is a WAsP Resource Data. WAsP (Wind Atlas Analysis and Application Program) is a PC program for predicting wind climates, wind resources and power productions from wind turbines and wind farms.
      .rsf

      Описание (на английском языке):
      RSF file is a Reflection Desktop Settings Data. Reflection Desktop is a desktop application that allows you to run host applications, transfer files, and integrate host data into the latest Windows and Office software applications.
      .rsf

      Описание (на английском языке):
      RSF file is a Lego Mindstorms EV3 Robot Sound Data. Lego Mindstorms EV3 is a programmable kit with software and hardware components included.
      .rsf

      Описание (на английском языке):
      RSF file is a Nastran Results Summary Data. Nastran is a powerful, highly flexible analysis and optimisation finite-element program on an open architecture for analysing stress, vibration, and heat transfer characteristics of structures and mechanical components.
      .rsf

      Описание (на английском языке):
      RSF file is an EaseUS Todo Backup Recovery State Data. EaseUS Todo Backup is a reliable data backup software for home users, backing up and restoring files fast on a Windows-based computer.
      .rss

      Описание (на английском языке):
      RSS file is a ReliaSoft BlockSim Data. ReliaSoft BlockSim provides a comprehensive platform for system reliability, availability, maintainability and related analyses that allows you to model the most complex systems and processes using reliability block diagrams (RBDs), fault tree analysis (FTA), or Markov diagrams.

      Другие типы файлов могут также использовать расширение файла .rsf.

      По данным Поиск на нашем сайте эти опечатки были наиболее распространенными в прошлом году:

      dsf , esf , fsf , gsf , rcf , ref , rf , rfs , rqf , rs , rsb , rsc , rsd , rse , rsg

      Это возможно, что расширение имени файла указано неправильно?

      Мы нашли следующие аналогичные расширений файлов в нашей базе данных:

      Windows не удается открыть этот файл:

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

      Если вы не знаете как настроить сопоставления файлов .rsf, проверьте FAQ.

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

      Если у вас есть полезная информация о расширение файла .rsf, напишите нам!

      Программы, которые поддерживают RSF расширение файла

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

      Программы, обслуживающие файл RSF

      Как открыть файл RSF?

      Проблемы с доступом к RSF могут быть вызваны разными причинами. Что важно, все распространенные проблемы, связанные с файлами с расширением RSF, могут решать сами пользователи. Процесс быстрый и не требует участия ИТ-специалиста. Ниже приведен список рекомендаций, которые помогут вам выявить и решить проблемы, связанные с файлами.

      Шаг 1. Установите MacDrive программное обеспечение

      Install software to open RSF file

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

      Шаг 2. Убедитесь, что у вас установлена последняя версия MacDrive

      Update software that support file extension RSF

      Вы по-прежнему не можете получить доступ к файлам RSF, хотя MacDrive установлен в вашей системе? Убедитесь, что программное обеспечение обновлено. Разработчики программного обеспечения могут реализовать поддержку более современных форматов файлов в обновленных версиях своих продуктов. Это может быть одной из причин, по которой RSF файлы не совместимы с MacDrive. Самая последняя версия MacDrive обратно совместима и может работать с форматами файлов, поддерживаемыми более старыми версиями программного обеспечения.

      Шаг 3. Настройте приложение по умолчанию для открытия RSF файлов на MacDrive

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

      Associate software with RSF file on Windows

      Изменить приложение по умолчанию в Windows

      • Нажатие правой кнопки мыши на RSF откроет меню, из которого вы должны выбрать опцию Открыть с помощью
      • Далее выберите опцию Выбрать другое приложение а затем с помощью Еще приложения откройте список доступных приложений.
      • Наконец, выберите Найти другое приложение на этом. , укажите папку, в которой установлен MacDrive, установите флажок Всегда использовать это приложение для открытия RSF файлы свой выбор, нажав кнопку ОК

      Изменить приложение по умолчанию в Mac OS

      Шаг 4. Убедитесь, что RSF не неисправен

      Вы внимательно следили за шагами, перечисленными в пунктах 1-3, но проблема все еще присутствует? Вы должны проверить, является ли файл правильным RSF файлом. Отсутствие доступа к файлу может быть связано с различными проблемами.

      Check RSF file for viruses

      1. Убедитесь, что RSF не заражен компьютерным вирусом

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

      2. Проверьте, не поврежден ли файл
      3. Проверьте, есть ли у вашей учетной записи административные права

      Иногда для доступа к файлам пользователю необходимы права администратора. Выйдите из своей текущей учетной записи и войдите в учетную запись с достаточными правами доступа. Затем откройте файл Mediafour MacDrive Macintosh Resource Fork.

      4. Проверьте, может ли ваша система обрабатывать MacDrive

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

      5. Убедитесь, что у вас установлены последние версии драйверов, системных обновлений и исправлений

      Последние версии программ и драйверов могут помочь вам решить проблемы с файлами Mediafour MacDrive Macintosh Resource Fork и обеспечить безопасность вашего устройства и операционной системы. Устаревшие драйверы или программное обеспечение могли привести к невозможности использования периферийного устройства, необходимого для обработки файлов RSF.

      Вы хотите помочь?

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

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

          

      • Презентация история вычислительной техники виды современных компьютеров
      •   

      • Как настроить ivcam через usb
      •   

      • Как открыть файл lbr
      •   

      • Epson l805 настройки цветопередачи для печати из coreldraw
      •   

      • Чем отличаются суперкомпьютеры от обычных компьютеров

    Понравилась статья? Поделить с друзьями:
  • Русская рыбалка ошибка соединения
  • Русский язык 8 задание егэ все ошибки
  • Рутокен ошибка импорта
  • Русский язык 3 класс работа над ошибками диктанта
  • Рутокен ошибка смарт карты