Дерево страниц

Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
  • Astra Linux Special Edition РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
    Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) с установленным обновлением БЮЛЛЕТЕНЬ № 20211126SE16 (оперативное обновление 10)
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1) с установленным обновлением БЮЛЛЕТЕНЬ № 20211019SE81
  • Astra Linux Common Edition 2.12.45


Введение

OpenSC (пакет opensc) — набор библиотек и инструментов для доступа к ключевым носителям (смарт-картам и токенам), поддерживающим криптографические операции.

Инструменты, входящие в состав пакета, несовместимы с токенами Аладдин JaCarta.

Установка OpenSC

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

sudo apt install opensc

Opensc-tool

Идентификация

Для идентификации ключевого носителя и его серийного номера, следует ввести команду:

opensc-tool --name --atr --serial

Using reader with a card: Aktiv Co. Rutoken S 00 00
3b:6f:00:ff:00:56:72:73:54:ff:6b:6e:73:30:20:00:00:90:00
Rutoken S card

Содержимое ключевого носителя

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

opensc-tool --list-files
Пример вывода команды:

Using reader with a card: Aktiv Co. Rutoken S 00 00
3f00 type: DF, size: 0
select[NONE] lock[N/A] delete[NEVR] create[CHV2] rehab[N/A] inval[N/A] list[NONE] sec: 6F:01:01:01:01:00:FF:FF:02:00:00:00:02:00:00:00:02:00:00:00:02:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

  3f000000 type: DF, size: 0
  select[NONE] lock[N/A] delete[NEVR] create[CHV2] rehab[N/A] inval[N/A] list[NONE] sec: 6F:01:01:01:01:00:FF:FF:02:00:00:00:02:00:00:00:02:00:00:00:02:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

...

3f000000000000020a000a06 type: wEF, ef structure: transparent, size: 300
          read[N/A] update[CHV2] erase[CHV2] write[CHV2] rehab[N/A] inval[N/A] sec: 42:00:01:00:00:00:00:01:00:00:00:00:02:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:02:00:00:00:00:00:00:00

00000000: 30 14 16 08 54 65 73 74 43 6F 6E 74 80 08 54 65 0...TestCont..Te
00000010: 73 74 43 6F 6E 74 00 00 00 00 00 00 00 00 00 00 stCont..........
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

3f000000000000020a000a03 type: wEF, ef structure: transparent, size: 3072
          read[N/A] update[CHV2] erase[CHV2] write[CHV2] rehab[N/A] inval[N/A] sec: 42:00:01:00:00:00:00:01:00:00:00:00:02:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:02:00:00:00:00:00:00:00

00000000: 30 82 04 4B 30 82 04 41 A0 0A 06 08 2A 85 03 02 0..K0..A....*...
00000010: 02 25 02 01 03 02 06 40 30 24 03 01 00 A0 1F 06 .%.....@0$......
00000020: 08 2A 85 03 07 01 01 01 01 30 13 06 07 2A 85 03 .*.......0...*..
00000030: 02 02 23 01 06 08 2A 85 03 07 01 01 02 02 82 04 ..#...*.........
00000040: 00 00 00 00 A4 25 03 02 05 20 A0 1F 06 08 2A 85 .....%... ....*.
00000050: 03 07 01 01 06 01 30 13 06 07 2A 85 03 02 02 24 ......0...*....$
00000060: 00 06 08 2A 85 03 07 01 01 02 02 86 82 03 82 30 ...*...........0
00000070: 82 03 7E 30 82 03 2D A0 03 02 01 02 02 13 12 00 ..~0..-.........
00000080: 2E 5F 42 04 FC 38 83 8E 34 42 9D 00 00 00 2E 5F ._B..8..4B....._
00000090: 42 30 08 06 06 2A 85 03 02 02 03 30 7F 31 23 30 B0...*.....0.1#0
000000A0: 21 06 09 2A 86 48 86 F7 0D 01 09 01 16 14 73 75 !..*.H........su
000000B0: 70 70 6F 72 74 40 63 72 79 70 74 6F 70 72 6F 2E pport@astralinux
000000C0: 72 75 31 0B 30 09 06 03 55 04 06 13 02 52 55 31 .ru.0...U....RU1
000000D0: 0F 30 0D 06 03 55 04 07 13 06 4D 6F 73 63 6F 77 .0...U....Moscow
000000E0: 31 17 30 15 06 03 55 04 0A 13 0E 43 52 59 50 54 1.0...U....ASTRA
000000F0: 4F 2D 50 52 4F 20 4C 4C 43 31 21 30 1F 06 03 55 - RBT LLC1!0...U
00000100: 04 03 13 18 43 52 59 50 54 4F 2D 50 52 4F 20 54 ....Astra-RBT0 T
00000110: 65 73 74 20 43 65 6E 74 65 72 20 32 30 1E 17 0D est Center 20...
00000120: 31 38 31 30 31 39 30 37 35 30 34 39 5A 17 0D 31 181019075049Z..1
00000130: 39 30 31 31 39 30 38 30 30 34 39 5A 30 81 8C 31 90119080049Z0..1
00000140: 21 30 1F 06 09 2A 86 48 86 F7 0D 01 09 01 16 12 !0...*.H........
00000150: 75 73 65 72 40 61 73 74 72 61 6C 69 6E 75 78 2E user@astralinux.

          3f000000000000020a000a02 type: wEF, ef structure: transparent, size: 70
          read[CHV2] update[CHV2] erase[CHV2] write[CHV2] rehab[N/A] inval[N/A] sec: 43:01:01:00:00:00:00:01:02:00:00:00:02:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:02:00:00:00:00:00:00:00

          3f000000000000020a000a01 type: wEF, ef structure: transparent, size: 60
          read[CHV2] update[CHV2] erase[CHV2] write[CHV2] rehab[N/A] inval[N/A] sec: 43:01:01:00:00:00:00:01:02:00:00:00:02:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:02:00:00:00:00:00:00:00

          3f000000000000020a000a05 type: wEF, ef structure: transparent, size: 70
          read[CHV2] update[CHV2] erase[CHV2] write[CHV2] re$ opensc-tool --list-fileshab[N/A] inval[N/A] sec: 43:01:01:00:00:00:00:01:02:00:00:00:02:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:02:00:00:00:00:00:00:00

          3f000000000000020a000a04 type: wEF, ef structure: transparent, size: 60
          read[CHV2] update[CHV2] erase[CHV2] write[CHV2] rehab[N/A] inval[N/A] sec: 43:01:01:00:00:00:00:01:02:00:00:00:02:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:02:00:00:00:00:00:00:00


