Криптографски напади: објашњење за збуњене умове

Када чујете реч „криптографија“, неки људи се сећају своје лозинке за ВиФи, зеленог катанца поред адресе њихове омиљене веб локације и колико је тешко ући у туђу е-пошту. Други се присећају низа рањивости последњих година са скраћеницама (ДРОВН, ФРЕАК, ПООДЛЕ...), стилизованим логотипима и упозорењем да хитно ажурирате свој претраживач.

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

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

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

  • Основне стратегије: груба сила, анализа фреквенција, интерполација, деградација и унакрсни протоколи.
  • Брендиране рањивости: НАКАЗА, ЗЛОЧИН, ПУДЛА, УДАВИ СЕ, ЛОГЈАМА.
  • Напредне стратегије: напади на пророчанство (напад Воденет, напад Келсија); метода сусрета у средини, рођендански напад, статистичка пристрасност (диференцијална криптоанализа, интегрална криптоанализа, итд.).
  • Напади бочних канала и њихови блиски сродници, технике анализе неуспеха.
  • Напади на криптографију јавног кључа: коцкасти корен, емитовање, повезана порука, Цопперсмитх напад, Похлиг-Хеллман алгоритам, сито бројева, Виенер напад, Блеицхенбацхер напад.

Овај чланак покрива горњи материјал све до Келсијевог напада.

Основне стратегије

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

Неки од ових напада су у великој мери застарели и нису коришћени дуги низ година. Други су стари људи који се и даље редовно прикрадају несуђеним програмерима криптосистема у 21. веку. Може се сматрати да је ера модерне криптографије започела појавом ИБМ ДЕС-а, прве шифре која је издржала све нападе на овој листи.

Једноставна груба сила

Криптографски напади: објашњење за збуњене умовеШема шифровања се састоји из два дела: 1) функције шифровања, која узима поруку (плаинтект) комбиновану са кључем, а затим креира шифровану поруку – шифровани текст; 2) функција дешифровања која узима шифровани текст и кључ и производи отворени текст. И шифровање и дешифровање морају бити лаки за израчунавање помоћу кључа — а тешко за израчунавање без њега.

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

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

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

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

Нажалост за криптоаналитичаре, повећање величине кључа је добра одбрана од грубе силе. Како се величина кључа повећава, број могућих кључева расте експоненцијално. Са модерним величинама кључева, једноставна груба сила је потпуно непрактична. Да бисмо разумели шта мислимо, узмимо најбржи познати суперкомпјутер од средине 2019. Врх од ИБМ-а, са вршним перформансама од око 1017 операција у секунди. Данас је типична дужина кључа 128 бита, што значи 2128 могућих комбинација. За претрагу свих кључева, суперкомпјутеру Суммит ће бити потребно време које је приближно 7800 пута старије од Универзума.

Да ли грубу силу треба сматрати историјским куриозитетом? Уопште не: то је неопходан састојак у кувару за криптоанализу. Ретко су шифре толико слабе да се могу разбити само паметним нападом, без употребе силе у овом или оном степену. Многи успешни хакови користе алгоритамски метод да прво ослабе циљну шифру, а затим изведу напад грубом силом.

Анализа фреквенције

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

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

Размотрите следећи шифровани текст обрађен једноставном шифром замене:

КСДИЛИ АЛИ УГЛИ КСДВНКЕ ВН ДИАЈИН АНФ ИАЛКСД ДГЛАКСВГ КСДАН АЛИ ФЛИАУКС ГР ВН ОГКЛ ЗДВБГЕГЗДО

Пошто Y се често јавља, укључујући и на крају многих речи, можемо условно претпоставити да је ово слово e:

КСДеЛе АЛе УГЛе КСДВНКЕ ВН ДеАЈеН АНФ еАЛКСД ДГЛАКСВГ КСДАН Але ФлеАУКС ГР ВН ОГКЛ ЗДВБГЕГЗДО

Пар XD поновљено на почетку неколико речи. Конкретно, комбинација КСДеЛе јасно сугерише ту реч these или there, па да наставимо:

тхеЛе АЛЕ УГЛЕ ТХВНКЕ ВН хеАЈеН АНФ еАЛтх ДГЛАтВГ ТХАН АЛЕ ФлеАУт ГР ВН ОГКЛ ЗДВБГЕГЗДО

Претпоставимо даље да L одговара r, A - a и тако даље. Вероватно ће бити потребно неколико покушаја, али у поређењу са потпуним нападом грубе силе, овај напад враћа оригинални текст за кратко време:

има више ствари на небу и на земљи Хоратио него што се сања у вашој филозофији

За неке је решавање таквих „криптограма“ узбудљив хоби.

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

Најамбициознија полиалфабетска шифра у историји, и вероватно најпознатија, била је шифра Енигма из Другог светског рата. Био је релативно сложен у поређењу са својим претходницима, али након много напорног рада, британски криптоаналитичари су га разбили користећи анализу фреквенција. Наравно, нису могли да развију елегантан напад као што је приказан горе; морали су да упореде познате парове отвореног текста и шифрованог текста (тзв. „напад отвореног текста“), чак провоцирајући кориснике Енигме да шифрују одређене поруке и анализирају резултат („напад изабраног отвореног текста“). Али то није нимало олакшало судбину поражених непријатељских армија и потопљених подморница.

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

Прелиминарни прорачуни

