Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Наши способы организации безопасного удалённого доступа к рабочим местам и корпоративным ресурсам
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline risser  
#1 Оставлено : 6 сентября 2020 г. 17:27:43(UTC)
risser

Статус: Новичок

Группы: Участники
Зарегистрирован: 06.09.2020(UTC)
Сообщений: 4

Получил УКЭП от https://i.kontur-ca.ru, сохранил в HDIMAGE. Подписывание соответствующим сертификатом на https://cryptopro.ru/sit...ge/cades_bes_sample.html работает, certmgr его отображает:

Код:
> certmgr -list
Certmgr 1.1 (c) "Crypto-Pro", 2007-2020.
Program for managing certificates, CRLs and stores.
=============================================================================
1-------
<...>
Signature Algorithm : ГОСТ Р 34.11-2012/34.10-2012 256 бит
PublicKey Algorithm : ГОСТ Р 34.10-2012 (512 bits)
<...>
Embedded License    : CryptoPro CSP
PrivateKey Link     : Yes                 
Container           : \\.\HDIMAGE\44975032@2020-09-05-<ФИО>
Provider Name       : Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider
Provider Info       : Provider Type: 80, Key Spec: 1, Flags: 0x0
<...>
=============================================================================

[ErrorCode: 0x00000000]


Также соответствующий контейнер отображается командой csptest:

Код:
$ csptest -keyset -enum_cont -verifycontext -fqcn
CSP (Type:80) v5.0.10006 KC1 Release Ver:5.0.11823 OS:Linux CPU:AMD64 FastCode:READY:SSSE3,AVX.
AcquireContext: OK. HCRYPTPROV: 31592435
\\.\HDIMAGE\44975032@2020-09-05-<ФИО>
OK.
Total: SYS: 0.010 sec USR: 0.020 sec UTC: 0.050 sec
[ErrorCode: 0x00000000]


Пока получал сертификат от Контура, не смог записать его на Rutoken lite (браузерный плагин Контура не отображал токен в качестве доступного носителя). Сейчас пытаюсь его туда скопировать.

Операционная система и сам КриптоПро токен, казалось бы, видят:

Код:
$ pcsc_scan
Using reader plug'n play mechanism
Scanning present readers...
0: Aktiv Rutoken lite - CP 00 00
 
Sun Sep  6 16:48:40 2020
 Reader 0: Aktiv Rutoken lite - CP 00 00
  Event number: 0
  Card state: Card inserted, 
  ATR: 3B 8B 01 52 75 74 6F 6B 65 6E 6C 69 74 65 C2

ATR: 3B 8B 01 52 75 74 6F 6B 65 6E 6C 69 74 65 C2
+ TS = 3B --> Direct Convention
+ T0 = 8B, Y(1): 1000, K: 11 (historical bytes)
  TD(1) = 01 --> Y(i+1) = 0000, Protocol T = 1 
-----
+ Historical bytes: 52 75 74 6F 6B 65 6E 6C 69 74 65
  Category indicator byte: 52 (proprietary format)
+ TCK = C2 (correct checksum)

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B 8B 01 52 75 74 6F 6B 65 6E 6C 69 74 65 C2
	Aktiv Rutoken Lite
	https://www.rutoken.ru/products/all/rutoken-lite/

$ list_pcsc
Aktiv Rutoken lite - CP 00 00

$ csptest -enum -info -type PP_ENUMREADERS
CSP (Type:80) v5.0.10006 KC1 Release Ver:5.0.11823 OS:Linux CPU:AMD64 FastCode:READY:SSSE3,AVX.
CryptAcquireContext succeeded.HCRYPTPROV: 33545459
GetProvParam(...PP_ENUMREADERS...) until it returns false
  Len    Byte  NickName/Name
_____________________________
 0x012a  0x03  Aktiv Rutoken lite - CP 00 00
               Aktiv Rutoken lite - CP 00 00
 0x012a  0x00  HDIMAGE
               Directory
Cycle exit when getting data. 2 items found. Level completed without problems.
Total: SYS: 0.010 sec USR: 0.030 sec UTC: 0.050 sec
[ErrorCode: 0x00000000]

$ cpconfig -hardware reader -view

Nick name: Aktiv Rutoken lite - CP 00 00
Connect name: 
Reader name: Aktiv Rutoken lite - CP 00 00

Nick name: HDIMAGE
Connect name: 
Reader name: Directory


Вывод
Код:
cpconfig -hardware media -view
не содержит ничего про Rutoken.

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

Код:
$ csptest -keyset -provtype 80 -newkeyset -cont '\\\\.\\Aktiv Rutoken lite - CP 00 00\\Rutoken'


