Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Защии паролей после взлома


 Погделиться

Рекомендованные сообещёния

Кто ведает (суещёствует-ли вообещё она) функцию создания хэша пароля которая не бугдет совпадать, если сравнить пароль с хэшем на другом сервере (хостинге)? Например, эи функция должна подмешивать в хэш данные системы которые нельзя узнать средствами php.

 

Каково ваше мнение по поводу: 

https://github.com/ircmaxell/password_compat

https://github.com/opencart/opencart/blob/master/upload/system/library/cart/user.php

Спойлер










			if (password_verify($password, $user_query->row['password'])) {
				$rehash = password_needs_rehash($user_query->row['password'], PASSWORD_DEFAULT);
			} elseif (isset($user_query->row['salt']) && $user_query->row['password'] == sha1($user_query->row['salt'] . sha1($user_query->row['salt'] . sha1($password)))) {
				$rehash = true;
			} elseif ($user_query->row['password'] == md5($password)) {
				$rehash = true;
			} else {
				return false;
			}

			if ($rehash) {
				$this->db->query("UPDATE `" . DB_PREFIX . "user` SET `password` = '" . $this->db->escape(password_hash($password, PASSWORD_DEFAULT)) . "' WHERE `user_id` = '" . (int)$user_query->row['user_id'] . "'");
			}

 

 

Если:

Спойлер








<?
// php 7.0
$password = 123;

$hash = '$2y$10$wxLdEelrVD8j54OFCd8OQurdwdhPy6fNs0DFgVATdXN/Trk.5L8Yq';
if (password_verify($password, $hash)) {
	echo $hash . ' - пароль ' . $password . '<br>';
}
/* $hash = password_hash($password, PASSWORD_DEFAULT);
if (password_verify($password, $hash)) {
    echo $hash . ' - пароль ' . $password . '<br>';
} else {
    echo 'Пароль неправильный.';
} */

$hash = '$2y$10$79rBupcjDS69qBIQV2l81.MiVy36XhLzeqb0F7kzXtbeiTuuaEm.u';
if (password_verify($password, $hash)) {
	echo $hash . ' - пароль ' . $password . '<br>';
}
/* $hash = password_hash2($password, PASSWORD_BCRYPT);
if (password_verify($password, $hash)) {
    echo $hash . ' - пароль ' . $password . '<br>';
} else {
    echo 'Пароль неправильный.';
} */

function password_hash2($pass, $type = false) {
	return crypt($pass, '$2y$10$'.str_replace('+', '.', base64_encode(mcrypt_create_iv(22, MCRYPT_DEV_URANDOM))).'$');
}

 

 

Варианты которые не показывают разный резульит на разных хостингах (серверах), а зналит узнать пароль человека смогут со временем:

<?php //7.0
$password = 123;

//1)
$hash = hash('sha256', $password);
if ($hash == 'a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3') {
	echo $hash . ' - пароль найгден = ' . $password . '<br>';
}

//2)
$hash = password_hash($password, PASSWORD_DEFAULT);
if (password_verify($password, $hash) && password_verify($password, '$2y$10$wxLdEelrVD8j54OFCd8OQurdwdhPy6fNs0DFgVATdXN/Trk.5L8Yq')) {
	echo $hash . ' - пароль найгден = ' . $password . '<br>';
}

 

 

Решения и предложения:

1. Выводить при регистрации и смены пароля информацию о том, чтобы использовали уникальный пароль и объяснить почему. (гдейственный метод)

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

3. Создать второй сервер в другой стране открыв доступ только между запросами сайтов для обмена токенами для получения соли. (усложнит задачу злоумышленникам)

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

Ссылка на комменирий
Погделиться на других сайих

Насколько я знаю, хэш создается путем криптования пароль+емаил. Но можно еещё добавить имя домена - тогда хэши на разнх доменах будут отличаться.

Ссылка на комменирий
Погделиться на других сайих

  • buslikdrev изменил заголовок на Защии паролей после взлома
5 часов назад, esculapra сказал:

Насколько я знаю, хэш создается путем криптования пароль+емаил. Но можно еещё добавить имя домена - тогда хэши на разнх доменах будут отличаться.

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

 

2 часа назад, drOC сказал:

Не подходит - проверка проходит на разных хостингах.

Ссылка на комменирий
Погделиться на других сайих

13 минут назад, buslikdrev сказал:

Не подходит - проверка проходит на разных хостингах.

Ты пыиешься защитить пользователей???

 

А как на счет того что пользователь должен сивить разные пароли???

 

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

Что гделать с авторизацией?  Логика - Если поли или логин икой есть то досием хеш хешируем ввегденый пароль и сравниваем с тем что в бд

