id: Гость   вход   регистрация
текущее время 12:45 28/03/2024
Автор темы: VR5, тема открыта 02/12/2006 17:03 Печать
http://www.pgpru.com/Форум/РаботаСGnuPG/МожноЛиПутем-show-session-keyИ-override-sessionKeyРешитьНетривиальнейшуюЗадачу
создать
просмотр
ссылки

можно ли путем -show-session-key и -override-session key решить нетривиальнейшую задачу?


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


Задача: Есть сообщение М. Есть статистически неотличимая от случайной строка из 256 бит С.
Как сделать так, чтобы при шифровании сообщения М в рамках PGP использовать эту строку С ВМЕСТО сессионного ключа К, дальше спокойно зашифровать С публичным ключом А, как если бы С было нормальным сессионным ключом, потом построить стандартное PGP сообщение, т е (С зашифрованное А)+(М зашифрованное С)?


А зачем оно надо?
ОТВЕТ:
Известно, что любое сообщение, зашифрованное нормальным алгоритмом не отличимо от выхода нормального ГСЧ. Если мы возьмем 256 значимых бит (это целых 32 ASCII символа!) и зашифруем их, то результатом будет 256 бит, аналитически неотличимые от 256 бит, выданных нам ГСЧ. Это и есть наша строка С...

Сессионный ключ это 256 бит выданных ГСЧ. Если мы сможем подменить их нашими С, то Алиса сможет передать Бобу с помощью PGP/GnuPG не только сообщение М, но и особо важное тайное сообщение С (32 буквы).

Даже если Мэлори, пользуясь связями с злым Оборотнем в Погонах надавит на Боба, чтобы тот раскрыл переписку, Бобу будет нечего опасаться и он сможет ничего не теряя выполнить требования, так как НАСТОЯЩИЙ секрет (32 ASCII символа зашифрованные в С и прикидывающиеся шлангом сессионным ключом) останется в сохранности, так как Мэлори не сможет узнать, что сессионный ключ одного из множества PGP сообщений не является продуктом ГСЧ, а является неким сообщением, поскольку статистической разницы нет.


 
Комментарии
— SATtva (02/12/2006 19:27, исправлен 02/12/2006 19:32)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Вообще в GnuPG предусмотрены только --show-session-key (извлечь сеансовый ключ из сообщения с помощью закрытого ключа) и --override-session-key (расшифровать сообщение сеансовым ключом). Специальной опции для передачи строки в качестве сеансового симметричного ключа в функцию шифрования нет. В принципе, Вы можете этого добиться прямым хаком кода GnuPG; задача, на мой взгляд, вполне осуществимая.

Только есть у этого подхода большая проблема: использование печатного и, тем более, осмысленного ASCII-текста катастрофически снизит энтропию сеансового ключа. В этом случае ничто не мешает Мэллори подобрать непосредственно его по словарю. Вы в своей схеме исходите из того, что Мэллори обо всём об этом ничего знать не будет, но что если он всё-таки попробует? Ему это может оказаться вполне по силам.

Добавлено:
Поторопился с ответом. Вы пишите, что строка-кандидат С неотличима от случайной. Если так (например, Вы стеганографируете сообщение в каких-то отдельных битах этой строки), то явных очевидных проблем я здесь не вижу.
— unknown (02/12/2006 21:42, исправлен 02/12/2006 21:53)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Иными словами, нужно создать скрытый канал в виде сеансового ключа gpg, чтобы передать крайне небольшой объём сообщения (типа "шеф, всё пропало!", но предварительно зашифрованное или закодированное)?
В принципе это возможно. Тоже можно делать и для подписей DSA.

Но опция -show-session-key позволяет показать сеансовый ключ, а -override-session key не заменяет сеансовый ключ в сообщении, а позволяет лишь использовать извлечённый сеансовый ключ для расшифровки вместо реально существующего. Это как вариант редкой судебной процедуры: раскрытие сообщения по требованию следствия без раскрытия закрытого ключа.

Т.е. подозреваемый делает -show-session-key для затребованных сообщений и отсылает дознавателю. Тот в присутствии экспертов делает -override-session key, вводит присланный ключ, после чего все читают сообщения.

Подойдёт теоретически при расследовании для крупной организации, но не против частного пользователя. (не приходилось этим пользоваться, поправьте если не так).

Т.е. возможностей для манипуляции со скрытым ключём в сообщении скорее всего нет. (будет время, проверю, но думаю бесполезно).

Но если влезать в исходники gpg, то тогда безопаснее подменять векторы инициализации, а не ключи, хотя это сложнее.
— VR5 (02/12/2006 23:58)   профиль/связь   <#>
комментариев: 6   документов: 3   редакций: 0
SATtva
В принципе, Вы можете этого добиться прямым хаком кода GnuPG; задача, на мой взгляд, вполне осуществимая.


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

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