появляется такое окно:

UserPostedImage

Кнопка "OK" недоступна. При нажатии Cancel в консоли выводится:

Код:
CSP (Type:80) v5.0.10006 KC1 Release Ver:5.0.11823 OS:Linux CPU:AMD64 FastCode:READY:SSSE3,AVX.
/dailybuildsbranches/CSP_5_0r2i/CSPbuild/CSP/samples/csptest/ctkey.c:1132:AcquireContext("\\.\Aktiv Rutoken lite - CP 00 00\Rutoken")
Error 0x8010006e: The action was cancelled by the user. 
Total: SYS: 0.010 sec USR: 0.040 sec UTC: 468.820 sec
[ErrorCode: 0x8010006e]


То же самое при попытке скопировать контейнер без предварительного создания на токене:

Код:
csptest -keycopy -contsrc '\\\\.\\HDIMAGE\\44975032@2020-09-05-<ФИО>' -contdest '\\\\.\\Aktiv Rutoken lite - CP 00 00\\Rutoken'


Ещё диагностический вывод:

Код:
$ pkcs11-tool -I
Cryptoki version 2.20
Manufacturer     OpenSC Project
Library          OpenSC smartcard framework (ver 0.20)
Using slot 0 with a present token (0x0)

$ pkcs11-tool -L
Available slots:
Slot 0 (0x0): Aktiv Rutoken lite - CP 00 00
C_GetTokenInfo() failed: rv = CKR_TOKEN_NOT_PRESENT

$ pkcs11-tool -T
Available slots:
No slots.

$ pkcs11-tool -M
Using slot 0 with a present token (0x0)
error: PKCS11 function C_GetMechanismList failed: rv = CKR_TOKEN_NOT_PRESENT (0xe0)
Aborting.

$ pkcs11-tool -O
Using slot 0 with a present token (0x0)

$ sudo systemctl status pcscd
● pcscd.service - PC/SC Smart Card Daemon
     Loaded: loaded (/usr/lib/systemd/system/pcscd.service; indirect; vendor preset: disabled)
     Active: active (running) since Sat 2020-09-05 15:49:04 MSK; 1 day 1h ago
TriggeredBy: ● pcscd.socket
       Docs: man:pcscd(8)
   Main PID: 4340 (pcscd)
      Tasks: 6 (limit: 38332)
     Memory: 3.4M
     CGroup: /system.slice/pcscd.service
             └─4340 /usr/bin/pcscd --foreground --auto-exit

Sep 06 13:24:35 thamiel pcscd[4340]: 00000039 winscard.c:264:SCardConnect() Reader  Not Found
Sep 06 13:24:35 thamiel pcscd[4340]: 00000041 winscard.c:264:SCardConnect() Reader  Not Found
Sep 06 13:24:35 thamiel pcscd[4340]: 00000038 winscard.c:264:SCardConnect() Reader  Not Found
Sep 06 13:24:35 thamiel pcscd[4340]: 00000038 winscard.c:264:SCardConnect() Reader  Not Found
Sep 06 13:24:35 thamiel pcscd[4340]: 00000040 winscard.c:264:SCardConnect() Reader  Not Found
Sep 06 13:24:35 thamiel pcscd[4340]: 00000037 winscard.c:264:SCardConnect() Reader  Not Found
Sep 06 13:24:35 thamiel pcscd[4340]: 00000037 winscard.c:264:SCardConnect() Reader  Not Found
Sep 06 13:24:35 thamiel pcscd[4340]: 00000038 winscard.c:264:SCardConnect() Reader  Not Found
Sep 06 13:24:35 thamiel pcscd[4340]: 00000039 winscard.c:264:SCardConnect() Reader  Not Found
Sep 06 13:24:35 thamiel pcscd[4340]: 00000037 winscard.c:264:SCardConnect() Reader  Not Found


Операционная система: Manjaro Linux (на основе Arch Linux), последнее обновление rolling release, kernel 5.8.3. КриптоПро установлен из AUR: https://aur.archlinux.or...kgbase/cryptopro-csp-k1/

Какой последовательностью команд я могу:


  1. Скопировать сертификат из HDIMAGE на токен;
  2. Убедиться, что копия валидна и полностью идентична оригиналу;
  3. Удалить сертификат из HDIMAGE?
Offline Андрей Русев  
#2 Оставлено : 6 сентября 2020 г. 23:01:21(UTC)
Андрей Русев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 670

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 137 раз в 109 постах
Убедиться, что CSP видит токен можно с помощью
Код:
csptest -enum -info -type PP_ENUMREADERS -flags 32,

