id: Гость   вход   регистрация
текущее время 15:04 20/04/2024
Автор темы: Leksey, тема открыта 22/10/2003 16:43 Печать
https://www.pgpru.com/Форум/ПрактическаяБезопасность/Marlin--РоссийскийПочтовыйКлиентСПоддержкойPGP
создать
просмотр
ссылки

Marlin — российский почтовый клиент с поддержкой PGP


Хочу обратить ваше внимание на новый русский почтовик под названием Marlin. Среди набора его достоинств можно и нужно упомянуть удобную поддержку PGP. Которая по словам автора реализован в соответствии с последним документом RFC по Open PGP.
Как пользователь данной программы могу сказать, что есть еще косяки при использовании марлиновской PGP и порой приходиться прибегать к помощи PGP Freeware (котороя и так установлена у меня для криптования файлов), но, вероятно, вскоре эти проблемы будут устранены.


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


Форум на сайте программы: http://marlin-mail.com/inv/


Добавлено позднее:
Похоже, я промахнулся с темой форума. Показалось, что здесь раздел об использовании PGP для защиты переписки..
Я не знаю, что такое PGPmail откровенно говоря :-(, хотя пользуюсь PGP с 98 года (еще в пору, когда мануалы для PGP переводил ув. гос. Отставнов). Это, вероятно, терминология какой-то последней версией PGPFreeware?


Мне кажется, что не стоит смешивать алгоритм с кучей каких-то утилит, которые имеют в своем названии PGP. Я очень сомневаюсь, что PGP-что-то там для защиты компьютера от вторщений будет лучше хотя бы того же самого русского Outpost... Циммерман уже отошел от PGPFreeware и отдал его на откуп каким-то барыгам, которых обязал продолжать бесплатно выпускать основную версию. Насколько я в курсе. Вот они туда и напихали каких-то непонятных продуктов с префиксом PGP... Поправьте меня, если я не прав.. Естественно, что PGPDisk штука полезная, но она и существует сто лет..


 
На страницу: 1, 2 След.
Комментарии
— SATtva (07/12/2003 23:18)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Доброго времени, = olegg =, рад, что заглянули. Планы Ваши радуют — всё же я придерживаюсь точки зрения, что система криптографической защиты информации должна распространяться в исходных текстах. Излагать причины такой позиции в надцатый раз, думаю, не стоит.

Да, Ваша программа, по-видимому, первая, которая основана на новом формате RFC 2440. Касаемо реализации есть несколько вопросов.

1. Проверялась ли корректность шифров и хэш-алгоритмов на тестовых строках и векторах?
2. Использует ли Марлин memory lock для блокировки ценных данных (расшифрованых закрытых ключей, паролей, расшифрованного открытого текста) в ПЗУ?
3. Какие используются источники энтропии и какой метод (ANSI X9.17?) используется для генерации сеансовых симметричных ключей?
4. Используется ли проверка чисел на простоту?

С уважением,
— Гость (08/12/2003 01:53)   <#>
SATtva:
1. Проверялась ли корректность шифров и хэш-алгоритмов на тестовых строках и векторах?,

Проверялась. И не только на тестовых, но и в реальных условиях, что чаще оказывается более эффективным.
SATtva:
2. Использует ли Марлин memory lock для блокировки ценных данных (расшифрованых закрытых ключей, паролей, расшифрованного открытого текста) в ПЗУ?

Как я понял, имеется в виду затирание данных после их использования. Нет, в версии 1.0 этого не делается. Не всё сразу. Я имею это в виду, собираюсь реализовать в дальнейшем. С учётом особенностей реализации обработки памяти (в-основном через смартпойнтеры) это будет сделать довольно просто.
SATtva:
3. Какие используются источники энтропии и какой метод (ANSI X9.17?) используется для генерации сеансовых симметричных ключей?

Для генерации псевдослучайностей используются события ввода – т.е. интервалы между нажатиями клавиш, перемещения мышки, скорость перемещения. Причём это делается в фоне сразу при старте программы и на протяжении всего времени работы программы, т.к. имеется необходимость воспользоваться генератором псевдослучайных чисел и в других местах (не только в OpenPGP).
SATtva:
4. Используется ли проверка чисел на простоту?

Я об этом и говорил выше. Вместо стандартного способа проверки (Ферма) используется более точный – Миллера-Рабина. Непонятно, почему он до сих пор не реализован в PGPfw. Хотя в marlin можно выбрать и Ферма, если кому нравится :-).
— SATtva (30/12/2003 17:08)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Занимаясь рассмотрением пакетов ключей, генерируемых Марлином, я обнаружил следующее: ключи Эльгамаля (и одиночные, и парные с DSA) с большой долей вероятности используют одинаковый показатель переменной генератора g = 2. Выбор показателя 2 полезен для варианта Эльгамаля "только для шифрования", поскольку ускоряет криптографические вычисления. Но ни при каких обстоятельствах (!) не должен применяться для ключей Эльгамаля, используемых, как в Марлине, для шифрования и подписания, поскольку такой g генерирует чётное значение группы и сам же является делителем. Даниэл Блейкенбахер показал, что такой ошибкой в реализации можно воспользоваться для подделки цифровых подписей данного ключа.
fileftp://ftp.inf.ethz.ch/pub/publ.....i/isc/old/ElGamal.ps

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

olegg:
Я ещё раз внимательно просмотрел ситуацию. Оказалось не совсем так. Выбирается g = x ^ e mod p, где

x = 2,3,...
e = (p – 1) / q
p – prime, q – prime
bits(q) = bits§ / 2 – y
y = bits(bits§)

при этом берётся первый g такой, чтобы bits(g) > 1.
То есть на самом деле может быть 2, но вполне может быть и больше.

Действительно, более глубокий анализ выявил причину проблемы: по умолчанию Марлин берёт показатель генератора из предрассчитанной базы математических элементов ключей Эльгамаля. Ниже — небольшая выборка ключей, прошедших проверку. Под материалом каждого дана его декодировка.



Выборка: 9 случайных ключей (демонстрируется 3).
Тип ключа: ID20, один ключ Эльгамаль "шифрование / подписание".
Модуль ключа: 2048 бит.
Метод поиска простых чисел: выбор из предрассчитанной базы.
Уровень проверки чисел на простоту: оптимальный.


Выборка: 9 случайных ключей (демонстрируется 3).
Тип ключа: ID20, один ключ Эльгамаль "шифрование / подписание".
Модуль ключа: 1024 бит.
Метод поиска простых чисел: строгий, Рабина-Миллера.
Уровень проверки чисел на простоту: оптимальный.


Дальнейшая проверка показала, что ключи с длиной модуля 4096 битов с математическими показателями, выбираемыми из базы, также дают g = 2. Однако создание ключей по методу Ферма или Рабина-Миллера приводит к генерации показателя g, имеющего крупный простой делитель, что является необходимым для ключей подписания Эльгамаля.

Вывод: не используйте ключи Эльгамаля, сгенерированные в Марлине, заменяя их ключами RSA, либо генерируйте ключи Эльгамаля с нуля, путём поиска простых чисел по алгоритму Ферма или Рабина-Миллера.
— SATtva (30/12/2003 17:36)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Из переписки с автором программы. Дополнительные замечания, любезно принятые автором. Будем надеяться на исправление недостатков в будущих версиях.

SATtva:
Вы сами позиционируете свой продукт как мэйл-клиент с повышенной
надёжностью и особыми механизмами защиты, посему прошу максимально
серьёзно и, возможно, с некоторой доли паранои оценить имеющие место
бреши в безопасности. Я буду говорить только об OpenPGP в текущем
релизе 1.0.100.

Во-первых, самое важное. К сожалению, программа соответствует
спецификациям OpenPGP далеко не в полной мере. Более всего меня
обеспокоило то, что она не распознаёт KRC (сертификаты аннулирования
ключей), сроки действия ключей и записи Preferred Algorithm и Allowed
Algorithms, позволяя отправителю зашифровывать истекшими и
аннулированными ключами, а также симметричными алгоритмами, которым
не доверяет получатель. Это представляет серьёзную угрозу
безопасности и является несоблюдением политики безопасности
получателя.

