Re: чем плоха подпись с помощью хэш-функции?

2007-06-26 Пенетрантность Artem Chuprina

  взять книгу Шнайера Прикладная криптография и прочитать там всё, что
  про MAC и HMAC написано. Дабы представлять себе ограничения
  применимости решений на их базе.

+1 Отличнейшая книга, присоединяюсь к совету. Правдо в своей второй(?)
книге он указал на массу её недостатков, но это отнюдь не умаляет её
достоинств.


Он не недостатки ее указал, а границы применимости.  Не надо путать :-)


Re: чем плоха подпись с помощью хэш-функции?

2007-06-24 Пенетрантность Victor Wagner
On 2007.06.22 at 20:02:58 +0400, Ed wrote:

 
 меня вполне устраивает то, что никто кроме этих двух не мог 
 сгенерировать это сообщение
 
 подводя итог - HMAC хороший выбор?
 или смотреть на что-то другое? на что тогда?

 Вполне приемлимый. TLS его используует, OpenVPN использует,
 и ещё много кто использует. Но рекомендуется всё же сначала
 взять книгу Шнайера Прикладная криптография и прочитать там всё, что
 про MAC и HMAC написано. Дабы представлять себе ограничения
 применимости решений на их базе.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: чем плоха подпись с помощью хэш-функции?

2007-06-22 Пенетрантность Max Dmitrichenko
В сообщении от 22 Июнь 2007 10:49 Ed написал(a):
 схема:
 отправитель - небезопасный канал (интернет) - получатель
 
 я контролирую и отправителя и получателя.
 
 данные несекретные, шифровать их особого смысла нет. но получатель 
 должен убедиться, что данные отправил действительно отправитель.
 
 чем плохо поступить так - заранее сгенерировать ключ (просто 
 последовательность байт), далее приписываем этот ключ к сообщению и 
 генерируем для пары сообщение+ключ хэш (тот же sha1). передаем сообщение 
 + хэш - зная ключ мы легко можем проверить подлинность сообщения.

Ну и правильно. Получается, что ключ у тебя в открытом виде передается,
враг берет вставляет свое сообщение, приделывает этот же ключ и генерирует
по такому же алгоритму хэш. А теперь пойми где подделка.
 
 плюсы - легко в реализации, низкая вычислительная сложность, минимальное 
 увеличение размера передаваемой информации.
 
 из минусов пока вижу только необходимость безопасно доставить ключ на 
 обе стороны - но в данном случае это проблемы не представляет.
Главный минус - это то, что ключ знают и тот, кто передает, и тот, кто
получает, и тот, кто подделывает. Количество информации такого ключа по
Шеннону равно нулю, а значит он просто отнимает байты от пропускной
способности - это его второй минус.
 
 а с точки зрения криптостойкости - хуже этот вариант обычной подписи 
 (afaik формируем хэш и шифруем его)?
Фишка в ЭЦП - ключи ассиметричные.

--
  Макс


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: чем плоха подпись с помощью хэш-функции?

2007-06-22 Пенетрантность Mikhail Gusarov

Twas brillig at 11:11:44 22.06.2007 UTC+04 when Max Dmitrichenko did gyre and 
gimble:

 MD Ну и правильно. Получается, что ключ у тебя в открытом виде передается,
 MD враг берет вставляет свое сообщение, приделывает этот же ключ и генерирует
 MD по такому же алгоритму хэш. А теперь пойми где подделка.

Как я понял, передаётся оригинальное сообщение плюс подпись оригинал+ключ.

-- 
JID: [EMAIL PROTECTED]


Re: чем плоха подпись с помощью хэш-функции?

2007-06-22 Пенетрантность Max Dmitrichenko
В сообщении от 22 Июнь 2007 11:15 Mikhail Gusarov написал(a):
 
 Twas brillig at 11:11:44 22.06.2007 UTC+04 when Max Dmitrichenko did gyre and 
 gimble:
 
  MD Ну и правильно. Получается, что ключ у тебя в открытом виде передается,
  MD враг берет вставляет свое сообщение, приделывает этот же ключ и 
 генерирует
  MD по такому же алгоритму хэш. А теперь пойми где подделка.
 
 Как я понял, передаётся оригинальное сообщение плюс подпись оригинал+ключ.

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

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

