Безопасность с использованием AES с соленым паролем в качестве ключа - PullRequest
0 голосов
/ 18 февраля 2011

Я понимаю, как работает соленый хеш пароля, но я предполагаю, что мне также нужно будет хранить соль, имя пользователя, KEY и зашифрованный пароль.Я думаю, что в целом мне просто нужно понять, как бы я это реализовал, например, как сохранить его, а затем, как восстановить пароль.Также, если кто-то может объяснить, почему лучше использовать это соленое значение, разве человек не может провести словарную атаку с солью перед каждым словом?

Спасибо,

Ответы [ 2 ]

9 голосов
/ 21 февраля 2011

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

Если это последнее (которое известно как шифрование на основе пароля ), то вам следует использовать функцию получения ключа , например PBKDF2. Функция получения ключа берет соль и предоставленный пароль пользователя и создает ключ, который можно использовать с шифром, таким как AES.

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

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

Цель соли состоит в том, чтобы предотвратить применение предварительных вычислений к атаке по словарю. Действительно возможно выполнить атаку по словарю грубой силы, как только соль известна, но KDF спроектирован так, чтобы быть достаточно медленным, чтобы сделать это невозможным без предварительного вычисления.

1 голос
/ 18 февраля 2011

Вы должны использовать хеш-алгоритм для хранения ваших паролей, который является односторонним «шифрованием».Затем вы можете просто хэшировать пароль, который вы получаете от пользователя, и сравнивать с сохраненным хешем.

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

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

...