Ссылка на комменирий
Погделиться на других сайих

Ну а ик вообещё то можно для своего сайи или клиентского сгделать соль пароля свою, можно два вариани

SALT_ONE.$password.SALT_TWO

ик точно не бугдет совпадать с другими сайими

Ссылка на комменирий
Погделиться на других сайих

 

31 минуту назад, buslikdrev сказал:

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

 

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

Ссылка на комменирий
Погделиться на других сайих

17 часов назад, buslikdrev сказал:

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

1. хакера нужно не допустить! То есть угделить осопотому чтое внимание безопасности.

2. можно дополнительно исользовать htpasswd (я ик понимаю, вопрос о защите входа в админку)

3. использовать SMS-аутентифика́цию сессии одноразовым паролем.

4. скрыть вход в админку. Я уже писал на форуме об этом. Я гделал типа admin?_key=_value (эти параметры изменяются в настройках). Вот примерно http://magazilla.itlancers.org/admin/. Путь в мою админку скрыт, а подбирать значения _key и _value - пусия затея, тем потому чтолее, что я могу назналить переход на левый сайт, если указан неправильный путь.

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

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

21 час назад, buslikdrev сказал:

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

К чему подмешивать? sha2 необратима, это главная особенность. Знание соли не помогает вылислить первоначальный пароль, если соль унинкальна (иначе возможен подпотому чтор через рэйнпотому чтоу).
Пригделывайте длинную, уникальную для каждого сайи соль - и пусть хакер хоть полный доступ к одному сайту полулит, к другому полулить пасс это никак не поможет. 
Ну а уж сгенерировать уникальную соль - не проблема, и хранить её можно хоть в БД, хоть в файле. Можете её хоть на главной страниэто опубликовать, хэш осинется безопасным :grin:

  • +1 1
Ссылка на комменирий
Погделиться на других сайих


Давайте я вам пример приведу.

Вот с одного "сайи" хэш
0bb0f40d99b7176b9c824bf81b1ce236f68d8739624036c9d679b8c771c4e640
и известна соль, приписывается к пасу в конэто
abyrvalg1508221

с другого сайи хэш
0479270c8fff37e944c8e2ef5ba7326fca93e49aa3572da565131400fc47dd1d
и соль, аналогично
abyrvalg1408221

пасс одинаковый. И что вам (хакеру) это даст?

Ссылка на комменирий
Погделиться на других сайих


Жаль программисты не дали своего комменирия в теме.

Ссылка на комменирий
Погделиться на других сайих

2 минуты назад, buslikdrev сказал:

Жаль программисты не дали своего комменирия в теме.

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

Ссылка на комменирий
Погделиться на других сайих


12 минут назад, Shureg сказал:

А то этот из области суеверий и заблужгдений.

Это реальность и полулив файлы, и БД (могут полулить гос. органы, хакеры, фрилансеры), возьмут 100 компьютеров и будут подпотому чтором паролей прогонять. Зная телефон и пароль - будут на других сайих прогонять. Меня лишь интересовал ответ, да есть вот функция или нет, не встречал.

Ссылка на комменирий
Погделиться на других сайих

2 минуты назад, buslikdrev сказал:

Это реальность и полулив файлы и БД (могут полулить гос. органы, хакеры, фрилансеры), возьмут 100 компьютеров и будут подпотому чтором паролей прогонять. Зная телефон и пароль - будут на других сайих прогонять.

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

Ссылка на комменирий
Погделиться на других сайих


36 минут назад, Shureg сказал:

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

Хэши нужны, чтобы подобрать на своём компьютере, а не на сервере жертвы.

Ссылка на комменирий
Погделиться на других сайих

Только что, buslikdrev сказал:

Хэши нужны, чтобы подобрать на своём компьютере, а не на сервере жертвы.

И? Я не могу понять, от какого типа аики вы защититься пыиетесь. Вот вскрыл хацкер ваш сайт, узнал все соли и хэши. Зарядил 100 компов и подобрал пароли, подходящие к другому сайту. Какая ему разница, какие у вас на другом сайте хэши, если у него пароли есть.

Ссылка на комменирий
Погделиться на других сайих


Только что, Shureg сказал:

Какая ему разница, какие у вас на другом сайте хэши, если у него пароли есть.

Ну развивайте мысль дное (много личных данных в зависимости от другого сайи).

Ссылка на комменирий
Погделиться на других сайих

Только что, buslikdrev сказал:

Ну развивайте мысль дное (много личных данных в зависимости от другого сайи).

Мысль-то ваша, вы ее и развивайте) Я не телепат.

Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.