Соль php

Соль php

Соль php

Соль php

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

И продолжаем радовать всех!)

Мы - это надежное качество клада, это товар высшей пробы, это дружелюбный оператор!

Такого как у нас не найдете нигде!

Наш оператор всегда на связи, заходите к нам и убедитесь в этом сами!

Наши контакты:

Telegram:

https://t.me/stufferman


ВНИМАНИЕ!!! В Телеграмм переходить только по ссылке, в поиске много фейков!
















Засаливание паролей Разработка веб-сайтов Итак, каким же образом обеспечивается безопасность на нынешних веб-ресурсах? Хешированием паролей алгоритмом md5. Вроде бы всё здорово и замечательно — md5 есть функция необратимая и пароли, хранимые в виде таких хэшей, взломать нельзя, даже если злоумышленник получил доступ к базе. Вспоминаем про Rainbow-таблицы и прощаемся с мыслью о полной безопасности хранения паролей в таком виде. Та как же их тогда шифровать? Алгоритмы востановимого шифрования с ключами тоже не панацея, да и системных ресурсов сии функции кушают немало Так как же, не в ущерб производительности, обезопасить md5 хэши от Rainbow-таблиц? Суть метода заключается в следующем. А кто нам мешает при генерации хэша, помимо голого md5, ввести ещё каки-либо операции над паролем? Естественно, что в таком случае генерацией Rainbow-таблиц, именно для этой соли, никто заниматься не будет. В принципе, достаточно ограничиться конкатенацией соли с паролем и от этого брать md5 — всё равно результат взломать, даже зная соль, практически невозможно. Дальше -больше 'Подперчить' сей метод можно добавив динамики в генерацию соли то есть при правильном вводе пользователем его пароля, динамически заменять соль на новую, например, при каждом ом логине или каждую неделю. Кстати, если соль сделать из 8-ми абсолютно случаных символов, то при взломе такого хэша, система взлома может распознать его как SHA-хэш и априорно начнёт двигаться в ложном направлении. А можно, коли руки чешутся поминусовать, это как-то обосновывать в комментариях? У вас есть синдром ученика? НЛО прилетело и опубликовало эту надпись здесь. Существует отличная библиотека phpass, которая уже интегрирована в phpBB, WP, а также модуля для Drupal. Portable PHP password hashing framework www. Сорри, не знал, что это называют туннелированием. А чем SHA лучше md5? Только тем, что занимает больше места в БД? Да и Rainbow-таблицы для SHA не вчера появились…. Ага, и MySQL 64 и битные. Только тут одна проблема — для них тоже существуют Rainbow-таблицы. Поэтому здесь и не описывается ни способ генерации Rainbow-таблиц, ни отличия между симметричным и асимметричным шифрованием, ни оценка процессорного времени для того или иного алгоритма. Если честно, не знаю как хранятся пароли в их базе, но отличие между куками и базой весьма существенное — второе не гуляет по сети в открытом виде. И куки намного легче стащить. Поэтому вполне логично, что в куки должен попадать только хэш. А в базе — пока её не стащат, вообще всё равно, что там хранится. Вообще то логично, что в куки не должно попадать хеша пароля ни при каких условиях. Вот если б кто-то написал статью про авторизацию по кукам, я знаю что там кроме соли можно добавить юзер-агента и т. Как лучше всего реализовать такую авторизацию? Лучше всего в куках хранить случайно сгенерированный ключ, однозначно позволяющий определить сессию. Причём менять его после нескольких запросов или по прошествии определённого времени. Стандартный механизм для любого web-фреймворка же! На вКонтакте эта кука называется remixsid remix session id. Про соль я и так знал в тех же общих терминах, значительно интереснее было бы узнать различные способы её применения. Это вполне годится для личного блога, но не для блога Web-разработка. Тут уже хочется чего-то более развёрнутого и обоснованного. Чем данная статья полезнее коротенькой заметки в Википедии? Я же не о соли говорю, а о статье. А она не проста и не гениальна. Тут надо рассуждать так: Заденет ли эта статья сердца последних? Достаточна ли она для того, чтобы понять, в чём соль? Достоинства тоже по-моему очевидны. Вот тут еще более подробно описано про хранение паролей с солью Даже с картиками: Знакомая принимала участие в разработке одной небольшой системы для Билайна. Так вот там пароли хранились в открытом виде, но потом их вроде засолили. Я про соль уже писал в habrahabr. Обьясните мне — почему все забивают на crypt? Кроме того, она использует только первые восемь символов строки str, поэтому для различных строк, первые восемь символов в которых совпадают, будет возвращаться один и тот же результат при использовании одинаковых salt-последовательностей. Не знал что это называется солением. В дефалтовом IPB толку от этой соли немного. Да, для каждого пользователя она генериться своя, но храниться то рядышком в той же таблице users. С одной стороны, если враги уперли только базу, а сорс остался недоступен, то ворогам будет довольно сложно подобрать пасс к тому или иному пользователю, но только при условии что сама маска генерации хэша с сальтом изменена программистом. Берем эту маску генерации вставляем в свой брутфорс софт и уезжаем в отпуск. Ну а если увели и сорс и базу, к слову, так бывает в большинстве случаев, то ничего не спасет, кому надо, тот запариться и найдет искомый пасс. Вопрос стоит ли оно того, если ломают пасс к мылу нефтяного магната, дабы его разволплотить из магнатов, пасс найдут, а чудо-хацкоры пытающиеся подобрать пасс к аське подружки вспотеют. Извините если слишком витиевато, 9 утра как-никак. Соль априори публична на столько же на сколько и сами хеши. Поэтому в никсовом варианте она и добавляется к хешу. Суть только в том, что по общей базе хешей прогнать пароли уже не получится. Не совсем понятна причина, зачем нужно добавление соли к хэшу? Внутрь хэша — это ясно. А зачем ее в явном виде приписывать? Или имеется ввиду что она для каждой записи своя и случайным образом сгенерированная? Берем эту маску генерации вставляем в свой брутфорс софт Соль не от брутфорса спасает, а от rainbow таблиц, которые позволяют узнать пароль по хэшу практически мгновенно. Как вы думаете где тут соль? У хешей, как правило, фиксированная длина. Достаточно отрезать нужное кол-во символов с конца строки. Если солить в одном месте, то и насолено будет только в одном месте. Как уже выше писали и не раз, суть соли не в сокрытии ее, а в защите от некоторых методов взлома. Кроме того, если уже по серьезному, соль используется не в human-readable форме, а бинарной строкой, и никто не мешает ее тоже перевести в шестнадцатеричную текстовую запись, как обычно хранится хеш. Пусть мой пароль и он закодировался после добавления соли как раз то в 9babda1daada Если бы не добавляли соль то мы бы прогнали мд5 по rainbow таблицам. А так не можем. Вот в чем суть соли. Это значение по-умолчанию, если на вход функции соль не подаётся правила хорошего тона при написании функций. Там выше коммент от zercool про это же. Результат тот же, но злоумышленник не узнает соль, не получив доступ к исходникам. Таким образом, пароли защищаются не только от rainbow tables, но и от обычного брутфорса. В таком случае у одинаковых паролей будет один и тот же хеш. Ну к примеру, злоумышленник может зарегистрировать несколько аккаунтов с наиболее популярными паролями, потырить базу, обнаружить там пользователей с такими же паролями и проверить пароли на их почтовых ящиках, вдруг совпадают. Ну а если он ещё и такой же пароль на своей почте использует… в общем, я думаю вы поняли. Что пользователь с популярным паролем камикадзе, это понятно, но предоставлять хакеру возможность выявить таких пользователей все же не стоит. В результате получится HMAC по сути: Так чего мелочиться, раз 20 такое же повторить — в самый раз будет! Если salt берется из базы и уникален для каждого пользователя, то опять же считаем сначала md5 salt , а результат уже записываем в БД. Я помню была информация что можно найти коллизию для md5 очень и очень быстро, только я так и не понял — в итоге это была действительно правдивая информация, или просто математические выкладки и никто так и не реализовал этот алгоритм? А так, да, сам процесс хеширования подразумевает наличие коллизий. Десятикратный md5 наше всё. Просмотреть не помешает, но пароля не выдаст. Во-первых, это вежливость по отношению к юзерам. К сожалению, многие из них используют один пароль на все сразу — почту, форумы, даже кошельки. Во-вторых, это защита от проблем на самом сайте. Одно дело если прямо поломают и в базу что-нибудь напишут или сотрут, тут уж все ясно. Совсем другое дело если придется долго разбираться — где зашел настоящий юзер и что-то сделал, а где укравший пароль злоумышленник от его имени действия совершал. Я вобще догадывался что люди напрямую md5 делают без изменений… но сам так никогда не делал… потому как находил это не правильным… и то, что человек называется солью… всегда так делал. Наверное когда учился программировать у меня были хорошие примеры. Вот написали бы статью, где рассказали бы о том, почему тут всё именно так. То есть, что происходит, и так можно разобраться, но из чего вырос этот алгоритм в таком виде? Когда делал подобную систему использовал в качестве соли регистрационные данные пользователя которые. В жуткой комбинации битовых масок и хешей: Если есть необходимость периодически менять засоленый пароль, можно использовать время последнего логина. Только вот что делать если пользователь решит поменять свои данные? Каждый раз запрашивать у него пароль для перегенерации? Подобное было предложено ещё в 90е, к тому моменту как я стал активным пользователем интернета г она уже применялась в популярных движках. По-крайней мере в это время я об этом узнал. Ну классика в общем. Можно sha, какая разница? Внешне хеш ни чем не отличается от обычного md5, а подобрать его практически невозможно при условии, что злоумышленник не получит таблицу. Это вопрос к автору статьи К. Я в качестве соли использую информацию из базы. Каждый разработчик проходит несколько стадий. Потом ему мало такой безопасности и он открывает для себя кучу других хеш-алгоритмов. Потом его накрывает параноей и он придумывает всякие маразмы ru2. Если разработчик выживает после всего этого, то у его проектов растут нагрузки, появляется желание оптимизировать. Тут обнаруживается, что все эти чудо алгоритмы трехэтажные отжирают нехило процессорного времени и их приходится упрощать как правило тут разработчик про соль знает все. Это может случиться до предыдущей стадии. Если нет, то неграмотный разработчик пожертвует производительностью и пройдет предыдущую стадию еще раз на этот раз грамотности прибавится. Далее разработчик начинает думать, узнаёт много о взломах и начинает уделять больше внимания проверке входящих данных. Как правило на этой стадии приходит полное понимание бесполезности шифрования паролей и полезности изучения аспектов безопасности. Если в вашем проекте есть дыры, то не важно как вы храните пароли. А если у вас утащат базу, то пароли окажутся самой не нужной информацией. Пишите безопасные проекты и соль вам не понадобится ;. А в других проектах, которые лежат на одном сервере с вашим? Человеческий фактор — это когда ошибаешься в цитатах ; С опытом приходит уверенность и в себе и в коллегах ; Команде надо доверять. Когда делаешь серьезный проект, то, как правило, на том же сервере не лежат другие проекты ;. Это не ошибка… Если проект безопасный, то и шифровать ничего не надо, так как без права доступа ни кто информацию не посмотрит. Как говорится доверяй, но проверяй. Не всегда есть возможность выделить отдельный сервер. Да и не всегда это нужно. Если ваш проект не мега-серьезный, но и на пароли пользователей можно наплевать? Вот что будет, если ты узнаешь мой пароль от хабра? Это вроде серьезный проект, тут все дрожат за свою карму. Мне наплевать на пароли пользователей. Мне проще в случае чего сгенерировать всем новые пароли и выслать на почту. Если проект серьезный, то в нем есть данные поважнее паролей, и если его будут ломать, то уж точно не ради паролей. Все, теперь мой пароль знают все! Кто-то угонит мой аккаунт? Кто-то напишет гадость от моего имени? Кому нужен мой пароль? Пароли никому не нужны! Ради паролей проекты не ломают! Там нет секретной информации. Мы знаем, что этот пользователь является администратором the Bank of America. Получаем доступ к базе данных, смотрим пароль, идем на сайт банка, о чудо! Вот так мы получили root access к зарубежному банку. Да все я понял. Это вы не понял. ВСЁ рано или поздно можно взломать. Только разница в том, что оба не виноваты в проблемах друг друга!!! У меня на всех форумах один и тот же пароль вернее два , и на вконтакте в том числе. Но на доступ к банку почему-то специальная программа для обеспечения защищенного соединения и два разных пароля, которые больше нигде не использую. И на вебмани пароль, который я не в силах запомнить, и на ЯД отдельный. У меня вообще на всех сервисах разные пароли. Все поддается взлому, но чем дольше времени на это необходимо, тем лучше. При получении некорректного запроса а ля SQL-инъекции можно админу отправить мыло, мол хакнуть пытаются. При частых попытках подобрать пароль брутфорсом — блокировать учетку. И администратор системы должен будет принять меры: Здесь рассматривается проблема rainbow таблиц. Нужно обязательно шифровать пароли. Всегда существует вероятность пасть жертвой непрямого взлома. Например, взломали хостинг, на котором крутится ваш супер-защищенный проект. Вот тут не раз скажешь спасибо себе, что уделил внимание сохраности конфедициальных данных. Из конфиденциальных данных на суперзащищенном проекте пароль имеет наименьшую ценность. Или шифровать все или ничего. Если упрут базу целиком, то о паролях будешь плакаться, только если у тебя был форум ; А если у тебя был банк то даже зашифрованные пароли придется менять ВСЕМ и останавливать работу всей организации. А потом можно смело сворачивать свою деятельность ;. Если то, если это… Пароль — средство идентификации пользователя. Буть то домашняя страничка Васи Пупкина с форумом, или серьезная банковская система. Он может использовать один и тот же пароль на разных сайтах. Правильно это или нет — судить не нам. Коли мы заставляем пользователя регистрироваться в системе по каким-либо причинам , то мы должны обеспечить сохранность и неразглашение его личной информации, даже если в базе кроме пароля уводить-то нечего, есть наша обязанность. Всё верно, но с заключительным выводом не согласен. Меня тут посетила мысль. Я администратор одной популярной интернет игры. Пароли у нас хранятся открыто и пользователи об этом в большей своей части знают. Очень часто для решения проблем приходится войти тем или иным пользователем в игру и посмотреть на проявление проблемы своими глазами. Да и лог посмотреть во время возникновения ошибки. При постоянном количестве игроков более и кластере о двадцати серверах искать проявление неизвестной ошибки в гигабайтах логов занятие не самое приятное. Так вот, о чем мы здесь. Я могу зайти в админку, взять пароль перса и войти им. А если бы пароль был шифрованным? Пришлось бы просить его у пользователя. В данном случае зашифрованный пароль открывает простор действия лжеадминам на поле социального инжиниринга ; Т. Я с полной ответственностью понимаю, что пользователь может быть дураком и отдать свой пароль, но это уже его проблемы. Если у вас есть доступ к БД, что мешает хеш его пароля на свой, а по завершении рабо вернуть обратно? А вы когда-нибудь работали с распределенной архитектурой и кешированием данных? Может мне еще проще будет написать один раз админку, которая без авторизации будет вводить меня в игру под любым пользователем? По большому счету — да, будет лучше написать еще один скрипт. Когда пользователь авторизуется в системе, система в этот момент что-то пишет в cookie или хранит в сессии , что мешает сделать скрипт, который из админа сделает любого пользователя? Не зря в той же Windows Server админ не может посмотреть чей-либо пароль, а может только сменить. В вашей же ситуации если пользователи используют один пасс и на игру и на мыло вам ничего не мешает посмотреть его личную переписку. Скрипт мешает сделать то, что придется выкинуть пользователя из игры, а это обычно не приятно. Еще придется учесть много нюансов по подмене сессии и много чего еще. В итоге этот способ окажется невыгодным. У меня миллион пользователей, читать личную переписку каждого как-то не с руки. И потом я не фетишист и это не доставит мне удовольствия. Пока игрок в игре, второй раз его не пустят. В смысле пока игрок в игре, под его аккаунтом с другого компьютера не войдешь. В рамках данного проекта это правильно. Наверно это и есть будет самый лучший случай. Я в в своем проекти так и делал что рут имел возоможность зайти как любой пользователь. Это не всегда хорошо и не всегда удобно. Хотя на первый взгляд выглядит просто супер. Ух, сначала написал ответ, а затем прочитал комменты ниже. Ну да уж повторюсь тогда. В большей свое части? А если вашу базу получат третьи лица? Кто дальше будет гарантировать безопасность паролей? Из миллиона пользователей будут искать Васю Пупкина, чтобы прочитать его секс по емейлу. Я верю, что вы не будете читать почту Пупкина, но меня волнует наличие такой возможности. Отсюда следует, что ваш безопасный проект тоже, а кто гарантирует, что, взломавший, не любопытнее вас. Проект хранящий пароли пользователей и есть НЕбезопасный проект. Посмотрите вокруг в каком вменяемом ПО хранятся открытые пароли? Мой или ваш, может быть и не нужны. А вот пароль Сары Пелин не уверен, что так пишется пригодился ведь кому-то. В системе Yahoo дырка дает возможность попасть в ящик в обход пароля ; Как ни соли пароль, а его взлом вопрос времени и ресурсов. А вот тут — совсем уж предел игр разума. Вообщем — за обработку текста в худшую сторону — жирный кол. Я обычно делаю так: А зачем так много? Не думаю что md5 критично тяжелый. Тяжелее его любая выборка из базы. Возможно для ваших проектов он не критично тяжелый, и, конечно, выборка из базы тяжелее. Но, я к тому, что применение его несколько раз не увеличивает стойкость вашего алгортима, разве что запутывает и усложняет перебор: Коль уже пишите про криптографию надо педантично относиться к терминам. А используя только вычислительные мощности компьютера невозможно. Нам доступны только псевдослучайные последовательности. А значит рассчитывать, что вместо md5 противник подумает, что у вас sha — глупо. Это ведь веб-разработка ;-. Хорошая статься, вот только заголовок подкачал. Если пароль использовать слишком часто, то он будет потрёпаный и засаленый. А добавление соли по-русски, насколько я понимаю, правильнее будет называть засолкой. Поправьте меня если я неправ, но SHA — хеш длиной 40 символов, а md5 — 32, или и бит соответственно. Это не только моя ошибка, посмотрите внимательно на код автора. Я, к примеру, использую встроенный механизм засаливания в cakePHP. К сожалению, я сам просмотрел код автора бегло, тогда мой предыдущий комментарий вообще не в тему. Именно это и имелось в виду. Это классический алгоритм использования соли. Подвиды MD5, в т. Захотят получить доступ — получат. Так к чему лишние головоломки? Больше… для до — энтерпрайз, приложений. У меня такой вопрос, если я правильно понимаю что такое rainbow таблица: Почему нельзя найти пароль множество паролей для этого hash в rainbow таблице и убрать из этого пароля паролей salt. Всё дело в коллизиях то есть это когда при разных, поданных на вход алгоритма, данных получается один и тот же результат в нашем случае — md5-хэш. А вообще, даже зная соль, для неё необходима генерация своих rainbow-таблиц. Даже если использовать Hybrid Rainbow таблицы то добавлением соли, состоящей из большого числа случайных символов, можно также свести на нет вероятность его отыскания. Не поленился и прочитал таки эту главу: Во-первых, на вход алгоритма md5 всегда поступают блоки по бит т. Но посмотрим с другой стороны, что же практически необходимо сделать, что бы воспользоваться этим недостатком. Что это означает в теории: К тому же соль мы дописываем в начало сообщения, а не в конец. Теперь вернёмся с небес на землю и от теории перейдём к практике. Авторы сами указывают на то, что для реализации данного недостатка необходима система аутентификации, при которой злоумышленник может дописывать в исходное сообщение свой текст. Но для того, что бы это реализовать в веб-проектах, необходимо сломать веб-сервер и перехватывать сообщения на уровне исполнения функции md5 в PHP. Но если уж дело дошло до взлома сервера и получения к нему неограниченного доступа ну или хотя бы перехвата сервисных сообщений интерпретатора PHP , то тут вряд ли помогут какие-либо ухищрения в шифровании информации и дальнейшие изыскания становятся бессмысленными ;. Хотя все широко распространенные на данный момент md5, sha — блочные. Hybrid Rainbow таблицы составляют слова, которые могут быть паролем не из отдельных символов как в классических , а с помощью словарей, что позволяет сделать по объему почти такие же таблицы, но уже отыскивать пароле и более 8-ми символов. Понятно, что если соль будет состоять из полной белеберды, то и не один словарь её воспроизвести не сможет. Если не хочешь чтобы твой проект взломали, то без танцов с бубнами не обойтись! Если я не ошибаюсь сначало надо БД спереть, чтобы было по чему ломать. Получается, что выделить соль из такого хеша — как 2 пальца? Как я говорил в статье, для этой соли ещё нужно сгенерировать свою Rainbow-таблицу — а это дело неблагодарное: Предположим, на сервере мы научились хранить пароль так, что восстановить его нельзя. Вопрос — а как этот пароль проверять? Если клиент передаёт пароль в открытом виде — пароль можно перехватить. Если добавить salt и на клиентской стороне, то клиент должен получить salt, сложить со своим паролем и результат передать на сервер. Там сравнить с сохранённым вариантом. Но если перехватить переданный засальтованный хэшированный пароль — результат тот же, что и в первом случае, то есть надо обеспечить как -то уникальность salt для каждого запроса пароля. Есть ли в такой схеме недостатки? Недостатки тут разве что в сложности: А в целом, Вы описали логику аутентификации по Kerberos: Да, тут встаёт вопрос, может ли он это после обработки дописывать в ответ серверу или, грубо говоря, полностью сэмитировать сессию в Kerberos ещё помимо проверок паролей идёт шифрование по открытым ключам и выдача всяких посторонних значений для идентификации пользователей и их сессий — не буду подробно расписывать т. Но зачем всё усложнять — передавайте пароль по https и никаких лишних ухищрений делать не придётся. Не панацея, конечно, но усложнять веб-системы подобным образом — не самый разумный подход, помоему: Только сейчас браузеры начали поддерживать больше одного на ip адресе, а адресов не хватает. Да и производительность падает. Сейчас Вчера Неделя Как рассказать о современной веб-разработке путешественнику во времени из года 16,1k Нет, у меня нет сторонних проектов, чтобы вам показать 28,7k Вашим пользователям не нужны пароли 40k Интересные публикации Хабрахабр Geektimes. Главы 7, 8, 9, 10 GT.

Купить закладки трамадол в Нолинске

что такое salt

Купить Гашиш в Орск

Безопасное хэширование паролей

Способ доменной плавки

Хеширование пароля с помощью md5 и соли

Купить ЛЁД Дальнегорск

Соль (криптография)

Купить Иней Чухлома

«Соленое» хеширование паролей: делаем правильно

Лак для бетона, плитки, камня, кирпича

Из чего делают амфивитамин

Есть ли смысл в соли из хеша пароля?

Купить Герман Волгоград

md5() + соль. Хранение паролей в базе данных

Купить Ганджа Ковылкино

Соль (криптография)

Винтовые нарки

Соль (криптография)

Купить Порох Саяногорск

Есть ли смысл в соли из хеша пароля?

Кристаллы наркота

Report Page