id: Гость   вход   регистрация
текущее время 20:48 22/01/2018
Автор темы: spinore, тема открыта 04/11/2008 23:36 Печать
Категории: криптография, софт, pgp, шифрование с открытым ключом, протоколы, эцп, атаки, социальная инженерия
http://www.pgpru.com/Форум/РаботаСPGP/РаскрытиеПриватногоPGP-ключаКакСредствоДискредитации
создать
просмотр
ссылки

Раскрытие приватного PGP-ключа как средство дискредитации


Если я правильно понимаю, то для не RSA ключей можно выделить отдельно ключ для расшифровывания и ключ для подписи (ЭльГамаль и Диффи-Хэллман, кажется). Для этого достаточно владеть приватным PGP-ключом. Предъявив, к примеру, только ключ расшифрования, можно будет доказать авторство сообщений адресата, с кем велась переписка. В то же время, не раскрывая ключ для подписи, нельзя позволить другим выдать себя за владельца ключа. В итоге, получается схема когда все могут спрочитать, ни никто не может подделать, как с чистыми подписями без шифрования. Это одна идея.


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


Из синтеза этих двух идей можно сконструировать простейшие атаки в стиле социнженерии. Допустим, я честно предъявляю собеседнику свой ключ, которым я дорожу, и на который завязана переписка со многими лицами. Собеседник же может предъявить специально сделанный для меня PGP-ключ. Образуется неравномерность распределения ответственности: он может, не рискуя практически ничем, раскрыть свой ключ, подтвердив всё что я писал, для меня же подобная операция будет куда менее "приемлемой". Есть ли какие-то другие схемы исправления ситуации, кроме как OTR или "идти и поступать также", назначая на каждый контакт по одному ключу? Ситуация может оказаться не сильно надуманной, если собеседник окажется "в оппозиции" или "вдруг захочет насолить". Я в курсе, что PGP не предназначено для анонимности и отрицамеости, но вдруг есть какие-то нетривиальные идеи? Просто не хотелось бы, чтоб мало того, что адресат мог разглашать информацию, так он ещё мог и подтверждать её верность...


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


Проблема скорее социальная, а не криптографическая, но так уж повелось, что обсуждая ИБ сложно оставаться в рамках "чистой науки".


 
На страницу: 1, 2, 3 След.
Комментарии
— unknown (05/11/2008 11:30, исправлен 05/11/2008 11:35)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Адресат может сдать вас даже не раскрывая свой ключ.

В openpgp есть возможность разглашения сеансовых симметричных ключей, которыми было зашифровано сообщение (--show-session-key, своего рода полицейский режим).

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

Можете не подписываться своим ключом. Использовать аутентификацию текста как-то иначе.
— Мухтар (05/11/2008 12:08)   профиль/связь   <#>
комментариев: 155   документов: 20   редакций: 5
Кстати. Меня заинтересовала возможность отслеживания tor клиентов с помощью применения последними ssl сеансов. Речь идет о возможности вычисления пользователя администратором ssl сайта, равно как и о возможности отслеживания администраторами конечных нодов tor'a.
— unknown (05/11/2008 12:41)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
А какая тут связь, может создадите отдельную тему с развёрнутым описанием?
— SATtva (05/11/2008 21:47)   профиль/связь   <#>
комментариев: 11524   документов: 1036   редакций: 4050
spinore, для новой редакции OpenPGP готовится, в числе прочего, и предложение о реализации Perfect Forward Secrecy: даже если ключ окажется раскрыт, это не скомпрометирует совершённую ранее переписку. Разумеется, это не снижает риск того, что контрагент может просто "слить" всю вашу совместную переписку "куда следует".

Если я правильно понимаю, то для не RSA ключей можно выделить отдельно ключ для расшифровывания и ключ для подписи (ЭльГамаль и Диффи-Хэллман, кажется).

Это не так. Любой ключ v4 состоит из главного ключа подписи (RSA или DSS) и одного или нескольких подключей шифрования/подписи (для шифрования — RSA или Эльгамаль (Диффи-Хэллман в данном случае — это то же самое), для подписи — те же RSA или DSS).

