Хранение пароля в контейнере AES

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

В случае, если мой вопрос стал непонятным, какой-нибудь питоновский псевдокод:

AES(data=password, key=password)

person Schnusch    schedule 30.11.2013    source источник
comment
Этот вопрос относится к security.stackexchange.com, а не сюда. Криптография — это особый предмет, который, в отличие от обычного программирования, не всегда можно проверить с помощью простых экспериментов; НЕ доверяйте обычным программистам правильные ответы на вопросы по криптографии.   -  person Robin Green    schedule 01.12.2013
comment
@RobinGreen На самом деле он принадлежит crypto.stackexchange.com. Обратите внимание, что на этом форуме есть несколько криптолюдей :P   -  person Maarten Bodewes    schedule 02.12.2013


Ответы (1)


Нет, это не так безопасно, как использование функции получения ключа на основе пароля. Самая важная проблема с паролями — это атаки по словарю и методом грубой силы — другими словами, перебор паролей. Теперь результатом AES(data=password, key=password) всегда является одно и то же значение (поскольку расчет не содержит соли). Это означает, что построение радужной таблицы возможно. Кроме того, AES очень быстр, поэтому злоумышленникам очень легко проверить множество паролей.

Так что вам гораздо лучше использовать PBKDF, такой как PBKDF2, bcrypt или scrypt, с большим количеством итераций и не менее 64 бит случайной соли.

person Maarten Bodewes    schedule 02.12.2013
comment
См. также stackoverflow.com/questions/19732232/, где я описываю практически то же самое для RC4, а не для AES. Чтобы сделать эту схему безопасной, она должна быть AES(data=password, key=PBKDF(password)), что просто добавляет бесполезный шаг поверх PBKDF(password). - person Rob Napier; 02.12.2013
comment
Это отвечает на ваш вопрос, Шнусс? Если это так, нажмите на значок V слева, чтобы принять его, в противном случае укажите, чего не хватает в ответе. - person Maarten Bodewes; 06.12.2013