И ещё: если у тебя паранойя - это вовсе не значит, что за тобой не следят :)

--
  Макс


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: чем плоха подпись с помощью хэш-функции?

2007-06-22 Пенетрантность Max Dmitrichenko
В сообщении от 22 Июнь 2007 11:29 Ed написал(a):
 Max Dmitrichenko wrote:
  Ну и правильно. Получается, что ключ у тебя в открытом виде передается,
  враг берет вставляет свое сообщение, приделывает этот же ключ и генерирует
  по такому же алгоритму хэш. А теперь пойми где подделка. 

 
 я конечно идиот, но не настолько.
 передается сообщение + хэш(сообщение+ключ)

Сорри, но вот эта фраза сбила меня с толку:
 далее приписываем этот ключ к сообщению

Но все равно схема не секьюрна - читай соседний тред.

--
  Макс


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: чем плоха подпись с помощью хэш-функции?

2007-06-22 Пенетрантность Konstantin Matyukhin

On 6/22/07, Mikhail Gusarov [EMAIL PROTECTED] wrote:


Twas brillig at 11:11:44 22.06.2007 UTC+04 when Max Dmitrichenko did gyre and 
gimble:

 MD Ну и правильно. Получается, что ключ у тебя в открытом виде передается,
 MD враг берет вставляет свое сообщение, приделывает этот же ключ и генерирует
 MD по такому же алгоритму хэш. А теперь пойми где подделка.

Как я понял, передаётся оригинальное сообщение плюс подпись оригинал+ключ.


По-моему, метод нестоек в отношении коллизий используемой хэш-функции.

--
С уважением,
Константин Матюхин


Re: чем плоха подпись с помощью хэш-функции?

2007-06-22 Пенетрантность Ed

Max Dmitrichenko wrote:

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


мне и не нужна универсальная схема.
у меня есть сервер (мой) и куча железок (опять же моих), которые 
обмениваются информацией.

залить ключ при прошивке железки проблемы не представляет.

в принципе на железке будет обычный linux, можно воспользоваться и 
openssl и стандартными алгоритмами - но если можно сделать проще - 
почему бы и нет?



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: чем плоха подпись с помощью хэш-функции?

2007-06-22 Пенетрантность Иван Лох
On Fri, Jun 22, 2007 at 10:49:58AM +0400, Ed wrote:

 из минусов пока вижу только 
 необходимость безопасно доставить ключ 
 на обе стороны - но в данном случае это 
 проблемы не представляет.
 
 а с точки зрения криптостойкости - хуже 
 этот вариант обычной подписи (afaik 
 формируем хэш и шифруем его)?

Для одноразового ключа и большого количества
сообщений IMHO хуже. С каждым перехваченным
сообщением ключ становится все более уязвим.
Если сообщения открыты -- особенно.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: чем плоха подпись с помощью хэш-функции?

2007-06-22 Пенетрантность Max Dmitrichenko
В сообщении от 22 Июнь 2007 14:28 Иван Лох написал(a):
 On Fri, Jun 22, 2007 at 10:49:58AM +0400, Ed wrote:
 
  из минусов пока вижу только 
  необходимость безопасно доставить ключ 
  на обе стороны - но в данном случае это 
  проблемы не представляет.
  
  а с точки зрения криптостойкости - хуже 
  этот вариант обычной подписи (afaik 
  формируем хэш и шифруем его)?
 
 Для одноразового ключа и большого количества
 сообщений IMHO хуже. С каждым перехваченным
 сообщением ключ становится все более уязвим.
 Если сообщения открыты -- особенно.

Ну тут можно генерировать новый ключ на основе старого.
Скажем, через каждые n сообщений. Алгоритм, естественно,
должен быть известен обеим сторонам.

--
  Макс


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: чем плоха подпись с помощью хэш-функции?

