Anzeige schließen

Vor ein paar Tagen hat Apple den Hundertsten veröffentlicht iOS 7.0.6-Update, über dessen Veröffentlichung wir Sie informiert haben. Viele dürften überrascht gewesen sein, dass das Update auch für ältere iOS 6 (Version 6.1.6) und Apple TV (Version 6.0.2) veröffentlicht wurde. Da es sich um einen Sicherheitspatch handelt, konnte es sich Apple nicht leisten, nur einen Teil seiner Geräte zu aktualisieren. Darüber hinaus betrifft dieses Problem auch OS X. Laut Apple-Sprecherin Trudy Muller wird so bald wie möglich ein OS X-Update veröffentlicht.

Warum gibt es so viel Hype um dieses Update? Durch einen Fehler im Systemcode kann die Serverüberprüfung bei sicherer Übertragung auf der relationalen Ebene des ISO/OSI-Referenzmodells umgangen werden. Konkret handelt es sich bei dem Fehler um eine fehlerhafte SSL-Implementierung in dem Teil, in dem die Überprüfung des Serverzertifikats stattfindet. Bevor ich auf weitere Erklärungen eingehe, beschreibe ich lieber die Grundkonzepte.

SSL (Secure Socket Layer) ist ein Protokoll zur sicheren Kommunikation. Die Sicherheit wird durch Verschlüsselung und Authentifizierung der kommunizierenden Parteien erreicht. Unter Authentifizierung versteht man die Überprüfung der vorgelegten Identität. Im wirklichen Leben sagen Sie beispielsweise Ihren Namen (Identität) und zeigen Ihren Ausweis vor, damit die andere Person ihn überprüfen (authentifizieren) kann. Die Authentifizierung gliedert sich dann in die Verifizierung, was nur ein Beispiel bei einem Personalausweis ist, oder in die Identifizierung, bei der die betreffende Person Ihre Identität feststellen kann, ohne dass Sie sie ihr vorher vorlegen müssen.

Nun möchte ich kurz zum Serverzertifikat kommen. Im echten Leben könnte Ihr Zertifikat beispielsweise ein Personalausweis sein. Alles basiert auf asymmetrischer Kryptographie, bei der jedes Subjekt zwei Schlüssel besitzt – einen privaten und einen öffentlichen. Das Schöne daran ist, dass die Nachricht mit dem öffentlichen Schlüssel verschlüsselt und mit dem privaten Schlüssel entschlüsselt werden kann. Dies bedeutet, dass nur der Besitzer des privaten Schlüssels die Nachricht entschlüsseln kann. Gleichzeitig besteht kein Grund zur Sorge, den geheimen Schlüssel an beide Kommunikationspartner weiterzugeben. Das Zertifikat ist dann der öffentliche Schlüssel des Subjekts, der mit seinen Informationen ergänzt und von der Zertifizierungsstelle signiert wird. In der Tschechischen Republik ist beispielsweise die Česká Pošta eine der Zertifizierungsstellen. Dank des Zertifikats kann das iPhone überprüfen, ob es tatsächlich mit dem angegebenen Server kommuniziert.

SSL nutzt beim Verbindungsaufbau eine asymmetrische Verschlüsselung, die sogenannte SSL-Handshake. In diesem Stadium überprüft Ihr iPhone, ob es mit dem angegebenen Server kommuniziert, und gleichzeitig wird mithilfe der asymmetrischen Verschlüsselung ein symmetrischer Schlüssel erstellt, der für die gesamte nachfolgende Kommunikation verwendet wird. Die symmetrische Verschlüsselung ist schneller. Wie bereits geschrieben, tritt der Fehler bereits bei der Serverüberprüfung auf. Werfen wir einen Blick auf den Code, der diese Systemschwachstelle verursacht.

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

Im zweiten Zustand if Unten sehen Sie zwei Befehle muss scheitern;. Und das ist der Stolperstein. Dieser Code veranlasst dann die Ausführung des zweiten Befehls in der Phase, in der das Zertifikat überprüft werden soll muss scheitern;. Dadurch wird die dritte Bedingung übersprungen if und es findet überhaupt keine Serverüberprüfung statt.

Dies bedeutet, dass jeder, der Kenntnis von dieser Sicherheitslücke hat, Ihrem iPhone ein gefälschtes Zertifikat anbieten kann. Du oder B. Ihr iPhone, denken Sie, dass Sie verschlüsselt kommunizieren, während zwischen Ihnen und dem Server ein Angreifer steht. Ein solcher Angriff wird aufgerufen Man-in-the-Middle-Angriff, was ins Tschechische ungefähr als übersetzt bedeutet Man-in-the-Middle-Angriff nebo Mann unter. Ein Angriff, der diese spezielle Schwachstelle in OS X und iOS ausnutzt, kann nur ausgeführt werden, wenn sich Angreifer und Opfer im selben Netzwerk befinden. Daher ist es besser, öffentliche Wi-Fi-Netzwerke zu meiden, wenn Sie Ihr iOS nicht aktualisiert haben. Mac-Benutzer sollten dennoch vorsichtig sein, mit welchen Netzwerken sie sich verbinden und welche Websites sie in diesen Netzwerken besuchen.

Es ist unvorstellbar, wie solch ein schwerwiegender Fehler in die endgültigen Versionen von OS X und iOS gelangen konnte. Es könnte ein inkonsistentes Testen von schlecht geschriebenem Code gewesen sein. Dies würde bedeuten, dass sowohl der Programmierer als auch die Tester Fehler machen würden. Dies mag für Apple unwahrscheinlich erscheinen, und so tauchen Spekulationen auf, dass es sich bei diesem Fehler tatsächlich um eine Hintertür handelt, die sogenannte. Hintertür. Nicht umsonst sagt man, dass die besten Hintertüren wie subtile Fehler aussehen. Allerdings handelt es sich dabei nur um unbestätigte Theorien, wir gehen also davon aus, dass jemand einfach einen Fehler gemacht hat.

Wenn Sie nicht sicher sind, ob Ihr System oder Browser gegen diesen Fehler immun ist, besuchen Sie die Seite gotofail.com. Wie Sie in den Bildern unten sehen können, enthält Safari 7.0.1 in OS X Mavericks 10.9.1 einen Fehler, während in Safari in iOS 7.0.6 alles in Ordnung ist.

Quellen: iMORE, Reuters
.