строка просто шифруется симметричным алгоритмом, например горячо любимым AES'ом 256. И в результате отличить ее от случайной, не зная о факте подмены, а так же шифр, режим и ключ, нельзя.

unknown

Иными словами, нужно создать скрытый канал в виде сеансового ключа gpg, чтобы передать крайне небольшой объём сообщения (типа «шеф, всё пропало!», но предварительно зашифрованное или закодированное)?
В принципе это возможно. Тоже можно делать и для подписей DSA.


Для подписей тоже? Хм... чем больше узнаю, тем более привлекательной мне кажется идея :-) Жаль правда, что только для DSA, но ведь "по стандарту" все равно полагаются они...

Т.е. возможностей для манипуляции со скрытым ключём в сообщении скорее всего нет. (будет время, проверю, но думаю бесполезно).


Нда, похоже на то... увы.
а как хороша идея!


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


А чем IV в этом плане более привлекательны/более безопасны, чем ключи?
С ключом вроде "чистенько и простенько" – 256 "случайных" на вид (и на статистический тест) бит.

Господа, может быть оформить это как предложение разработчикам GnuPG? Функционал весьма себе полезный (кто не любит настоящую, недетектируемую стеганографию, даже если спрятать дают всего 32 буквы на сообщение?), от стандарта OpenPGP отступления нет (с точки зрения других приложений работающих в этом стандарте, той же PGP, такое "стего-обремененное" сообщение будет восприниматься как обычное PGP сообщение с нормальным, случайным сессионным ключом).

На мой взгляд, от такой уникальной функции GnuPG были бы одни только плюсы. Первая OpenPGP система с стеганографическим потенциалом...
Напишем письмецо?
— Гость (03/12/2006 01:14)   <#>
plausible deniability для PGP ;)
— Гость (03/12/2006 01:59)   <#>
Это было бы КРУТО.
Тем боле что "принципиальная возможность", насколько я понял, уже есть! Надо только "докрутить" соответствующий оверрайд, чтобы втыкать это самое С вместо сессионки =)))
— unknown (04/12/2006 10:48, исправлен 04/12/2006 10:48)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Сильно подозреваю, что разработчики будут против создания скрытых каналов.

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

Поэтому кто-то использует RSA, где скрытого канала нет, а в DSA стараются его избегать.

Идею plausible deniability нужно решать возможно как-то иначе.
— SATtva (04/12/2006 11:22)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
В рабочей группе IETF OpenPGP давно витает предложение (и оно наверняка будет реализовано в следущей версии стандарта) о реализации эфемерных ключей. Это должно полностью снять проблему раскрытия сеансовых ключей, поскольку ни отправитель, ни получатель после передачи сообщения этими ключами обладать уже не будут.
— unknown (04/12/2006 15:34, исправлен 04/12/2006 15:35)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
— Гость (03/12/2006 01:14)
plausible deniability для PGP ;)

Это хорошо, только эфемерные ключи и скрытый канал – это разные вещи.
— SATtva (04/12/2006 20:36, исправлен 04/12/2006 20:49)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Технически — да, но задачу решают одинаковую. Plausible deniability (правдоподобное отрицание) — это возможность отрицания наличия зашифрованной информации, как правило в контексте юридического давления, т.е. в конечном счёте Вы можете отказываться раскрывать ключи и информацию, заявляя, что никакого шифртекста нет (оппонент это опровергнуть не сможет, однако, только юридически; в ином контексте "правдоподобное отрицание" может не спасти или даже вызвать дополнительные проблемы, если оппонент сочтёт его не слишком "правдоподобным").

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

В данном случае оба подхода эквивалентны.
— Lemtoks (09/12/2006 00:33)   профиль/связь   <#>
комментариев: 53   документов: 3   редакций: 1
А где бы почитать про эфемерные ключи? Желательно по-русски.
— SATtva (09/12/2006 10:36)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
http://ru.wikipedia.org/wiki/Эфемерный_ключ
— serzh (17/12/2006 08:27)   профиль/связь   <#>
комментариев: 232   документов: 17   редакций: 99
А описание самого предлагаемого механизма использования эфемерных ключей в OpenPGP есть (на русском)?
— SATtva (17/12/2006 11:31)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
На русском? Даже не надейтесь.
— serzh (17/12/2006 15:04, исправлен 17/12/2006 15:16)   профиль/связь   <#>
комментариев: 232   документов: 17   редакций: 99
А на английском, как я понимаю, в списке рассылки =)
Ладно, буду читать на английском, хотя это будет значительно дольше =(
Если вам не сложно объясните в двух словах остальным, я думаю это будет интересно всем, а то я может быть не до конца правильно пойму.
— SATtva (17/12/2006 17:29)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Там всё пока на уровне черновика черновика черновика, я его не изучал даже.

http://www.links.org/dnssec/draft-brown-pgp-pfs-04.txt
(это старый текст, ничего более свежего в своём архиве не нашёл)
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3