Luk annoncen

For et par dage siden udgav Apple den hundrede iOS 7.0.6 opdatering, om udgivelsen, som vi informerede dig om. Mange er måske blevet overraskede over, at opdateringen også blev udgivet til ældre iOS 6 (version 6.1.6) og Apple TV (version 6.0.2). Dette er en sikkerhedsrettelse, så Apple havde ikke råd til kun at opdatere en del af sine enheder. Hvad mere er, påvirker dette problem også OS X. Ifølge Apples talsmand Trudy Muller vil en OS X-opdatering blive frigivet så hurtigt som muligt.

Hvorfor er der så meget hype omkring denne opdatering? En fejl i systemets kode gør det muligt at omgå serververifikation ved sikker transmission i det relationelle lag af ISO/OSI-referencemodellen. Konkret er fejlen en dårlig SSL-implementering i den del, hvor servercertifikatverifikation finder sted. Før jeg går ind i yderligere forklaring, foretrækker jeg at beskrive de grundlæggende begreber.

SSL (Secure Socket Layer) er en protokol, der bruges til sikker kommunikation. Det opnår sikkerhed ved hjælp af kryptering og autentificering af kommunikerende parter. Autentificering er verifikation af den præsenterede identitet. I det virkelige liv siger du for eksempel dit navn (identitet) og viser dit ID, så den anden person kan bekræfte det (autentificere). Autentificering opdeles så i verifikation, som blot er et eksempel med nationalt identitetskort, eller identifikation, når den pågældende kan fastslå din identitet, uden at du på forhånd har fremvist det.

Nu ville jeg kort komme til servercertifikatet. I det virkelige liv kan dit certifikat for eksempel være et ID-kort. Alt er baseret på asymmetrisk kryptografi, hvor hvert emne ejer to nøgler – private og offentlige. Hele skønheden ligger i, at beskeden kan krypteres med den offentlige nøgle og dekrypteres med den private nøgle. Det betyder, at kun ejeren af ​​den private nøgle kan dekryptere beskeden. Samtidig er der ingen grund til at bekymre sig om at overføre den hemmelige nøgle til begge kommunikerende parter. Certifikatet er derefter emnets offentlige nøgle suppleret med dets oplysninger og underskrevet af certificeringsmyndigheden. I Tjekkiet er en af ​​certificeringsmyndighederne for eksempel Česká Pošta. Takket være certifikatet kan iPhone bekræfte, at den virkelig kommunikerer med den givne server.

SSL anvender asymmetrisk kryptering ved etablering af en forbindelse, den såkaldte SSL håndtryk. På dette tidspunkt verificerer din iPhone, at den kommunikerer med den givne server, og samtidig etableres der ved hjælp af asymmetrisk kryptering en symmetrisk nøgle, som vil blive brugt til al efterfølgende kommunikation. Symmetrisk kryptering er hurtigere. Som allerede skrevet opstår fejlen allerede under serververifikation. Lad os tage et kig på koden, der forårsager denne systemsårbarhed.

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 anden tilstand if du kan se to kommandoer nedenfor skal fejle;. Og det er anstødssten. Denne kode får så den anden kommando til at blive udført på det tidspunkt, hvor certifikatet skal verificeres skal fejle;. Dette medfører, at den tredje betingelse springes over if og der vil ikke være nogen serverbekræftelse overhovedet.

Konsekvenserne er, at alle med viden om denne sårbarhed kan tilbyde din iPhone et falsk certifikat. dig eller din iPhone, vil du tro, at du kommunikerer krypteret, mens der er en angriber mellem dig og serveren. Et sådant angreb kaldes mand-i-midten angreb, hvilket groft oversættes til tjekkisk som mand-i-midten angreb Nebo mand blandt. Et angreb med denne særlige fejl i OS X og iOS kan kun udføres, hvis angriberen og offeret er på samme netværk. Derfor er det bedre at undgå offentlige Wi-Fi-netværk, hvis du ikke har opdateret din iOS. Mac-brugere bør stadig være forsigtige med, hvilke netværk de opretter forbindelse til, og hvilke websteder de besøger på disse netværk.

Det er ufatteligt, hvordan sådan en fatal fejl kunne have gjort det til de endelige versioner af OS X og iOS. Det kunne have været inkonsekvent test af dårligt skrevet kode. Dette ville betyde, at både programmøren og testerne ville lave fejl. Dette kan virke usandsynligt for Apple, og derfor dukker der spekulationer op om, at denne fejl faktisk er en bagdør, den såkaldte. bagdør. Det er ikke for ingenting, at de siger, at de bedste bagdøre ligner subtile fejl. Det er dog kun ubekræftede teorier, så vi vil antage, at nogen simpelthen har lavet en fejl.

Hvis du ikke er sikker på, om dit system eller din browser er immun over for denne fejl, kan du besøge siden gotofail.com. Som du kan se på billederne nedenfor, indeholder Safari 7.0.1 i OS X Mavericks 10.9.1 en fejl, mens alt er fint i Safari i iOS 7.0.6.

kilder: iMore, Reuters
.