Шифровање, хеширање, сољење – у чему је разлика?

Шифрирање, хеширање, сољење - у чему је разлика

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

Укратко, шифрирање укључује кодирање података тако да њему могу приступити само они који имају кључ. То га штити од неовлашћених страна.

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

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

Шта је шифровање?

Да поједноставимо, шифровање је процес коришћења кода како би се другим странама онемогућило приступ информацијама. Када су подаци шифровани, приступити им могу само они који имају кључ. Све док се користи довољно компликован систем и ако се правилно користи, нападачи су спречени да виде податке.

Подаци се шифрују алгоритмом за шифровање, који су такође познати као шифри. Једна од најважнијих разлика између шифрирања и хеширања (о којој ћемо касније доћи) је да је шифровање дизајнирано тако да иде у оба правца. То значи да када је неко шифрирано кључем, може се и дешифровати.

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

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

Такође видети: Објашњени су уобичајени типови шифрирања

Уобичајени алгоритми за шифровање

  • Цезар шифра - Ово је једноставан код који укључује помицање сваког слова на одређеном броју мјеста. Ако Цезаров шифра има помак од три, сваки „а“ ће постати „д“, сваки „б“ ће постати „е“, сваки „ц“ ће постати „ф“ и тако даље. Име је добио по Јулију Цезару који је прва особа забележена да је користила шему.
  • АЕС - Адванцед Енцриптион Стандард је сложен алгоритам симетричног кључа који обезбеђује значајан део наше модерне комуникације. То укључује бројне софистициране кораке и често се користи за шифрирање података у ТЛС-у, апликацијама за размјену порука, у мировању и у многим другим ситуацијама. Овдје дубље заронимо у АЕС енкрипцију.
  • 3ДЕС - Трипле ДЕС заснован је на алгоритам ДЕС. Када је растућа снага рачунара чинила ДЕС несигурним, 3ДЕС је развијен као ојачани алгоритам. У 3ДЕС-у се подаци изводе преко ДЕС алгоритма три пута уместо само једном, што отежава пуцање. 3ДЕС се може користити за многе исте ствари као и АЕС, али сигурним се сматрају само одређене имплементације.
  • РСА - Шифра Ривест-Схамир-Адлеман-а била је први облик криптографије широког коришћења са јавним кључем. Омогућује ентитетима да безбедно комуницирају чак и ако се нису срели или имали прилику да размењују кључеве. Може се користити у великом броју различитих сигурносних протокола, као што су ПГП и ТЛС. Овде имамо детаљни водич за РСА шифровање.
  • ЕЦДСА - Алгоритам дигиталног потписа Еллиптиц Цурве је варијанта ДСА која користи криптографију елиптичне криве. Као алгоритам јавног кључа, може се применити у сличним ситуацијама као и РСА, мада се ретко спроводи због неких безбедносних проблема.

Шифрирање у акцији

Да бисмо вам дали идеју како шифровање функционише у пракси, користићемо Цезар шифру као пример. Ако желимо да шифрирамо поруку од "Хајде да једемо„Са сменом од три,„Л"Би постао"О“,„е"Би постао"х" и тако даље. То нам даје шифровану поруку о:

Охвд хдв

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

Један пример је АЕС. Ако за шифрирање „128-битног АЕС мрежног калкулатора користимо интернетски калкулатор“Хајде да једемо"Са кључем од"1234“, То нам даје:

ФеиУВФнИпб9д0цбКСП / Ибрв ==

Овај шифровани текст се може дешифровати само кључем „1234“. Ако бисмо користили сложенији кључ и задржали га приватним, могли бисмо размотрити податке заштићене од нападача.

Шта је хешинг?

Криптографске хасх функције су посебна врста једносмјерног израчуна. Они узимају низ података било које величине и увек дају излаз унапред одређене дужине. Тај се излаз назива хасх, хасх вредност или превара порука. Пошто ове функције не користе тастере, резултат за дати унос је увек исти.

Није важно је ли ваш унос целовит Рат и мир или једноставно два слова, резултат хасх функције увек ће бити исте дужине. Хасх функције имају неколико различитих својстава која их чине корисним:

  • Оне су једносмерне функције - То значи да не постоји практичан начин да се утврди шта је изворни унос из дате вредности хасх-а.
  • Мало је вероватно да два улаза имају исту хасх вредност - Иако је могуће да два различита улаза дају исту хеш вредност, шансе да се то догоди су тако мале да се о томе не бринемо. У практичне сврхе, хасх вредности могу се сматрати јединственим.
  • Исти улаз увек даје исти резултат - Сваки пут када исте податке ставите у дату хасх функцију, она ће увек испоручивати исти излаз.
  • Чак и најмања промена даје потпуно другачији резултат - Ако се чак и један знак измијени, вриједност хасх-а бит ће знатно другачија.

