Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.
  • Форумы
  •  » Thunderbird
  •  » Шифрация при помощи подключа средствами Thunderbird+Enigmail+GNU PG

№106-03-2006 10:05:58

Rosenfeld
Linux registered user # 526899
 
Группа: Members
Откуда: ‎
Зарегистрирован: 21-10-2005
Сообщений: 4642
Веб-сайт

Шифрация при помощи подключа средствами Thunderbird+Enigmail+GNU PG

Имеются:
Mozilla Thunderbird 1.5 + Enigmail 0.94 (+ Enigmail 0.94 ru-RU) + GNU PG 1.4.2.1 (Windows XP Pro SP2).

В процессе создания своего ключа была выбрана опция "Создавать ключ DSA и EL Gamal" размером 4096.

В свойствах созданного ключа есть:

- первичный идентификатор пользователя, связанный с моим E-mail, типа xxx@xxx.com;
- идентификатор пользователя, например 0xAAAA1111
- идентификатор подключа (ELG 4096), например 0xBBBB2222.

Параметры «Вычисленное доверие» и «Мое доверие» указаны как «абсолютное».

В  http://www.pgpru.com/manuals/guide/03.shtml указано:

«Каждая асимметричная ключевая пара по определению состоит из двух ключей: открытого и закрытого. В PGP версии 6.0 и выше появилась возможность создавать, удалять и аннулировать дополнительные подключи шифрования без необходимости жертвовать своей базовой ключевой парой и собранными на её сертификате подписями. В целом это похоже на превращение вашего базового ключа в своего рода связку с хранящимися на ней подключами. Сущностное отличие лишь в том, что эти подключи используются только для зашифрования и расшифрования; для задач подписания информации служит только базовый закрытый ключ.

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

Вопрос: как осуществлять шифрацию сообщений при помощи существующего подключа (а также сгенерировать новый подключ) в связке Thunderbird + Enigmail + GPG.

К стыду своему, я так и не смог найти возможность выбора подключа в интерфейсе Enigmail... Или шифрация УЖЕ происходит при помощи подключа?


Project Rosenfox:  Pure, fast and secure inner settings for Mozilla Firefox. Global and complete manual on GitHub.

Отсутствует

 

№206-03-2006 13:03:12

Lustermaf
Участник
 
Группа: Members
Зарегистрирован: 26-03-2005
Сообщений: 814

Re: Шифрация при помощи подключа средствами Thunderbird+Enigmail+GNU PG

Rosenfeld пишет

В процессе создания своего ключа была выбрана опция "Создавать ключ DSA и EL Gamal" размером 4096.

Ключ DSA может использоваться только для подписания, а Elgamal — только для шифрования. По-другому никак нельзя.
(Особые ключи Elgamal можно было использовать для подписания в GnuPG до версии 1.2.4, но впоследствии из-за найденной уязвимости такую возможность исключили.)

Rosenfeld пишет

- идентификатор пользователя, например 0xAAAA1111

Это не идентификатор пользователя, это идентификатор главного ключа.

Rosenfeld пишет

Параметры «Вычисленное доверие» и «Мое доверие» указаны как «абсолютное».

Правильно, Вы же сами его создавали, поэтому и доверие абсолютное.

Rosenfeld пишет

Вопрос: как осуществлять шифрацию сообщений при помощи существующего подключа (а также сгенерировать новый подключ) в связке Thunderbird + Enigmail + GPG.

Сообщения и так шифруются при помощи существующего подключа (Elgamal, 4096 бит).
Новый подключ можно создать при помощи GnuPG используя интерфейс командной строки. По умолчанию используется самый последний по дате создания подключ.

Создание подключа (keyid заменяете на идентификатор главного ключа или любого из уже существующих на нём подключей):

Выделить код

Код:

Пуск -> Выполнить -> «cmd»

gpg --edit-key keyid
addkey
(отвечаете на вопросы)
save

Но, по-моему, Вам это сейчас не нужно.

Rosenfeld пишет

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

Такой возможности там нет.
Подключ (если их несколько, и надо выбрать не последний по дате создания) можно задавать при помощи опции командной строки -r keyid!:

Выделить код

Код:

gpg -v -аe -r keyid! [file]

Обратите внимание на знак ! после идентификатора подключа: его обязательно надо использовать для выбора подключа не по умолчанию. Этот процесс может выглядеть, например, так:

Выделить код

Код:

C:\>gpg -v -ae -r 0xBBBBBBBB! file.txt
gpg: using subkey 0xBBBBBBBB instead of primary key 0xAAAAAAAA
gpg: using PGP trust model
gpg: This key probably belongs to the named user
gpg: reading from `file.txt'
gpg: writing to `file.txt.asc'
gpg: RSA/AES256 encrypted for: "0xBBBBBBBB Vasya Pupkin <pupkin@example.com>"

Если надо скрыть ID ключа получателя сообщения, то используйте -R вместо -r и отключите опцию Encrypt to self, а если надо шифровать и для себя (чтобы Вы могли расшифровать своим ключом), то используйте hidden-encrypt-to [ID Вашего ключа] в gpg.conf. А ещё лучше используйте параметр throw-keyids в gpg.conf. Но это я уже в дебри полез...

Rosenfeld пишет

Или шифрация УЖЕ происходит при помощи подключа?

В Вашем случае УЖЕ происходит, поскольку подключ для шифрования всего один (Elgamal, 4096 бит), а главный ключ (DSA) для шифрования применяться не может.

Отредактировано Lustermaf (06-03-2006 13:22:36)

Отсутствует

 

№306-03-2006 15:59:18

Rosenfeld
Linux registered user # 526899
 
Группа: Members
Откуда: ‎
Зарегистрирован: 21-10-2005
Сообщений: 4642
Веб-сайт

Re: Шифрация при помощи подключа средствами Thunderbird+Enigmail+GNU PG

Lustermaf, огромное Вам спасибо за столь быстрый и полный ответ. Я, собственно говоря, пытался задать его на знакомом Вам сайте :) (вернее - на его форуме), потратив сегодня на эту нехитрую процедуру 4(!) часа... пока не обратил внимание, что в разделе поддержки форума народ жалуется на схожую проблему - на невозможность постить сообщения.  От безысходности :) послал схожее вышеприведенному сообщение SATtve по e-mail... теперь вот жду/уже не жду ответа...

По сути ответа. Я понял свой собственный "затык" (что уже(!) хорошо, поскольку я знаком только с основами криптографии и вообще по образованию гуманитарий). Меня ввел в заблуждение один термин при генерации ключа средствами Enigmail -  "ключ DSA и EL Gamal". Т.е. я подумал, что это ОДИН ключ, создаваемый при помощи, допустим, каких-то двух разработок, алгоритмов и т.п. ... Это и было моим коренным заблуждением! :)

Я: - идентификатор пользователя, например 0xAAAA1111

Это не идентификатор пользователя, это идентификатор главного ключа.

Вот, к сожалению, так указано в ПЕРЕВОДЕ Enigmail на русский язык (перевод последний, свежескачанный с соответствующего сайта Enigmail). Меню "OpenPGP" в Thunderbird ---> "Управление ключами" ---> "Свойства ключа". Так и написано: "идентификатор пользователя".  Может быть связаться с автором локализации Enigmail, чтобы подсказать ему поправить неточность, как Вы считаете?

Еще раз благодарю Вас за оказанную помощь! Могу ли я в этой же теме задать еще один схожий вопрос, поскольку пока до http://www.pgpru.com/forum трудно достучаться?  ... А именно - по поводу сеансовых ключей.


Project Rosenfox:  Pure, fast and secure inner settings for Mozilla Firefox. Global and complete manual on GitHub.

Отсутствует

 

№406-03-2006 21:48:31

Unghost
Призрак-админ
 
Группа: Administrators
Откуда: Moscow, Russia
Зарегистрирован: 08-10-2004
Сообщений: 11771

Re: Шифрация при помощи подключа средствами Thunderbird+Enigmail+GNU PG

Rosenfeld
Я - автор локализации Enigmail. Говорите что и где неправильно и на что исправить.


Do not meddle in the affairs of Wizards, for they are subtle and quick to anger.

Отсутствует

 

№506-03-2006 21:58:24

Unghost
Призрак-админ
 