Opensc-explorer

Для запуска программы opensc-explorer выполнить команду:

opensc-explorer
Запрос информации о корневом файле

Для запроса информации о корневом файле использовать опциею info:

info 3F00

Dedicated File  ID 3F00

File path:     3F00$ opensc-tool --list-files File size:     0 bytes
ACL for SELECT:       NONE
ACL for LOCK:         N/A
ACL for DELETE:       NEVR
ACL for CREATE:       CHV2
ACL for REHABILITATE: N/A
ACL for INVALIDATE:   N/A
ACL for LIST FILES:   NONE
ACL for CRYPTO:       N/A
ACL for DELETE SELF:  N/A
Security attributes:     47 02 02 01 00 00 00 FF 00 00 00 00 00 00 00


  • где 3F00 - id корневой директории


Создание файла на смарткарте/копирование/удаление.

Создаем на смарткарте файл 8888/1F00 и загружаем его обратно на диск:

Создаем файл test.bin со случайным содержимым:

dd if=/dev/urandom of=test.bin bs=1024 count=1

1+0 записей считано
1+0 записей написано скопировано 1024 байта (1,0 kB), 0,000283354 c, 3,6 MB/c

Загружаем файл на смарткарту и выгружаем его копию:

opensc-explorer

OpenSC [3F00]> mkdir 8888 256

OpenSC [3F00]> cd 8888

OpenSC [3F00/8888]> create 1F00 1024

OpenSC [3F00/8888]> put 1F00 test.bin
Total of 1024 bytes written.

OpenSC [3F00/8888]> info 1F00

Elementary File ID 1F00

File path: 3F00/8888/1F00
File size: 1024 bytes
EF structure: Transparent
ACL for READ: N/A
ACL for UPDATE: N/A
ACL for DELETE: N/A
ACL for WRITE: N/A
ACL for REHABILITATE: N/A
ACL for INVALIDATE: N/A
ACL for LIST FILES: N/A
ACL for CRYPTO: N/A

OpenSC [3F00/8888]> get 1F00 check.bin
Total of 1024 bytes read from 1F00 and saved to check.bin.

OpenSC [3F00/8888]> rm 1F00

OpenSC [3F00/8888]> cd ..

OpenSC [3F00]> rm 8888

Проверить, что содержимое файлов test.bin и check.bin совпадает можно командой:

md5sum test.bin check.bin
при одинаковом содержимом файлов полученные контрольные суммы должны совпасть.


См. также:

  1. SmartCardHSM: https://github.com/OpenSC/OpenSC/wiki/SmartCardHSM

  2. OpenSC GUI: https://github.com/tis-innovation-park/OpenSC-GUI/wiki


  • Нет меток