Криптографски напади: објашњење за збуњене умовеУзмимо хипотетички град Прецом Хеигхтс, са 200 становника. Сваки дом у граду садржи у просеку 000 30 долара вредних ствари, али не више од 000 50. Безбедносно тржиште у Прецому је монополизовано од стране АЦМЕ Индустриес, која производи легендарне браве за врата класе Цоиоте™. Према експертским анализама, браву класе Којот може да разбије само веома сложена хипотетичка машина за чије је стварање потребно око пет година и 000 долара улагања. Да ли је град безбедан?

Највероватније не. На крају ће се појавити прилично амбициозан криминалац. Он ће резоновати овако: „Да, сносићу велике трошкове унапред. Пет година стрпљивог чекања и 50 000 долара. Али када завршим, имаћу приступ сво богатство овог града. Ако играм на своје карте како треба, ова инвестиција ће се вишеструко исплатити.”

Исто важи и за криптографију. Напади на одређену шифру подлежу немилосрдној анализи трошкова и користи. Ако је однос повољан, до напада неће доћи. Али напади који раде против многих потенцијалних жртава одједном се скоро увек исплате, у ком случају је најбоља пракса дизајна претпоставити да су почели од првог дана. У суштини имамо криптографску верзију Марфијевог закона: „Све што заиста може да сломи систем ће сломити систем“.

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

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

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

Запамтите напад прерачунавања: на крају чланка ћемо погледати два криптографска примера из стварног живота у којима је играо важну улогу.

Интерполација

Ево познатог детектива Шерлока Холмса који изводи интерполациони напад на несрећног др Ватсона:

Одмах сам претпоставио да сте дошли из Авганистана... Мој ток мисли је био следећи: „Овај човек је по врсти лекар, али има војничко држање. Дакле, војни лекар. Управо је стигао из тропских крајева - лице му је тамно, али ово није природна нијанса његове коже, јер су му зглобови много бељи. Лице је изнемогло - очигледно, много је патио и патио од болести. Био је рањен у леву руку - држи је непомично и помало неприродно. Где би у тропима енглески војни лекар могао да издржи невоље и да буде рањен? Наравно, у Авганистану“. Цео ток мисли није трајао ни секунд. И тако сам рекао да сте дошли из Авганистана и били сте изненађени.

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

Илуструјмо једноставним примером како интерполација функционише. Рецимо да желимо да прочитамо лични дневник нашег непријатеља, Боба. Он шифрује сваки број у свом дневнику помоћу једноставног криптосистема за који је сазнао из огласа у часопису „Моцк оф Цриптограпхи“. Систем функционише овако: Боб бира два броја која му се свиђају: Криптографски напади: објашњење за збуњене умове и Криптографски напади: објашњење за збуњене умове. Од сада, за шифровање било ког броја Криптографски напади: објашњење за збуњене умове, израчунава Криптографски напади: објашњење за збуњене умове. На пример, ако је Боб изабрао Криптографски напади: објашњење за збуњене умове и Криптографски напади: објашњење за збуњене умове, затим број Криптографски напади: објашњење за збуњене умове биће шифровано као Криптографски напади: објашњење за збуњене умове.

Рецимо да смо 28. децембра приметили да Боб нешто гребе у свом дневнику. Када заврши, тихо ћемо га подићи и гледати последњи унос:

Дата: 235/520

Драги дневниче,

Данас је био добар дан. Кроз 64 данас имам састанак са Алисом која живи у стану 843. Стварно мислим да би могла бити 26!

Пошто смо веома озбиљни у погледу праћења Боба на његовом састанку (обојица имамо 15 година у овом сценарију), од кључне је важности да знамо датум као и Алисину адресу. На срећу, примећујемо да је Бобов криптосистем рањив на напад интерполације. Можда не знамо Криптографски напади: објашњење за збуњене умове и Криптографски напади: објашњење за збуњене умове, али знамо данашњи датум, тако да имамо два пара чист текст-шифровани текст. Наиме, ми то знамо Криптографски напади: објашњење за збуњене умове шифровано у Криптографски напади: објашњење за збуњене умовеИ Криптографски напади: објашњење за збуњене умове - у Криптографски напади: објашњење за збуњене умове. Ево шта ћемо записати:

Криптографски напади: објашњење за збуњене умове

Криптографски напади: објашњење за збуњене умове

Пошто имамо 15 година, већ знамо за систем од две једначине са две непознате, што је у овој ситуацији довољно да се пронађе Криптографски напади: објашњење за збуњене умове и Криптографски напади: објашњење за збуњене умове без икаквих проблема. Сваки пар отворени текст-шифровани текст поставља ограничење на Бобов кључ, а два ограничења заједно су довољна да се кључ потпуно поврати. У нашем примеру одговор је Криптографски напади: објашњење за збуњене умове и Криптографски напади: објашњење за збуњене умовеКриптографски напади: објашњење за збуњене умове Криптографски напади: објашњење за збуњене умове, тако 26 у дневнику одговара речи 'онај', односно ,,исти тај” - цца. трака).

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

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

Унакрсни протокол/нижа верзија

Криптографски напади: објашњење за збуњене умовеУ Сада ме видиш (2013), група илузиониста покушава да превари корумпираног магната осигурања Артура Треслера из његовог целокупног богатства. Да би добили приступ Артуровом банковном рачуну, илузионисти морају или да наведу његово корисничко име и лозинку или га натерају да се лично појави у банци и учествује у шеми.

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

(Према урбаној легенди коју смо лично проверили и верификовали, криптограф Ели Бихам је једном наишао на благајника банке који је инсистирао на постављању безбедносног питања. Када је благајник питао за име своје баке по мајци, Беахам је почео да диктира: „Капитал Кс, мало и, три...“).

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

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

провалник: Здраво? Ово је Артхур Тресслер. Желео бих да ресетујем своју лозинку.