Группа: Administrators
Откуда: Moscow, Russia
Зарегистрирован: 08-10-2004
Сообщений: 11771

Re: Шифрация при помощи подключа средствами Thunderbird+Enigmail+GNU PG

Нашел и исправил ошибку. Обновленная русификация - пока здесь
Завтра-послезавтра появится на официальном сайте Enigmail.
Найдете еще что - сообщайте.


Do not meddle in the affairs of Wizards, for they are subtle and quick to anger.

Отсутствует

 

№606-03-2006 22:36:04

Rosenfeld
Linux registered user # 526899
 
Группа: Members
Откуда: ‎
Зарегистрирован: 21-10-2005
Сообщений: 4642
Веб-сайт

Re: Шифрация при помощи подключа средствами Thunderbird+Enigmail+GNU PG

Unghost, спасибо!
Во всем этом (см. тему выше), т.е. быстродействии, отзывчивости, взаимопонимании - и есть сила и эффективность СОобщества (в т.ч. и nix).


Project Rosenfox:  Pure, fast and secure inner settings for Mozilla Firefox. Global and complete manual on GitHub.

Отсутствует

 

№707-03-2006 22:30:01

Lustermaf
Участник
 
Группа: Members
Зарегистрирован: 26-03-2005
Сообщений: 814

Re: Шифрация при помощи подключа средствами Thunderbird+Enigmail+GNU PG

Rosenfeld пишет

Меня ввел в заблуждение один термин при генерации ключа средствами Enigmail -  "ключ DSA и EL Gamal". Т.е. я подумал, что это ОДИН ключ, создаваемый при помощи, допустим, каких-то двух разработок, алгоритмов и т.п. ... Это и было моим коренным заблуждением! :)

Строго говоря, там целых 4 ключа: 2 секретных (DSA, Elgamal) и 2 публичных (DSA, Elgamal). Обычно говорят, что ключ (с всеми его подключами) состоит из 2-х частей: секретной и публичной, причём секретная часть также содержит в себе публичную. Надо заметить, что ключ подписания (DSA) может быть как главным, там и подключом, в то время как ключ шифрования (Elgamal) — только подключом.

Rosenfeld пишет

Я: - идентификатор пользователя, например 0xAAAA1111

Это не идентификатор пользователя, это идентификатор главного ключа.

Вот, к сожалению, так указано в ПЕРЕВОДЕ Enigmail на русский язык (перевод последний, свежескачанный с соответствующего сайта Enigmail). Меню "OpenPGP" в Thunderbird ---> "Управление ключами" ---> "Свойства ключа". Так и написано: "идентификатор пользователя".  Может быть связаться с автором локализации Enigmail, чтобы подсказать ему поправить неточность, как Вы считаете?

Вот как это написано в оригинальной английской версии — Key ID:
enigmail_key_window.png
То, что это идентификатор именно главного ключа, писать необязательно.

Rosenfeld пишет

Еще раз благодарю Вас за оказанную помощь! Могу ли я в этой же теме задать еще один схожий вопрос, поскольку пока до http://www.pgpru.com/forum трудно достучаться?  ... А именно - по поводу сеансовых ключей.

Задавайте, может быть, смогу ответить.

Отредактировано Lustermaf (07-03-2006 22:30:32)

Отсутствует

 

№808-03-2006 00:24:40

Rosenfeld
Linux registered user # 526899
 
Группа: Members
Откуда: ‎
Зарегистрирован: 21-10-2005
Сообщений: 4642
Веб-сайт

Re: Шифрация при помощи подключа средствами Thunderbird+Enigmail+GNU PG

Обычно говорят, что ключ (с всеми его подключами) состоит из 2-х частей: секретной и публичной, причём секретная часть также содержит в себе публичную.

Первую часть я осознаю хорошо и усвоил давно, :) зато второе утверждение мне ново. Спасибо за дальнейшие уточнения.

Задавайте, может быть, смогу ответить.

ОК, завтра постараюсь сформулировать более-менее технически грамотно. :)


Project Rosenfox:  Pure, fast and secure inner settings for Mozilla Firefox. Global and complete manual on GitHub.

Отсутствует

 

