Шифрование паролей с помощью ColdFusion и MySQL - PullRequest
0 голосов
/ 02 ноября 2011

Мне нужна помощь / рекомендации по наилучшему способу шифрования / дешифрования паролей в моем приложении ColdFusion / MySQL.Должен ли я использовать MD5, SHA, BCrypt?Должен ли я выполнять шифрование непосредственно в MySQL или использовать ColdFusion для его обработки?

Просто ищу некоторую помощь с этим и приведу несколько примеров, чтобы помочь мне.

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

Любая помощь будет отличной.

Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 02 ноября 2011

SHA-256 или выше с солью или BCrypt.

Я бы сделал это на уровне CF ', потому что код будет находиться под контролем исходного кода.

http://blog.mxunit.org/2011/02/hashing-passwords-with-bcrypt-in.html

http://www.12robots.com/index.cfm/2008/5/21/Salting-Passwords-Security-Series-4.3

1 голос
/ 02 ноября 2011

Если вы хотите, чтобы пароли были надежно защищены, не используйте MD5, так как он может быть взломан. Также не рекомендую SHA-1.

Безопаснее использовать как минимум SHA-256, например, как это в CF:

variables.hashedPassword = Hash(variables.Password,"SHA-256");

Что касается выбора места шифрования - это зависит от того, для чего именно вы хотите его использовать, количества паролей, которые должны быть зашифрованы за один раз, и т. Д. Если это только один раз, это не имеет большого значения.

0 голосов
/ 10 января 2014

Здорово, что вас беспокоит сильное хеширование ваших паролей.Я бы порекомендовал использовать библиотеку scrypt .Колин Персиваль, который изобрел его для использования с tarsnap, написал отличное сравнение scrypt, доступного на веб-сайте tarsnap (извините, не могу опубликовать более двух ссылок из-за rep <10) для других известных и сильных PBKDF, таких какbcrypt и PBKDF2, которые отвечают на вопрос о том, почему scrypt может быть выгоднее в использовании по сравнению с другими PBKDF с технической точки зрения. </p>

Я, как правило, осторожен, чтобы запрыгнуть на подножку ради использования криптографии, которой не было вокругв то время и были хорошо проверены крипто-сообществом.Таким образом, у меня была небольшая оговорка по поводу использования scrypt, так как он все еще довольно «новый» в этом отношении.Я проконсультировался с экспертом по безопасности Стивом Гибсоном относительно вопроса через Twitter, и это был его ответ:

@ SGgrc. Есть какие-нибудь мысли по поводу использования bcrypt против scrypt для PBKD для веб-приложения? [sic]

@ geekmuse SCrypt сильнее сопротивляется аппаратному ускорению, чем BCrypt.Так что я бы сказал, если ваше приложение МОЖЕТ использовать его, используйте его.:)

@ SGgrc Сделаю - и спасибо за информацию!Мое единственное сомнение было, по-видимому, менее тщательно проверено крипто-сообществом.

@ geekmuse Понятно, и в криптографии быть консерватором никогда не ошибается.Но в настоящее время SCrypt является лучшим доступным решением для работы с памятью.

Кроме того, встроенная криптография ColdFusion (по крайней мере, Enterprise Edition) использует библиотеку RSA BeSafe, которая в настоящее время сильно подозревается в скомпрометированности из-зав АНБ (в зависимости от того, какой PRNG используется, но все же ...), поэтому вы поступаете правильно, рассматривая некоторые из недавно опубликованных алгоритмов.

Существует сценарий на основе Javaреализация доступна на Github (github.com/wg/scrypt), который должен быть вполне пригоден для использования в вашем приложении ColdFusion.

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

0 голосов
/ 05 ноября 2011

Я использую ColdFusion, чтобы сделать все мое шифрование / дешифрование. ColdFusion делает это действительно легко. Я обычно использую шифрование Blowfish и ColdFusion генерирует значение ключа. Затем установите его как статическое значение в файле Application.cfm.

Вот дополнительная информация: Enrypt () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...