För några dagar sedan släppte Apple den hundrade iOS 7.0.6 uppdatering, om utgivningen som vi informerade dig om. Många kan ha blivit förvånade över att uppdateringen även släpptes för äldre iOS 6 (version 6.1.6) och Apple TV (version 6.0.2). Detta är en säkerhetskorrigering, så Apple hade inte råd att uppdatera bara en del av sina enheter. Det här problemet påverkar dessutom OS X. Enligt Apples talesperson Trudy Muller kommer en OS X-uppdatering att släppas så snart som möjligt.
Varför är det så mycket hype kring den här uppdateringen? Ett fel i systemets kod gör att serververifiering kan kringgås vid säker överföring i det relationella lagret i ISO/OSI-referensmodellen. Specifikt är felet en dålig SSL-implementering i den del där servercertifikatverifiering äger rum. Innan jag går in på ytterligare förklaringar föredrar jag att beskriva de grundläggande begreppen.
SSL (Secure Socket Layer) är ett protokoll som används för säker kommunikation. Den uppnår säkerhet genom kryptering och autentisering av kommunicerande parter. Autentisering är verifieringen av den presenterade identiteten. I verkliga livet säger du till exempel ditt namn (identitet) och visar ditt ID så att den andra personen kan verifiera det (autenticera). Autentisering delas sedan upp i verifiering, som bara är ett exempel med nationellt identitetskort, eller legitimation, då personen i fråga kan fastställa din identitet utan att du uppvisar den för honom i förväg.
Nu skulle jag kort komma till servercertifikatet. I verkligheten kan ditt certifikat till exempel vara ett ID-kort. Allt bygger på asymmetrisk kryptografi, där varje ämne äger två nycklar – privata och offentliga. Hela skönheten ligger i det faktum att meddelandet kan krypteras med den offentliga nyckeln och dekrypteras med den privata nyckeln. Detta innebär att endast ägaren till den privata nyckeln kan dekryptera meddelandet. Samtidigt finns det ingen anledning att oroa sig för att överföra den hemliga nyckeln till båda kommunicerande parter. Certifikatet är sedan försökspersonens publika nyckel kompletterad med dess information och signerad av certifieringsmyndigheten. I Tjeckien är en av certifieringsmyndigheterna till exempel Česká Pošta. Tack vare certifikatet kan iPhone verifiera att den verkligen kommunicerar med den givna servern.
SSL använder asymmetrisk kryptering vid upprättande av en anslutning, den sk SSL-handslag. I detta skede verifierar din iPhone att den kommunicerar med den givna servern, och samtidigt, med hjälp av asymmetrisk kryptering, upprättas en symmetrisk nyckel, som kommer att användas för all efterföljande kommunikation. Symmetrisk kryptering är snabbare. Som redan skrivits uppstår felet redan under serververifieringen. Låt oss ta en titt på koden som orsakar denna systemså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 det andra tillståndet if du kan se två kommandon nedan måste misslyckas;. Och det är stötestenen. Denna kod gör att det andra kommandot körs i det skede då certifikatet ska verifieras måste misslyckas;. Detta gör att det tredje villkoret hoppas över if och det blir ingen serververifiering alls.
Konsekvenserna är att alla med kunskap om denna sårbarhet kan erbjuda din iPhone ett falskt certifikat. Du eller din iPhone kommer du att tro att du kommunicerar krypterat, medan det finns en angripare mellan dig och servern. En sådan attack kallas man-i-mitten attack, vilket ungefär översätts till tjeckiska som man-i-mitten attack Nebo man bland. En attack med denna speciella brist i OS X och iOS kan endast utföras om angriparen och offret är på samma nätverk. Därför är det bättre att undvika offentliga Wi-Fi-nätverk om du inte har uppdaterat din iOS. Mac-användare bör fortfarande vara försiktiga med vilka nätverk de ansluter till och vilka webbplatser de besöker i dessa nätverk.
Det är obegripligt hur ett sådant ödesdigert fel kunde ha gjort det i de slutliga versionerna av OS X och iOS. Det kan ha varit inkonsekvent testning av dåligt skriven kod. Detta skulle innebära att både programmeraren och testarna skulle göra misstag. Detta kan tyckas osannolikt för Apple, och därför dyker det upp spekulationer om att denna bugg faktiskt är en bakdörr, den så kallade. bakdörr. Det är inte för inte som de säger att de bästa bakdörrarna ser ut som subtila misstag. Detta är dock bara obekräftade teorier, så vi kommer att anta att någon helt enkelt gjort ett misstag.
Om du inte är säker på om ditt system eller din webbläsare är immun mot detta fel, besök sidan gotofail.com. Som du kan se på bilderna nedan innehåller Safari 7.0.1 i OS X Mavericks 10.9.1 en bugg, medan i Safari i iOS 7.0.6 är allt bra.
Attackera GENOM…. Jag har inte haft ett så gott, rejält skratt på länge!
Hur det än må vara - jag förstår det personligen som ett meddelande från APPLE till alla användare - oavsett om det var på ett eller annat sätt (och jag tror inte att fler än de två nämnda möjligheterna att detta fel uppstår är verkliga), båda är ett enkelt hån mot vanliga ägare av APPLE saker!
Tack gode gud att du hade rätt.
Jag skulle tro att detta är ett verkligt misstag. Jag kan tänka mig att det skapades när två grenar slogs samman i versionssystemet, om en gren var en rad längre. Hur som helst, detta är bara ytterligare ett fall som bekräftar att det är meningsfullt att tvinga programmerare att omsluta en rad om kroppen i ett block.
Tack för den utförliga beskrivningen!
Ursäkta att jag skriver utanför diskussionen, men nu läste jag på idnes att den påstådda större iPhonen borde heta iPhablet :-D Jag tappade nästan bort den.. :-D Hälsningar till alla äppleälskare
….. Wow, kreativiteten försvinner inte långsamt ….. det kanske bara är en anka!
Hej, har du problem med batteritiden efter uppdateringen? Jag fick en ny efter många klagomål på iP5, så jag har ett nytt batteri som räckte i nästan två dagar. Efter uppdateringen dog min telefon inom 8 timmar och jag använder den inte mycket.
Själv har jag inte registrerat några problem med ficklampan. Ja tidigare dock, och en säkerhetskopiering och ren ominstallation av iOS har alltid hjälpt. Förhoppningsvis kommer det att hjälpa dig.
Det gjorde jag idag och tyvärr ingen förändring :-/