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

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Содержание


Оглавление
outlinetrue


Описание: обеспечение доступа к смарт-картам через PC/SC (фоновая служба).

Назначение:  Служба PC/SC используется для динамического подключения/отключения драйверов считывателей смарт-карт «на лету» и управления соединениями со считывателями.

Глобальные настройки


Для обеспечения возможности работы службы pcscd с ненулевой меткой безопасности в конфигурационный файл /lib/systemd/system/pcscd.socket в секцию [socket] добавить параметр CapabilitiesParsec=PARSEC_CAP_PRIV_SOCK:

Блок кода
[Socket]
...
CapabilitiesParsec=PARSEC_CAP_PRIV_SOCK

И перезапустить службу:

Command
systemctl daemon-reload
systemctl stop pcscd.service
systemctl stop pcscd.socket
systemctl start pcscd.service

После запуска сервиса pcscd убедиться, что ей присвоен атрибут ehole. Для этого воспользуйтесь командой:

Command
sudo pdp-ls -Ma /var/run/pcscd/pcscd.comm


Примечание

1) Атрибуты файле pcscd.comm, должно быть таким:

Блок кода
srw-rw-rw-m-- 1 root root Уровень_0:Низкий:Нет:ehole /var/run/pcscd/pcscd.comm

2) В ином случае следует удалить pcscd.comm командой:

Command
sudo rm -r /var/run/pcscd/pcscd.comm

и перезагрузить ПК.

Проверка


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

Command

opensc-explorer

В случае успеха, Opensc explorer сообщит, что обратился к слоту с токеном:

Блок кода
root@smolensk: # opensc-explorer 
OpenSC Explorer version 0.16.0
Using reader with a card: Aktiv Rutoken ECP 00 00
OpenSC [3F00]>

Запуск с определенным уровнем конфиденциальности 


Для запуска сервиса службы с определенной ненулевой классификационной меткой, файл /lib/systemd/system/pcscd.service следует привезти к виду:

Блок кода
[Unit]
Description=PC/SC Smart Card Daemon

[Service]
ExecStart=/usr/sbin/pcscd --foreground
ExecReload=/usr/sbin/pcscd --hotplug
PDPLabel=1:63:0

[Install]
WantedBy=multi-user.target


Информация

PDPLabel=<Уровень>:<Уровень целостности>:<Категории>
Формат метки PDPLabel аналогичен принятому в системе PARSEC за исключением поля типа - метки.


Примечание

В блоке кода, указан пример с запуском службы pcscd с иерархическим уровнем конфиденциальности равным единице.

После чего перезапустить службу:

Command
sudo systemctl daemon-reload
sudo systemctl restart pcscd.service