...
В настоящий момент GPG напрямую не поддерживает работу с любым видом смарт-карт и может работать только с теми, что поддерживают интерфейс openPGP, что накладывает ограничения работы с остальными смарт-картами. Но для карт, которые поддерживают интерфейс pkcs11, есть решение, заключающееся в использовании демона pkcs11 смарт-карт, вместо стандартного демона scdaemon. Таким образом, при установке и правильной настройке, мы можем сделать возможно использование в GPG ключей и сертификатов, хранящихся, например, на Рутокен ЭЦП 2.0/3.0.
Ниже представлено описание настройки и использование этих ключей для создания цифровой подписи для пакетов.
...
Code Block |
---|
Possible actions for a RSA key: Sign Certify Encrypt Authenticate Current allowed actions: Sign Certify Encrypt (S) Toggle the sign capability (E) Toggle the encrypt capability (A) Toggle the authenticate capability (Q) Finished Your selection? Please specify how long the key should be valid. 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years Key is valid for? (0) Key does not expire at all Is this correct? (y/N) y GnuPG needs to construct a user ID to identify your key. Real name: lo1ol Email address: lo1ol@maillo1ol@example.rucom Comment: You selected this USER-ID: "lo1ol <lo1ol@mail<lo1ol@example.ru>com>" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O Параллельно нам будет предложено ввести пароль от токена. Успешный вывод выглядит следующим образом gpg: /home/lo1ol/.gnupg/trustdb.gpg: trustdb created gpg: key 676E42AAAFBCF227 marked as ultimately trusted gpg: directory '/home/lo1ol/.gnupg/openpgp-revocs.d' created gpg: revocation certificate stored as '/home/lo1ol/.gnupg/openpgp-revocs.d/0CD2B9CEE398990609D6C164676E42AAAFBCF227.rev' public and secret key created and signed. pub rsa2048 2019-10-25 [SCE] 0CD2B9CEE398990609D6C164676E42AAAFBCF227 uid lo1ol <lo1ol@mail<lo1ol@example.ru>com> |
Подпись deb пакетов
Скачиваем пакет для создания и верификации подписей dpkg-sig:
...
Code Block |
---|
lo1ol@lo1ol-VirtualBox:~/Downloads$ gpg --list-sigs /home/lo1ol/.gnupg/pubring.kbx ------------------------------ pub rsa2048 2019-10-25 [SCE] 0CD2B9CEE398990609D6C164676E42AAAFBCF227 uid [ultimate] lo1ol <lo1ol@mail<lo1ol@example.ru>com> sig 3 676E42AAAFBCF227 2019-10-25 lo1ol <lo1ol@mail<lo1ol@example.ru>com> |
Из вывода мы видим, что идентификатор подписи 676E42AAAFBCF227. Теперь приступим к подписи пакета. Для этого введем команду:
...
Code Block |
---|
lo1ol@lo1ol-VirtualBox:~/Downloads$ gpg --list-sigs /home/lo1ol/.gnupg/pubring.kbx ------------------------------ pub rsa2048 2019-10-25 [SCE] 0CD2B9CEE398990609D6C164676E42AAAFBCF227 uid [ultimate] lo1ol <lo1ol@mail<lo1ol@example.ru>com> sig 3 676E42AAAFBCF227 2019-10-25 lo1ol <lo1ol@mail<lo1ol@example.ru>com> |
Из вывода мы видим, что идентификатор подписи 676E42AAAFBCF227. Теперь приступим к подписи пакета. Для этого создадим файл конфигурации .rpmmacros для создании подписи со следующим содержимым:
...