Работа с OpenSC: Разлика между версии

От Infonotary
Направо към навигацията Направо към търсенето
(Теста е модифициран да работи с OpenSC>=0.12.1)
(Не са показани 13 междинни версии от 3 потребители)
Ред 3: Ред 3:
== Проверка на инсталацията ==
== Проверка на инсталацията ==


Може да проверите дали четеца и картата се разпознават със следните команди:
Може да проверите дали четецът и картата се разпознават със следните команди:


1) {{Шаблон:Console|opensc-tool -l}} - тази команда ще покаже списък с всички включени в компютъра четци. Би трябвало да изведе нещо подобно:<pre>Readers known about:
1) {{Шаблон:Console|opensc-tool -l}} - тази команда ще покаже списък с всички включени в компютъра четци. Би трябвало да изведе нещо подобно:<pre>Readers known about:
Nr.    Driver    Name
Nr.    Driver    Name
0      pcsc      OMNIKEY CardMan 6121 0</pre>
0      pcsc      OMNIKEY CardMan 6121 0</pre>
2) {{Шаблон:Console|opensc-tool -n}} - с тази команда можете да проверите дали картата ви се разпознава коректно. Ако всичко е наред би трябвало да се изпише „CardOS M4“. Ако получите грешка завършваща на „Failed to connect to card: Unresponsive card (correctly inserted?)“, най-вероятно картата ви е поставена наопаки в четеца.
2) {{Шаблон:Console|opensc-tool -n}} - с тази команда можете да проверите дали картата ви се разпознава коректно. Ако всичко е наред, би трябвало да се изпише „CardOS M4“. Ако получите грешка, завършваща на „Failed to connect to card: Unresponsive card (correctly inserted?)“, най-вероятно картата ви е поставена наопаки в четеца.


== Смяна на ПИН ==
== Смяна на ПИН ==


ПИН кодът на картата може да бъде сменен от Device Manager-a на Mozilla Firefox или със следната команда - {{Шаблон:Console|pkcs15-tool --change-pin}}. За картите които се предлагат от Инфонотари ПИН-ът може да бъде с дължина от 4 до 16 символа, като може да съдържа произволна комбинация от букви и цифри.
ПИН кодът на картата може да бъде сменен от Device Manager-a на Mozilla Firefox или със следната команда - {{Шаблон:Console|pkcs15-tool --change-pin}}. За картите, които се предлагат от Инфонотари, ПИН-ът може да бъде с дължина от 4 до 16 символа, като може да съдържа произволна комбинация от букви и цифри.


== Разблокиране на ПИН ==
== Разблокиране на ПИН ==


В случай че Firefox  ви иска пина по няколко пъти последователно, то най-вероятно той е блокиран. Може да бъде разблокиран с командата {{Шаблон:Console|pkcs15-tool -u}}.
В случай че Firefox  ви иска пина по няколко пъти последователно, то най-вероятно той е блокиран. Може да бъде разблокиран с командата {{Шаблон:Console|pkcs15-tool -u}}


== Смяна на АИН ==
== Смяна на АИН ==


АИН кода може да се смени със следната команда - {{Шаблон:Console|pkcs15-tool --change-pin -a ID}}, където ID трябва да се смени с неговият идентификатор. Можете да го получите като изпълните
АИН кодът може да се смени със следната команда - {{Шаблон:Console|pkcs15-tool --change-pin -a ID}}, където ID трябва да се смени с неговия идентификатор. Можете да го получите, като изпълните
{{Шаблон:Console|pkcs15-tool --list-pins}}. Част от изхода на командата изглежда така:
{{Шаблон:Console|pkcs15-tool --list-pins}}. Част от изхода на командата изглежда така:
<pre>PIN [SO-PIN]
<pre>PIN [SO-PIN]
Ред 31: Ред 31:
Type : UTF-8
Type : UTF-8
Path :</pre>
Path :</pre>
Идентификатора на АИН-a е текста който е изписан срещу ID в секцията „PIN
Идентификаторът на АИН-a е текстът, който е изписан срещу ID в секцията „PIN
[SO-PIN]“. В този случай точната команда за смяна на АИН ще е {{Шаблон:Console|pkcs15-tool --change-pin -a 02}}.
[SO-PIN]“. В този случай точната команда за смяна на АИН ще е {{Шаблон:Console|pkcs15-tool --change-pin -a 02}}