В остальном мысль верна: снять слой шифрования всегда возможно. Только значимость цифровых подписей я бы не переоценивал: в общем случае они практически ничего не доказывают... ну, целостность сообщений, разве что, т.е. чисто криптографическое свойство. С правом они ни с какого бока не пересекаются, если только контрагенты явно не договорятся об ином.
— spinore (06/11/2008 01:26, исправлен 06/11/2008 01:27)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786
В openpgp есть возможность разглашения сеансовых симметричных ключей, которыми было зашифровано сообщение (--show-session-key, своего рода полицейский режим).

AFAIK, в jabber+gpg нет никакой симметрики.

Можете не подписываться своим ключом. Использовать аутентификацию текста как-то иначе.

Согласно стандарту PGP, используемому в jabber, не подписываться нельзя.

Только значимость цифровых подписей я бы не переоценивал

Ну почему, если любой грамотный специалист может проверить их верность, имея мой открытый PGP-ключ, это уже многое... я не говорю здесь о преследовании согласно закону, скорее – "в принципе". Ведь всем известно, что подделать подписи нельзя.
— unknown (06/11/2008 09:09)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

AFAIK, в jabber+gpg нет никакой симметрики.

Асимметричное крипто в чистом виде без распределения симметричных сеансовых ключей существует только в экспериментальных протоколах, но даже если бы оно было где-то реализовано, получатель всё-равно может извлечь открытый текст после расшифрования и приклеить к нему вашу подпись обратно, не сдавая свой закрытый ключ, если только не подписывать шифртекст, полностью увязанный на асимметричное крипто.
— SATtva (06/11/2008 09:31)   профиль/связь   <#>
комментариев: 11524   документов: 1036   редакций: 4050
AFAIK, в jabber+gpg нет никакой симметрики.

А о чём речь? В джаббере крипто используется для трёх несвязанных операций, каждую можно включать/выключать независимо от других:
  1. аутентификация сессии (простая подпись),
  2. заверение сообщений (простая подпись),
  3. шифрование сообщений (симметричное+асимметричное шифрование)

Согласно стандарту PGP, используемому в jabber, не подписываться нельзя.

Ничего подобного.

я не говорю здесь о преследовании согласно закону, скорее – "в принципе". Ведь всем известно, что подделать подписи нельзя.

Зато можно ключ "потерять". Забудьте о таком понятии, как "неотречение". Оно работает только в двух случаях:
  • При договорных обязательствах и формальной ответственности за действия с ключом.
  • При высокой репутационной ответственности (преимущество Сети доверия). Если у пользователя на ключе собрано большое множество подписей, он не станет жертвовать им так слепо, если предполагаемый ущерб от сохранения ключа сравнительно невелик.
— unknown (06/11/2008 09:41)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Можно было бы использовать одноразовые подписи Лампорта...
— spinore (06/11/2008 23:26, исправлен 06/11/2008 23:28)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786
симметричное крипто в чистом виде без распределения симметричных сеансовых ключей существует только в экспериментальных протоколах

Интересные факты. А если я делаю то тоже шифрую симметричным алгоритмом? Может быть, есть какие-то "internals" с точки зрения абстрактного крипто, но в моём понимании асимматричное – это , а симметричное – это . Разве в jabber предусмотрена процедура выработка общего симметричного ключа на первой стадии, которым впоследствии шифруются все сообщения? По такой схеме работает, насколько я знаю, именно OTR+jabber а не PGP+jabber.

если только не подписывать шифртекст, полностью увязанный на асимметричное крипто.

А смысл? Показываю подписанный шифротекст: все могут проверить верность подписи, ибо публичные ключи всех участников по умолчанию считаются известными. Далее, предъявляя свой закрытый ключ, можно дать всем удостовериться в содержимом сообщения. Итого, коммутация шифра и подписи при такой атаке ничего не даст.

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

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

шифрование сообщений (симметричное+асимметричное шифрование)

PGP == асимметричное?
OTR == симметричное?
Кстати, они могут работать вместе (OTR+PGP), только забыл кто сверху идёт а кто снизу в таком случае.

Зато можно ключ "потерять"

Потерять-то можно, а вот поверят ли... Почему-то сразу все начинают вспоминать судебную систему и финансовую ответственность. Однако, есть и другие вещи. Допустим, что вы известный какой-то деятель, к примеру, Шнаер или Роджер. Я с вами веду переписку. Раскрыв её посторонним лицам (выложив её на каком-то сайте, вкупе со всеми причитающимися подписями и ключами), можно довольно не хило повлиять на репутацию. Здесь важно, что всем будет понятно, что это не деза и не фэйк. И в утерю ключа если могут поверить, то также, как и в рассуждения стиля "я не убивал, отпечатки не мои – силком мои руки к ножу приложили, свидетели врут, суд коррумпирован, вещдоки поддельные, делавшие ДНК сфальсифицировали заключение ..."

