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.
Angrip GJENNOM…. Jeg har ikke hatt en så god, hjertelig latter på lenge!
Uansett hvordan det er - jeg personlig forstår det som en melding fra APPLE til alle brukere - enten det var på den ene eller andre måten (og jeg tror ikke at flere enn de nevnte 2 mulighetene for forekomsten av denne feilen er reelle), begge er en enkel hån mot vanlige eiere av APPLE-ting!
Takk Gud for at du hadde rett.
Jeg vil tro at dette er en reell feil. Jeg kan tenke meg at det ble opprettet ved sammenslåing av to grener i versjonssystemet, hvis en gren var en linje lengre. Uansett, dette er bare en annen sak som bekrefter at det er fornuftig å tvinge programmerere til å omslutte til og med en enlinje hvis kroppen i en blokk.
Takk for detaljert beskrivelse!
Beklager at jeg skriver utenfor diskusjonen, men nå leser jeg på idnes at den påståtte større iPhonen skal hete iPhablet :-D Jeg mistet den nesten.. :-D Hilsen alle epleelskere
….. Wow, kreativiteten forsvinner ikke sakte ….. kanskje det bare er en and!
Hei, har du problemer med batterilevetiden etter oppdateringen? Jeg fikk en ny etter mange klager på iP5, så jeg har et nytt batteri som varte i nesten to dager. Etter oppdateringen døde telefonen min innen 8 timer, og jeg bruker den ikke mye.
Personlig har jeg ikke registrert noe problem med lommelykten. Ja tidligere, og en sikkerhetskopi og ren ominstallering av iOS har alltid hjulpet. Forhåpentligvis vil det hjelpe deg.
Jeg gjorde det i dag og dessverre ingen endring :-/