== Показване на съдържанието на карта ==
== Показване на съдържанието на карта ==


Със следната команда може да видите всички обекти на картата {{Шаблон:Console|pkcs15-tool -D}}.
Със следната команда може да видите всички обекти на картата {{Шаблон:Console|pkcs15-tool -D}}


== Забраняване на OpenSC да работи с определена смарт карта ==
== Забраняване на OpenSC да работи с определена смарт карта ==


Можете да изключите определен модел смарт карти от поддържаните от OpenSC като редактирате конфигурационният му файл. Трябва да добавите следното веднага след реда „app default {“:
Картите '''T&S DS/2048''' на Bit4id, не се поддържат добре от OpenSC 0.12, така че ако искате да използвате едновременно такава карта и CardOS карта ще трябва да редактирате конфигурационният файл на OpenSC. Трябва да добавите следното веднага след реда „'''app default {''':
<pre> card_atr 3b:ff:18:00:ff:81:31:fe:55:00:6b:02:09:03:03:01:11:01:43:4e:53:11:31:80:8c {
name = " T&S DS/2048 (disabled)";
driver = "mcrd";
}</pre>
В Mac OS X файлът е /Library/OpenSC/etc/opensc.conf, за да се отвори с права за редактиране може да се използва следната команда - {{Шаблон:Console|sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit /Library/OpenSC/etc/opensc.conf}}
 
В Linux конфигурационният файл се намира в /etc/opensc/opensc.conf или в /etc/opensc.conf.
 
По същият начин може да се изключи произволен модел смарт карти от поддържаните от OpenSC. Трябва да добавите аналогична секция в конфигурационният файл със следното съдържание:
<pre> card_atr ATR {
<pre> card_atr ATR {
name = "примерно-име";
name = "примерно-име";
driver = "вид-карта";
driver = "вид-карта";
}</pre>
}</pre>
Чрез командата {{Шаблон:Console|opensc-tool -a}} може да получите ATR на картата. За вид-карта трябва да укажете драйвер различен от този с който работи смарт картата. Списък с всички поддържани драйвери за карти може да получите чрез командата {{Шаблон:Console|opensc-tool --list-drivers}}.
Чрез командата {{Шаблон:Console|opensc-tool -a}} може да получите ATR на картата. За вид-карта трябва да укажете драйвер, различен от този, с който работи смарт картата. Списък с всички поддържани драйвери за карти може да получите чрез командата {{Шаблон:Console|opensc-tool --list-drivers}}
 
Например ако искате да изключите Bit4id картите, които не се поддържат добре от OpenSC 0.12, трябва да добавите следното в конфигурационният файл:
<pre> card_atr 3b:ff:18:00:ff:81:31:fe:55:00:6b:02:09:03:03:01:11:01:43:4e:53:11:31:80:8c {
name = "Bit4id (disabled)";
driver = "mcrd";
}</pre>
В Linux конфигурационният файл се намира в /etc/opensc/opensc.conf или в /etc/opensc.conf. На Mac OS X файлът е /Library/OpenSC/etc/opensc.conf.


== Тест за работоспособност ==
== Тест за работоспособност ==


За да проверите дали удостоверението ви за електронен подпис работи коректно може да ползвате следната команда - {{Шаблон:Console|pkcs11-tool -lt --module opensc-pkcs11.so}}. Тази команда ще поиска да въведете ПИН-а на картата "Please enter User PIN:". Въведеният ПИН няма да се покаже на екрана дори и като звездички. Натиснете Enter за потвърждение. Би трябвало да получите изход подобен на този:
За да проверите дали удостоверението ви за електронен подпис работи коректно, може да ползвате следната команда - {{Шаблон:Console|pkcs11-tool -lt --module opensc-pkcs11.so}}. Тази команда ще поиска да въведете ПИН-а на картата "Please enter User PIN:". Въведеният ПИН няма да се покаже на екрана дори и като звездички. Натиснете Enter за потвърждение. Би трябвало да получите изход, подобен на този:
<pre>
<pre>
Please enter User PIN:
Please enter User PIN:
Ред 98: Ред 100:
No errors  
No errors  
</pre>
</pre>
Когато се появи това съобщение - "Please press return to continue, x to exit:" трябва да въведете "x" и да натиснете Enter. В случай че има някакъв проблем с четеца, картата или удостоверението командата ще приключи със съобщение "error:" и кратко описание на проблема. Например ако ви е блокиран ПИН-а ще получите съобщение "error: PKCS11 function C_Login failed: rv = CKR_PIN_LOCKED (0xa4)"., а ако е въведен погрешен ПИН съобщението ще е "error: PKCS11 function C_Login failed: rv = CKR_PIN_INCORRECT (0xa0)".
Когато се появи това съобщение - "Please press return to continue, x to exit:", трябва да въведете "x" и да натиснете Enter. В случай че има някакъв проблем с четеца, картата или удостоверението, командата ще приключи със съобщение "error:" и кратко описание на проблема. Например ако ви е блокиран ПИН-ът, ще получите съобщение "error: PKCS11 function C_Login failed: rv = CKR_PIN_LOCKED (0xa4)"., а ако е въведен погрешен ПИН, съобщението ще е "error: PKCS11 function C_Login failed: rv = CKR_PIN_INCORRECT (0xa0)".
 
При версиите на OpenSC преди 0.13, в зависимост от съдържанието на вашата смарт карта, е възможно да получите грешка веднага след „Signatures (currently only RSA signatures)“. В този случай ще трябва да тествате дали подписа работи в друга програма, например Firefox.




[[Категория:Инсталация и използване на удостоверения за електронен подпис]]
[[Категория:Инсталация и използване на удостоверения за електронен подпис]]
[[Категория:Linux]]
[[Категория:Linux]]
[[Категория:Mac OS X]]
[[Категория:macOS]]
[[Категория:Помощ]]
[[Категория:Помощ]]

Версия от 15:17, 3 април 2017

В OpenSC няма програми с графичен интерфейс, така че всички операции се налага да се правят от терминал.

Проверка на инсталацията

Може да проверите дали четецът и картата се разпознават със следните команди:

1) opensc-tool -l - тази команда ще покаже списък с всички включени в компютъра четци. Би трябвало да изведе нещо подобно:

