LINUX-BG Адрес : http://www.linux-bg.org |
Електронен подпис за работа под Linux и OpenSSL |
От: RealEnder Публикувана на: 9-04-2010 Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=422986481 |
в. 1.2, Април 2010 Целта на настоящото ръководство е да опише стъпките, необходими за инсталиране и конфигуриране на електронен подпис под Linux операционни системи, както и използването на OpenSSL за подписване на файлове. При разработването на ръководството е използвано Ubuntu 9.10 Karmic Koala 64bit, но стъпките са приложими и аналогични и за останалите дистрибуции. За примера е използван електронен подпис на StampIt върху смарткарта Siemens CardOS V4.3B през CCID съвместим USB четец ACS ACR 38U-CCID. Използват се изцяло софтуерни библиотеки и приложения с отворен код.
1. Базови пакети alex@volatile:~$ sudo apt-get install openct opensc libccid mozilla-opensc libengine-pkcs11-openssl pcsc-tools
alex@volatile:~$ pcsc_scan PC/SC device scanner V 1.4.15 (c) 2001-2009, Ludovic Rousseau Compiled with PC/SC lite version: 1.4.102 Scanning present readers... 0: ACS ACR 38U-CCID 00 00
Thu Mar 18 15:29:43 2010 Reader 0: ACS ACR 38U-CCID 00 00 Card state: Card inserted, Shared Mode,
...
Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): 3B F2 18 00 02 C1 0A 31 FE 58 C8 08 74 Siemens CardOS V4.3B
2. Конфигуриране на
Firefox/Thunderbird/OpenOffice
3. Конфигуриране на драйверите max_virtual_slots=1;
4. Подписване на файл с OpenSSL със сертификат на смарткарта
в detached PKCS#7 структура alex@volatile:~$ pkcs15-tool --list-certificates Using reader with a card: ACS ACR 38U-CCID 00 00 X.509 Certificate [X.509V3 Certificate 0] Flags : 2 Authority: no Path : 3f00501543044303 ID : ac89c641d155029139df57d70c71a706
X.509 Certificate [X.509V3 CA Certificate 0] Flags : 2 Authority: no Path : 3f00501543044302 ID : 4fa93c2efb44e05b6e1c89f0fecb6a10 alex@volatile:~$ pkcs11-tool --list-slots Available slots: Slot 0 (empty) Slot 1 (empty) Slot 2 ACS ACR 38U-CCID 00 00 token label: CardOS V4.3B PKCS15 profile (PIN token manuf: Siemens AG (C) token model: PKCS#15 token flags: login required, PIN initialized, token initialized serial num : 3030383037383834 Slot 3 (empty) Slot 4 (empty) Slot 5 (empty) Slot 6 (empty) Slot 7 (empty) Slot 8 (empty) Slot 9 (empty) Slot 10 (empty) Slot 11 (empty) Slot 12 (empty) Slot 13 (empty) Slot 14 (empty) Slot 15 (empty)
Подписването
се извършва като първо се инициализира
OpenSSL PKCS#11 engine и след това се подават
необходимите файлове и параметри. В
примера по-долу трябва да заместите
оцветените полета с Вашите стойности: alex@volatile:~$ openssl OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/onepin-opensc-pkcs11.so (dynamic) Dynamic engine loading support [Success]: SO_PATH:/usr/lib/engines/engine_pkcs11.so [Success]: ID:pkcs11 [Success]: LIST_ADD:1 [Success]: LOAD [Success]: MODULE_PATH:/usr/lib/onepin-opensc-pkcs11.so Loaded: (pkcs11) pkcs11 engine OpenSSL> smime -pk7out -outform der -binary -sign -signer Alex_Stanev.pem -engine pkcs11 -keyform engine -in data.txt -out data.p7s -inkey 2:ac89c641d155029139df57d70c71a706 -certfile StampIT_Domestic_CA_NGL_base64.crt engine "pkcs11" set. PKCS#11 token PIN: OpenSSL>
Горният пример генерира PKCS#7 detached сигнатура в DER формат на файла data.txt в data.p7s , с включен междинен базов сертификат. Ръководството в PDF формат можете да свалите от тук: https://inetdec.nra.bg/docs/DigSig_linux_howto.pdf << Електронен подпис на Банксервиз под Ubuntu 9.10 и 10.04 | FreeBSD 8.0 Обединение на няколко мрежови интерфейса в един >> |
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|