id: Гость   вход   регистрация
текущее время 14:32 25/11/2017
Автор темы: ressa, тема открыта 30/08/2014 23:45 Печать
Категории: софт, gnupg, исходные тексты
создать
просмотр
ссылки

Патчинг GnuPG

Вопрос правки исходников, с целью генерации 8192 битных ключей.
Скачал исходники последней версии GnuPG (2.0.26), решил пропатчить и собрать.
Все, как обычно: идем в /gnupg/g10, правим файл keygen.c:

Устанавливаем нужные либы, собираем. Все ок. Идем генерить ключ:

Отображает нужный мне предел длины ключа, отлично, вбиваю. Но тут возникает великий облом:

И он продолжает генерить 4096
Само собой – первое, что приходит на ум – это проверки. Беглое гугление не помогло, везде так указывается на правку указанной мной строки кода. Компилировал версии 1.4.18 и 2.0.26.
Буду признателен за помощь.


 
На страницу: 1, 2, 3, 4, 5 След.
Комментарии
— pgprubot (19/06/2015 14:40, исправлен 19/06/2015 15:05)   профиль/связь   <#>
комментариев: 511   документов: 2   редакций: 70

После того, как прочитал пост Yellow, вспомнил все эти аргументы и хотел их озвучить, это потянуло бы на текст в несколько абзацев, в общем-то сводящийся к пересказу того, что и так уже озвучивлось на форуме в разных местах, где длинные ключи и вопросы взлома асимметрики уже обсуждались. Потом с учётом того, что я даже не представляю, что именно Yellow толкает на генерацию таких ключей, решил не страдать ерундой, а ограничиться общим бездоказательным замечанием.


Неадекватно большие длины ключей — это, скорее, просто понты людей плохо разбирающихся в ИБ, чем нечто полезное. Они идут в один ряд с такими заморочками, как каскадное шифрование. Это попытка усиления и так самого стойкого звена в защите (причём зачастую наивная и бездоказательная). Симптоматично, что неадекватные длины ключей упомянуты одним из признаков ханаанского бальзама (см. №5).


Скажем так, если б GnuPG поддерживало 8192-битные ключи из коробки, и вы бы при этом сгенерировали себе такой, это было бы, условно говоря, в пределах нормы, но вот специально гененировать ключи такой длины во что бы то ни стало, предпринимая для этого массу дополнительных действий и преодолевая трудности — уже симптом.



Учтите, что там патчи под конкретные версии. Применять их к иным версиям надо творчески и внимательно, а не вслепую.



Насколько я помню старые обсуждения, в самых новых версиях ограничения в 4096 бит для интерактивного режима нет, поэтому есть третий способ (более правильный, чем патчи): установить более свежую версию GnuPG. Как это сделать — уже вопрос третий, зависит от специфики ОС.

— Yellow (19/06/2015 15:22)   профиль/связь   <#>
комментариев: 63   документов: 0   редакций: 4
Уверяю Вас, что с большим уважением и благодарностью отношусь к тому, что Вы и другие знающие люди тратите неимоверное количество времени на таких, как я. :-)

Мне понятно, что "ненормально" большие ключи с точки зрения криптографии – ханаанское излишество. :-) Но у меня есть практические причины (т.е. не в плоскости криптографии самой по себе) хотеть использовать максимально доступную длину ключа.

Кроме этого, задача просто показалась интересной. В процессе изучения вопроса познакомился с большим количеством смежной инфы. Т.е. такая, как бы, глупость (сделать дурацкие ключи и радостно воткнуть их себе в Thunderbird) подтолкнула к получению новых существенных и разнообразных знаний.

Более того, поскольку мне самому все это очень интересно (и в теории, и в практике), пытаюсь подсадить на тему людей из своего окружения. Они тоже сейчас сядут и будут генерить неконфекционные ключи, т.к. им это просто интересно. А чем интересней будет, тем больше людей будут хотеть заниматься вопросами ИБ.

Т.е. Вы и Ваши коллеги не только мне помагаете. Вы помагаете большому количеству людей, о которых даже не подозреваете.

Еще раз спасибо.
— pgprubot (19/06/2015 16:03, исправлен 19/06/2015 16:11)   профиль/связь   <#>
комментариев: 511   документов: 2   редакций: 70

Неужели похвастаться перед девочками «а у меня ключ длинее, чем у всех!» ? :) Можно ещё кастомные отпечатки брутфорсить, тоже понт.


Помню случай, как один человек много лет назад хвастался, что он сгенерил ключ то ли на 8192 бит, то ли на 16384... Это не мешало ему как попало относиться к ИБ, терять приватные ключи десятками и заспамливать этими ключами публичные серверы ключей.


В плане длины нужен компромисс между удобством и безопасностью. Почему бы не генерить ключи длиной сотни тысяч бит? Принципиальных ограничений на это нет, код под такие задачи исправляется легко, но нормальные люди так не делают.



