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.
Angriff DURCH…. Ich habe schon lange nicht mehr so gut und herzlich gelacht!
Wie dem auch sei – ich persönlich verstehe es als eine Nachricht von APPLE an alle Benutzer – egal, ob es so oder so war (und ich glaube nicht, dass mehr als die genannten 2 Möglichkeiten des Auftretens dieses Fehlers real sind), Beides ist eine einfache Verhöhnung gewöhnlicher Besitzer von APPLE-Sachen!
Gott sei Dank hattest du recht.
Ich würde glauben, dass dies ein echter Fehler ist. Ich kann mir vorstellen, dass es beim Zusammenführen zweier Zweige im Versionierungssystem erstellt wurde, wenn ein Zweig eine Zeile länger war. Wie auch immer, dies ist nur ein weiterer Fall, der bestätigt, dass es sinnvoll ist, Programmierer zu zwingen, auch nur einen einzeiligen if-Text in einen Block einzuschließen.
Danke für die ausführliche Beschreibung!
Tut mir leid, dass ich außerhalb der Diskussion schreibe, aber jetzt habe ich bei IDNES gelesen, dass das angeblich größere iPhone iPhablet heißen soll :-D Ich hätte es fast verloren. :-D Grüße an alle Apfelliebhaber
….. Wow, die Kreativität verschwindet nicht langsam ….. vielleicht ist es nur eine Ente!
Hallo, haben Sie nach dem Update Probleme mit der Akkulaufzeit? Ich habe mir nach vielen Beschwerden über den iP5 einen neuen zugelegt, sodass ich einen neuen Akku habe, der fast zwei Tage durchgehalten hat. Nach dem Update ist mein Telefon innerhalb von 8 Stunden kaputt gegangen und ich benutze es nicht mehr oft.
Persönlich habe ich kein Problem mit der Taschenlampe registriert. Ja, aber in der Vergangenheit hat ein Backup und eine saubere Neuinstallation von iOS immer geholfen. Hoffentlich wird es Ihnen helfen.
Das habe ich heute gemacht und leider keine Änderung :-/