Можно ли хранить пароли, которые можно получить? - PullRequest
2 голосов
/ 24 ноября 2010

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

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

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

Является ли хешированный пароль общепринятым по сравнению с зашифрованным паролем? Почему?

Ответы [ 2 ]

4 голосов
/ 27 ноября 2010

Шифрование паролей с помощью обратимого шифрования имеет сомнительное значение.

Очевидно, что программа поиска имеет доступ к ключу.Это означает, что вы должны предполагать, что любой, кто имеет доступ к программе, также имеет доступ к ключу.Если вы параноик, вы должны также предположить, что их супруги, другие значимые люди, друзья по комнате и т. Д. Имеют доступ к этому ключу.Кроме того, любой, кто когда-либо входил в сеть в прошлом (с момента использования ключа), также имеет доступ к ключу.

Проблема с использованием такой системы заключается в том, что вы никогда не узнаете, что она сломана.Есть ли у меня доступ к ключу?Прямо сейчас?Могу ли я найти пароль в любое время?Как только вы измените его, я узнаю, на что оно было изменено?

Использование соленого хэша (против обратимой энциклопедии) представляет свои собственные проблемы при реализации, но вы можете быть уверены, что кража списка паролей имеет небольшое значение (еслидолжным образом реализовано с помощью надежного алгоритма, нескольких раундов, минимальных стандартов паролей и случайных значений для каждой записи).Ваша текущая система "чувствую хорошее шифрование".Хотя это может заставить руководство «чувствовать» себя в безопасности, на самом деле они не в безопасности.Это немного лучше, чем хранить пароли в открытом тексте или на заметке, в лучшем случае это минимальный удар по скорости для решительного злоумышленника.Самая большая проблема заключается в том, что вы никогда не сможете доказать, что вы «в безопасности», и, возможно, не получите никаких предупреждений, когда вас скомпрометируют.Вы могли бы быть скомпрометированы прямо сейчас и не знать этого.

3 голосов
/ 24 ноября 2010

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

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

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

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

Это либо так, либо использовать какую-то причудливую PKI. AES - симметричный шифр.

Шифрование паролей не поможет приложению защитить свою базу данных от всех, кроме самых случайных злоумышленников (поскольку злоумышленник ДОЛЖЕН иметь возможность получить ключ). Хэширование их затрудняет получение открытого текста при надежных паролях.

...