благајник: Велики. Молимо погледајте своју личну књигу тајних шифри, страна 28, реч 3. Све следеће поруке ће бити шифроване коришћењем ове специфичне речи као кључа. ПКЈГХ. ЛОТЈНАМ ПГГИ МКСВРЛ ЗЗЛК СРИУ ХХНМЛПППВ…

провалник: Хеј, хеј, чекај, чекај. Да ли је ово заиста неопходно? Зар не можемо причати као нормални људи?

благајник: Не препоручујем ово да радите.

провалник: Ја само... види, имао сам лош дан, ок? Ја сам ВИП клијент и нисам расположен да копам по овим глупим шифрантима.

благајник: У реду. Ако инсистирате, г. Тресслер. Шта хоћеш?

провалник: Молим вас, желео бих да донирам сав свој новац Националном фонду за жртве Артура Треслера.

(Пауза).

благајник: Да ли је сада јасно. Унесите свој ПИН за велике трансакције.

провалник: Мој шта?

благајник: На ваш лични захтев, трансакције ове величине захтевају ПИН за велике трансакције. Овај код сте добили када сте отворили налог.

провалник:... Изгубио сам. Да ли је ово заиста неопходно? Зар не можете само да одобрите договор?

благајник: Не. Жао ми је, г. Тресслер. Опет, ово је безбедносна мера коју сте тражили. Ако желите, можемо вам послати нови ПИН код у поштанско сандуче.

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

Тресслер: Здраво. Желим да завршим трансакцију на даљину, молим.

благајник: Велики. Молимо погледајте своју личну књигу тајних шифри, страницу...

(Провалник притисне дугме; глас благајника се претвара у неразумљив шум).

благајник: - #@$#@$#*@$$@#* биће шифровано овом речју као кључем. АААИРР ПЛРКРЗ ММЊК ЛОЈБАН…

Тресслер: Извини, нисам баш разумео. Опет? На којој страници? Коју реч?

благајник: Ово је страница @#$@#*$)#*#@()#@$(#@*$(#@*).

Тресслер: Шта?

благајник: Реч број двадесет @$#@$#%#$.

Тресслер: Озбиљно! Доста више! Ти и твој безбедносни протокол сте нека врста циркуса. Знам да можеш нормално да разговараш са мном.

благајник: не препоручујем…

Тресслер: И не саветујем вам да губите моје време. Не желим да чујем више о овоме док не решите проблеме са телефонском линијом. Можемо ли завршити овај договор или не?

благајник:… Да. У реду. Шта хоћеш?

Тресслер: Желео бих да пренесем 20 долара на Лорд Бусинесс Инвестментс, број рачуна...

благајник: Један минут молим вас. То је велика ствар. Унесите свој ПИН за велике трансакције.

Тресслер: Шта? Ох, тачно. 1234.

Ево напада наниже. Слабији протокол „само говори директно“ је замишљен као опција у случају нужде. А ипак смо ту.

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

Управо то се догодило са ССЛв2 протоколом 1995. године. Америчка влада је одавно почела да посматра криптографију као оружје које се најбоље чува од страних и домаћих непријатеља. Комади кода су појединачно одобрени за извоз из Сједињених Држава, често под условом да је алгоритам намерно ослабљен. Нетсцапе, програмер најпопуларнијег претраживача, Нетсцапе Навигатор, добио је дозволу за ССЛв2 само са инхерентно рањивим 512-битним РСА кључем (и 40-битним за РЦ4).

До краја миленијума правила су се попустила и приступ модерном шифровању постао је широко доступан. Међутим, клијенти и сервери годинама подржавају ослабљену „извозну“ криптографију због исте инерције која одржава подршку за било који застарели систем. Клијенти су веровали да би могли наићи на сервер који не подржава ништа друго. Исто су урадили и сервери. Наравно, ССЛ протокол налаже да клијенти и сервери никада не би требало да користе слаб протокол када је доступан бољи. Али иста премиса важила је за Треслера и његову банку.

Ова теорија је нашла свој пут у два напада високог профила који су уздрмали безбедност ССЛ протокола 2015. године, а оба су открили Мицрософт истраживачи и ИНРИА. Прво, детаљи ФРЕАК напада откривени су у фебруару, а три месеца касније уследио је још један сличан напад под називом Логјам, о чему ћемо детаљније разговарати када пређемо на нападе на криптографију јавног кључа.

Криптографски напади: објашњење за збуњене умовеРањивост Фреак (такође познат као "Смацк ТЛС") изашао је на видело када су истраживачи анализирали ТЛС клијент/сервер имплементације и открили радозналу грешку. У овим имплементацијама, ако клијент чак ни не тражи да користи слабу експортну криптографију, али сервер и даље одговара таквим кључевима, клијент каже „Ох, добро“ и прелази на слаб пакет шифара.

У то време, извозна криптографија се сматрала застарелом и забрањеном, тако да је напад био потпуни шок и утицао је на многе важне домене, укључујући сајтове Беле куће, пореске управе и НСА. Још горе, испоставило се да су многи рањиви сервери оптимизовали перформансе тако што су поново користили исте кључеве уместо да генеришу нове за сваку сесију. Ово је омогућило, након деградације протокола, да се изврши напад пре рачунања: разбијање једног кључа је остало релативно скупо (100 УСД и 12 сати у време објављивања), али је практични трошак напада на везу значајно смањен. Довољно је једном изабрати кључ сервера и од тог тренутка провалити шифровање за све наредне везе.

И пре него што кренемо даље, постоји један напредни напад који треба поменути...

Напад на Орацле