№908-03-2006 17:02:21

Rosenfeld
Linux registered user # 526899
 
Группа: Members
Откуда: ‎
Зарегистрирован: 21-10-2005
Сообщений: 4642
Веб-сайт

Re: Шифрация при помощи подключа средствами Thunderbird+Enigmail+GNU PG

Консоль:

Home: D:/Program Files/GnuPG
Supported algorithms:
Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512
Compression: Uncompressed, ZIP, ZLIB, BZIP2

SATtva, руководитель проекта www.pgpru.com:

RSA -- общий ключ для шифрования и подписи.
RSA-E -- ключ RSA только для шифрования.
RSA-S -- ключ RSA только для подписи.

Первый соответствует формату ключей v3, где один асимметричный ключ применялся для обеих операций. В формате v4 мы находим два или более асимметричных ключа, где один -- базовый -- используется только для подписи (RSA-S), а остальные -- подключи (RSA-E) -- для шифрования.

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

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

Д. Надь, эксперт:

Разделение на ключ подписи и ключ шифрования Циммерман реализовал во время правовых и политических бурь вокруг PGP по той причине, что в некоторых странах (к ним, если мне не изменяет память, относится и РФ) при некоторых обстоятельствах вы обязаны раскрыть правоохранительным органам ваш ключ для шифрования (или это просто целесообразно сделать в целях доказательства чего-то связанного с прошлым секретом).
Разделив ключи, вы передаете ваш ключ шифрования, отзывайте его и генерируете новый, но при этом не теряете подписи на вашем основном ключе, так что не надо зарабатывать доверие к ключу, как с самого начала. Таким образом, правоохранительные органы или суд получают доступ к вашим прошлым секретам, но не могут в будущем читать вашу конфиденциальную переписку, и вам не надо заново со всеми встречаться.

SATtva, руководитель проекта www.pgpru.com:

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

(!) Мы предоставляем органам сеансовые шифровальные ключи к интересующим их письмам/файлам, при этом не раскрывая прочую информацию.

ОПИСАНИЕ РАБОТЫ PGP

... Затем, PGP создаёт сеансовый ключ, т.е. одноразовый симметричный ключ, применяемый только для одной операции. Этот сеансовый ключ представляет собой псевдослучайное число, сгенерированное от случайных движений мышки и нажатий клавиш. Сеансовый ключ работает на основе очень надёжного, быстрого симметричного алгоритма, которым PGP зашифровывает сжатое сообщение; в результате получается шифртекст. Как только данные зашифрованы, сеансовый ключ также шифруется, но уже открытым ключом получателя. Этот зашифрованный открытым ключом сеансовый ключ прикрепляется к шифртексту и передаётся вместе с ним получателю.

НО:
Сеансовый ключ используется программой всего около секунды, причём блокируется в памяти от выгрузки в своп и от доступа других приложений, а после использования немедленно стирается ("забивается" произвольными битами).

ВОПРОС:
Если сеансовый ключ, как указано выше, используется буквально секунду, каким образом мы будем извлекать его (с целью некомпроментации всей переписки, зашифрованной определенным подключем) «из ничего», для того, чтобы передать правоохранительным органам для прочтения определенного (одного) сообщения?

P.S. Прошу у организаторов www.mozilla.ru прощения за излишнее цитирование другого форума, необходимое, однако, для раскрытия сути весьма специфического вопроса!


Project Rosenfox:  Pure, fast and secure inner settings for Mozilla Firefox. Global and complete manual on GitHub.

Отсутствует

 

№1008-03-2006 18:26:10

Lustermaf
Участник
 
Группа: Members
Зарегистрирован: 26-03-2005
Сообщений: 814

Re: Шифрация при помощи подключа средствами Thunderbird+Enigmail+GNU PG

Rosenfeld пишет

Консоль:

Home: D:/Program Files/GnuPG
Supported algorithms:
Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512
Compression: Uncompressed, ZIP, ZLIB, BZIP2

Эта информация сейчас не нужна, она сама по себе стандартна*. Достаточно указать версию GnuPG, в то время как адрес директории Home: писать совершенно не нужно.

*За исключением случаев, когда используется другая (слишком старая, например) версия GnuPG или установлена поддержка симметричного алгоритма шифрования IDEA:

C:\>gpg --version
gpg (GnuPG) 1.4.2.1
Copyright (C) 2005 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

Home: [А может ещё ключи от квартиры дать, где деньги лежат?]
Supported algorithms:
Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512
Compression: Uncompressed, ZIP, ZLIB, BZIP2

Rosenfeld (с изменениями) пишет

ОПИСАНИЕ РАБОТЫ PGP

... Затем, PGP создаёт сеансовый ключ, т.е. одноразовый симметричный ключ, применяемый только для одной операции. Этот сеансовый ключ представляет собой псевдослучайное число, сгенерированное от случайных движений мышки и нажатий клавиш. Сеансовый ключ работает на основе очень надёжного, быстрого симметричного алгоритма, которым PGP зашифровывает сжатое сообщение; в результате получается шифртекст. Как только данные зашифрованы, сеансовый ключ также шифруется, но уже открытым ключом получателя. Этот зашифрованный открытым ключом сеансовый ключ прикрепляется к шифртексту и передаётся вместе с ним получателю.

НО:
Сеансовый ключ используется программой всего около секунды, причём блокируется в памяти от выгрузки в своп и от доступа других приложений, а после использования немедленно стирается ("забивается" произвольными битами).

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

Rosenfeld пишет

ВОПРОС:
Если сеансовый ключ, как указано выше, используется буквально секунду, каким образом мы будем извлекать его (с целью некомпроментации всей переписки, зашифрованной определенным подключем) «из ничего», для того, чтобы передать правоохранительным органам для прочтения определенного (одного) сообщения?

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

GnuPG man page пишет

--show-session-key

Display the session key used for one message. See --override-session-key for the counterpart of this option.

We  think  that  Key  Escrow is a Bad Thing; however the user should have the freedom to decide whether to go to prison  or to reveal the content of one specific message without compromising all messages ever encrypted for one secret key.  DON'T USE IT UNLESS YOU ARE REALLY FORCED TO DO SO.

Пример.

Выделить код

Код:

gpg --output [путь к расшифровываемому файлу] --show-session-key [путь к зашифрованному файлу]

Дальше смотрите строку

Выделить код

Код:

gpg: session key: `***'

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

GnuPG man page пишет

--override-session-key string

Don't  use  the  public  key but the session key string.  The format of this string is the  same  as  the  one  printed  by --show-session-key.   This  option  is  normally not used but comes handy in case someone forces you to reveal the  content of  an  encrypted  message; using this option you can do this without handing out the secret key.

Пример.

Выделить код

Код:

gpg --output [путь к расшифровываемому файлу] --override-session-key [сеансовый ключ] [путь к зашифрованному файлу]

Однако тут есть некоторые тонкости, про которые я мало что знаю:
— извлечение сеансового ключа из сообщений в формате PGP/MIME (RFC 3156);
— подверженность асимметричных алгоритмов шифрования (Elgamal, RSA) к атаке known plain-text.
Про них лучше спросить в другом месте (на том же http://www.pgpru.com/forum/, например).

Отсутствует

 

№1108-03-2006 20:42:59

Rosenfeld
Linux registered user # 526899
 
Группа: Members
Откуда: ‎
Зарегистрирован: 21-10-2005
Сообщений: 4642
Веб-сайт

Re: Шифрация при помощи подключа средствами Thunderbird+Enigmail+GNU PG

Большое спасибо!
Вы полностью удовлетворили мое любопытство в этой части и еще раз доказали, что GnuPG man был прочитан мною не до конца. :)

— подверженность асимметричных алгоритмов шифрования (Elgamal, RSA) к атаке known plain-text

Об этом писал SATtva, я внимательно прочитал.

— извлечение сеансового ключа из сообщений в формате PGP/MIME (RFC 3156);

Не собираюсь применять эту опцию. :) ...

Спасибо!


Project Rosenfox:  Pure, fast and secure inner settings for Mozilla Firefox. Global and complete manual on GitHub.

Отсутствует

 
  • Форумы
  •  » Thunderbird
  •  » Шифрация при помощи подключа средствами Thunderbird+Enigmail+GNU PG

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]