id: Гость   вход   регистрация
текущее время 02:01 19/04/2024
Автор темы: unknown, тема открыта 19/03/2015 12:45 Печать
Категории: софт, gnupg, openpgp, стандарты
создать
просмотр
ссылки

OpenPGP notations


Сабж навеян коментом из другой темы. Делимся историями (не)успеха, примерами применения, подводными камнями в использовании и пр.


 
На страницу: 1, 2, 3, 4 След.
Комментарии
— sentaus (23/03/2015 01:24)   профиль/связь   <#>
комментариев: 1060   документов: 16   редакций: 32
Это путает. Почему «key flag» стандарта назван «capability» в GnuPG? А если я перейду на другую реализацию, там будет ещё своя, третья терминология, и свои буквы для её обозначения в выводах?

А буковки для обозначений, кстати, вообще не стандартизированы. Думаю, тут просто была как раз попытка перевести всё на человеческий язык.
— Гость (23/03/2015 04:44)   <#>

Там, правда, notations для подписей, а не UID'ов.
— SATtva (23/03/2015 08:09)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118

Ёлы-палы, напишите им кто-нибудь, чтобы почитали стандарт. В их случае можно нужно прям домен использовать для указания неймспейса нотации: filename@torproject.org.
— unknown (24/03/2015 12:38, исправлен 24/03/2015 12:45)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Ещё раз перепроверил /comment90733, там всё дельно и правильно насчёт uid vs. primary. Ошибка была у меня, где-то из-за моей невнимательности.


И ещё раз пока предварительный итог: даже если нет удобного способа неинтерактивного парсинга notations (а тем более добавления), это всё равно мощное и практически применимое средство.


Успешно сгенерил 4096-битный notations и скопипастил его в ключ:



8192 бит тоже влезает. Так действительно можно привязать к OpenPGP ключу любые другие ключи или криптопараметры. На серверы ключей публиковать не пробовал.

— Гость (25/03/2015 09:16)   <#>

То, что поведение должно быть именно таким, вытекает из общей логики. Было бы крайне странным, если б это поведение было иным.

Наткнулся на сайт http://www.openpgp-notations.org.

Непонятно, что с отзывом нотаций. Похоже, проще, чем через отзыв UID'а, никак; гугл молчит на этот счёт. Технически нотации меняют вывод showpref, но preferences можно менять сколь угодно много раз, повторно публикуя ключ на серверах ключей. Правда, там есть стандартные фиксированные поля под это, поэтому, я так понимаю, при смене предпочтений старые автоматически отзываются и заменяются новыми. А вот полей с нотациями может быть сколько угодно.

Короче, я всё понял и проверил, всё логично, в общем-то. Как для showpref есть имена Cipher, Compression, так и есть имена key01, key02 и др. Они по смыслу равноправны. Когда вы удаляете нотацию key02, реально генерится серт отзыва на нотацию с именем key02.

А, нет, всё ещё тоньше и изящней. Во-первых, имена тут, как и следовало ожидать, вообще ни о чём. Можете хоть идентичные 10 notations сделать. Не можете, но можете создавать любые, отличающиеся хоть чем-то. К примеру, keyxx@=oneone и keyxx@=oneone2 — две валидные нотации, вешаете их на ключ, всё ОК. Лишь бы хоть чем-то они отличались — этого достаточно. При удалении нотации, судя по всему, делается полный отзыв uid'а и замена его новым uid'ом с новым списком нотаций и предпочтений, просто от пользователя вся эта машинерия скрыта. Короче говоря (проверено), если вы удалили нотацию и получившийся ключ экспортнули куда-то, то больше ничего и не надо. При повторной сборке PGP-ключа GnuPG автоматически определит, что была удалена старая нотация и не будет её показывать.

Мне сначала подумалось, что он помечает отозванной только конкретную нотацию, а не весь UID, но это плохо похоже на правду. Делаем нотацию, потом другую, экспортируем в файл. Потом удаляем одну из нотаций, экспортируем в другой файл. Сносим связку PGP-ключей и создаём её заново (теперь уже без приватного), импортируя первый файл (появляется 2 нотации), потом импортируем второй файл (одна нотация исчезает). Если второй импорт делать с -vvv, то дампу пакетов похоже, что весь UID просто напросто заменяется другим. SATtva мог бы точнее сказать.

Вообще, тема отзыва нотаций ему, наверно, сразу показалась смешной, но он предпочёл не комментировать.

Короче, всё работает, всё классно. Можно загаживать свои PGP-ключи чтением им новых нотаций и ничего не бояться.
— Гость (25/03/2015 09:28)   <#>

Я плохо понял тех. детали того, что они делают, и того, что вы предлагаете, но коммент в меру понимания добавил. Если ключ уже и так TorProject'овский, зачем там ещё раз писать @torproject.org? Будет лишь загаживание нотаций дополнительным неинформативным мусором.
— unknown (25/03/2015 11:02, исправлен 25/03/2015 11:06)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Они хотят делать другие notations — которые в одну конкретную подпись, а не в висящий на ключе UID.



Генерим 128-килобитные одноразовые OpenSSL-ключи на каждый день на год вперёд, вешаем на OpenPGP-ключ и не боимся АНБ. ☺

— SATtva (25/03/2015 11:49, исправлен 25/03/2015 11:49)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118

