Оглавление | ||
---|---|---|
|
OpenSC
OpenSC предоставляет набор библиотек и утилит для доступа к смарт-картам и токенам, поддерживающих криптографические операции. Это облегчает их использование в приложениях безопасности, таких как шифрование почты, аутентификация, цифровая подпись и тд.
Установка OpenSC
Для установки OpenSC следует ввести команду:
$ sudo apt install opensc
Opensc-tool
Идентификация
Для идентификация токена/смарт-карты и его серийного номера, следует ввести команду:
$ opensc-tool --name --atr --serial
...
Информация | ||
---|---|---|
| ||
|
Введение
OpenSC (пакет opensc) — набор библиотек и инструментов для доступа к ключевым носителям (смарт-картам и токенам), поддерживающим криптографические операции.
Предупреждение |
---|
Инструменты, входящие в состав пакета, несовместимы с токенами Аладдин JaCarta. |
Установка OpenSC
Пакет opensc может быть установлен с помощью графического менеджер пакетов или из командной строки командой:
Command |
---|
sudo apt install opensc |
Opensc-tool
Идентификация
Для идентификации ключевого носителя и его серийного номера, следует ввести команду:
Command | ||
---|---|---|
| ||
Using reader with a card: Aktiv Co. Rutoken S 00 00 |
...
|
...
S |
...
card |
Содержимое
...
ключевого носителя
Для того, чтобы рекурсивно отобразить список файлов в
...
ключевом носителе ввести команду:
...
Command |
---|
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 выполнить команду:
Command |
---|
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 |
Информация |
---|
|
...
|
Создание файла на смарткарте/копирование/удаление
...
.
Создаем
...
на
...
смарткарте
...
файл
...
8888/1F00
...
и
...
загружаем
...
его
...
обратно
...
на
...
диск:
Создаем файл test.bin со случайным содержимым:
Command | ||
---|---|---|
|
...
|
...
|
...
|
...
1+0 |
...
записей |
...
считано |
...
|
...
записей |
...
написано |
...
скопировано |
...
1024 |
...
байта |
...
(1,0 |
...
kB), |
...
0,000283354 |
...
c, |
...
3,6 |
...
MB/c |
...
Загружаем файл на смарткарту и выгружаем его копию:
Command | ||
---|---|---|
|
...
OpenSC |
...
[3F00]> |
...
mkdir |
...
8888 |
...
256 |
...
|
...
[3F00]> |
...
cd |
...
8888 |
...
|
...
[3F00/8888]> |
...
create |
...
1F00 |
...
1024 |
...
|
...
[3F00/8888]> |
...
put |
...
1F00 |
...
test.bin |
...
|
...
of |
...
1024 |
...
bytes |
...
written. |
...
|
...
[3F00/8888]> |
...
info |
...
1F00 |
...
|
...
File |
...
ID |
...
1F00 |
...
|
...
path: |
...
3F00/8888/1F00 |
...
|
...
size: |
...
1024 |
...
bytes |
...
|
...
structure: |
...
Transparent |
...
|
...
for |
...
READ: |
...
N/A |
...
|
...
for |
...
UPDATE: |
...
N/A |
...
|
...
for |
...
DELETE: |
...
N/A |
...
|
...
|
...
for |
...
REHABILITATE: |
...
N/A |
...
|
...
for |
...
INVALIDATE: |
...
N/A |
...
|
...
for |
...
LIST |
...
FILES: |
...
N/A |
...
|
...
for |
...
CRYPTO: |
...
N/A |
...
|
...
[3F00/8888]> |
...
get |
...
1F00 |
...
check.bin |
...
|
...
of |
...
1024 |
...
bytes |
...
read |
...
from |
...
1F00 |
...
and |
...
saved |
...
to |
...
check.bin. |
...
|
...
[3F00/8888]> |
...
rm |
...
1F00 |
...
|
...
[3F00/8888]> |
...
cd |
...
.. |
...
|
...
[3F00]> |
...
rm |
...
8888 |
Проверить, что содержимое файлов test.bin
...
и
...
check.bin
...
совпадает можно командой:
Command |
---|
md5sum test.bin check.bin |
при одинаковом содержимом файлов полученные контрольные суммы должны совпасть.
См. также:
SmartCardHSM: https://github.com/OpenSC/OpenSC/wiki/SmartCardHSM
OpenSC GUI: https://github.com/tis-innovation-park/OpenSC-GUI/wiki