одноразовые подписи Лампорта

Это которые слепые и которые для анонимных финансов?
— unknown (07/11/2008 09:26, исправлен 07/11/2008 09:49)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
gpg -e ?

Ну зашифруйте что-нибудь сами себе, а затем расшифрйте gpg -v -d testfile

И увидете, что до ввода пароля будет что-то вроде: 1024-bit ELG-E key,

а после воода пароля: AES256 encrypted data.

Потому что сначала генерируется сеансовый случайный симметричный ключ (по умолчанию AES), им шифруется всё сообщение, а уже этот ключ (а не само сообщение) шифруется асимметрикой. Расшифровывается естественно в обратном порядке. Иначе шифрование происходило бы очень медленно (до 10000 раз), а алгоритмы типа RSA неустойчивы к атакам с подобранным открытым текстом – кто-нибудь попросил бы вас перешифровать текст вашим ключом и переслать ему шифртекст, а из результата смог бы вычислить закрытый ключ.

одноразовые подписи Лампорта
Это которые слепые и которые для анонимных финансов?

Слепые для финансов – это подписи Чаума. Подписи Лампорта используют для микроплатежей, она основана только на хэшах без асимметрики, идея немного в другом – после того как подпись проверена, каждый (в первую очередь получатель) может создать любые документы с такими же подписями.

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



Собственно, всё уже давно изобретено. Как всегда на уровне теоретических разработок.

Вот примерно fileтак.

И на проблему эту давно обратили внимание.
Вот цитата из Adida, Чаума, Хоненберга и Райвиста:


Privacy advocates have long noted, that digital signatures present a double-edged sword; signatures make a private conversations publicity-verifiable


Вот такой вот обоюдоострый меч.

Анонсы других работ (к сожалению нет в свободном доступе):


Abstract

An efficient and non-interactive deniable authentication protocol is presented to enable a receiver to identify the source of a given message, but not prove the identity of the sender to a third party. The proposed protocol is based on the generalized ElGamal signature scheme and is more efficient than the previous protocols. We show that if an adversary could forge signatures of this protocol, he would forge signatures of the generalized ElGamal signature scheme. Moreover, the new protocol is more secure than the previous deniable authentication protocols, since anyone can not impersonate the intended receiver.




ABSTRACT

Ring signature scheme enables a signer to sign a message anonymously. In the ring signature scheme, the signer who wants to sign a document anonymously first chooses some public keys of entities (signers) and then generates a signature which ensures that one of the signer or entities signs the document. In some situations, however, the ring signature scheme allows the signer to shift the blame to victims because of the anonymity. The group signature scheme may be a solution for the problem; however, it needs an electronic big brother, called a group manager, who can violate the signer anonymity by himself, and a complicated key setting. This paper introduces a new notion of a signature scheme with signer anonymity, a deniable ring signature scheme (<Dscr><Rscr><Sscr>), in which no group manager exists, and the signer should be involved in opening the signer anonymity. We also propose a concrete scheme proven to be secure under the assumption of the DDH (decision Diffie Hellman) problem in the random oracle model.


— spinore (08/11/2008 00:28)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786
Потому что сначала генерируется сеансовый случайный симметричный ключ (по умолчанию AES), им шифруется всё сообщение, а уже этот ключ (а не само сообщение) шифруется асимметрикой

Забавно :) Понял.

алгоритмы типа RSA неустойчивы к атакам с подобранным открытым текстом – кто-нибудь попросил бы вас перешифровать текст вашим ключом и переслать ему шифртекст, а из результата смог бы вычислить закрытый ключ.

Получается, что если использовать gpg на машине с плохим ГСЧ то могут угнать ключ, даже если он генерился на другой машине с надёжным ГСЧ...

[offtop]
Там в первой статье обсуждается Big Brother как тип атаки, и тут у меня вопрос: вам случаем не известно ли происхождение этого термина? Кто впервые стал так называть госслежку?
[/offtop]
— spinore (08/11/2008 00:30)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786
для новой редакции OpenPGP готовится, в числе прочего, и предложение о реализации Perfect Forward Secrecy: даже если ключ окажется раскрыт, это не скомпрометирует совершённую ранее переписку.

