PHP 2 способа обеспечения безопасности - PullRequest
1 голос
/ 21 октября 2010

У меня была идея для защиты паролем.

Когда веб-сайт был сгенерирован, он создавал 2 перемешанные копии всех символов клавиатуры, соль случайной длины.Более того, это создаст случайное число смещения для соли.

Пример.

$password = "Password";
$offset = 3;
$salt = "f00";
$saltedPw = "Pasf00sword";


$setOne = 'ftwgDtrE354.....';
$setTwo = '$5grFIPV9@.....';

$pw = encryptFunc($saltedPw, $setOne);
$pw = encryptFunc($pw, $setTwo);

salt, offset, setOne и setTwo будут сохранены в файле php, что означает, что если БД была скомпрометирована и / или украдена, пароли не могли быть легко расшифрованы.

Похоже ли это на достаточно надежный способ защитить пароль?Если нет, то что с ним не так?

Ответы [ 2 ]

4 голосов
/ 21 октября 2010

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

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

Видите ли вы разницу в подходах? :)

4 голосов
/ 21 октября 2010

Просто храните ваши хешированные пароли с уникальной солью для каждого пользователя.Не пытайтесь придумать собственную модель безопасности.

Редко бывает, что вам действительно нужна возможность расшифровывать пароли пользователей.

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