Lukk annonse

For noen dager siden slapp Apple den hundre iOS 7.0.6-oppdatering, om utgivelsen som vi informerte deg om. Mange kan ha blitt overrasket over at oppdateringen også ble utgitt for eldre iOS 6 (versjon 6.1.6) og Apple TV (versjon 6.0.2). Dette er en sikkerhetsoppdatering, så Apple hadde ikke råd til å oppdatere bare en del av enhetene sine. Dessuten påvirker dette problemet også OS X. Ifølge Apples talsperson Trudy Muller vil en OS X-oppdatering bli utgitt så snart som mulig.

Hvorfor er det så mye hype rundt denne oppdateringen? En feil i systemets kode gjør at serververifisering kan omgås ved sikker overføring ved relasjonslaget til ISO/OSI-referansemodellen. Konkret er feilen en dårlig SSL-implementering i delen der serversertifikatverifisering finner sted. Før jeg går inn på nærmere forklaring, foretrekker jeg å beskrive de grunnleggende begrepene.

SSL (Secure Socket Layer) er en protokoll som brukes for sikker kommunikasjon. Den oppnår sikkerhet ved hjelp av kryptering og autentisering av kommuniserende parter. Autentisering er verifiseringen av den presenterte identiteten. I det virkelige liv sier du for eksempel navnet ditt (identiteten) og viser din ID slik at den andre personen kan bekrefte det (autentisere). Autentisering deles da inn i verifisering, som bare er et eksempel med nasjonalt identitetskort, eller identifikasjon, når vedkommende kan fastslå din identitet uten at du har fremvist det for ham på forhånd.

Nå ville jeg kort komme til serversertifikatet. I det virkelige liv kan sertifikatet ditt for eksempel være et ID-kort. Alt er basert på asymmetrisk kryptografi, hvor hvert fag eier to nøkler – private og offentlige. Hele skjønnheten ligger i det faktum at meldingen kan krypteres med den offentlige nøkkelen og dekrypteres med den private nøkkelen. Dette betyr at bare eieren av den private nøkkelen kan dekryptere meldingen. Samtidig er det ingen grunn til bekymring for å overføre den hemmelige nøkkelen til begge kommuniserende parter. Sertifikatet er da fagets offentlige nøkkel supplert med informasjonen og signert av sertifiseringsmyndigheten. I Tsjekkia er en av sertifiseringsmyndighetene for eksempel Česká Pošta. Takket være sertifikatet kan iPhone bekrefte at den virkelig kommuniserer med den gitte serveren.

SSL bruker asymmetrisk kryptering ved etablering av forbindelse, den såkalte SSL-håndtrykk. På dette stadiet bekrefter din iPhone at den kommuniserer med den gitte serveren, og samtidig, ved hjelp av asymmetrisk kryptering, etableres en symmetrisk nøkkel som vil bli brukt for all etterfølgende kommunikasjon. Symmetrisk kryptering er raskere. Som allerede skrevet, oppstår feilen allerede under serververifisering. La oss ta en titt på koden som forårsaker dette systemets sårbarhet.

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

I den andre tilstanden if du kan se to kommandoer nedenfor må mislykkes;. Og det er snublesteinen. Denne koden fører deretter til at den andre kommandoen blir utført på det stadiet da sertifikatet skal verifiseres må mislykkes;. Dette fører til at den tredje tilstanden hoppes over if og det vil ikke være noen serververifisering i det hele tatt.

Implikasjonene er at alle med kunnskap om denne sårbarheten kan tilby din iPhone et falskt sertifikat. Du eller din iPhone, vil du tro at du kommuniserer kryptert, mens det er en angriper mellom deg og serveren. Et slikt angrep kalles Man-in-the-middle angrep, som omtrent oversettes til tsjekkisk som mann-i-midten angrep eller mann blant. Et angrep som bruker denne spesielle feilen i OS X og iOS kan bare utføres hvis angriperen og offeret er på samme nettverk. Derfor er det bedre å unngå offentlige Wi-Fi-nettverk hvis du ikke har oppdatert iOS. Mac-brukere bør fortsatt være forsiktige med hvilke nettverk de kobler til og hvilke nettsteder de besøker på disse nettverkene.

Det er ufattelig hvordan en slik fatal feil kunne ha gjort det til de endelige versjonene av OS X og iOS. Det kan ha vært inkonsekvent testing av dårlig skrevet kode. Dette ville bety at både programmereren og testerne ville gjøre feil. Dette kan virke usannsynlig for Apple, og derfor dukker det opp spekulasjoner om at denne feilen faktisk er en bakdør, den såkalte. bakdør. Det er ikke for ingenting de sier at de beste bakdørene ser ut som subtile feil. Dette er imidlertid kun ubekreftede teorier, så vi vil anta at noen rett og slett har gjort en feil.

Hvis du ikke er sikker på om systemet eller nettleseren din er immun mot denne feilen, besøk siden gotofail.com. Som du kan se på bildene nedenfor, inneholder Safari 7.0.1 i OS X Mavericks 10.9.1 en feil, mens i Safari i iOS 7.0.6 er alt bra.

Ressurser: iMore, Reuters
.