За шта се користе хешеви?

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

Они су основна компонента дигитални потписи, који су важан аспект верификације аутентичности и интегритета на Интернету. Хасх коди за потврду идентитета поруке (ХМАЦ) такође користе хасх функције за постизање сличних резултата.

Криптографске хасх функције могу се користити и као нормалне хасх функције. У тим сценаријима они могу дјеловати као контролни збројеви за провјеру интегритета података, као алгоритми за отиске прстију који елиминирају дупликат података или за стварање хасх табела за индексирање података.

Уобичајене криптографске хасх функције

  • МД5 –Ово је хасх функција коју је 1991. године први објавио Рон Ривест. Сада се сматра несигурним и не би га требало користити у криптографске сврхе. Упркос томе, и даље се може користити за провјеру интегритета података.
  • СХА-1 - Алгоритам 1 сигурног освежавања користи се од 1995. године, али се не сматра сигурним од 2005. године, када је дошло до великог броја успешних напада судара. Сада се препоручује уместо тога СХА-2 или СХА-3.
  • СХА-2 - Ово је породица хасх функција која делују као наследници СХА-1. Ове функције садрже бројна побољшања, која их чине сигурним у широком распону апликација. Упркос томе, СХА-256 и СХА-512 су рањиви на нападе продужења дужине, тако да постоје одређене ситуације у којима је најбоље применити СХА-3.
  • СХА-3 - СХА-3 је најновији члан породице алгоритма сигурног хешхизма, али изграђен је сасвим другачије од својих претходника. У овој фази још увек није заменио СХА-2, већ криптографима једноставно даје другу опцију која може да пружи побољшану сигурност у одређеним ситуацијама.
  • РИПЕМД - РИПЕМД је још једна породица функција коју је развила академска заједница. Заснована је на многим идејама из МД4 (МД5-ов претходник) и није ограничена ниједним патентима. РИПЕМД-160 се још увек сматра релативно безбедним, али није имао много широко усвајање.
  • Вхирлпоол - Вхирлпоол је хасх функција из породице шифра квадратних блокова. Заснован је на модификацији АЕС-а и није подложан никаквим патентима. Сматра се сигурном, али нешто споријом од неких њених алтернатива, што је довело до ограниченог усвајања.

Хасхинг функције у акцији

Сада када разумете шта су хасх функције, време је да их примените у пракси. Ако ставимо исти текст „Хајде да једемо"У СХА-256 онлине калкулатор, он нам омогућава:

5ц79аб8б36ц4ц0ф8566цее2ц8е47135ф2536д4ф715а22ц99фа099а04едббб6ф2

Ако променимо чак и један лик једним положајем, он драстично мења целокупан хасх. Типо тип „Мет једе“Даје потпуно другачији резултат:

4бе9316а71ефц7ц152ф4856261ефб3836д09ф611726783бд1феф085бц81б1342

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

Хасх функције и лозинке

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

Вероватно имате на десетине налога на мрежи са лозинкама. За сваки од ових рачуна ваша лозинка мора бити негде сачувана. Како се може потврдити ваша пријава ако веб локација нема своју копију ваше лозинке?

Компаније попут Фацебоока или Гоогле-а чувају милијарде корисничких лозинки. Ако су ове компаније чувале лозинке као отворени текст, сваки нападач који би могао да се упусти у базу података о лозинкама могао би да приступи сваком налогу који нађу..

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

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

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

Ово подешавање значи то лозинка се никада не мора чувати. Ако нападач уђе у базу података, све што ће пронаћи су шифре лозинки, а не лозинке.

Иако хасхирање лозинки за складиштење не спречава нападаче да користе хешеве за проналажење лозинки, то њихов рад чини знатно тешким и дуготрајнијим. Ово отвара нашу задњу тему, салинг.

Шта је сољење?

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

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

Слабе лозинке

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

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

Хасх табела је унапред израчуната листа хешева за уобичајене лозинке која се чува у бази података. Захтева им више посла пре времена, али након што је табела довршена, много је брже потражити хешеве у табели него што је израчунавање хешева за сваку могућу лозинку. Још једна предност је што се ове табеле могу користити више пута.