Криптографски напади: објашњење за збуњене умовеМокие Марлинспике најпознатији као отац апликације за размену крипто порука на више платформи Сигнал; али нама лично се свиђа једна од његових мање познатих иновација - принцип криптографске пропасти (Криптографски принцип пропасти). Да мало парафразирамо, можемо рећи ово: „Ако протокол ради било који изврши криптографску операцију на поруци из потенцијално злонамерног извора и понаша се другачије у зависности од резултата, осуђена је на пропаст." Или у оштријој форми: „Не узимајте информације од непријатеља на обраду, а ако морате, онда барем не показујте резултат.

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

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

Дакле, Алис и Боб комуницирају користећи једноставну шифру замене користећи само њима познат кључ. Веома су строги у погледу дужине порука: дугачке су тачно 20 карактера. Тако да су се сложили да ако неко жели да пошаље краћу поруку, треба да дода неки лажни текст на крај поруке да буде тачно 20 карактера. Након неке дискусије, одлучили су да прихватају само следеће лажне текстове: a, bb, ccc, dddd итд. Дакле, лажни текст било које потребне дужине је познат.

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

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

провалник: PREWF ZHJKL MMMN. LA

Алице: Неважећи лажни текст.

провалник: PREWF ZHJKL MMMN. LB

Алице: Неважећи лажни текст.

провалник: PREWF ZHJKL MMMN. LC

Алице: ILCT? TLCT RUWO PUT KCAW CPS OWPOW!

Провалник нема појма шта је Алиса управо рекла, али примећује да је симбол C мора да одговара a, пошто је Алиса прихватила лажни текст.

провалник: REWF ZHJKL MMMN. LAA

Алице: Неважећи лажни текст.

провалник: REWF ZHJKL MMMN. LBB

Алице: Неважећи лажни текст.

После бројних покушаја...

провалник: REWF ZHJKL MMMN. LGG

Алице: Неважећи лажни текст.

провалник: REWF ZHJKL MMMN. LHH

Алице: TLQO JWCRO FQAW SUY LCR C OWQXYJW. IW PWWR TU TCFA CHUYT TLQO JWFCTQUPOLQZ.

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

И тако све док нападач не сазна значење сваког знака.

На први поглед, метода личи на одабрани напад отвореног текста. На крају, нападач бира шифроване текстове, а сервер их послушно обрађује. Главна разлика која чини ове нападе одрживим у стварном свету је та што нападачу није потребан приступ стварном транскрипту – довољан је одговор сервера, чак и безопасан као „Неважећи лажни текст“.

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

Много тога се може променити у овом сценарију. Симболи на које Алиса реагује, или сама разлика у њеном понашању, па чак и криптосистем који се користи. Али принцип ће остати исти, а напад у целини ће остати одржив у овом или оном облику. Основна имплементација овог напада помогла је да се открије неколико безбедносних грешака, које ћемо ускоро погледати; али прво треба научити неке теоријске лекције. Како искористити ову фиктивну „Алисину скрипту“ у нападу који може да функционише на праву модерну шифру? Да ли је то уопште могуће, чак и у теорији?

1998. године, швајцарски криптограф Даниел Блеицхенбацхер је потврдно одговорио на ово питање. Он је демонстрирао напад пророчишта на широко коришћени криптосистем јавног кључа РСА, користећи специфичну шему порука. У неким РСА имплементацијама, сервер одговара различитим порукама о грешци у зависности од тога да ли се отворени текст подудара са шемом или не; ово је било довољно за извршење напада.

Четири године касније, 2002. године, француски криптограф Серж Водене демонстрирао је напад пророчишта скоро идентичан оном описаном у сценарију Алисе изнад – осим што је уместо фиктивне шифре разбио читаву респектабилну класу модерних шифри које људи заправо користе. Конкретно, Воденејев напад циља на шифре фиксне улазне величине („блок шифре“) када се користе у такозваном „ЦБЦ режиму шифровања“ и са одређеном популарном шемом допуна, у основи еквивалентном оној у сценарију Алисе.

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

У наставку дајемо детаљнији опис Вауденаи и Келсеи напада (даћемо детаљнији опис Блеицхенбацхер напада када пређемо на нападе на криптографију јавног кључа). Упркос нашим напорима, текст постаје донекле технички; па ако вам је горе наведено довољно, прескочите следећа два одељка.

Напад Водене

Да бисмо разумели Вауденаи напад, прво морамо да причамо мало више о блок шифрама и начинима шифровања. „Блок шифра“ је, као што је поменуто, шифра која узима кључ и улаз одређене фиксне дужине („дужина блока“) и производи шифровани блок исте дужине. Блок шифре се широко користе и сматрају се релативно сигурним. Сада пензионисани ДЕС, који се сматра првом модерном шифром, био је блок шифра. Као што је горе поменуто, исто важи и за АЕС, који се данас широко користи.

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

Воденеов напад је фокусиран на популарни ЦБЦ (Ципхер Блоцк Цхаининг) начин рада. Напад третира основни блок шифру као магичну, неосвојиву црну кутију и потпуно заобилази њену безбедност.

Ево дијаграма који показује како ЦБЦ режим функционише:

Криптографски напади: објашњење за збуњене умове

Криптографски напади: објашњење за збуњене умове

Заокружени плус означава операцију КСОР (искључиво ИЛИ). На пример, прима се други блок шифрованог текста:

  1. Извођењем КСОР операције на другом блоку отвореног текста са првим блоком шифрованог текста.
  2. Шифровање резултујућег блока блоковском шифром помоћу кључа.