2007-06-22 Пенетрантность Иван Лох
On Fri, Jun 22, 2007 at 03:20:42PM +0400, Max Dmitrichenko wrote:
 В сообщении от 22 Июнь 2007 14:28 Иван Лох написал(a):
  On Fri, Jun 22, 2007 at 10:49:58AM +0400, Ed wrote:
  Для одноразового ключа и большого количества
  сообщений IMHO хуже. С каждым перехваченным
  сообщением ключ становится все более уязвим.
  Если сообщения открыты -- особенно.
 
 Ну тут можно генерировать новый ключ на основе старого.
 Скажем, через каждые n сообщений. Алгоритм, естественно,
 должен быть известен обеим сторонам.

Генерировать можно, конечно. Только алгоритм, по-хорошему,
должен сводиться к генератору случайных чисел.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: чем плоха подпись с помощью хэш-функции?

2007-06-22 Пенетрантность Alexander Vlasov
Фигурный subject. Это интересно у меня evo чудит или kmail и так
кодировать не положено?

-- 
Alexander Vlasov
ZULU-UANIC
JID: zulu at jabber.kiev.ua


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: чем плоха подпись с помощью хэш-функции?

2007-06-22 Пенетрантность jetxee
Fri, 22 Jun 2007 10:49:58 +0400, Ed [EMAIL PROTECTED]:

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

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


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

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

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

Отвечу на вопрос, почему плохо поступить так, как предлагаете Вы:

1) функции цифровой подписи такая система не выполняет, см. выше;

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

3) «самодельные» реализации даже известных и проверенных алгоритмов
более подвержены ошибкам и уязвимостям, так как никто не будет
проверять, насколько правильно и осмотрительно вы реализовали алгоритм.

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



Re: чем плоха подпись с помощью хэш-функции?

2007-06-22 Пенетрантность Victor Wagner
On 2007.06.22 at 10:49:58 +0400, Ed wrote:

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

Это частный случай MAC - message authentication code.

Реально используемые MAC-и практически всегда базируются именно на
хэшах. Называется HMAC. Рекомендую ознакомиться с описанием алгоритма
HMAC, там сделано чуточку похитрее, чем просто дописывание ключа к
сообщению. И в rfc2104 слегка объясняется почему делается именно так.

Причем HMAC настолько распространен, что многие разработчики
криптографического софта вообще не в курсе, что бывают MAC-алгоритмы,
базирующиеся не на хэш-функции, например ГОСТ 28147-89  в режиме
имитовставки.


 из минусов пока вижу только необходимость безопасно доставить ключ на 
 обе стороны - но в данном случае это проблемы не представляет.

Это во многих случаях проблем не представляет.

Например, в протоколе TLS(SSL) где каждая запись защищается MAC-ом
всё равно вырабатывается общий секрет для шифрования. Поэтому ничто не
мешает нагенерить секрета побольше, и использовать его часть для MAC.

Еще MAC-ом очень часто защищаются шифрованные сообщения.
Потому что нужен какой-то способ убедиться в корректности расшифрования.
Соответственно, считаем MAC на симметричном ключе шифрования и
дописываем к сообщению. Если при расшифрвании использован правильный
ключ, MAC посчитанный на нем после расшифрования совпадет.


 а с точки зрения криптостойкости - хуже этот вариант обычной подписи 

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

 (afaik формируем хэш и шифруем его)?

Это - не совсем верно. Шифруют хэш только в алгоритме RSA. 
В алгоритмах на базе схемы Эль-Гамаля (DSA, ECDSA, ГОСТ Р 34.10)
происходит не  (обратимое) шифрование. Там делается необратимое
преобразование исходного сообщения (т.е. хэша), да ешё и с подмешиванием
случайного числа. Просто существует такая последовательность
арифметических операций, которая позволяет убедиться что данный хэш
соответствует данной подписи. А вот имея только подпись и открытый ключ,
узнать хэш исходного сообщения нельзя.
 

 
 -- 
 To UNSUBSCRIBE, email to [EMAIL PROTECTED]
 with a subject of unsubscribe. Trouble? Contact 
 [EMAIL PROTECTED]
 


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: чем плоха подпись с помощью хэш-функции?

2007-06-22 Пенетрантность Ed

jetxee wrote:

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



по размышлению мне этот вариант нравится всё больше.


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]