Раинбов таблице су сличне хасх табелама, само што заузимају мање простора по цени веће рачунарске снаге.

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

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

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

Како сољење делује у пракси

Као пример, рецимо да имате налог е-поште и да је ваша лозинка „1234“. Када користимо СХА-256 мрежни калкулатор, као хасх вредност добијамо следеће:

03ац674216ф3е15ц761ее1а5е255ф067953623ц8б388б4459е13ф978д7ц846ф4

Овај хасх је оно што би се чувало у бази података за ваш налог. Када унесете лозинку за „1234“, Хеше се и затим се вредност упоређује са сачуваном вредношћу. Пошто су две вредности исте, добићете приступ.

Ако нападач провали у базу података, имат ће приступ овој вриједности, као и свим осталим шифрама лозинки које су се тамо налазиле. Нападач ће тада узети ову хасх вредност и потражити је у њиховој унапред израчунатој хасх табели или табели дуге. Од „1234“Је једна од најчешћих лозинки, они ће брзо пронаћи одговарајући хасх.

Хасх табела би им рекла да:

03ац674216ф3е15ц761ее1а5е255ф067953623ц8б388б4459е13ф978д7ц846ф4

Одговара:

1234

Нападач ће тада знати да је ваша лозинка „1234“. Они могу користити ову лозинку за пријаву на свој налог.

Као што видите, за нападача ово није било пуно посла. Да бисмо ствари погоршали, у лозинку смо додали сол насумичних података пре него што их се хеше. Сољење помаже да се значајно смање шансе да се хасх табеле и дугин табеле врате позитиван резултат.

Узмимо сок од случајних података од 16 знакова:

Х82БВ63КГ9СБД93Б

Додајемо га у нашу једноставну лозинку „1234" овако:

1234Х82БВ63КГ9СБД93Б

Тек сада када смо га посолили, стављамо га кроз исту функцију хасх-а коју смо и пре, а која се враћа:

91147ф7666дц80аб5902бде8б426аецдб1цбебф8603а58д79182б750ц10ф1303

Наравно, ова хасх вредност није дужа или сложенија од претходне, али то није ствар. Иако су обе исте дужине, "1234Х82БВ63КГ9СБД93Б“Је далеко мање уобичајена лозинка, тако да је много мање вероватно да ће се њен хасх сачувати у хеш табели.

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

Хакирање читавих база података

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

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

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

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

Потенцијалне слабости соли

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

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

Уобичајени алгоритми сољења

Не препоручује се употреба нормалних хасхинг функција за чување лозинки. Уместо тога, бројне функције су дизајниране са специфичним функцијама које помажу да се повећа сигурност. Они укључују Аргон2, сцрипт, бцрипт и ПБКДФ2.

Аргон2

Аргон2 је победник такмичења за скривање лозинки за 2015. годину. То је још релативно ново што се тиче алгоритама, али брзо је постало једна од најпоузданијих функција за спречавање лозинки.

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

скрипта

Изговорено “есс црипт“, Ово је други најмлађи алгоритам за подешавање лозинке који се користи. Дизајниран 2009. године, сцрипт користи велику, али подесиву количину меморије у својим прорачунима. Његова подесива природа значи да може и даље бити отпорна на нападе чак и како рачунарска снага с временом расте.

бцрипт

бцрипт је развијен 1999. године и заснован је на шифри Бловфисх. Био је један од најчешће ослањајући се на алгоритме који се користе у шивању лозинки дужи низ година, али сада је рањивији на поља програмибилних поља врата (ФПГА). То је разлог зашто се Аргон2 често преферира у новијим имплементацијама.

ПКФД2

Ова функција извода кључа развијена је за замену ПБКДФ1, који је имао краћу и мање сигурну дужину кључа. Смернице НИСТ-а из 2017. године још увек препоручују ПКФД2 за подешавање лозинки, али Аргон2 решава неке од безбедносних проблема и може бити боља опција у многим ситуацијама.

Шифрирање, хеширање и сољење: резиме

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

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

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

Специфичне врсте криптографских хасх функција такође се користе за чување наших лозинки. Чување хасх-а лозинке уместо саме лозинке пружа додатни слој сигурности. То значи да ако нападач добије приступ бази података, не може одмах приступити лозинкама.

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

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

Технологија-1 од тец_естромберг под ЦЦ0

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Leave a Reply

Your email address will not be published. Required fields are marked *

+ 70 = 80

Adblock
detector