Скажем, открытый ключ получателя содержит несколько шифровальных
подключей разного периода действия. Ряд этих подключей уже истёк
(expired), один был аннулирован владельцем ключа из-за обоснованных
подозрений компрометации. Отправитель, имея копию этого ключа, решает
отправить зашифрованное послание. Не имея возможности определить
валидный подключ, от зашифровывает сообщение случайно выбранным
аннулированным и отправляет по каналу связи. Если подключ
действительно был скомпрометирован, злоумышленник сможет
беспрепятственно прочитать сообщение. Таким же образом, даже если
пользователь по тем или иным причинам аннулирует свой ключ в PGP
(Марлин, опять же, не имеет соответствующих механизмов для издания
KRC и генерации ключей с заданным сроком действия) и отправит
аннулированную копию пользователю Марлина, тот, даже импортировав эту
обновлённую копию на связку ключей Марлина, не заметит никакой
разницы и сможет по-прежнему шифровать таким ключом письма. Я не могу
охарактеризовать это иначе, как критическую уязвимость.

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

Есть пользователи PGP, которые по известным им причинам не доверяют
некоторым реализованным в OpenPGP блочным шифрам. Например, известно,
что из множества вариаций алгоритма CAST надёжным является лишь
CAST5. Кого-то это не убеждает, и он исключает этот алгоритм из
Allowed Algorithms в материале ключа, дабы другие пользователи не
могли использовать CAST5 для отправки ему сообщений. Кто-то не
доверяет 3DES, поскольку в разработке DES участвовало АНБ, а сам шифр
слишком долго был мишенью для спецслужб, крупных компаний и научного
сообщества всего мира. Марлин же позволяет отправителю самому
выбирать, каким алгоритмом воспользоваться для зашифрования, никак не
учитывая предпочтений получателя. Это не прямая угроза безопасности,
но если вдруг один из алгоритмов, реализованных в OpenPGP, будет
взломан, я и другие люди, дорожащие своей информацией (которая,
зачастую, стоит много больше затраченных на её получение средств), не
хотели бы принимать зашифрованных ненадёжным алгоритмом писем.

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

В-третьих, особенности реализации схемы Эльгамаля в Марлине не
допускают использование сгенерированных в нём ключей Эльгамаля для
коммуникаций с пользователями PGP. Марлин использует асимметричные
ключи тип 1 (RSA), тип 17 (DSA) и тип 20 (Эльгамаль,
шифрование+подписание), в то время как PGP допускает тип 1, 17 и 16
(только шифрование по Эльгамалю). Соответственно, импортированный из
Марлина в PGP ключ типа 20 просто не воспринимается программой, тип
17+20 (DSA+Эльгамаль) позволяет использовать базовый ключ DSA для
сличения подписей, но подключ шифрования Эльгамаля также бесполезен
— PGP не понимает такой формат. Таким образом, пользователи Марлина
могут использовать OpenPGP только для связи между собой либо для
связи с пользователями GnuPG. Для связи с пользователями PGP могут
применяться только ключи RSA.

Кроме того, стоит отметить, что использование ключей Эльгамаля для
шифрования и подписания является нерекомендуемой криптографической
практикой вследствие сложностей реализации. Марлин допускает
генерацию ключей только типа 20. Не столь давно была обнаружена
критическая уязвимость в реализации типа 20 в GnuPG — неверный выбор
показателей генератора и секретной экспоненты привёл к полной
компрометации всех этих ключей: имея ЭЦП такого ключа можно
тривиально вычислить секретный показатель закрытого ключа. Не
подвержен ли Марлин такой уязвимости? Не планируете ли Вы отказаться
от ключей Эльгамаля для подписания?