В отличие от UID, которые совсем не формализованы, нотации скорее ближе к user-defined-пакетам, они должны быть семантически однозначны. Требование к наличию знака @ возникло в стандарте не просто так: то, что идёт после знака, определяет namespace данной нотации, чтобы не получилось коллизии в интерпретации значений.


Допустим, TorProject таки внедрит нотацию вида file@name=x, но что если ещё какой-то олух кто-то независимо от них будет применять нотацию такого же вида, но с иной семантикой? Как вести себя стороннему пользователю, которому попадутся две такие подписи с нотациями одного вида, но несущими разный смысл?



Да нет, однозначного ответа у меня тоже не было. Но вообще выглядит логичным: нотация в данном случае — атрибут UID'а, посему для её изменения/удаления нужно пересоздать UID. Почти то же самое, что с предпочтениями, только они — атрибут ключа, т.е., технически, self-signature данного ключа, поэтому их изменение не затрагивает UID'ы и прочие элементы сертификата.

— ressa (25/03/2015 13:12)   профиль/связь   <#>
комментариев: 1079   документов: 58   редакций: 59

Unknown, а можно в двух словах – как это применять простым смертным? Ну не совсем пошагово, а хотя бы вкратце.
Спасибо
— unknown (25/03/2015 13:34, исправлен 25/03/2015 13:35)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

То была ирония и гипербола. Простым смертным это не надо. Конкретных сценариев применения ещё не придумано, зато проверено, что идея рабочая.

— ressa (25/03/2015 13:38)   профиль/связь   <#>
комментариев: 1079   документов: 58   редакций: 59
А ну это я понял, что не для людей а для парсинга. Просто подумал, что можно, как-то для простых. Как тогда обсуждали про возможные 4кб текста в инфу о ключе пихать – это интересно.
— Гость (25/03/2015 15:32)   <#>

Например, вместо публикации хэшей в инете, как тут, вешать их в качестве нотаций на свои PGP-ключи.


Это я понял. Вопрос был в тех. деталях, с которыми я не стал вдумчиво разбираться (что именно значат их команды).


Их бы надо пошифровать одноразовым блокнотом, чтоб так и было, но откуда его взять? Может быть, если набор ключей шифровать не полностью случайной гаммой, а каким-нибудь потоковым шифром, можно добиться PFS.


Именно после, а не до? Там вроде есть какие-то параметры, предопределённые стандартом, которые потенциально могут привести к проблемам, как я понял, но шансы столкнуться с таким вариантом невелики. Т.е. писать --expert если и делать, что хочешь, в нотациях, то сто против одного, что нигде никаких проблем не возникнет и без всяких «@» и «=».


А кто запретит олуху создавать нотации вида file@torproject.org на своём ключе? В любом случае, нотации висят не в воздухе, а прикрепляются к конкретному ключу. Пользователи будут аутентифицировать нотации не по тому, что в них написано, а по тому, к каким ключам они относятся. По-хорошему, конечно, нужен общепринятый стандарт на подписывание имён файлов. Впрочем, по старнике решается так: файл кладётся в архив, а сам архив подписывается; это фиксирует имя файла (а имя архива неважно).


Предпочтения — тоже атрибуты UID'а. Не зря список как предпочтений, так и нотаций выводится через showpref. Предпочтения задаются per uid, если что (вы это, наверно, и без меня знаете). Я не пробовал в лоб это проверять, но мне представляется это так, что при смене предпочтений тоже происходит отзыв UID'а и замена его новым. Ну, или мы друг друга вообще не поняли.
— ressa (25/03/2015 15:42, исправлен 25/03/2015 15:42)   профиль/связь   <#>
комментариев: 1079   документов: 58   редакций: 59

Так ведь лучше же тогда в аватарку текст в стеганоконтейнере встраивать. Как раз в стандарте GPG и вычитал, что размер 4кб – там текста много влезет. Можно переписку так вести. А так – спасибо за идею, буду иметь в виду.

— SATtva (25/03/2015 15:50)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118

Именно после: notation_name@notation_namespace=value.


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


Смысл не в энфорсе или аутентификации (точно так же никто не запретит создать ключ или подпись, не соответствующие нормам OpenPGP), а в однозначном понимании того, что данная нотация означает.


Это ничего не значит: два разных пользователя могут создать нотации одного вида, но несущие разный смысл. Неймспейсы нужны именно для того, чтобы избежать такой ситуации.


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


Да, перепутал. Более того, стандарт допускает их даже для отдельных подключей.
— Гость (25/03/2015 15:50)   <#>

Стего ненадёжно.


Unknown уже писал про «неубиваемый twitter». Да, можно. Но размер ключей будет расти очень сильно, т.к. каждый раз новая инфа будет добавляться к старой.



Вообще, если подумать, в этом имеется некая нетривиальность, которую требуется осознать. Можно локально тупо удалить подключ или uid,* а вот нотацию нельзя. Когда вы делаете notation -NOTATION_NAME, нотация не удаляется, а просто создаётся сертификат отзыва на неё. Это плохо и неудобно. Если вы хотите локально поиграться с ключом в плане нотаций, сохраните его чистую копию, иначе потом штатно нотации из ключа будет уже не удалить никак (16-ричный редактор исключаем)... По-хорошему нужны обе операции: и просто удаление и отзыв, но первого в GnuPG нет (исключая вариант удаления всего UID'а целиком и его последующего пересоздания).

* Сейчас специально проверил: можно удалять uid'ы из чужих ключей, приватный для этого не нужен.
На страницу: 1, 2, 3, 4 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3