Затвори оглас

Пре неколико дана Аппле је објавио стоти Ажурирање иОС 7.0.6, о чијем изласку смо Вас обавестили. Многи су можда били изненађени што је ажурирање објављено и за старије иОС 6 (верзија 6.1.6) и Аппле ТВ (верзија 6.0.2). Ово је безбедносна закрпа, тако да Аппле није могао да приушти да ажурира само део својих уређаја. Штавише, овај проблем такође утиче на ОС Кс. Према речима портпарола компаније Аппле Труди Муллер, ажурирање за ОС Кс ће бити објављено што је пре могуће.

Зашто постоји толика помпа око овог ажурирања? Грешка у коду система омогућава да се заобиђе верификација сервера при безбедном преносу на релационом слоју ИСО/ОСИ референтног модела. Конкретно, грешка је лоша имплементација ССЛ-а у делу где се врши верификација сертификата сервера. Пре него што пређем на даље објашњење, радије бих описао основне концепте.

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

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

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

static OSStatus
SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa,
SSLBuffer signedParams, uint8_t *signature, UInt16 signatureLen)

{
   OSStatus err;
   …

   if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
       goto fail;
   if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
       goto fail;
       goto fail;
   if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
       goto fail;
   …

fail:
   SSLFreeBuffer(&signedHashes);
   SSLFreeBuffer(&hashCtx);
   return err;
}

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

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

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

Ако нисте сигурни да ли је ваш систем или прегледач имун на ову грешку, посетите страницу готофаил.цом. Као што можете видети на сликама испод, Сафари 7.0.1 у ОС Кс Маверицкс 10.9.1 садржи грешку, док је у Сафарију у иОС 7.0.6 све у реду.

Ресурси: Ја више, Ројтерс
.