Выше я привёл лишь самые вопиющие недостатки. Реализация OpenPGP в
Марлине не может быть названа полной, самодостаточной, а главное
надёжной. Поверьте, я не собираюсь просто подвергать Вашу программу
обструкции, я уверен, что в некоторой области это весьма хороший
продукт. Я не оценивал его с позиции защиты от вредоносного кода, что
Вы выдвигаете как одно из основных достоинств, а поэтому у меня нет
оснований сомневаться в данном утверждении. Но реализация OpenPGP в
плане практического применения весьма слаба.

Поэтому у меня есть к Вам скромное предложение-вопрос. Не лучше ли
интегрировать Марлин с PGP на манер TheBAT! Или Джаббер-клиента JAJC?
Разумеется, Вы можете оставить и собственную реализацию OpenPGP, а
интеграцию с PGP просто добавить, дабы пользователь сам мог выбирать,
чему он более доверяет. Кроме того, как Вы смотрите на реализацию в
Марлине стандарта PGP/MIME (RFC 3156)? В настоящее время единственная
поддерживающая его программа — это Eudora, но я до сих пор не
встречал ни одного человека, использующего её в связке с PGP. Сам же
стандарт весьма удобен для передачи зашифрованной электронной почты
со всеми вложениями и сохранённым форматированием текста.

Мой выбор — это PGP. Причиной тому ещё и открытые исходные тексты,
что просто необходимо для криптосистем. Если Марлин также откроет
свой исходный код, привнесёт тесную интеграцию с PGP и поддержку
PGP/MIME, я бы уговорил всех своих знакомых и коллег перейти на эту
программу.

— Maxi (06/03/2004 14:23)   профиль/связь   <#>
комментариев: 6   документов: 1   редакций: 0
По поводу The-bat раскажу одну страшилку.

Нужно мне как-то было файл найти по критериям, я в тотал командере задал поиск всех файлов с конкретным текстом внутри, обнаружив этот текст в файле по пути ящик/Inbox/messages.tbb – я сильно удивился. Еще сильнее я удивился когда открыл файл messages.tbb и убедился, что письмо которое я стер месяц назад ОСТАЛОСЬ В ФАЙЛЕ ЯЩИКА! Я сначала думал, что у меня глюки, залез в thebat в папки Inbox, trash, включил поиск средствами thebat по всему задав тот-же текст, потом имя отправителя – стертого письма естественно в user-интерфейсе нет! Тут я уже заволновался – сжал папки, на что мне the bat расказал о якобы высвобожденном пространстве, вышел открыл файл ящика – СТЕРТОЕ ПИСЬМО НИКУДА НЕ ДЕЛОСЬ. Версия это была вроде 2.60 – c тех пор ну его к черту, The bat этот, какая разница как в нем работает PGP если любой получивший доступ к компу может читать письма которым куча лет!
— SATtva (06/03/2004 23:01)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Maxi, как известно, криптография защищает информацию, только когда она зашифрована. PGP интегрирован в TheBAT только с целью шифрования / расшифрования исходящей / входящей корреспонденции, сами базы писем никак особым образом не защищаются (разумеется, если письмо было сохранено в зашифрованом виде, оно таковым и останется). Вообще наиболее оптимальным я вижу установку мэйл-клиентов прямо в контейнер PGPdisk и работу с ними оттуда. Либо, аналогично, можно в контейнер просто базы перенести.
— Maxi (07/03/2004 04:00)   профиль/связь   <#>
комментариев: 6   документов: 1   редакций: 0
Тут возникает другая проблема. Как известно винды дырявы как решето, поэтому иметь подключенный в систему PGP контенер одновременно с установленным internet-соединением с точки зрения моей паранои довольно опастно. Как вариант – заведение отдельного PGPконтенера с своим паролем (ключем) только для почты. Вобщем все это сильно усложняет дело.


Еще thebat плох тем, что много троянов умеют воровать его пароли ;)
— DDRTL (19/07/2009 07:22)   профиль/связь   <#>
комментариев: 212   документов: 27   редакций: 20
http://marlin-mail.com/eng/ почил =)
— SATtva (19/07/2009 17:03)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Прискорбно.
На страницу: 1, 2 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3