tice.de websiteproductions tice.de websiteproductions Main address:Julius-Ludowieg-Str. 84 21073 Hamburg, Germany Tel:+49 172 418 76 98E-mail:blog@tice.de
Apples SSL/TLS bug - Eine Erläuterung | CMS Hamburg

Apples SSL/TLS bug - Eine Erläuterung

Samstag, 1. März 2014


Unten zu sehen ein Ausschnitt aus Apple's veröffentlichtem Open source code:

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

Die if Abfragen in diesem Code sind Teil der iOS's Signatur Verifikation für bestimmte cipher suites die in SSL/TLS benutzt werden können. In der zweiten if-Abfrage sieht man ein if gefolgt von zwei "goto fail" Reihen. Die zweite ist die die den bug beinhaltet.

Das Ergebnis dieses Codes ist der Teil in dem die Server-Signatur-Validierung nie ausgeführt wird. Der Code versucht das Zertifikat zu validieren, aber nach und vor dem Validieren des Zertifikates und vor der Validierung der Signatur des Zertifikates, trifft der Code immer auf die zweite "goto fail" Anweisung, welche kurz gesagt den letzten Teil überspringt, also den Teil wo die Signatur validiert wird.

Dieser bug betrifft jede Software die Apple's SecureTransport API nutzt um SSL oder TLS Verbindungen herzustellen, einschließlich Safari und viele weitere Programme von anderen Anbietern.

Die Empfehlung lautet: Updates machen.







Kommentar eingeben:







3 a 9 f 9 9 ☞