Readers known about:
Nr.    Driver     Name
0      pcsc       OMNIKEY CardMan 6121 0

2) opensc-tool -n - с тази команда можете да проверите дали картата ви се разпознава коректно. Ако всичко е наред, би трябвало да се изпише „CardOS M4“. Ако получите грешка, завършваща на „Failed to connect to card: Unresponsive card (correctly inserted?)“, най-вероятно картата ви е поставена наопаки в четеца.

Смяна на ПИН

ПИН кодът на картата може да бъде сменен от Device Manager-a на Mozilla Firefox или със следната команда - pkcs15-tool --change-pin. За картите, които се предлагат от Инфонотари, ПИН-ът може да бъде с дължина от 4 до 16 символа, като може да съдържа произволна комбинация от букви и цифри.

Разблокиране на ПИН

В случай че Firefox ви иска пина по няколко пъти последователно, то най-вероятно той е блокиран. Може да бъде разблокиран с командата pkcs15-tool -u

Смяна на АИН

АИН кодът може да се смени със следната команда - pkcs15-tool --change-pin -a ID, където ID трябва да се смени с неговия идентификатор. Можете да го получите, като изпълните pkcs15-tool --list-pins. Част от изхода на командата изглежда така:

PIN [SO-PIN]
Com. Flags: 0x3
ID : 02
Flags : [0x99], case-sensitive, unblock-disabled, initialized, soPin
Length : min_len:4, max_len:16, stored_len:0
Pad char : 0x00
Reference : 130
Type : UTF-8
Path :

Идентификаторът на АИН-a е текстът, който е изписан срещу ID в секцията „PIN [SO-PIN]“. В този случай точната команда за смяна на АИН ще е pkcs15-tool --change-pin -a 02

Показване на съдържанието на карта

Със следната команда може да видите всички обекти на картата pkcs15-tool -D

Забраняване на OpenSC да работи с определена смарт карта

