Содержание
Описание: обеспечение доступа к смарт-картам через PC/SC (фоновая служба).
Назначение: Служба PC/SC используется для динамического подключения/отключения драйверов считывателей смарт-карт «на лету» и управления соединениями со считывателями.
Глобальные настройки
Для обеспечения возможности работы службы pcscd с ненулевой меткой безопасности в конфигурационный файл /lib/systemd/system/pcscd.socket в секцию [socket] добавить параметр CapabilitiesParsec=PARSEC_CAP_PRIV_SOCK:
[Socket] ... CapabilitiesParsec=PARSEC_CAP_PRIV_SOCK
И перезапустить службу:
systemctl daemon-reload systemctl stop pcscd.service systemctl stop pcscd.socket systemctl start pcscd.service
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 командой:
Проверка
Для проверки, следует зайти под пользователем с ненулевой меткой безопасности и обратиться к токену, например, с командой:
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 с иерархическим уровнем конфиденциальности равным единице.
После чего перезапустить службу:
sudo systemctl daemon-reload
sudo systemctl restart pcscd.service