sergeiss
8.05.2013 - 14:06
twin - ранее в этой теме было верно замечено, что если хакер "слил" и сайт, и БД, то уже без разницы, есть ли там соль.
Если основные (важные) данные сидят в БД, и у хакера есть вся БД, то также не важно, знает ли он про "соль". И тогда весь этот разговор вообще не имеет смысла.
Если же код ПХП не доступен, а у хакера только одна таблица с логин-паролями (и другими данным юзера), но не вся БД... Хакер-то не знает, что мы используем в качестве "соли"! И пароль он не декодирует, не зная алгоритма. То есть, в итоге не получит доступа к данным.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Цитата (sergeiss @ 8.05.2013 - 10:06) |
Если же код ПХП не доступен, а у хакера только одна таблица с логин-паролями (и другими данным юзера), но не вся БД... Хакер-то не знает, что мы используем в качестве "соли"! И пароль он не декодирует, не зная алгоритма. То есть, в итоге не получит доступа к данным. |
Это то как раз понятно. Не понятен профит от того, что мы будем зниматься зоофилией с собачками. В чем профит индивидуальной соли?
Есть такой принцип, называется "Бритва Оккама". Если кто не знает, это принцип, исключающий лишние определения. Допустим "мяч круглый, упругий, красный". Он может быть и зеленым, все равно это мяч. Достаточно первых двух определений, третье - излишнее.
Так и тут, впрочем много где в прогрммировании. Зчем делать лишние, совершенно ненужные действия?
Соль, это секретные данные, добавляемые к паролю для усложнения брутфорса. Все, этого достаточно. Для чего делать индивидуальную соль? Для чего эти извращения, если толку от них никакого. Ведь сам написал:
Цитата |
Если же код ПХП не доступен |
значит недоступна и соль и алгоритм. Смысл делать её каждому?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
DedMorozzz
8.05.2013 - 14:42
Цитата |
Смысл делать её каждому? |
Да не делается она ОТДЕЛЬНО. А используется существующая информация. И в конечном итоге делается невозможным взлом, не имея пхп кода.
Т.о. не делая никаких дополнительных полей, повышаем надёжность.
Что тут может смущать?
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Цитата (twin @ 8.05.2013 - 12:33) |
Отдельная соль для каждого, это геммор. |
я писал что тогда будет отдельная соль?? Это из аналога Joomla, там одна соль для всех.
Цитата (twin @ 8.05.2013 - 13:05) |
Это не так сложно вычислить, даже не зная алгоритма хэширования. |
Очень интересно. Проведем опыт на выявление алгоритма?
Цитата (DedMorozzz @ 8.05.2013 - 10:42) |
Цитата | Смысл делать её каждому? |
Да не делается она ОТДЕЛЬНО. А используется существующая информация. И в конечном итоге делается невозможным взлом, не имея пхп кода. Т.о. не делая никаких дополнительных полей, повышаем надёжность. Что тут может смущать? |
Смущают две вещи.
1. Зная алгоритм и имея в руках базу данных мы имеем возможность отбрутить коллизию.
2. Чем сложнее алгоритм, тем больше он подвержен сбоям.
Собственно больше всего смущает, как я и написал раньше, один вопрос. А нафига? Вполне достаточно прописать её в конфиге где-нибудь. Можно две, три, если совсем паранойя одолевает. Но для чего каждому то?
И уж тем более никких полей не нужно. Ни дополнительных, ни существующих.
stepan
Цитата |
Очень интересно. Проведем опыт на выявление алгоритма? |
Где это я обещал выявить алгоритм? Я говорил, что не так сложно узнть, что используется в качестве соли. Ну если это не карусель конечно, которую Сергей предложил.
Вы поймите, что не нужно усложнять то, что в усложнении не нуждается. Невозможно отбрутить такой хэш:
$hash = md5($salt1 . $password . md5($password . $salt2) . sha1($password));
не зная алгоритма и соли. Так для чего лишний раз дергать базу, вычислять половину собаки и так далее, если все равно это не увеличивает надежность?
Для чего делать стены дома тощиной в 15 метров, если достаточно одного? Лбом пробить невозможно. Другими словами что метр, что два, что три, все равно эфект один - нельзя сломать лбом. Знчит метр достаточно. А если будет ядерная война, так радиацией накроет, что толку стены укреплять с такими затратами?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
DedMorozzz
8.05.2013 - 17:05
Николай, ну ейбогу, как будто не с тобой общаюсь....
Цитата |
Смущают две вещи. 1. Зная алгоритм и имея в руках базу данных мы имеем возможность отбрутить коллизию. 2. Чем сложнее алгоритм, тем больше он подвержен сбоям.
|
1. Т.е. имея всё? Странно, что имея всё можно получить возможность коллизии
Чем отличается от варианта с хранением в конфиге? Ибо алгоритм, как и конфиг - это уже пхп файл
2. это актуально при человеческом факторе, программе всё равно. Да и даже если...какая тут сложность? Работа со строками это сложный алгоритм?
Цитата |
Невозможно отбрутить такой хэш:
$hash = md5($salt1 . $password . md5($password . $salt2) . sha1($password)); |
Да невозможно обрутить даже такой хеш - md5($salt.$pass); Не зная соли, а её не узнать не получив доступа к исходникам.
Цитата |
Так для чего лишний раз дергать базу |
Стоп...а ты юзера авторизируешь не делая запрос к базе? Если всё же делаешь, тогда где тут "лишний раз"?
И на последок - в чём преимущество в константной соли, хранимой в конфиге, по сравнению с уникальной солью, по любым юзерским данным?
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Цитата |
Ну если это не карусель конечно, которую Сергей предложил. |
и что?
имея пароль и хеш, трудно перебрать все ваианты этих полей? минута или две на перебор, ну и код написать... если таблиц много, то чуть дольше, можно чаю успеть попить
_____________
Стимулятор ~yoomoney - 41001303250491
DedMorozzz
8.05.2013 - 17:13
Цитата |
имея пароль и хеш, трудно перебрать все ваианты этих полей? |
Чесно говоря - не понял тебя. Если у нас есть пароль, зачем нам что-то ещё перебирать?
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Цитата |
1. Т.е. имея всё? Странно, что имея всё можно получить возможность коллизии |
А вот и не все. В твоем случае все получается. В моем случае можно знть алгоритм, иметь доступ к полной базе, но не иметь доступа с соли и знчит не знать её. А ну ка попробуй)))
Цитата |
И на последок - в чём преимущество в константной соли, хранимой в конфиге, по сравнению с уникальной солью, по любым юзерским данным? |
Преимущество в простоте. Индивидульная соль должна как минимум иметь еще один обязательный праметр, кроме пароля. Если это логин (или часть), то это минимум надежности. И невозможность этот логин сменить. Других паараметров может и не быть. Я вот на своем сайте не храню дату регистрации за ненадобностью. Контрольное слово запрашивать? Про собачку? Ну для чего это все усложнять, когда спокойно все делается обычной константой. С тем же (даже большим) успехом?
Я всегда выступаал против бездумного усложнения программ. Потому что не понимаю:
зачем? Так и сейчас, мне объясняют, что это не хуже, но ни кто не ответил, в чем профит усложнения? Зачем???
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
DedMorozzz, это пароль который мы регистрируем, а потом сливаем хеши и нашего пароля и всех остальных, имея пару пароль хеш ищем соль.
_____________
Стимулятор ~yoomoney - 41001303250491
DedMorozzz
9.05.2013 - 10:38
Цитата |
DedMorozzz, это пароль который мы регистрируем, а потом сливаем хеши и нашего пароля и всех остальных, имея пару пароль хеш ищем соль. |
Да ну не скажи. Можно веть не тривиальный сделать алгоритм, как Твин предлагает - константную соль.
А к примеру, взять айди юзера, к ней добавить остаток от деления на 7. Это всё умножить на дату регистрации в юникоде.
Но даже если соль константна - всё упирается в алгоритм. Даже если вообще нету соли, всё равно всё упирается в алгоритм хеширования. Если даже без соли там стоит md5(md5(pass).md5(pass)) или другая комбинация, то наугад такое не перебрать, а веть вложеность может быть любой. Просто без соли, алгоритм должен быть запутанее
Цитата |
А вот и не все. В твоем случае все получается. В моем случае можно знть алгоритм, иметь доступ к полной базе, но не иметь доступа с соли и знчит не знать её. А ну ка попробуй)))
|
И в твоём случае всё. Глупо получается, "взломщик" получил доступ по ФТП или SSH к исходникам, но посмотрел всё кроме конфига?
Ну в таком случае надо алгоритм писать в 25й строке, он её точно не посмотрит, вот иделаьная защита.
Что в соли в конфиге, что соль для юзера - уязвимое место - доступ к исходникам. Только в твоём случае ещё и дополнительно инкдлуд конфига делается при авторизации, если он не нужен.
А лишний инклуд - тяжело рассматривать как преимущество
Цитата |
Я вот на своем сайте не храню дату регистрации за ненадобностью. |
Да в том то и + что использовать можешь всё что угодно. Хоть айди, хоть дату регистрации. Да хоть кем юзер был приглашен. Алгоритм полностью универсален, без дополнительных, абсолютно ненужных полей в конфигах
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
DedMorozzz
Цитата |
И в твоём случае всё. Глупо получается, "взломщик" получил доступ по ФТП или SSH к исходникам, но посмотрел всё кроме конфига? |
А кто сказал, что у него есть доступ к конфигу? У него может быть база и алгоритм, взятый к примеру из соурсной доки.
Кстати, по мотивм написал
функцию небольшенькую.
Цитата |
Только в твоём случае ещё и дополнительно инкдлуд конфига делается при авторизации, если он не нужен. |
Конфиг всегда подключен. Как может сайт работать без конфигурации? В том и все дело: или добавить одну строчку в уже подключенный конфиг, или мудрить с вычислениями остатков от 7. Кстати, это тоже константа. А при регистрации еще и потребуется дополнительный запрос для получения ID юзера.
Так ты объясни все-таки. В чем преимущество индивидуальной соли?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
DedMorozzz
9.05.2013 - 12:27
Цитата |
А при регистрации еще и потребуется дополнительный запрос для получения ID юзера. |
Да зачем?
Юзер вводит логин(к примеру емейл) и пасс. По мылу выбираем запись.
И там есть уже айди и все остальные данные. Проводим все необходимые првоерки, и если хеш выбраной записи совпал с хешом который получили - авторизируем. Иначе выводим - не верно введён логин или пароль
Где тут ещё 1 запрос
Цитата |
Так ты объясни все-таки. В чем преимущество индивидуальной соли? |
Да в том, что не нагружается конфиг. Не захламляется ненужными данными
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
DedMorozzz
Цитата |
Проводим все необходимые првоерки, и если хеш выбраной записи совпал с хешом который получили - авторизируем. Иначе выводим - не верно введён логин или пароль Где тут ещё 1 запрос |
Я же написал - при регистрации. Что бы вычислить соль, нужен ID. А его еще нет, юзер не зареган. Придется сначала создать ему учетную запись, получить её ID, вычислить хэш и вторым запросом добавить в базу.
Цитата |
Да в том, что не нагружается конфиг. Не захламляется ненужными данными |
Ага. То есть одна строка плана
define('SALT', 'ds$e2(dx#s');
это захламление. А этот странный алгоритм с делением на 7, шаманство с бубном вокруг id, даты регистрации, выгул собачек и так далее, это чистота и порядок. (Кстати, преимущество константной соли - возможность использования более широкого спектра символов).
Ну в принципе у каждого свое видение чистоты. Не настаиваю более. Нравится раздувать слонов из мух, кто же может запретить)))
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Я еще в первом посте сказал что пароль должен быть нормальным, а не типа "popcorn", хоть обсолись, такие пароли взламывают "по словарю" и не важно чего там навертел программист. И кстати по соль я там дописал в последнюю очередь.
_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.