GnuPG-GOST: различия между версиями
Manowar (обсуждение | вклад) (+ Порядок настройки и работы) |
Manowar (обсуждение | вклад) (Заменил ссылки на свои рабочие ветви ссылками на патчи и /gears) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 11: | Строка 11: | ||
! Описание изменения !! Затронутые программы и модули | ! Описание изменения !! Затронутые программы и модули | ||
|- | |- | ||
| Специфика ГОСТ при распаковке, упаковке и разборе сообщений формата OpenPGP || [http://git.altlinux.org/ | | Специфика ГОСТ при распаковке, упаковке и разборе сообщений формата OpenPGP || [http://git.altlinux.org/gears/g/gnupg2.git {{prg|gpg}}], [https://packages.altlinux.org/ru/sisyphus/srpms/gnupg2/patches/gnupg2-2.2.10-gost-1.0.0.patch {{path|gnupg2-2.2.10-gost-1.0.0.patch}}] | ||
|- | |- | ||
| Специфика ГОСТ при распаковке, упаковке и разборе сообщений формата S/MIME || [http://git.altlinux.org/ | | Специфика ГОСТ при распаковке, упаковке и разборе сообщений формата S/MIME || [http://git.altlinux.org/gears/g/gnupg2.git {{prg|gpgsm}}], [http://git.altlinux.org/gears/l/libksba.git {{pkg|libksba}}], [https://packages.altlinux.org/ru/sisyphus/srpms/gnupg2/patches/gnupg2-2.2.10-gost-1.0.0.patch {{path|gnupg2-2.2.10-gost-1.0.0.patch}}], [https://packages.altlinux.org/ru/sisyphus/srpms/libksba/patches/libksba-1.3.6-gost-1.0.0.patch {{path|libksba-1.3.6-gost-1.0.0.patch}}] | ||
|- | |- | ||
| Реализация алгоритма вычисления общего ключа (ВКО) || [http://git.altlinux.org/ | | Реализация алгоритма вычисления общего ключа (ВКО) || [http://git.altlinux.org/gears/l/libgcrypt.git {{pkg|libgcrypt}}], [http://git.altlinux.org/gears/l/libpkcs11-helper.git {{pkg|libpkcs11-helper}}], [https://packages.altlinux.org/ru/sisyphus/srpms/libgcrypt/patches/libgcrypt-1.8.3-vko-1.0.0.patch {{path|libgcrypt-1.8.3-vko-1.0.0.patch}}] | ||
|- | |- | ||
| Специфика ГОСТ при разборе информации о ключах на токене и их передачи GnuPG || [http://git.altlinux.org/ | | Специфика ГОСТ при разборе информации о ключах на токене и их передачи GnuPG || [http://git.altlinux.org/gears/g/gnupg-pkcs11-scd.git {{pkg|gnupg-pkcs11-scd}}], [https://packages.altlinux.org/ru/sisyphus/srpms/gnupg-pkcs11-scd/patches/gnupg-pkcs11-scd-0.9.2-gost-1.0.0.patch {{path|gnupg-pkcs11-scd-0.9.2-gost-1.0.0.patch}}] | ||
|- | |- | ||
| Дополнительные опции настройки обработки информации о списках отзыва сертификатов || [http://git.altlinux.org/ | | Дополнительные опции настройки обработки информации о списках отзыва сертификатов || [http://git.altlinux.org/gears/g/gnupg2.git {{prg|dirmngr}}], [https://packages.altlinux.org/ru/sisyphus/srpms/gnupg2/patches/gnupg2-2.2.10-issuers-1.0.0.patch {{path|gnupg2-2.2.10-issuers-1.0.0.patch}}] | ||
|} | |} | ||
== Порядок настройки и работы == | == Порядок настройки и работы == | ||
Строка 27: | Строка 26: | ||
Прежде всего необходимо настроить {{prg|gnupg-pkcs11-scd}} следуя странице руководства {{term|gnupg-pkcs11-scd(1)}}. В частности, в конфигурации агента ({{path|~/.gnupg/gpg-agent.conf}}) его нужно обозначить как демон смарт-карт ({{term|scdaemon-program}}). | Прежде всего необходимо настроить {{prg|gnupg-pkcs11-scd}} следуя странице руководства {{term|gnupg-pkcs11-scd(1)}}. В частности, в конфигурации агента ({{path|~/.gnupg/gpg-agent.conf}}) его нужно обозначить как демон смарт-карт ({{term|scdaemon-program}}). | ||
Если на токене (смарт-карте) отсутствуют ключи, нужно создать их. Если планируется использование совместно с {{prg|gpgsm}}, то необходимо создать и пользовательский сертификат. | |||
Далее, следуя той же странице руководства, нужно импортировать ключи в GnuPG. Для собственно {{prg|gpg}} это делается несколько нетривиальным способом, в два подхода: сперва {{prg|gnupg-pkcs11-scd}} напрямую даётся команда {{term|LEARN}}, а затем номер (отпечаток) «выученного» таким образом ключа используется в экспертном режиме генерации ключа в {{prg|gpg}}. | |||
В случае использования {{prg|gpgsm}} процедура импорта выполняется штатно. Однако, для успешной проверки сертификатов, подписанных отечественными УЦ, может понадобиться использовать новую ''спецнастройку'' в файле {{path|~/.gnupg/dirmngr_issuers.conf}}. Например: | |||
<code>(issuer "CN=УЦ ФГУП \\\"ГРЧЦ\\\"" single-crl)</code><ref>Данная настройка включает режим последовательной обработки всех указанных URL списков отзыва, чтобы избежать проблемы, отмеченной здесь — [https://lists.altlinux.org/pipermail/devel/2018-August/205109.html https://lists.altlinux.org/pipermail/devel/2018-August/205109.html]</ref>. | |||
После настройки {{prg|gnupg-pkcs11-scd}} и импорта ключей (через «создание») и сертификатов, команды {{cmd|gpg}} и {{cmd|gpgsm}} работают вполне ожидаемым образом: {{prg|gpg-agent}} запрашивает ПИН-код, после чего производится подпись (шифрование). Аналогичные операции также доступны из Kleopatra и Dolphin. | |||
<hr/> | |||
[[Категория:Криптография]] | [[Категория:Криптография]] |
Текущая версия от 13:00, 1 марта 2019
Добавление поддержки ГОСТ в GnuPG
Добавление поддержки ГОСТ в GnuPG ведётся с целью предоставить пользователям возможность использовать алгоритмы шифрования и цифровой подписи ГОСТ в широком спектре пользовательских программ уже работающих с GnuPG, среди которых видное место занимает интеграция шифрования и подписи в менеджеры файлов (например, Kleopatra в KDE) и программы для чтения и отправки электронной почты (например, Enigmail для Thunderbird).
В настоящее время все изменения производятся прежде всего с целью обеспечить работу на базе аппаратных токенов и смарт-карт с поддержкой ГОСТ, совместимых с PKCS#11.
Состав изменений
Описание изменения | Затронутые программы и модули |
---|---|
Специфика ГОСТ при распаковке, упаковке и разборе сообщений формата OpenPGP | gpg, gnupg2-2.2.10-gost-1.0.0.patch |
Специфика ГОСТ при распаковке, упаковке и разборе сообщений формата S/MIME | gpgsm, libksba, gnupg2-2.2.10-gost-1.0.0.patch, libksba-1.3.6-gost-1.0.0.patch |
Реализация алгоритма вычисления общего ключа (ВКО) | libgcrypt, libpkcs11-helper, libgcrypt-1.8.3-vko-1.0.0.patch |
Специфика ГОСТ при разборе информации о ключах на токене и их передачи GnuPG | gnupg-pkcs11-scd, gnupg-pkcs11-scd-0.9.2-gost-1.0.0.patch |
Дополнительные опции настройки обработки информации о списках отзыва сертификатов | dirmngr, gnupg2-2.2.10-issuers-1.0.0.patch |
Порядок настройки и работы
Прежде всего необходимо настроить gnupg-pkcs11-scd следуя странице руководства gnupg-pkcs11-scd(1). В частности, в конфигурации агента (~/.gnupg/gpg-agent.conf) его нужно обозначить как демон смарт-карт (scdaemon-program).
Если на токене (смарт-карте) отсутствуют ключи, нужно создать их. Если планируется использование совместно с gpgsm, то необходимо создать и пользовательский сертификат.
Далее, следуя той же странице руководства, нужно импортировать ключи в GnuPG. Для собственно gpg это делается несколько нетривиальным способом, в два подхода: сперва gnupg-pkcs11-scd напрямую даётся команда LEARN, а затем номер (отпечаток) «выученного» таким образом ключа используется в экспертном режиме генерации ключа в gpg.
В случае использования gpgsm процедура импорта выполняется штатно. Однако, для успешной проверки сертификатов, подписанных отечественными УЦ, может понадобиться использовать новую спецнастройку в файле ~/.gnupg/dirmngr_issuers.conf. Например:
(issuer "CN=УЦ ФГУП \\\"ГРЧЦ\\\"" single-crl)
[1].
После настройки gnupg-pkcs11-scd и импорта ключей (через «создание») и сертификатов, команды gpg и gpgsm работают вполне ожидаемым образом: gpg-agent запрашивает ПИН-код, после чего производится подпись (шифрование). Аналогичные операции также доступны из Kleopatra и Dolphin.
- ↑ Данная настройка включает режим последовательной обработки всех указанных URL списков отзыва, чтобы избежать проблемы, отмеченной здесь — https://lists.altlinux.org/pipermail/devel/2018-August/205109.html