А про сроки введения этого нового стандарта что-нибудь известно?
— SATtva (08/11/2008 14:49)   профиль/связь   <#>
комментариев: 11524   документов: 1036   редакций: 4050
Получается, что если использовать gpg на машине с плохим ГСЧ то могут угнать ключ, даже если он генерился на другой машине с надёжным ГСЧ...

Чисто теоретически.

А про сроки введения этого нового стандарта что-нибудь известно?

Лет через 5-8, если повезёт. А на формальное принятие стандарта, как с RFC4880, могут уйти и все 15. Собственно, пока и единой спецификации нет, только набор идей и разрозненных черновиков, подготовленных разными людьми в разное время.

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

Можно, но это не будет в полном смысле стандартом. Многие грамотные клиенты сразу завопят, если увидят сообщение без подписи (сам видел).

Мой грамотный tkabber вполне себе молчит, получая от Вас неподписанные сообщения. :-)

Зато можно ключ "потерять"

Потерять-то можно, а вот поверят ли... Почему-то сразу все начинают вспоминать судебную систему и финансовую ответственность.

Да, есть ещё репутация. Поэтому некоторые умные люди в дополнение к хорошо защищённому основному ключу генерируют новый, используемый, например, только для jabber-переписки (этот ключ заверяют основным, дабы упростить распространение). При этом особо его не оберегают, хранят где попало и всячески подчёркивают, что он непригоден для критических задач. ;-) В случае шантажа или попытки дискредитации его можно даже в Сети опубликовать анонимно и сослаться на то, что, де, вы всех честно предупреждали — ключ никогда особо не оберегался.
— spinore (08/11/2008 23:56, исправлен 09/11/2008 00:06)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786
Мой грамотный tkabber вполне себе молчит, получая от Вас неподписанные сообщения. :-)

Может быть, это не от меня? :)
Да, что-то я перепутал. Имелось в виду видимо смена ключа на лету, а не подпись. С подписями всё куда прозаичнее:

The method defined herein has the following security issues:
  • Key exchange relies on the web of trust model used on the OpenPGP keys network.
  • There is no mechanism for checking a fingerprint or ownership of a key other than checking the user IDs on a key.
  • When the recipient is not mentioned in the encrypted body, replay attacks are possible on messages.
  • Replay of the signed <presence/> status is possible.
  • It relies on signing or encryption of XML character data; therefore, it does not support signing or encryption of <iq/> stanzas, and it allows signing of the presence <status/> element and encryption of the message <body/> element only. Thus the method is not acceptable when signing or encryption of full stanzas is required.
  • It does not enable both signing and encryption of a stanza, only signing of the presence status and encryption of the message body.

Таким образом, в силу стандарта, статусы должны только подписываться (не шифроваться), а сообщения – только шифроваться (не подписываться). Интересно, во всех ли клиентах так... Отсюда следует, что админы jabber-сервера якобы могут посылать любые сообщения кому угодно от кого угодно, и получатели не смогут определить их фальшивость.

В случае шантажа или попытки дискредитации его можно даже в Сети опубликовать анонимно

А вы не подумали о том, что "в случае шантажа или попытки дискредитации" у вас будут выпытывать именно главный ключ а не тот, что для jabber'а... и задача сводится к предыдущей.
— SATtva (09/11/2008 00:45)   профиль/связь   <#>
комментариев: 11524   документов: 1036   редакций: 4050
Таким образом, в силу стандарта, статусы должны только подписываться (не шифроваться), а сообщения – только шифроваться (не подписываться). Интересно, во всех ли клиентах так.

Определённо, нет: по-моему, большинство клиентов умеют и подписывать индивидуальные сообщения. Смотрите второй раздел XEP-0027:

Signing enables a sender to verify that they sent a certain block of text. In Jabber, signing uses the 'jabber:x:signed' namespace, and is primarily used with <presence/>, but may also be used with <message/>.

А вы не подумали о том, что "в случае шантажа или попытки дискредитации" у вас будут выпытывать именно главный ключ а не тот, что для jabber'а.

Может быть я чего-то не понял? Шантаж или попытка дискредитации будут полагаться на информацию, подписанную ключом пользователя. Ключ в данном случае только от джаббера. В случае атаки пользователь "сливает" ключ в интернеты. И что теперь будет делать шантажист?
На страницу: 1, 2, 3 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3