Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

Кто ведает (существует-ли вообще она) функцию создания хэша пароля которая не будет совпадать, если сравнить пароль с хэшем на другом сервере (хостинге)? Например, эта функция должна подмешивать в хэш данные системы которые нельзя узнать средствами 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 changed the title to Защита паролей после взлома
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 сказал:

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

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

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.