Рутокен ЭЦП 3.0 3220 Type-C

Добрый день.

Получил Рутокен ЭЦП 3.0 3220 Type-C Планирую использовать для ssh-ключей, по меньшей мере.

Дано есть Рутокен ЭЦП PKI Type-C (см https://forum.rutoken.ru/post/15402/#p15402)

Окружение:
Fedora Linux 41

❯ rpm -q pcsc-lite-ccid pcsc-lite pcsc-tools opensc librtpkcs11ecp
pcsc-lite-ccid-1.6.1-2.fc41.x86_64
pcsc-lite-2.3.1-1.fc41.x86_64
pcsc-tools-1.7.0-4.fc41.x86_64
opensc-0.26.1-1.fc41.x86_64
librtpkcs11ecp-2.17.5.0-1.x86_64

pkcs11-tool
ЭЦП PKI

❯ pkcs11-tool -L          
Available slots:
Slot 0 (0x0): Aktiv Rutoken ECP 00 00
  token label        : Rutoken ECP
  token manufacturer : Aktiv Co.
  token model        : PKCS#15
  token flags        : login required, rng, token initialized, PIN initialized
  hardware version   : 0.0
  firmware version   : 0.0
  serial num         : 000000003c51753a
  pin min/max        : 4/32
  uri                : pkcs11:model=PKCS%2315;manufacturer=Aktiv%20Co.;serial=000000003c51753a;token=Rutoken%20ECP

❯ pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -L 
Available slots:
Slot 0 (0x0): Aktiv Rutoken ECP 00 00
  token label        : Rutoken ECP <no label>
  token manufacturer : Aktiv Co.
  token model        : Rutoken ECP
  token flags        : login required, rng, token initialized, PIN initialized
  hardware version   : 54.1
  firmware version   : 23.0
  serial num         : 3c51753a
  pin min/max        : 4/32
  uri                : pkcs11:model=Rutoken%20ECP;manufacturer=Aktiv%20Co.;serial=3c51753a;token=Rutoken%20ECP%20<no%20label>
Slot 1 (0x1): 
  (empty)

ЭЦП 3.0 3220

❯ pkcs11-tool -L                                       
Available slots:
Slot 0 (0x0): Aktiv Rutoken ECP 00 00
  (token not recognized)

❯ pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -L 
Available slots:
Slot 0 (0x0): Aktiv Rutoken ECP 00 00
  token label        : Rutoken ECP <no label>
  token manufacturer : Aktiv Co.
  token model        : Rutoken ECP
  token flags        : login required, rng, SO PIN to be changed, token initialized, PIN initialized, user PIN to be changed
  hardware version   : 65.4
  firmware version   : 30.2
  serial num         : 45154e94
  pin min/max        : 6/32
  uri                : pkcs11:model=Rutoken%20ECP;manufacturer=Aktiv%20Co.;serial=45154e94;token=Rutoken%20ECP%20<no%20label>
Slot 1 (0x1): 
  (empty)

Для обоих токенов испольнование модуля приводит к выводу списка пустых слотов по 14й включительно, я не стал добавлять это в сообщение.

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

pkcs15-tool
ЭЦП PKI

❯ pkcs15-tool -k -v
Using reader with a card: Aktiv Rutoken ECP 00 00
Connecting to card in reader Aktiv Rutoken ECP 00 00...
Using card driver Rutoken ECP and Lite driver.
Trying to find a PKCS#15 compatible card...
Found Rutoken ECP!
Card has 1 Private key(s).

Private RSA Key [oberon]
    Object Flags   : [0x03], private, modifiable
    Usage          : [0x0E], decrypt, sign, signRecover
    Access Flags   : [0x00]
    Algo_refs      : 0
    ModLength      : 2048
    Key ref        : 1 (0x01)
    Native         : yes
    Path           : <cut>
    Auth ID        : 02
    ID             : <cut>
    MD:guid        : <cut>

это мой ключ, отлично работает в ssh

ЭЦП 3.0 3220

❯ pkcs15-tool -k -v
Using reader with a card: Aktiv Rutoken ECP 00 00
Connecting to card in reader Aktiv Rutoken ECP 00 00...
Using card driver Rutoken ECP and Lite driver.
Trying to find a PKCS#15 compatible card...
P:693654; T:0x139759383082368 23:11:31.268 [pkcs15-tool] pkcs15-din-66291.c:208:sc_pkcs15emu_din_66291_init_ex: called
PKCS#15 binding failed: Unsupported card

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

Re: Рутокен ЭЦП 3.0 3220 Type-C

Продолжаю...

Сгенерировал ключ на новом токене

❯ pkcs15-init --erase-card                                                                                        
Using reader with a card: Aktiv Rutoken ECP 00 00

❯ pkcs15-init --create-pkcs15 --so-pin "87654321" --so-puk ""                                                     
Using reader with a card: Aktiv Rutoken ECP 00 00

❯ pkcs15-init --store-pin --label "User PIN" --auth-id 02 --pin "12345678" --puk "" --so-pin "87654321" --finalize
Using reader with a card: Aktiv Rutoken ECP 00 00

❯ pkcs15-init --generate-key rsa/4096 --auth-id 02 --id 42
Using reader with a card: Aktiv Rutoken ECP 00 00
User PIN [User PIN] required.
Please enter User PIN [User PIN]: 

после вывод изменился, pkcs15-tool все увидел

❯ pkcs15-tool -k -v
Using reader with a card: Aktiv Rutoken ECP 00 00
Connecting to card in reader Aktiv Rutoken ECP 00 00...
Using card driver Rutoken ECP and Lite driver.
Trying to find a PKCS#15 compatible card...
Found Rutoken ECP!
Card has 1 Private key(s).

Private RSA Key [oberon]
    Object Flags   : [0x03], private, modifiable
    Usage          : [0x0E], decrypt, sign, signRecover
    Access Flags   : [0x00]
    Algo_refs      : 0
    ModLength      : 2048
    Key ref        : 1 (0x01)
    Native         : yes
    Path           : 3f001000100060020001
    Auth ID        : 02
    ID             : 4f078ddc4913b7146b56eb103ae1484f57842618
    MD:guid        : 164f78f2-2bbe-68dc-430e-436dd65d1a3d

Налицо мой косяк: карту не инициализировал но попытался опросить.

Re: Рутокен ЭЦП 3.0 3220 Type-C

Судя по другим сообщениям, ssh может работать с ключами

  • созданными через pkcs11-tool с модулем librtpkcs11ecp

  • созданными через pkcs15-tool

Подскажите, какой из способов позволяет генерировать неизвлекаемые ключи? Для каких алгоритмов это возможно в случае Рутокен ЭЦП 3.0 3220 Type-C?

Re: Рутокен ЭЦП 3.0 3220 Type-C

dkostousov, добрый день!
Генерация ключей и использование токена для ssh описано в следующей инструкции.