Врста лозинке коју треба да креирате има много везе са начином на који се лозинка чува.

Пре много година, насумичне лозинке од осам знакова које се састоје од великих и малих слова, симбола и бројева било је заиста тешко разбити. У неким случајевима, такве лозинке су биле потребне годинама да се разбију.

Захваљујући данашњој променљивој технологији и машинама које се могу изнајмити, ово време је сведено на сате. Али како се те лозинке уопште чувају?

Како се лозинке чувају на мрежи

Системи не чувају корисничке лозинке директно у датотекама или базама података, јер нападачи могу преузети базу података у којој системи чувају лозинке. Уместо тога, системи шифрују корисничке лозинке, а нападачи наилазе на шифровану верзију сваке лозинке.

Постоје неки алгоритми које системи користе за шифровање лозинки. Један од ових алгоритама је симетрични алгоритам. Симетрични алгоритам је врста шифровања где можете користити исти кључ и за шифровање и за дешифровање. Кључ који ћете користити за шифровање података је исти и за шифровање и за дешифровање. Сигурност симетричних алгоритама носи одређене ризике јер постоји само један кључ за дешифровање. Из тог разлога, системи углавном не користе симетричне алгоритме за шифровање лозинке.

instagram viewer

Генерално, метод који системи користе за шифровање су хеш алгоритми. Хаш алгоритми служе за верификацију и представљање интегритета података, а не за шифровање података. Хаш алгоритми претварају податке у хеш фиксне величине. Ови хешови обично представљају јединствени хеш података.

Захваљујући хеш алгоритму, ако је нападач преузео базу података лозинки, нападач не може приступити лозинки уназад. Овде постоји веома важна нијанса на коју треба обратити пажњу. Теоретски, нападач који компромитује систем који користи исти хеш алгоритам за све комбинације лозинки може да упореди добијене резултате. Ако нападач произведе исту вредност као резултат ових поређења, нападач је открио која је отворена верзија лозинке. Овај метод се заснива на покушајима и грешкама, а овај облик напада јесте обично се назива нападом грубе силе.

Почетком 2000-их могло би проћи стотине година да се испробају све комбинације за лозинке од 8 знакова шифроване популарним алгоритмима за хеширање. Наравно, ово не укључује врло једноставне комбинације као што су "123456" или "мипассворд" у овом скупу. Са развојем данашњих софтверских и хардверских технологија, начин разбијања лозинки се такође доста променио.

Утицај ГПУ-а у настајању

Могућности паралелне обраде података графичких процесора (ГПУ) временом су се побољшале. ГПУ-ови нису у стању да обављају свестране операције попут ЦПУ-а опште намене. Дакле, иако их има толико језгара и паралелне процесорске снаге, да их нема смисла користити за скоро сваки проблем као што је ПРОЦЕСОРИ.

Ипак, могуће је извршити неке хеш алгоритме који се користе за лозинке прилично ефикасно на ГПУ-у. Израчунати хешови у секунди које можете постићи са традиционалним ЦПУ-има су изузетно порасли са новим ГПУ платформама.

Да бисте добили идеју, испитајте хеш бројеве у секунди хеш алгоритама као што су НТЛМ, МД5 и СХА1 у табели испод. За сада је довољно знати да су ови алгоритми само хеш алгоритам. Да бих направио ову табелу, користио сам кластер систем који се састоји од 25 АМД Радеон ГПУ-ова.

Алгоритам

Хеширања у секунди

НТЛМ

350.000.000.000

МД5

180.000.000.000

СХА1

63.000.000.000

СХА512Црипт

364.000

Бцрипт

71.000

Сцрипт

33.000

Као што видите, са таквим системом можете генерисати НТЛМ хеш 350 милијарди пута у секунди. То значи да можете испробати све комбинације лозинке од 8 знакова за мање од 6 сати. Штавише, хардвер у овом примеру припада годинама уназад. Замислите данашњу моћ разбијања лозинки.

Шта би требало да ураде програмери софтвера?

Начин на који би програмери требало да иду је прилично једноставан: требало би да преферирају алгоритме којима је потребно више времена да израчунају хеш вредности приликом шифровања лозинки. Програмери треба да науче не само о перформансама алгоритма који користе на ЦПУ-у, већ ио томе колико је отпоран на ГПУ свет.

Ако програмери раде са софтверским оквиром који се такође бави процесима шифровања лозинке као што су Дјанго, Руби он Раилс, и Спринг Сецурити, требало би да провере да ли су у оквирима донете праве одлуке у погледу безбедност.

На пример, Измислити, једна од најчешће коришћених библиотека за корисничке операције у Руби он Раилс, користи Бцрипт као подразумевани хеш алгоритам. Такође вам омогућава да користите други метод као хеш алгоритам. Бцрипт алгоритам је поуздан јер је и даље потребно много времена да се ГПУ поквари.

Укратко, што дуже траје израчунавање хеш вредности, то сте сигурнији.

Колико знакова треба да има ваша лозинка?

Сваки додатни знак који користите ће геометријски повећати број покушаја и грешака потребних за пробијање ваше лозинке и безбеднију лозинку.

Размотримо ову ситуацију кроз два различита сценарија. Размотрите вредности у горњој табели за НТЛМ хеш алгоритам и замислите да ћете покушати да провалите лозинку. Замислите да циљате лозинке од осам знакова или више.

Број знакова

Велика/мала слова и бројеви

Велика/мала слова, бројеви и специјални симболи

8

мање од 1 минута

2 минута

9

2 минута

2 сата

10

2 сата

1 недеља

11

6 дана

2 године

12

1 година

200 година

13

више од 100 година

више од 1000 година

Када прегледате табелу, можете видети да је употреба лозинке од најмање 12 знакова безбедна када користите све комбинације великих/малих слова, бројева и специјалних симбола. Ако не користите посебне симболе, испада да морате да користите 13 знакова као сигурну дужину лозинке. Ако бисте користили Бцрипт хеш метод уместо НТЛМ хеша у овом систему, 8 карактера би било довољно. Међутим, немате прилику да знате помоћу које методе хеширања систем који унесете преко веба чува вашу лозинку. Зато треба размотрити све могућности.

Главни проблем за програмере софтвера је то што је скоро немогуће убедити кориснике да имају минималну лозинку од 12 знакова. Данас се може рећи да је стопа коришћења лозинке ове дужине ниска. Дакле, према сценарију коришћења развијеног система, биће потребно пронаћи средину која ће бити прихваћена од стране корисника. да побољшају своју сигурност лозинки.

последњи предлог за програмере је да провере не само минималну дужину већ и максималну дужину уноса који долазе кроз обрасце које сте представили кориснику. Нарочито када омогућите употребу хеш алгоритма који се споро израчунава као што је Бцрипт ради безбедности у сврху, можете наићи на одређене ризике ако не контролишете максималну дужину лозинке коју је унео корисник. На пример, нападачи могу да изврше нападе испробавајући десетине лозинки од 100 хиљада карактера истовремено са неким посебно припремљеним захтевима. У том случају, велика је вероватноћа да ће ваш систем престати да реагује на друге кориснике.

Савет крајњим корисницима

Нека дужина лозинке буде најмање 12 знакова и обавезно укључите комбинације великих и малих слова, бројева и симбола. Никада не заборавите да системи који чувају вашу лозинку могу бити хаковани, а ваше информације могу бити злоупотребљене. Не можете знати које алгоритме систем користи за шифровање ваше лозинке, тако да је у потпуности на вама да предузмете мере предострожности и креирате јаке лозинке.