Пошто ЦБЦ тако интензивно користи бинарну КСОР операцију, хајде да одвојимо тренутак да се присетимо неких његових особина:

  • Идемпотенција: Криптографски напади: објашњење за збуњене умове
  • комутативност: Криптографски напади: објашњење за збуњене умове
  • асоцијативност: Криптографски напади: објашњење за збуњене умове
  • Самореверзибилност: Криптографски напади: објашњење за збуњене умове
  • Величина бајта: бајт н од Криптографски напади: објашњење за збуњене умове = (бајт н од Криптографски напади: објашњење за збуњене умове) Криптографски напади: објашњење за збуњене умове (бајт н од Криптографски напади: објашњење за збуњене умове)

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

Постоје две мање разлике и једна велика разлика између нашег сценарија Алисе и Воденеовог напада. Два мања:

  • У сценарију, Алис је очекивала да се отворени текстови завршавају ликовима a, bb, ccc и тако даље. У Водене нападу, жртва уместо тога очекује да се отворени текстови заврше Н пута са Н бајтом (то јест, хексадецимално 01 или 02 02, или 03 03 03, итд.). Ово је чисто козметичка разлика.
  • У сценарију Алице, било је лако рећи да ли је Алиса прихватила поруку по одговору „Нетачан лажни текст“. У нападу Водене потребно је више анализе и важна је прецизна имплементација на страни жртве; али ради краткоће, узмимо као дато да је ова анализа још увек могућа.

Главна разлика:

  • Пошто не користимо исти криптосистем, однос између бајтова шифрованог текста који контролише нападач и тајни (кључ и отворени текст) ће очигледно бити другачији. Због тога ће нападач морати да користи другачију стратегију када креира шифроване текстове и тумачи одговоре сервера.

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

Претпоставимо да нам је дат ЦБЦ шифровани текст од 247 блокова и желимо да га дешифрујемо. Можемо да шаљемо лажне поруке серверу, баш као што смо раније могли да шаљемо лажне поруке Алиси. Сервер ће дешифровати поруке уместо нас, али неће приказати дешифровање - уместо тога, опет, као и код Алисе, сервер ће извести само један бит информације: да ли отворени текст има валидан паддинг или не.

Узмите у обзир да смо у Алисином сценарију имали следеће односе:

$$дисплаи$$тект{СИМПЛЕ_СУБСТИТУТИОН}(текст{шифровани текст},текст{кључ}) = текст{плаинтект}$$дисплаи$$

Назовимо ово "Алисина једначина". Контролисали смо шифровани текст; сервер (Алице) је процурио нејасне информације о примљеном отвореном тексту; и то нам је омогућило да изведемо информацију о последњем фактору – кључу. По аналогији, ако пронађемо такву везу за ЦБЦ скрипту, можда бисмо и тамо могли да извучемо неке тајне информације.

Срећом, заиста постоје везе које можемо искористити. Узмите у обзир излаз завршног позива за дешифровање блок шифре и означите овај излаз као Криптографски напади: објашњење за збуњене умове. Такође означавамо блокове отвореног текста Криптографски напади: објашњење за збуњене умове и блокови шифрованог текста Криптографски напади: објашњење за збуњене умове. Погледајте још једном ЦБЦ дијаграм и приметите шта се дешава:

Криптографски напади: објашњење за збуњене умове

Назовимо ово „ЦБЦ једначина“.

У Алисином сценарију, праћењем шифрованог текста и посматрањем одговарајућег цурења отвореног текста, били смо у могућности да извршимо напад који је повратио трећи члан у једначини - кључ. У сценарију ЦБЦ, такође пратимо шифровани текст и посматрамо цурење информација на одговарајућем отвореном тексту. Ако аналогија важи, можемо добити информације о Криптографски напади: објашњење за збуњене умове.

Претпоставимо да смо заиста обновили Криптографски напади: објашњење за збуњене умове, шта онда? Па, онда можемо да одштампамо цео последњи блок отвореног текста одједном (Криптографски напади: објашњење за збуњене умове), једноставним уносом Криптографски напади: објашњење за збуњене умове (који имамо) и
примљен Криптографски напади: објашњење за збуњене умове у ЦБЦ једначину.

Сада када смо оптимисти у погледу укупног плана напада, време је да разрадимо детаље. Обратите пажњу на то како тачно информације отвореног текста процуре на сервер. У Алисиној скрипти, до цурења је дошло јер би Алиса одговорила тачном поруком само ако се $инлине$тект{СИМПЛЕ_СУБСТИТУТИОН}(тект{ципхертект},тект{кеи})$инлине$ завршава линијом a (Или bb, и тако даље, али шансе да се ови услови изазову случајно су биле веома мале). Слично као ЦБЦ, сервер прихвата допуну ако и само ако Криптографски напади: објашњење за збуњене умове завршава се хексадецималом 01. Па хајде да пробамо исти трик: слање лажних шифрованих текстова са сопственим лажним вредностима Криптографски напади: објашњење за збуњене умоведок сервер не прихвати пуњење.

Када сервер прихвати допуну за једну од наших лажних порука, то значи да:

Криптографски напади: објашњење за збуњене умове

Сада користимо бајт-бајт КСОР својство:

Криптографски напади: објашњење за збуњене умове

Знамо први и трећи термин. И већ смо видели да нам ово омогућава да повратимо преостали термин - последњи бајт из Криптографски напади: објашњење за збуњене умове:

Криптографски напади: објашњење за збуњене умове

Ово нам такође даје последњи бајт коначног блока отвореног текста преко ЦБЦ једначине и својства бајт по бајт.

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

