Sulje mainos

Muutama päivä sitten Apple julkaisi sadasosan iOS 7.0.6 päivitys, jonka julkaisusta ilmoitimme sinulle. Monet ovat saattaneet yllättyä, että päivitys julkaistiin myös vanhemmalle iOS 6:lle (versio 6.1.6) ja Apple TV:lle (versio 6.0.2). Tämä on tietoturvakorjaus, joten Applella ei ollut varaa päivittää vain osaa laitteistaan. Lisäksi tämä ongelma koskee myös OS X:ää. Applen tiedottajan Trudy Mullerin mukaan OS X -päivitys julkaistaan ​​mahdollisimman pian.

Miksi tämän päivityksen ympärillä on niin paljon hypeä? Virhe järjestelmän koodissa mahdollistaa palvelimen vahvistuksen ohituksen suojatussa lähetyksessä ISO/OSI-viitemallin relaatiokerroksessa. Tarkemmin sanottuna vika on huono SSL-toteutus siinä osassa, jossa palvelimen varmenteen tarkistus tapahtuu. Ennen kuin aloitan lisäselvityksiä, kuvailen mieluummin peruskäsitteitä.

SSL (Secure Socket Layer) on suojattuun viestintään käytetty protokolla. Se saavuttaa turvallisuuden salaamalla ja todentamalla kommunikoivat osapuolet. Todennus on esitetyn henkilöllisyyden vahvistaminen. Tosielämässä esimerkiksi sanot nimesi (identiteettisi) ja näytät henkilöllisyytesi, jotta toinen henkilö voi vahvistaa sen (todennettu). Todennus jakautuu sitten varmentamiseen, joka on vain esimerkki kansallisella henkilökortilla eli tunnistamisesta, jolloin kyseinen henkilö voi määrittää henkilöllisyytesi ilman, että esität sitä hänelle etukäteen.

Nyt menisin lyhyesti palvelimen varmenteeseen. Tosielämässä todistuksesi voi olla esimerkiksi henkilökortti. Kaikki perustuu epäsymmetriseen kryptografiaan, jossa jokaisella subjektilla on kaksi avainta - yksityinen ja julkinen. Koko kauneus piilee siinä, että viesti voidaan salata julkisella avaimella ja purkaa salaus yksityisellä avaimella. Tämä tarkoittaa, että vain yksityisen avaimen omistaja voi purkaa viestin salauksen. Samalla ei tarvitse huolehtia salaisen avaimen siirtämisestä molemmille kommunikoiville osapuolille. Varmenne on tällöin kohteen julkinen avain, jota on täydennetty sen tiedoilla ja jonka varmentaja on allekirjoittanut. Tšekin tasavallassa yksi sertifiointiviranomaisista on esimerkiksi Česká Pošta. Sertifikaatin ansiosta iPhone voi varmistaa, että se todella kommunikoi tietyn palvelimen kanssa.

SSL käyttää epäsymmetristä salausta yhteyden muodostamisessa, ns SSL-kättely. Tässä vaiheessa iPhone varmistaa, että se kommunikoi tietyn palvelimen kanssa, ja samalla epäsymmetrisen salauksen avulla muodostetaan symmetrinen avain, jota käytetään kaikessa myöhemmässä viestinnässä. Symmetrinen salaus on nopeampi. Kuten jo kirjoitettu, virhe ilmenee jo palvelimen vahvistuksen aikana. Katsotaanpa koodia, joka aiheuttaa tämän järjestelmän haavoittuvuuden.

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

Toisessa kunnossa if näet kaksi komentoa alla täytyy epäonnistua;. Ja se on kompastuskivi. Tämä koodi suorittaa sitten toisen komennon suorittamisen siinä vaiheessa, kun varmenne pitäisi tarkistaa täytyy epäonnistua;. Tämä aiheuttaa sen, että kolmas ehto ohitetaan if ja palvelimen vahvistusta ei tehdä ollenkaan.

Tästä seuraa, että kuka tahansa tämän haavoittuvuuden tietävä voi tarjota iPhonellesi väärennetyn varmenteen. Sinä tai iPhonellasi, luulet viestiväsi salattuna, vaikka sinun ja palvelimen välillä on hyökkääjä. Tällaista hyökkäystä kutsutaan ihmisen keskellä hyökkäys, joka on karkeasti käännetty tšekin kieleksi mies keskellä -hyökkäys Nebo mies joukossa. Hyökkäys, joka käyttää tätä erityistä puutetta OS X:ssä ja iOS:ssä, voidaan suorittaa vain, jos hyökkääjä ja uhri ovat samassa verkossa. Siksi on parempi välttää julkisia Wi-Fi-verkkoja, jos et ole päivittänyt iOS-laitettasi. Mac-käyttäjien tulee silti olla varovaisia ​​sen suhteen, mihin verkkoihin he muodostavat yhteyden ja millä sivustoilla he vierailevat kyseisissä verkoissa.

On uskomatonta, kuinka tällainen kohtalokas virhe olisi voinut päästä OS X:n ja iOS:n lopullisiin versioihin. Se olisi voinut olla huonosti kirjoitetun koodin epäjohdonmukaista testausta. Tämä tarkoittaisi, että sekä ohjelmoija että testaajat tekisivät virheitä. Tämä saattaa tuntua Applen kannalta epätodennäköiseltä, joten spekulaatiot tulevat esiin, että tämä bugi on itse asiassa takaovi, ns. takaovi. Ei turhaan sanota, että parhaat takaovet näyttävät hienovaraisilta virheiltä. Nämä ovat kuitenkin vain vahvistamattomia teorioita, joten oletamme, että joku on yksinkertaisesti tehnyt virheen.

Jos et ole varma, onko järjestelmäsi tai selaimesi immuuni tälle virheelle, käy sivulla gotofail.com. Kuten alla olevista kuvista näkyy, OS X Mavericks 7.0.1:n Safari 10.9.1 sisältää virheen, kun taas iOS 7.0.6:n Safarissa kaikki on kunnossa.

lähteet: iMore, Reuters
.