Lokaðu auglýsingu

Fyrir nokkrum dögum gaf Apple út þann hundraðasta iOS 7.0.6 uppfærsla, um útgáfuna sem við tilkynntum þér um. Mörgum kann að hafa komið á óvart að uppfærslan var einnig gefin út fyrir eldri iOS 6 (útgáfa 6.1.6) og Apple TV (útgáfa 6.0.2). Þetta er öryggisplástur, þannig að Apple hafði ekki efni á að uppfæra aðeins hluta tækja sinna. Það sem meira er, þetta mál hefur einnig áhrif á OS X. Að sögn Trudy Muller, talsmanns Apple, verður OS X uppfærsla gefin út eins fljótt og auðið er.

Af hverju er svona mikið hype í kringum þessa uppfærslu? Galli í kóða kerfisins gerir kleift að komast framhjá sannprófun netþjóns við örugga sendingu á tengslalagi ISO/OSI viðmiðunarlíkans. Nánar tiltekið er bilunin slæm SSL útfærsla á þeim hluta þar sem vottorð netþjóns fer fram. Áður en ég fer í frekari útskýringar vil ég frekar lýsa grunnhugtökum.

SSL (Secure Socket Layer) er samskiptaregla sem notuð er fyrir örugg samskipti. Það nær öryggi með dulkóðun og auðkenningu samskiptaaðila. Auðkenning er staðfesting á framvísuðu auðkenni. Í raunveruleikanum, til dæmis, segir þú nafnið þitt (auðkenni) og sýnir auðkenni þitt svo að hinn aðilinn geti staðfest það (staðfest). Sannvottun skiptist síðan í sannprófun, sem er bara dæmi með þjóðarskírteini, eða auðkenningu, þegar viðkomandi getur ákveðið hver þú ert án þess að þú framvísar honum fyrirfram.

Nú myndi ég í stuttu máli komast að servervottorðinu. Í raunveruleikanum gæti skírteinið þitt til dæmis verið auðkenniskort. Allt byggist á ósamhverfri dulritun, þar sem hvert viðfangsefni á tvo lykla - einkaaðila og opinbera. Allt fegurðin felst í því að hægt er að dulkóða skilaboðin með almenningslyklinum og afkóða með einkalyklinum. Þetta þýðir að aðeins eigandi einkalykilsins getur afkóðað skilaboðin. Á sama tíma er engin þörf á að hafa áhyggjur af því að flytja leynilykilinn til beggja samskiptaaðila. Vottorðið er síðan opinber lykill einstaklingsins ásamt upplýsingum þess og undirritað af vottunaryfirvöldum. Í Tékklandi er eitt af vottunaryfirvöldum til dæmis Česká Pošta. Þökk sé vottorðinu getur iPhone staðfest að hann sé í raunverulegum samskiptum við tiltekinn netþjón.

SSL notar ósamhverfa dulkóðun við að koma á tengingu, svokallaða SSL handabandi. Á þessu stigi staðfestir iPhone þinn að hann sé í samskiptum við tiltekinn netþjón og á sama tíma, með hjálp ósamhverfra dulkóðunar, er kominn á samhverfur lykill sem verður notaður fyrir öll síðari samskipti. Samhverf dulkóðun er hraðari. Eins og þegar hefur verið skrifað kemur villa þegar fram við staðfestingu netþjóns. Við skulum skoða kóðann sem veldur þessu kerfisveikleika.

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;
}

Í öðru ástandi if þú getur séð tvær skipanir hér að neðan goto mistakast;. Og það er ásteytingarsteinninn. Þessi kóði veldur því að önnur skipunin er framkvæmd á því stigi þegar vottorðið ætti að vera staðfest goto mistakast;. Þetta veldur því að þriðja skilyrðið er sleppt if og það verður engin staðfesting á netþjóni.

Afleiðingarnar eru þær að allir með þekkingu á þessum varnarleysi geta boðið iPhone þínum falsað vottorð. Þú eða iPhone, þú munt halda að þú sért að hafa dulkóðuð samskipti, á meðan það er árásarmaður á milli þín og netþjónsins. Slík árás er kölluð maður-í-miðju árás, sem þýðir í grófum dráttum á tékknesku sem maður-í-miðju árás eða maður meðal. Árás sem notar þennan tiltekna galla í OS X og iOS er aðeins hægt að framkvæma ef árásarmaðurinn og fórnarlambið eru á sama neti. Þess vegna er betra að forðast almennings Wi-Fi netkerfi ef þú hefur ekki uppfært iOS. Mac notendur ættu samt að vera varkárir við hvaða net þeir tengjast og hvaða síður þeir heimsækja á þessum netum.

Það er ótrúverðugt hvernig slík banvæn villa gæti hafa komið inn í lokaútgáfur OS X og iOS. Það gæti hafa verið ósamræmi prófun á illa skrifaðum kóða. Þetta myndi þýða að bæði forritarar og prófunaraðilar myndu gera mistök. Þetta kann að virðast ólíklegt fyrir Apple og því koma upp vangaveltur um að þessi galli sé í raun bakdyr, svokölluð. bakdyr. Það er ekki fyrir neitt sem þeir segja að bestu bakdyrnar líti út eins og lúmsk mistök. Hins vegar eru þetta aðeins óstaðfestar kenningar, þannig að við munum gera ráð fyrir að einhver hafi einfaldlega gert mistök.

Ef þú ert ekki viss um hvort kerfið þitt eða vafrinn sé ónæmur fyrir þessari villu skaltu fara á síðuna gotofail.com. Eins og þú sérð á myndunum hér að neðan inniheldur Safari 7.0.1 í OS X Mavericks 10.9.1 villu, en í Safari í iOS 7.0.6 er allt í lagi.

Auðlindir: Ég meira, Reuters
.