Да бисте то разумели, прво приметите да је резултат излаза тачне вредности последњег бајта Криптографски напади: објашњење за збуњене умове имамо нову способност. Сада, када фалсификујемо шифровани текст, можемо да манипулишемо последњим бајтом одговарајућег отвореног текста. Опет, ово је повезано са ЦБЦ једначином и својством бајт по бајт:

Криптографски напади: објашњење за збуњене умове

Пошто сада знамо други појам, можемо користити нашу контролу над првим да контролишемо трећи. Једноставно израчунамо:

Криптографски напади: објашњење за збуњене умове

Раније то нисмо могли да урадимо јер још нисмо имали последњи бајт Криптографски напади: објашњење за збуњене умове.

Како ће нам ово помоћи? Претпоставимо да сада креирамо све шифроване текстове тако да је у одговарајућим отвореним текстовима последњи бајт једнак 02. Сервер сада прихвата допуну само ако се отворени текст завршава са 02 02. Пошто смо исправили последњи бајт, ово ће се десити само ако је претпоследњи бајт отвореног текста такође 02. Настављамо да шаљемо лажне блокове шифрованог текста, мењајући претпоследњи бајт, све док сервер не прихвати допуну за један од њих. У овом тренутку добијамо:

Криптографски напади: објашњење за збуњене умове

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

Шта је са остатком текста? Имајте на уму да је вредност Криптографски напади: објашњење за збуњене умове је заправо $инлине$тект{БЛОЦК_ДЕЦРИПТ}(тект{кеи},Ц_{247})$инлине$. Уместо тога можемо ставити било који други блок Криптографски напади: објашњење за збуњене умове, а напад ће и даље бити успешан. У ствари, можемо тражити од сервера да уради $инлине$тект{БЛОЦК_ДЕЦРИПТ}$инлине$ за било које податке. У овом тренутку, игра је готова – можемо да дешифрујемо било који шифровани текст (погледајте још једном ЦБЦ дијаграм дешифровања да видите ово; и имајте на уму да је ИВ јаван).

Ова конкретна метода игра кључну улогу у нападу пророчишта са којим ћемо се касније сусрести.

Келсијев напад

Наш љубазни Џон Келси изложио је принципе који леже у основи многих могућих напада, а не само детаље специфичног напада на одређену шифру. Његово КСНУМКС чланак године је студија могућих напада на шифроване компресоване податке. Да ли сте мислили да информација да су подаци компримовани пре шифровања није довољна за извршење напада? Испоставило се да је то довољно.

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

Да бисте видели принцип на делу, размотрите два отворена текста:

Отворени текст 1: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Отворени текст 2: ATVXCAGTRSVPTVVULSJQHGEYCMQPCRQBGCYIXCFJGJ

Претпоставимо да су оба отворена текста компримована, а затим шифрована. Добијате два резултујућа шифрована текста и морате да погодите који шифровани текст одговара са којим отвореним текстом:

Шифровани текст 1: PVOVEYBPJDPVANEAWVGCIUWAABCIYIKOOURMYDTA

Шифровани текст 2: DWKJZXYU

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

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

Опет, као и други напади на пророчанство, имамо однос:

Криптографски напади: објашњење за збуњене умове

Опет, контролишемо један појам (Криптографски напади: објашњење за збуњене умове), видимо мало цурење информација о другом члану (шифровани текст) и покушавамо да повратимо последњи (обични текст). Упркос аналогији, ово је помало необична ситуација у поређењу са другим нападима на пророчанство које смо видели.

Да бисмо илустровали како би такав напад могао да функционише, употребимо фиктивну шему компресије коју смо управо смислили: ТОИЗИП. Он тражи редове текста који су се раније појављивали у тексту и замењује их са три бајта чувара места који показују где да се пронађе ранија инстанца реда и колико пута се тамо појављује. На пример, линија helloworldhello може се компримовати у helloworld[00][00][05] 13 бајтова у поређењу са оригиналних 15 бајтова.

Претпоставимо да нападач покуша да поврати отворени текст обрасца password=..., где је сама лозинка непозната. Према Келсијевом моделу напада, нападач може затражити од сервера да компримује, а затим шифрује поруке (чист текст праћен Криптографски напади: објашњење за збуњене умове) где Криптографски напади: објашњење за збуњене умове - Слободан текст. Када сервер заврши са радом, он извештава о дужини резултата. Напад иде овако:

провалник: Компримујте и шифрујте отворени текст без додавања.

Сервер: Дужина резултата 14.

провалник: Компримујте и шифрујте отворени текст коме је додат password=a.

Сервер: Дужина резултата 18.

Крекер бележи: [оригинал 14] + [три бајта која су замењена password=] + a

провалник: Компримујте и шифрујте отворени текст коме је додат password=b.

Сервер: Дужина резултата 18.

провалник: Компримујте и шифрујте отворени текст коме је додат password=с.

Сервер: Дужина резултата 17.

Крекер бележи: [оригинал 14] + [три бајта која су замењена password=c]. Ово претпоставља да оригинални отворени текст садржи стринг password=c. То јест, лозинка почиње словом c

провалник: Компримујте и шифрујте отворени текст коме је додат password=сa.

Сервер: Дужина резултата 18.

Крекер бележи: [оригинал 14] + [три бајта која су замењена password=с] + a

провалник: Компримујте и шифрујте отворени текст коме је додат password=сb.

Сервер: Дужина резултата 18.

(… Нешто касније…)

провалник: Компримујте и шифрујте отворени текст коме је додат password=со.

Сервер: Дужина резултата 17.

Крекер бележи: [оригинал 14] + [три бајта која су замењена password=co]. Користећи исту логику, нападач закључује да лозинка почиње словима co