Если вам так хочется углубиться, есть же куда более полезные занятия в рамках GnuPG, которые действительно увеличивают безопасность:


  1. Разобраться с capabilities и выставлять их на ключах правильно (дефолты в GnuPG не всем типам нужд хорошо соответствуют).
  2. Разобраться с предпочтениями алгоритмов и выбрать их разумным образом (дефолты в GnuPG плохие).
  3. Научиться хранить главный ключ связки отдельно от подключей на внешнем носителе, чтобы защититься от компрометации (настоятельно рекомендуется так делать).
  4. Разобраться с notations для PGP-ключей (uid'ов), научиться вешать на ключ нужную информацию (например, детали контактов для связи).
  5. Разобраться с заверением чужих ключей своим, с разными видами подписей, сертификаций, сессиями заверителей и участием в сети доверия.
  6. Разобраться с отзывом ключей и подключей, с ротацией подключей, с сертификатами отзыва и ключом с правом отзыва (revoker).
  7. Установить и настроить gpg-remote, чтобы в случае компрометации профиля противник не мог похитить ключ.
  8. (Понты) Научиться добавлять главный ключ на связку другого ключа (в качестве подключа) и потом отзывать этот главный ключ.

Видите, какое большое поле деятельности? Вы всё из этого знаете/умеете? Всё вышеперечисленное будет более полезным для ИБ, чем поиск методов удлиннить член ключ. Главное — не длинна, а умение владеть инструментом. Перечисленные пункты как раз относятся к категории владения.

— Yellow (19/06/2015 16:42, исправлен 19/06/2015 16:42)   профиль/связь   <#>
комментариев: 63   документов: 0   редакций: 4

Скорее, перед взрослыми тетями. :-)



Учту

— Yellow (21/06/2015 13:34)   профиль/связь   <#>
комментариев: 63   документов: 0   редакций: 4

Будьте добры, для чего это может понадобиться?
— pgprubot (21/06/2015 19:43, исправлен 21/06/2015 19:47)   профиль/связь   <#>
комментариев: 511   документов: 2   редакций: 70

Речь шла об этом. С учётом данных замечаний штатно это не сделать, придётся писать свой код под эту задачу.


Как я понимаю, в OpenPGP не предусмотрены штатные механизмы полной смены ключа. Можно написать анонс о смене ключа, подписать его старым ключом и повесить где-то на видном месте. Можно добавить keyid/отпечаток нового ключа (и какую дуругую информацию) в uid'ы старого, после чего отозвать старый ключ. Можно эту информацию добавить не в uid'ы, а в uid notations. Можно назначить новый ключ revoker'ом старого, после чего отозвать старый ключ новым ключом. Методы не исключают друг друга, их можно комбинировать.


Ещё один из вариантов — перенести старый ключ на новую связку, чтобы все штатно видели, что то был ваш старый ключ или подключ. Если тем ключом что-то было подписано или зашифровано, вы сможете расшифровывать (или сверять подписи) новым ключом. Правда, если шифровалось или подписывалось подключами, то это не сработает. Можно, наверно, по аналогии попытаться перенести на новую связку как главный ключ, так и подключи, тогда должно заработать всё, но как это будет дружить с GnuPG и к каким потенциальным проблемам приведёт — непонятно. Во всяком случае, если это заработает, оно даст некоторые интересные возможности, у которых могут быть полезные на практике применения.

— Yellow (21/06/2015 20:06)   профиль/связь   <#>
комментариев: 63   документов: 0   редакций: 4
Понял, спасибо.
— SATtva (22/06/2015 07:27, исправлен 22/06/2015 07:28)   профиль/связь   <#>
комментариев: 11514   документов: 1035   редакций: 4046

По-моему, Вы тут используете неконвенциональную терминологию. Связкой в рамках OpenPGP-реализаций принято называть базу данных различных OpenPGP-ключей (сертификатов). Если Вы имеете в виду базовый ключ с подключами, то это не связка, а просто OpenPGP-ключ или сертификат.


Уточняю, чтобы не было путаницы.

— pgprubot (22/06/2015 10:20)   профиль/связь   <#>
комментариев: 511   документов: 2   редакций: 70

Да, именно так. Спасибо за поправку, почему-то всегда так считал. Когда говорят «главный ключ» или «подключ», всё понятно, но иногда нужно сослаться на сущность «главный ключ + его подключи» (собственно, это и есть «полный» OpenPGP-ключ). Получается, что эта сущность называется просто «ключом» (без уточнений), поэтому в некоторых контекстах может быть ошибочно интерпретирована как «только главный ключ». Слово «сертификат» применительно к OpenPGP вообще первый раз слышу.
На страницу: 1, 2, 3, 4, 5 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3