ПредишенСледващото

Съхраняване на пароли в уеб приложението

Има много примери и материали, които показват как да съхранявате паролите в базата данни.

Често е описано методи нестандартни и склонни към напукване. В мрежата има много казуси, които показват как да го обърка.

На практика системи, които използват за достъп до данни на пароли по никакъв начин не трябва да разчитат на това, което потребителят създателите "комплекс" паролата, като например, когато се регистрирате. "Сложно е" парола за нападателя, а не на потребителя. Също така смятат погрешно, системата им за най-много безопасна и сигурна, че нападателят няма да бъде в състояние да се изсере на маса или файл с пароли или хашиш. От това следва, че е необходимо, че дори и в подготовката на такъв сметище, атакуващият не можех да направя с него, което означава, че информацията е безполезна за него.

Много често срещана грешка е бързо хешове. Например, MD5 - хеширане алгоритъм е много бърз, но както всички SHA алгоритми. Така например, на NVIDIA GeForce 8800 можете да генерирате 200 милиона MD5 хешове в секунда. От това следва, че използването на бързи алгоритми за хешване, дори и с едно докосване на "сол" не е ефективна. Обичайната бруталната сила може да бъде сравнително бързо вземете хеша, и по този начин паролата на потребителя. При тази система за съхранение на пароли като md5 ( "парола") - може да се разглежда като отворена за нападателя.

Така например, на сървъра, за да се изчисли една хеш алгоритъм, използващ md5, средно, изисква 10mksek. Паролата не се съхранява в базата данни като хеш на въведената стойност на потребител (md5 ( "парола")). Нападателят някак си влизания на бази данни и пароли от хешове, които се опитват да ги разчете. дешифриране алгоритъм е много проста - твърде много. Ясно е, че за да се изчисли хиляди хешове необходими 10mksek * 1000 = 10 милисекунди, за един милион 10mksek * 1000000 = 1 секунда и т.н. От това следва, че по-бързо алгоритъм за разбъркване, за по-бързо на нападателя ще избере най-големият брой пароли за по-малко време. От изложеното по-горе Sanov ясно, че по-бавен алгоритъм за изчисляване на функцията за хашиш, толкова по-надеждни.

Blowfish - криптографски алгоритъм изпълнява симетричен блок криптиране. Тя консумира сравнително голямо количество изчислителни ресурси и сега се счита за доста добра криптографски алгоритъм за криптиране на пароли. В достъпно PHP за изпълнение на един прост разговор за крипта (). Подобна целия параметър претегляне се извършва по такъв начин, че груба сила атака е доста бавен, и изчислението на хашиш за потребителя невидимо течение на времето. 200-300 мс в производството на сървъра е достатъчно за това.

За по-устойчиви хеш се добавя сол. Sol - дума, фраза, на случаен принцип температура стойност динамични мутации както на нещо, което е добавено произволно за формиране на крайната хеш. Например, md5 ($ парола. MD5 ($ сол)). Всяка парола трябва да се сформира с уникален хеш сол. Целта на dobavlneniya на сол - увеличаване на размера на речника атака груба вида сила на речника или таблици дъга. Сол, който се използва заедно с Blowfish, не е задължително трябва да бъдат устойчиви на криптографски случаен низ. Достатъчно е да се използва сол с псевдо-случайни числа, това е достатъчно, за да се предотврати изборът на паролата на таблици дъга.

Ресурси в рамките на настоящото паролата компютърна система познае skrost използвайки груба сила, се превръщат по-бързо. Ако вашият софтуер е все още използват старите парола хеширане алгоритмите, може би има смисъл да се мисли за промяна на алгоритъма.

Използването крипта () в PHP съхранение парола

крипта () връща низ хешираното получени чрез стандартен UNIX алгоритъм, базиран на DES, или друг алгоритъм, налични в системата.

Сол определя по метода на хеширане. За Blowfish криптиране, форматът е: "$ 2а $", параметър претегляне на две цифри, "$" и 22 номера от азбуката "./0-9A-Za-z". Използването на други символи на сол води върне празен низ. Тежест параметър на двата номера е двоичен логаритъм на брояча на повторения на основната хеш алгоритъм, базиран на Blowfish, и трябва да бъде в диапазона 04-31, стойности извън този обхват ще доведе до крипта () недостатъчност. Например:

Моля, имайте предвид, че първите 29 знака от стойността върната е същото като солта.

При добавяне на което всеки никаква промяна в сол:

И съответно, ако резултатът от функцията за крипта да кандидатства за вписване като сол, за един и същи ред, в резултат на изпълнението ще бъде една и съща сол:

Принципите на опазване на паролата си във връзка с криптата:

- в единствения магазин за плочи парола хеш и сол, паролата явно не се уточнява;

- стойността върната от криптата на изпълнение функция - сол с heshom;

- крипта ignoriouet допълнителни символи в низ соли;

Създаване на хашиш

Подкрепете проекта - споделете линка, благодаря!