И тако све док се цела лозинка не врати.

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

Рањивости бренда: ЗЛОЧИН, ПУДЛА, УДАВИ СЕ

Коначно, након детаљног проучавања теорије, можемо видети како се ове технике примењују у криптографским нападима у стварном животу.

ЗЛОЧИН

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

Ово изгледа невероватно. Ако је Боб отишао у evil.com, може ли скрипта на овом сајту само да затражи од Гоогле-а да пошаље Бобову лозинку е-поштом [email protected]? Па, у теорији да, али у стварности не. Овај сценарио се назива напад фалсификовања захтева на више локација (Кривотворење захтева за више локација, ЦСРФ), а био је популаран средином 90-их. Данас ако evil.com покуша овај трик, Гоогле (или било која веб локација која поштује себе) ће обично одговорити са: „Одлично, али ваш ЦСРФ токен за ову трансакцију ће бити... хм... три триллиона и семь. Поновите овај број." Модерни претраживачи имају нешто што се зове „политика истог порекла“ при чему скрипте на сајту А немају приступ информацијама које шаље веб локација Б. Дакле, скрипта на evil.com може слати захтеве на google.com, али не може да прочита одговоре нити да доврши трансакцију.

Морамо нагласити да све ове заштите су бесмислене, осим ако Боб не користи шифровану везу. Нападач може једноставно да прочита Бобов саобраћај и поврати Гоогле-ов колачић сесије. Са овим колачићем, он ће једноставно отворити нову Гоогле картицу без напуштања сопственог претраживача и опонашати се Боба без наиласка на досадне смернице истог порекла. Али, на несрећу провалника, то је све ређе. Интернет у целини одавно је објавио рат нешифрованим везама, а Бобов одлазни саобраћај је вероватно шифрован, свиђало му се то или не. Поред тога, од самог почетка примене протокола саобраћај је такође смањио пре шифровања; ово је била уобичајена пракса за смањење кашњења.

Овде долази до изражаја ЗЛОЧИН (Компресија Инфолеак Маде Еаси, једноставно цурење кроз однос компресије). Рањивост су открили у септембру 2012. истраживачи безбедности Јулиано Риззо и Тхаи Дуонг. Већ смо испитали целокупну теоријску основу, која нам омогућава да разумемо шта су и како радили. Нападач би могао да натера Бобов прегледач да пошаље захтеве Гуглу, а затим да преслуша одговоре на локалној мрежи у компримованом, шифрованом облику. Стога имамо:

Криптографски напади: објашњење за збуњене умове

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

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

ПООДЛЕ

Криптографски напади: објашњење за збуњене умовеУ октобру 2014. Гоогле безбедносни тим је направио таласе у безбедносној заједници. Успели су да искористе рањивост у ССЛ протоколу који је закрпљен пре више од десет година.

Испоставило се да док сервери покрећу сјајни нови ТЛСв1.2, многи су оставили подршку за застарели ССЛв3 за компатибилност са Интернет Екплорером 6. Већ смо причали о нападима на ниже верзије, тако да можете замислити шта се дешава. Добро организована саботажа протокола руковања и сервери су спремни да се врате на стари добри ССЛв3, у суштини поништавајући последњих 15 година истраживања безбедности.

За историјски контекст, ево кратког резимеа историје ССЛ-а до верзије 2 од Метјуа Грина:

Сигурност транспортног слоја (ТЛС) је најважнији безбедносни протокол на Интернету. [..] скоро свака трансакција коју обавите на Интернету зависи од ТЛС-а. [..] Али ТЛС није увек био ТЛС. Протокол је почео свој живот у Нетсцапе Цоммуницатионс под називом „Слој сигурних утичница“ или ССЛ. Прича се да је прва верзија ССЛ-а била толико страшна да су програмери прикупили све исписе кода и закопали их на тајној депонији у Новом Мексику. Као последица тога, прва јавно доступна верзија ССЛ-а је заправо верзија ССЛ 2. Прилично је застрашујуће, и [..] је био производ средине 90-их, који савремени криптографи сматрају "мрачно доба криптографије" Многи од најгнуснијих криптографских напада за које данас знамо још увек нису откривени. Као резултат тога, програмери ССЛв2 протокола су у суштини били остављени да петљају у мраку и суочили су се са много страшних чудовишта - на њихову жалост и нашу корист, пошто су напади на ССЛв2 оставили непроцењиве лекције за следећу генерацију протокола.

Након ових догађаја, 1996. године, фрустрирани Нетсцапе је редизајнирао ССЛ протокол од нуле. Резултат је била ССЛ верзија 3, која поправио неколико познатих безбедносних проблема свог претходника.

На срећу за провалнике, „неколико“ не значи „сви“. Све у свему, ССЛв3 је обезбедио све потребне градивне блокове за покретање Водене напада. Протокол је користио блок шифру ЦБЦ режима и несигурну шему допуна (ово је исправљено у ТЛС-у; отуда потреба за нападом на нижу верзију). Ако се сећате шеме допуна у нашем оригиналном опису Вауденаи напада, ССЛв3 шема је веома слична.

Али, нажалост за провалнике, „сличан“ не значи „идентичан“. Шема допуна ССЛв3 је „Н насумичних бајтова праћених бројем Н“. Покушајте, под овим условима, да изаберете замишљени блок шифрованог текста и прођете кроз све кораке Воденове оригиналне шеме: открићете да напад успешно извлачи последњи бајт из одговарајућег блока отвореног текста, али не иде даље. Дешифровање сваког 16. бајта шифрованог текста је одличан трик, али није победа.