Картите T&S DS/2048 на Bit4id, не се поддържат добре от OpenSC 0.12, така че ако искате да използвате едновременно такава карта и CardOS карта ще трябва да редактирате конфигурационният файл на OpenSC. Трябва да добавите следното веднага след реда „app default {“:

	card_atr 3b:ff:18:00:ff:81:31:fe:55:00:6b:02:09:03:03:01:11:01:43:4e:53:11:31:80:8c {
		name = " T&S DS/2048 (disabled)";
		driver = "mcrd";
	}

В Mac OS X файлът е /Library/OpenSC/etc/opensc.conf, за да се отвори с права за редактиране може да се използва следната команда - sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit /Library/OpenSC/etc/opensc.conf

В Linux конфигурационният файл се намира в /etc/opensc/opensc.conf или в /etc/opensc.conf.

По същият начин може да се изключи произволен модел смарт карти от поддържаните от OpenSC. Трябва да добавите аналогична секция в конфигурационният файл със следното съдържание:

	card_atr ATR {
		name = "примерно-име";
		driver = "вид-карта";
	}

Чрез командата opensc-tool -a може да получите ATR на картата. За вид-карта трябва да укажете драйвер, различен от този, с който работи смарт картата. Списък с всички поддържани драйвери за карти може да получите чрез командата opensc-tool --list-drivers

Тест за работоспособност

За да проверите дали удостоверението ви за електронен подпис работи коректно, може да ползвате следната команда - pkcs11-tool -lt --module opensc-pkcs11.so. Тази команда ще поиска да въведете ПИН-а на картата "Please enter User PIN:". Въведеният ПИН няма да се покаже на екрана дори и като звездички. Натиснете Enter за потвърждение. Би трябвало да получите изход, подобен на този:

Please enter User PIN:
C_SeedRandom() and C_GenerateRandom():
  not implemented
Digests:
  all 4 digest functions seem to work
  MD5: OK
  SHA-1: OK
  RIPEMD160: OK
Signatures (currently only RSA signatures)
  testing key 0 (DDA8BB6F-86C2-48F7-B061-F2F4023ED8F2)
  all 4 signature functions seem to work
  testing signature mechanisms:
    RSA-X-509: OK
    RSA-PKCS: OK
    SHA1-RSA-PKCS: OK
    MD5-RSA-PKCS: OK
    RIPEMD160-RSA-PKCS: OK
Verify (currently only for RSA):
  testing key 0 (DDA8BB6F-86C2-48F7-B061-F2F4023ED8F2)
    RSA-X-509: OK
    RSA-PKCS: OK
    SHA1-RSA-PKCS: OK
    MD5-RSA-PKCS: OK
    RIPEMD160-RSA-PKCS: OK
Key unwrap (RSA)
  testing key 0 (DDA8BB6F-86C2-48F7-B061-F2F4023ED8F2)
    DES-CBC: OK
    DES-EDE3-CBC: OK
    BF-CBC: OK
    CAST5-CFB: OK
Decryption (RSA)
  testing key 0 (DDA8BB6F-86C2-48F7-B061-F2F4023ED8F2)
    RSA-X-509: OK
    RSA-PKCS: OK
Testing card detection
Please press return to continue, x to exit: x
Testing card detection using C_WaitForSlotEvent
Please press return to continue, x to exit: x
No errors 

Когато се появи това съобщение - "Please press return to continue, x to exit:", трябва да въведете "x" и да натиснете Enter. В случай че има някакъв проблем с четеца, картата или удостоверението, командата ще приключи със съобщение "error:" и кратко описание на проблема. Например ако ви е блокиран ПИН-ът, ще получите съобщение "error: PKCS11 function C_Login failed: rv = CKR_PIN_LOCKED (0xa4)"., а ако е въведен погрешен ПИН, съобщението ще е "error: PKCS11 function C_Login failed: rv = CKR_PIN_INCORRECT (0xa0)".

При версиите на OpenSC преди 0.13, в зависимост от съдържанието на вашата смарт карта, е възможно да получите грешка веднага след „Signatures (currently only RSA signatures)“. В този случай ще трябва да тествате дали подписа работи в друга програма, например Firefox.