Mały przykład:
Hasło: 12345
Jego hash MD5: 827ccb0eea8a706c4c34a16891f84e7b
Hasło: 12345słoneczkoJestNaDole
(gdzie "słoneczko..." jest solą)
Hash całości: 90a39c12790b33413ae37249ef9b1ac6
Lepiej? Na oko tak, ale nie do końca. Słowa słownikowe wciąż występują i teoretycznie taka sól jest w jakiś sposób możliwa w wystąpieniu.
A co jeśli damy np. taką sól: xGwtdhT537$5#943293-2HF25SDF&^%sh@g?
Tego raczej w słowniku już nie będzie, w połączeniu z naszym hasłem, czyli 12345 da nam to: 12345xGwtdhT537$5#943293-2HF25SDF&^%sh@g, co jako hash da nam:
040b6f4721808f569098ee6dd19e2c8a.
Zaznaczam tutaj jedną ważną sprawę - operujemy jedynie na MD5 i sprawę drugą - takiego hasła w tablicy nie znajdziemy, oraz trzecią - MD5 to dość słaby algorytm.
Pomińmy teraz sprawę drugą i zostawmy jedynie pierwszą i trzecią. Co nam zostaje? Zostaje nam mimo wszystko słaby hash, mimo iż teoretycznie "na oko" niemożliwy do złamania, to jednak możliwy i to jak najbardziej techniką brute-force, która notabene łączy się z tablicami. Kwestia czasu (obecnie dość małego) i mocy obliczeniowej. W dobie płatnych za wynajem chmur obliczeniowych dość krótki czas na złamanie przez podstawianie. Plus dochodzi nam jeszcze jeden aspekt - sprawa kolizji. Matematycznie rzecz biorąc, może zdarzyć się, że dwa różne hasła mogą dać identyczną funkcję skrótu. Dodajmy jeszcze jeden ważny aspekt - każde złamane hasło zostanie dodane do tablicy. Na podstawie ogarniętych haseł można mniej więcej określić, oddzielić część "jawną" hasła od jego soli. Wszystko to jedynie kwestia mocy obliczeniowej.
Jak żyć?
Jak możemy więc zwiększyć bezpieczeństwo (wyobrażając sobie, że pracujemy wciąż na złamanym MD5)? Możemy dokładać do pieca. W jaki sposób?A czemu sól nie miałaby być generowana dynamicznie? A nie jako stała wartość?
Wyobrażmy sobie teraz taką opcję: użytkownik podczas rejestracji podaje swoje hasło - hashujemy je i dodajemy do bazy. Co stoi na przeszkodzie, żeby do tego hasha nie dodać jeszcze hasha zrobionego z jego emaila połączonego z zahashowanym adesem IP z jakie się rejestrował i zapisaniu tego IP swoim tylko znanym algorytmem szyfrowania, a następnie podczas logowania - użytkownik loguje się, a nasza funkcja odwraca proces? Dodatkowo dodać do tego kilka elementów losowych, zapisanych przy użytkowniku (bo muszą być zapisane, ale niekoniecznie nikt nie musi wiedzieć, które to aspekty). Pole do popisu jest duże. Zaznaczam, że rozmawiamy jedynie o starym MD5, ale tyczy się to też mocniejszych algorytmów.
To tak tytułem eksperymentu - krótki wpis, żeby zobaczyć jakie macie pomysły, bo nic tak nie uczy jak własne podejścia.
Zapraszam do dyskusji, a niebawem obszerniejszy artykuł w tym temacie.
Witaj,
OdpowiedzUsuńA co sądzisz o takim połączeniu jak: MD5(SHA1("login+Sól+hasło")) ?
MD5 wogole nie powinno byc wykorzystywane do hashowania hasel. W przedstawionym przez Ciebie przykladzie i w lustrzanym (czyli SHA1(MD5(...)) ) istnieje realne ryzyko kolizji. Jeżeli już chcesz łączyć funkcje skrótu żeby w jakiś sposób utrudnić ich odwracanie użyj hash('sha1',hash('sha512','login+Sól+hasło'))
UsuńA jak sprawa ma się z bcryptem? Tam sól tworzona jest automatycznie i zapisywana zaraz obok hashowanego ciągu? Czy ten algorytm jest bezpieczny?
OdpowiedzUsuńPodpinam się - a co z bcrypt i password_hash? Czyli ogólnie rzecz ujmując: jak oceniasz bezpieczeństwo standardu MCF? ;)
UsuńTrzeba uważać z tym "przesoleniem" , gdyż tak jak mówisz dla mało doświadczonej osoby może być to niezbyt jasne. Tak czy siak fajny wpis ;) Pozdrawiam.
OdpowiedzUsuńDla osoby początkującej to proponowałbym podchodzić do tego "solenia" z pewną dozą ostrożności bo można szybko przedobrzyć. Ciekawy wpis :)
OdpowiedzUsuńTen komentarz został usunięty przez autora.
OdpowiedzUsuńthanks for your information visit us at PHP Training in Ameerpet
OdpowiedzUsuńThis site is help full for every person and easily get money through bitcoin atm card . Please visit this site for bitcoin atm card ranking.you can change any money into another currency in any where in the world.
OdpowiedzUsuńIn order to stay connected to the world around you, mobiles were invented and to use it you need to keep recharging it with balance. The basic concept of top up phone with bitcoin money is quite different from the paper money.
OdpowiedzUsuńHere you will find permanent seo solutions to your web project, You can save cost to find more customers online with organic search engine marketing techniques.
OdpowiedzUsuńVery nice blog post. I absolutely love this site. Thanks!
OdpowiedzUsuńPHP Classes in Bangalore
Web Designing Training in Bangalore
UI/UX Design Courses in Bangalore
OdpowiedzUsuńNice article i was really impressed by seeing this article, it was very interesting to learn PHP and it is very useful for me.Thanks for sharing this wonderful content.its very useful to us.I gained many unknown information, the way you have clearly explained is really fantastic.
DevOps Training in Chennai
DevOps Online Training in Chennai
DevOps Training in Bangalore
DevOps Training in Hyderabad
DevOps Training in Coimbatore
DevOps Training
DevOps Online Training
just admiring your work and wondering how you managed this blog so well. It’s so remarkable that I can't afford to not go through this valuable information whenever I surf the internet.keep up!!
OdpowiedzUsuńJava training in Chennai
Java Online training in Chennai
Java Course in Chennai
Best JAVA Training Institutes in Chennai
Java training in Bangalore
Java training in Hyderabad
Java Training in Coimbatore
Java Training
Java Online Training
Thank you for the information. It is very useful and informative
OdpowiedzUsuńangular js course in chennai
angular course in chennai
angular js online course in chennai
angular js course in bangalore
angular js course in hyderabad
angular js course in coimbatore
angular js course
angular js online course
I am feeling grateful to read this.you gave a nice info for us.please update more.
OdpowiedzUsuńWeb Designing Training in Chennai
Web Designing Course in Chennai
Web Designing Training in Bangalore
Web Designing Course in Bangalore
Web Designing Training in Hyderabad
Web Designing Course in Hyderabad
Web Designing Training in Coimbatore
Web Designing Training
Web Designing Online Training
Excellent Blog! I would Thanks for sharing this wonderful content.its very useful to us.
OdpowiedzUsuńThis is incredible,I feel really happy to have seen your webpage.I gained many unknown information, the way you have clearly explained is really fantastic.keep posting such useful information.
AWS Course in Chennai
AWS Course in Bangalore
AWS Course in Hyderabad
AWS Course in Coimbatore
AWS Course
AWS Certification Course
AWS Certification Training
AWS Online Training
AWS Training
Excellent Blog! I would Thanks for sharing this wonderful content.its very useful to us.
OdpowiedzUsuńacte chennai
acte complaints
acte reviews
acte trainer complaints
acte trainer reviews
acte velachery reviews complaints
acte tambaram reviews complaints
acte anna nagar reviews complaints
acte porur reviews complaints
acte omr reviews complaints
Very interesting blog.Selenium testing important in IT industry. Many blogs I see these days do not really provide anything that attracts others, but believe me the way you interact is literally awesome..keep up!!
OdpowiedzUsuńpython training in bangalore
python training in hyderabad
python online training
python training
python flask training
python flask online training
python training in coimbatore
One of the first steps to become rich overnight you need to do is have a vision and set goals. If your vision is to be independently wealthy within five years, you then have to take that and break it down into smaller time frames and goals, like a goal after one year, then after year two and so on.thanks lot!!
OdpowiedzUsuńAndroid Training in Chennai
Android Online Training in Chennai
Android Training in Bangalore
Android Training in Hyderabad
Android Training in Coimbatore
Android Training
Android Online Training
Superb blog post! And this blog clearly explain about for useful information. I would Thanks for sharing this wonderful content.its very useful to us. Keep it up!
OdpowiedzUsuńSoftware Testing Training in Chennai
Software Testing Online Training in Chennai
Software Testing Courses in Chennai
Software Testing Training in Bangalore
Software Testing Training in Hyderabad
Software Testing Training in Coimbatore
Software Testing Training
Software Testing Online Training
thank you lots so much helpful
OdpowiedzUsuńCyber Security Training Course in Chennai | Certification | Cyber Security Online Training Course | Ethical Hacking Training Course in Chennai | Certification | Ethical Hacking Online Training Course | CCNA Training Course in Chennai | Certification | CCNA Online Training Course | RPA Robotic Process Automation Training Course in Chennai | Certification | RPA Training Course Chennai | SEO Training in Chennai | Certification | SEO Online Training Course
OdpowiedzUsuńAre you looking for the best Azure training in Chennai? Here is the best suggestion for you, Infycle Technologies the best Software training institute in Chennai to study Azure platform with the top demanding courses such as Graphic Design and Animation, Cyber Security, Blockchain, Data Science, Oracle, AWS DevOps, Python, Big data, Python, Selenium Testing, Medical Coding, etc., with best offers. To know more about the offers, approach us on +91-7504633633, +91-7502633633.
mmorpg oyunlar
OdpowiedzUsuńinstagram takipci satın al
tiktok jeton hilesi
Tiktok Jeton Hilesi
antalya saç ekimi
referans kimliği nedir
İnstagram Takipçi Satın Al
TAKİPCİ SATIN AL
metin2 pvp serverlar
çekmeköy vestel klima servisi
OdpowiedzUsuńataşehir vestel klima servisi
kadıköy samsung klima servisi
üsküdar alarko carrier klima servisi
tuzla lg klima servisi
tuzla alarko carrier klima servisi
tuzla daikin klima servisi
çekmeköy toshiba klima servisi
çekmeköy beko klima servisi
Success Write content success. Thanks.
OdpowiedzUsuńcanlı poker siteleri
betturkey
betmatik
deneme bonusu
kıbrıs bahis siteleri
canlı slot siteleri
betpark
فحص فلل بالقطيف
OdpowiedzUsuńفحص فلل بالاحساء
bilecik
OdpowiedzUsuńbüyükçekmece
demre
düzce
esenler
38ZG
ağrı
OdpowiedzUsuńmuş
mersin
afyon
uşak
1QP
شركة عزل اسطح بالدمام KTPskI
OdpowiedzUsuń<a href="https://elasraa.com/%d8%b4%d8%b1%d9%83%d8%a9-%d9%85%d9%83%d8%a7%d9%81%d8%ad%d8%a9-%d8%a7%d9%84%d9%86%d9%85%d9%84-%d8%a7%d9%84%d8%a7%d8%a8%d9%8a%d8%b6-%d8%a8%d
OdpowiedzUsuń