Суочен са неуспехом, Гугл тим је прибегао последњем случају: прешли су на моћнији модел претње – онај који се користи у КРИМИЛУ. Под претпоставком да је нападач скрипта која се покреће на картици претраживача жртве и може да издвоји колачиће сесије, напад је и даље импресиван. Док је шири модел претње мање реалистичан, видели смо у претходном одељку да је овај конкретни модел изводљив.

С обзиром на ове моћније могућности нападача, напад се сада може наставити. Имајте на уму да нападач зна где се шифровани колачић сесије појављује у заглављу и контролише дужину ХТТП захтева који му претходи. Стога је у могућности да манипулише ХТТП захтевом тако да последњи бајт колачића буде поравнат са крајем блока. Сада је овај бајт погодан за дешифровање. Можете једноставно додати један знак захтеву, а претпоследњи бајт колачића ће остати на истом месту и погодан је за избор користећи исти метод. Напад се наставља на овај начин све док се датотека колачића потпуно не врати. Зове се ПООДЛЕ: Паддинг Орацле на старијој енкрипцији.

УДАВИТИ СЕ

Криптографски напади: објашњење за збуњене умовеКао што смо споменули, ССЛв3 је имао своје мане, али се суштински разликовао од свог претходника, пошто је ССЛв2 који цури био производ друге ере. Ту можете прекинути поруку у средини: соглашусь на это только через мой труп претворило у соглашусь на это; клијент и сервер би могли да се састану на мрежи, успоставе поверење и размене тајне пред нападачем, који би онда лако могао да се лажно представља. Постоји и проблем са извозном криптографијом, који смо споменули када смо разматрали ФРЕАК. То су биле криптографске Содома и Гомора.

У марту 2016. тим истраживача из различитих техничких области се окупио и направио запањујуће откриће: ССЛв2 се и даље користи у сигурносним системима. Да, нападачи више нису могли да деградирају модерне ТЛС сесије на ССЛв2 пошто је та рупа затворена након ФРЕАК-а и ПООДЛЕ-а, али и даље могу да се повежу са серверима и сами покрећу ССЛв2 сесије.

Можете питати, зашто нас занима шта они тамо раде? Имају рањиву сесију, али то не би требало да утиче на друге сесије или безбедност сервера - зар не? Па, не баш. Да, тако би требало да буде у теорији. Али не – јер генерисање ССЛ сертификата намеће одређени терет, што доводи до тога да многи сервери користе исте сертификате и, као резултат, исте РСА кључеве за ТЛС и ССЛв2 везе. Да ствар буде још гора, због ОпенССЛ грешке, опција „Онемогући ССЛв2“ у овој популарној имплементацији ССЛ-а заправо није радила.

Ово је омогућило међупротоколски напад на ТЛС, тзв УДАВИТИ СЕ (Дешифровање РСА са застарелом и ослабљеном еНкрипцијом, дешифровање РСА са застарелом и ослабљеном енкрипцијом). Подсетимо се да ово није исто што и кратак напад; нападач не мора да се понаша као „човек у средини“ и не мора да укључи клијента да учествује у несигурној сесији. Нападачи једноставно покрећу несигурну ССЛв2 сесију са самим сервером, нападају слаб протокол и враћају РСА приватни кључ сервера. Овај кључ је такође важећи за ТЛС везе и од ове тачке, никаква ТЛС безбедност неће спречити његово угрожавање.

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

У време објављивања, 25% најпопуларнијих сајтова на Интернету је било погођено рањивости ДРОВН, а напад је могао да се изведе са скромним ресурсима доступним чак и несташним усамљеним хакерима. За преузимање РСА кључа сервера било је потребно осам сати рачунања и 440 долара, а ССЛв2 је постао радиоактиван.

Чекај, шта је са Хеартблеедом?

Ово није криптографски напад у горе описаном смислу; Ово је преливање бафера.

Хајде да направимо паузу

Почели смо са неким основним техникама: грубом силом, интерполацијом, деградацијом, унакрсним протоколом и предрачунавањем. Затим смо погледали једну напредну технику, можда главну компоненту модерних криптографских напада: напад пророчишта. Провели смо доста времена док смо то схватили – и разумели не само основни принцип, већ и техничке детаље две специфичне имплементације: Вауденаи напад на ЦБЦ режим шифровања и Келсеи напад на протоколе за шифровање пре компресије.

У прегледу напада на нижи ниво и прерачунавање, укратко смо описали напад ФРЕАК, који користи обе методе тако што циљне локације пређу на слабе кључеве, а затим поново користе исте кључеве. За следећи чланак, сачуваћемо (веома сличан) Логјам напад, који циља алгоритме јавног кључа.

Затим смо погледали још три примера примене ових принципа. Прво, ЗЛОЧИН и ПУДЛА: два напада која су се ослањала на способност нападача да убризга произвољан отворени текст поред циљног отвореног текста, затим испита одговоре сервера и онда, користећи методологију орацле напада, искористите ове ретке информације да бисте делимично повратили отворени текст. ЗЛОЧИН је кренуо путем Келсијевог напада на ССЛ компресију, док је ПООДЛЕ уместо тога користио варијанту Воденеовог напада на ЦБЦ са истим ефектом.

Затим смо скренули пажњу на напад ДРОВН између више протокола, који успоставља везу са сервером користећи застарели ССЛв2 протокол, а затим опоравља тајне кључеве сервера користећи Блеицхенбацхер напад. За сада смо прескочили техничке детаље овог напада; попут Логјам-а, мораће да сачека док не будемо добро разумели криптосистеме јавног кључа и њихове рањивости.

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

Извор: ввв.хабр.цом

Додај коментар