Содержание

Skip to end of metadata
Go to start of metadata

OpenSC

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

Установка OpenSC

Для установки OpenSC следует ввести команду:

$ sudo apt install opensc

Opensc-tool

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

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

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


$ 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


$ 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] 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

          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



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

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

info 3F00

Dedicated File  ID 3F00

File path:     3F00
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 и загружаем его обратно на диск


$ 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 
804420d7560e82065b74eff561cfb2c8  test.bin
804420d7560e82065b74eff561cfb2c8  check.bin
  • No labels

4 Comments

  1. CHV2
    Означает что требуется ввести PIN-код
  2. Коллеги, а нет в планах GUI затащить в репозиторий? https://github.com/tis-innovation-park/OpenSC-GUI/wiki

    1. я думаю надо хэштегом отметить когото из разрабов) Вопрос не ко мне)  (статья у меня в личном пространстве)