Maak advertensie toe

'n Paar dae gelede het Apple die honderdste vrygestel iOS 7.0.6-opdatering, oor die vrystelling waarvan ons u ingelig het. Baie was dalk verbaas dat die opdatering ook vir ouer iOS 6 (weergawe 6.1.6) en Apple TV (weergawe 6.0.2) vrygestel is. Dit is 'n sekuriteitspleister, so Apple kon nie bekostig om slegs 'n gedeelte van sy toestelle op te dateer nie. Boonop raak hierdie kwessie ook OS X. Volgens Trudy Muller, Apple-woordvoerder, sal 'n OS X-opdatering so gou moontlik vrygestel word.

Hoekom is daar soveel hype rondom hierdie opdatering? 'n Fout in die stelsel se kode laat toe dat bedienerverifikasie by veilige transmissie by die relasionele laag van die ISO/OSI-verwysingsmodel omseil word. Spesifiek, die fout is 'n slegte SSL-implementering in die deel waar bedienersertifikaatverifikasie plaasvind. Voordat ek verder ingaan, verkies ek om die basiese konsepte te beskryf.

SSL (Secure Socket Layer) is 'n protokol wat gebruik word vir veilige kommunikasie. Dit bereik sekuriteit deur middel van enkripsie en verifikasie van kommunikerende partye. Verifikasie is die verifikasie van die aangebied identiteit. In die werklike lewe sê jy byvoorbeeld jou naam (identiteit) en wys jou ID sodat die ander persoon dit kan verifieer (verifieer). Stawing word dan verdeel in verifikasie, wat maar net 'n voorbeeld is met 'n nasionale identiteitskaart, of identifikasie, wanneer die betrokke persoon jou identiteit kan bepaal sonder dat jy dit vooraf aan hom voorhou.

Nou sou ek kortliks by die bedienersertifikaat uitkom. In die werklike lewe kan jou sertifikaat byvoorbeeld 'n ID-kaart wees. Alles is gebaseer op asimmetriese kriptografie, waar elke vak twee sleutels besit - privaat en publiek. Die hele skoonheid lê in die feit dat die boodskap met die publieke sleutel geënkripteer kan word en met die private sleutel gedekripteer kan word. Dit beteken dat slegs die eienaar van die private sleutel die boodskap kan dekripteer. Terselfdertyd hoef u nie bekommerd te wees oor die oordrag van die geheime sleutel na beide kommunikerende partye nie. Die sertifikaat is dan die vak se publieke sleutel aangevul met sy inligting en onderteken deur die sertifiseringsowerheid. In die Tsjeggiese Republiek is een van die sertifiseringsowerhede byvoorbeeld Česká Pošta. Danksy die sertifikaat kan die iPhone verifieer dat dit werklik met die gegewe bediener kommunikeer.

SSL gebruik asimmetriese enkripsie wanneer 'n verbinding tot stand gebring word, die sogenaamde SSL-handdruk. Op hierdie stadium verifieer jou iPhone dat dit met die gegewe bediener kommunikeer, en terselfdertyd, met behulp van asimmetriese enkripsie, word 'n simmetriese sleutel tot stand gebring, wat vir alle daaropvolgende kommunikasie gebruik sal word. Simmetriese enkripsie is vinniger. Soos reeds geskryf, kom die fout reeds voor tydens bedienerverifikasie. Kom ons kyk na die kode wat hierdie stelsel kwesbaarheid veroorsaak.

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

In die tweede toestand if jy kan twee opdragte hieronder sien moet misluk;. En dit is die struikelblok. Hierdie kode veroorsaak dan dat die tweede opdrag uitgevoer word op die stadium wanneer die sertifikaat geverifieer moet word moet misluk;. Dit veroorsaak dat die derde toestand oorgeslaan word if en daar sal glad nie bedienerverifikasie wees nie.

Die implikasies is dat enigiemand met kennis van hierdie kwesbaarheid vir jou iPhone 'n vals sertifikaat kan aanbied. Jy of jou iPhone, sal jy dink jy kommunikeer geïnkripteer, terwyl daar 'n aanvaller tussen jou en die bediener is. So 'n aanval word genoem man-in-die-middel-aanval, wat rofweg in Tsjeggies vertaal as man-in-die-middel-aanval nebo man onder. 'n Aanval wat hierdie spesifieke fout in OS X en iOS gebruik, kan slegs uitgevoer word as die aanvaller en die slagoffer op dieselfde netwerk is. Daarom is dit beter om openbare Wi-Fi-netwerke te vermy as jy nie jou iOS opgedateer het nie. Mac-gebruikers moet steeds versigtig wees met watter netwerke hulle koppel en watter werwe hulle op daardie netwerke besoek.

Dit is ongeloofwaardig hoe so 'n noodlottige fout dit in die finale weergawes van OS X en iOS kon gemaak het. Dit kon inkonsekwente toetsing van swak geskrewe kode gewees het. Dit sou beteken dat beide die programmeerder en die toetsers foute sou maak. Dit lyk dalk onwaarskynlik vir Apple, en dus kom bespiegelings na vore dat hierdie fout eintlik 'n agterdeur is, die sogenaamde. agterdeur. Dis nie verniet dat hulle sê dat die beste agterdeure na subtiele foute lyk nie. Dit is egter slegs onbevestigde teorieë, so ons sal aanvaar dat iemand bloot 'n fout gemaak het.

As jy nie seker is of jou stelsel of blaaier immuun is teen hierdie fout nie, besoek die bladsy gotofail.com. Soos jy in die prente hieronder kan sien, het Safari 7.0.1 in OS X Mavericks 10.9.1 'n fout, terwyl in Safari in iOS 7.0.6 alles goed is.

bronne: imore, Reuters
.