Для отправки паролей по проводу, который более безопасен: Diffie-Helman/AES или RSA? (Это беспокоит меня, что AES не затеняет длину пароля),

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

Мне рекомендовали использовать Diffie-Helman, чтобы заставить обе стороны договариваться о секретном ключе, использовать секретный ключ, чтобы генерировать ключ AES и затем использовать AES для шифрования/дешифрования паролей, которые передаются. В значительной степени как пример кода здесь

При использовании этой схемы длина зашифрованного пароля совпадает с длиной незашифрованного пароля. Я должен быть взволнован по поводу этого?

Прежде, я использовал RSA, шифруя пароли с открытым ключом получателя. Это приводило к зашифрованной длине 256 независимо от того, что длина пароля. Разве это не лучше?

5
задан onkar 31 December 2012 в 08:34
поделиться

3 ответа

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

Примечание. Если вы используете Defie-Hellman, вам все еще нужно аутентифицировать отправленные параметры, которые вам, вероятно, надо делать с RSA.

Альтернативы:

  1. Используйте RSA для обмена зашифрованным секретным ключом, который вы используете для шифрования ваших данных.
  2. Используйте Diffie-Hellman для обмена секретным ключом, а затем используйте RSA, чтобы подписать значения, отправленные для аутентификации транзакции.

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

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

Предложите вам использовать SSL / TLS для вашего обмена, если вам нужно будет транслировать много данных. PGP / PKCS # 7 Если вам просто нужно отправить одно сообщение.

3
ответ дан 14 December 2019 в 08:51
поделиться

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

Второе: IMHO Вы никогда не должны отправлять пароли на проволоке для аутентификации (я не знаю о любом протоколе аутентификации, который, в том числе, включая ужасно небезопасный протокол NTLMV1) [1].

Если вы мертвы, настаиваете по пути «Roll My Short Aubtication Schood», вот как я бы сделал схему, которую вы описали выше более безопасны (предостерегаете: я не криптограф - я верю, что есть Серьезные слабости в том, что я здесь описываю):

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

Другими словами, у сервера отправляют клиент значение соли, добавьте соль в пароль, вычислите OWF пароля + значение соли и отправьте результат OWF на сервер. На сервере добавьте соль в пароль, а также выполните расчет OWF. Если результаты одинаковы, пароль действителен, если они не оно неверно.

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

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

3
ответ дан 14 December 2019 в 08:51
поделиться

Если вы можете помочь, не отправляйте пароли по сети вообще. Вместо этого используйте такую ​​схему, как SRP, которая аутентифицирует обе стороны с помощью одного пароля.

1
ответ дан 14 December 2019 в 08:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: