GnuPG-GOST: различия между версиями

Материал из ALT Linux Wiki
(→‎Порядок настройки и работы: Подготовительный этап)
(Заменил ссылки на свои рабочие ветви ссылками на патчи и /gears)
 
(не показаны 3 промежуточные версии этого же участника)
Строка 11: Строка 11:
! Описание изменения !! Затронутые программы и модули
! Описание изменения !! Затронутые программы и модули
|-
|-
| Специфика ГОСТ при распаковке, упаковке и разборе сообщений формата OpenPGP || [http://git.altlinux.org/people/manowar/packages/?p=gnupg2.git;a=shortlog;h=refs/heads/patches/gost {{prg|gpg}}]
| Специфика ГОСТ при распаковке, упаковке и разборе сообщений формата 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/people/manowar/packages/?p=gnupg2.git;a=shortlog;h=refs/heads/patches/gost {{prg|gpgsm}}], [http://git.altlinux.org/people/manowar/packages/?p=libksba.git;a=shortlog;h=refs/heads/gost {{pkg|libksba}}]
| Специфика ГОСТ при распаковке, упаковке и разборе сообщений формата 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/people/manowar/packages/?p=libgcrypt.git;a=shortlog;h=refs/heads/gost/vko {{pkg|libgcrypt}}], [http://git.altlinux.org/people/manowar/packages/?p=libpkcs11-helper.git;a=shortlog;h=refs/heads/patches/gost-derive {{pkg|libpkcs11-helper}}]
| Реализация алгоритма вычисления общего ключа (ВКО) || [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/people/manowar/packages/?p=gnupg-pkcs11-scd.git;a=shortlog;h=refs/heads/patches/gost {{pkg|gnupg-pkcs11-scd}}]
| Специфика ГОСТ при разборе информации о ключах на токене и их передачи 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/people/manowar/packages/?p=gnupg2.git;a=shortlog;h=refs/heads/patches/revocation {{prg|dirmngr}}]
| Дополнительные опции настройки обработки информации о списках отзыва сертификатов || [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}}]
|}
|}
<small>''Как только изменения окажутся в Сизифе, здесь будут указаны ссылки на соответствующие патчи.''</small>


== Порядок настройки и работы ==
== Порядок настройки и работы ==
=== Подготовительный этап ===


Прежде всего необходимо настроить {{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}}).
Строка 33: Строка 30:
Далее, следуя той же странице руководства, нужно импортировать ключи в GnuPG. Для собственно {{prg|gpg}} это делается несколько нетривиальным способом, в два подхода: сперва {{prg|gnupg-pkcs11-scd}} напрямую даётся команда {{term|LEARN}}, а затем номер (отпечаток) «выученного» таким образом ключа используется в экспертном режиме генерации ключа в {{prg|gpg}}.
Далее, следуя той же странице руководства, нужно импортировать ключи в GnuPG. Для собственно {{prg|gpg}} это делается несколько нетривиальным способом, в два подхода: сперва {{prg|gnupg-pkcs11-scd}} напрямую даётся команда {{term|LEARN}}, а затем номер (отпечаток) «выученного» таким образом ключа используется в экспертном режиме генерации ключа в {{prg|gpg}}.


В случае использования {{prg|gpgsm}} процедура импорта выполняется штатно. Однако, для успешной проверки сертификатов, подписанных отечественными УЦ может понадобиться использовать новую спецнастройку в файле {{path|~/.gnupg/dirmngr_issuers.conf}}. Например:
В случае использования {{prg|gpgsm}} процедура импорта выполняется штатно. Однако, для успешной проверки сертификатов, подписанных отечественными УЦ, может понадобиться использовать новую ''спецнастройку'' в файле {{path|~/.gnupg/dirmngr_issuers.conf}}. Например:
<code>(issuer "CN=УЦ ФГУП \\\"ГРЧЦ\\\"" single-crl)</code>.
<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.


  1. Данная настройка включает режим последовательной обработки всех указанных URL списков отзыва, чтобы избежать проблемы, отмеченной здесь — https://lists.altlinux.org/pipermail/devel/2018-August/205109.html