Кроме того, что вы уже получили, там должен отображаться уникальный идентификатор токена (а не invalid_media, например).
Копируете вы правильно, но лучше поставить пакет cprocsp-cptools и делать это из GUI - там вы точно не опечатаетесь (например, вы напрасно удваиваете бэкслеши при одинарных кавычках) и не сделаете других простых ошибок.
Официальная техподдержка. Официальная база знаний.
Offline risser  
#3 Оставлено : 6 сентября 2020 г. 23:21:21(UTC)
risser

Статус: Новичок

Группы: Участники
Зарегистрирован: 06.09.2020(UTC)
Сообщений: 4

Код:
$ csptest -enum -info -type PP_ENUMREADERS -flags 32
CSP (Type:80) v5.0.10006 KC1 Release Ver:5.0.11823 OS:Linux CPU:AMD64 FastCode:READY:SSSE3,AVX.
CryptAcquireContext succeeded.HCRYPTPROV: 41569523
GetProvParam(...PP_ENUMREADERS...) until it returns false
Flags: 0x20
  Len    Byte  NickName/Name/Media
___________________________________
 0x012a  0x03  Aktiv Rutoken lite - CP 00 00
               Aktiv Rutoken lite - CP 00 00
               NO_MEDIA
 0x012a  0x00  HDIMAGE
               Directory
               NO_UNIQUE
Cycle exit when getting data. 2 items found. Level completed without problems.
Total: SYS: 0.000 sec USR: 0.020 sec UTC: 0.030 sec
[ErrorCode: 0x00000000]


Цитата:
вы напрасно удваиваете бэкслеши при одинарных кавычках


У меня fish вместо bash, там так надо. В bash команда для создания нового контейнера без удвоения слэшей открывает то же окно "insert empty carrier...".
Offline Андрей Русев  
#4 Оставлено : 7 сентября 2020 г. 22:05:47(UTC)
Андрей Русев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 670

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 137 раз в 109 постах
Ну вот, у вас "NO_MEDIA", значит провайдер токен не видит. Вероятно, вы не установили пакет cprocsp-rdr-rutoken.
Официальная техподдержка. Официальная база знаний.
Offline risser  
#5 Оставлено : 8 сентября 2020 г. 23:51:28(UTC)
risser

Статус: Новичок

Группы: Участники
Зарегистрирован: 06.09.2020(UTC)
Сообщений: 4

Спасибо за наводку на cprocsp-rdr-rutoken и cprocsp-cptools. Кажется, получилось. Я передам автору пакета в AUR соответствующий патч.

UserPostedImage

Но, надо отметить, с тёмной темой интерфейс взаимодействует так себе.
Offline risser  
#6 Оставлено : 9 сентября 2020 г. 12:48:25(UTC)
risser

Статус: Новичок

Группы: Участники
Зарегистрирован: 06.09.2020(UTC)
Сообщений: 4

Я скопировал ключ командой

Код:
csptest -keycopy -contsrc '\\\\.\\HDIMAGE\\44975032@2020-09-05-<ФИО>' -contdest '\\\\.\\Aktiv Rutoken lite - CP 00 00\\Some Name'


После этого вывод certmgr -list не изменился, но в выводе csptest -keyset -enum_cont -verifycontext -fqcn появилась строка про контейнер Some Name. Как я теперь могу убедиться, что (1) копия полностью идентична оригиналу, (2) очистить хранилище HDIMAGE? В частности, беспокоит то, что я сейчас нигде в интерфейсе (CLI или GUI) не вижу возможность выбрать, откуда брать ключ для подписи — из HDIMAGE или с токена. Везде, где есть возможность выбрать ключ, указано, что ключ хранится в HDIMAGE.
Offline Андрей Русев  
#7 Оставлено : 9 сентября 2020 г. 21:43:18(UTC)
Андрей Русев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 670

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 137 раз в 109 постах
Работу по поддержке тёмной темы в cptools на Linux мы почти закончили, скоро будет.

1. Обычно это не требуется. Можно косвенно. Протестировать контейнеры в cptools (или по csptest -keyset -check -container имя_контейнера) и сравнить результаты тестирования.
2. Удалять контейнеры умеет cptools и csptest -keyset -delete -container имя_контейнера

"Откуда брать ключ" - это атрибут сертификата в личном хранилище, называется "ссылка на закрытый ключ" (private key link). Чтобы она указывала на новый контейнер, проще всего в cptools на вкладке контейнеры нажать "установить". Либо через certmgr -inst -cont имя_контейнера...
Официальная техподдержка. Официальная база знаний.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.