daily.out

2013-02-15 iOS 6 Unlock-Bug

In iOS 6 tauchte ein Fehler auf, bei dem man trotz Lock-Screen in die Phone.app und von dort in die Kontakte und beim Editieren der Kontake auch in die Photos gelangen kann. Daß die Kontakte und Photos zugreifbar sind durch die Phone.app ist einleuchtend, da ein gesperrtes iPhone ja trotzdem Anrufer mit Name und Bild anzeigen können soll.

Somit ließ sich der Lock-Screen umgehen und das iPhone ungewollt benutzen. Da alle Videos dazu nur Geräte mit einfachem 4-stelligem Zahlen-Code zeigten, war ich neugierig, ob es auch mit langem Paßwort funktioniert.

Ich benutze nicht den "Simple Passcode", weil 4 numerische Stellen in 18 Minuten geknackt werden können. Der Brute Force Angriff, also alle Möglichkeiten durchprobieren, muß auf dem Gerät stattfinden, weil einer der Schlüssel zum Entsperren nur per Hardware gelesen werden kann. Das macht Apple, damit man das Knacken nicht auf schnellerer Hardware durchführen kann. Bei 6 alphanumerischen Stellen erhöht sich die Zeit auf 196 Jahre und das gefällt mir schon viel besser. Siehe dazu das iOS Hacker's Handbook.

Um es kurz zu machen: Auch ein komplexes Paßwort schützt nicht vor diesem Angriff. Das sieht mancher aber ganz anders und verkauft eine falsche Lösung. Der Trugschluß dabei ist: Wenn man es selber nicht schafft, bedeutet das nicht, daß es kein anderer schafft. Bei mir klappt es inzwischen regelmäßig auf Anhieb – auch bei komplexem Paßwort.

Hier ist mein Unlock-Video mit iOS 6.1 auf meinem iPhone 5, das auf speziellen Wunsch entstanden ist.

Wer findet so etwas heraus? Zum einen kann man im Notruf-Screen nicht viel tun, so daß die auszuprobierenden Möglichkeiten sehr begrenzt sind und zum anderen ist das Ausnutzen einer Race-Condition ein Standardangriff.

Wenn man im Notruf-Screen ist, kann man nur Notruf-Nummern wählen, also 110, 112 und 911 et cetera. Und man kann das Gerät wieder ausschalten. Und beide Vorgänge abbrechen.

Wenn man im Paßwort-Screen ist, möchte man kein Paßwort eingeben, weil man ja ohne Paßwort einbrechen will. Damit bleibt nur noch Ausschalten, Notruf-Taste und das Abbrechen beider Vorgänge.

Eine Race-Condition entsteht, wenn zwei Ereignisse ungefähr gleichzeitig eintreten, man aber nicht genau vorhersagen kann, welcher Event gewinnt. Ein Beispiel ist, das Gerät auszuschalten und in dem Moment, in dem der Swipe-To-Power-Off-Screen kommen würde, doch noch auf die Notruf-Taste zu touchen. Offenbar wird das System durch das gleichzeitige Eintreffen dieser zwei Zustände, die bei normaler Benutzung nicht kombiniert eintreten, verwirrt. Das Provozieren von solchen Race-Conditions ist eine übliche Hacker-Methode; man probiert im Alltag unübliche Grenzsituationen aus in der Hoffnung, daß der Programmierer diese Situation nicht korrekt behandelt oder gar nicht berücksichtigt hat. Da im Falle eines gelockten iPhones die Zahl möglichen Race-Conditions an einer Hand abzählbar ist, ist es gar nicht so erstaunlich, daß dieser Bug entdeckt wurde. Darüber hinaus gab es ähnliche Bugs schon in älteren iOS-Versionen, so daß die Kreativität, so einen Angriff zu probieren, nicht nennenswert ist. Bei iOS 4 bestand die Race-Condition im gleichzeitigen Auslösen eines Notrufs und dem Drücken des Power-Buttons.

Im iOS 6 Fall wurde ein Ausschalten im Notruf-Screen abgebrochen, dann ein Notruf abgebrochen und anschließend im Passcode-Screen der Notfruf-Screen aufgerufen während der Auschalten-Screen erscheinen würde. Das ist in meinen Augen ein einfaches systematisches Ausprobieren der wenigen Möglichkeiten gewesen. Das denkt sich niemand aus, das sind normale Tests von Randbedingungen und Race-Conditions.

Kein "Unlock"-Bug

Tatsächlich handelt es sich gar nicht um einen Unlock-Bug oder ein Umgehen des User-Codes, sondern lediglich um ein Umgehen des Lockscreens. Der Unterschied ist, daß auch weiterhin alle Daten mit dem User-Paßwort geschützt sind, auch wenn der Lockscreen durch diesen Trick verschwindet. Lediglich die Daten, die auch im gesperrten Zustand entschlüsselt vorliegen, sind zugreifbar. Der Trick macht also nur deutlich, welche Daten so oder so immer lesbar sind. Darum ist für den Lockscreen-Bug auch völlig irrelevant, welche Art Paßwort man gesetzt hat, denn das Paßwort wir gar nicht umgangen.

Valid XHTML 1.0!

Besucherzähler


Latest Update: 13. September 2015 at 14:57h (german time)
Link: macmark.de/blog/osx_blog_2013-02-b.php