siri

Siri: Protokoll geknackt – Verwendung in anderen Geräten & Plattformen möglich

Vor einem Monat wurde das iPhone 4S veröffentlicht und brachte die neue Sprachsteuerung Siri mit sich, welche vorgegebene Sprachbefehle des Benutzers umsetzen kann. Zahlreiche Entwickler haben sich mit der Thematik befasst und haben es sogar bereits geschafft, dass Siri auch auf dem iPhone 4, iPod touch 4G und iPhone 3GS funktioniert. Aufgrund Urheberrechtsverletzungen wird diese Portierung in naher Zukunft leider nicht das Licht der Welt erblicken.

Mittlerweile gibt es aber neue Erkenntnisse über die eigentliche Funktionsweise der Sprachsteuerung und damit neue Möglichkeiten Siri auf verschiedenen Geräten oder Plattformen (Android* & Co.) zum Laufen zu bringen. Dem Entwicklerstudio Applidium ist es gelungen, die Kommunikation zwischen dem Gerät und dem Apple-Server zu entschlüsseln. Dadurch konnte die Sprachsteuerung näher analysiert werden und die verschiedenen Abfragen wurden entsprechend ausgewertet.

Dafür haben sie mit Hilfe eines Proxy-Servers den Traffic zwischen Gerät und Apple-Server mitgeschnitten und fanden heraus, dass die Befehle an die IP-Adresse 17.174.4.4 gehen und zwar über den verschlüsselten HTTPS Port 443. Versucht man die IP-Adresse in einem normalen Browser aufzurufen, präsentiert der Server ein Zertifikat für „guzzoni.apple.com“.

Jedoch ist der mitgeschnittene Traffic verschlüsselt und kann nicht ohne weitere Konfiguration ausgelesen werden. Einen angepassten DNS-Server mit einem gefälschten HTTPS-Server nimmt das iPhone leider nicht an, weil das zugehörige Zertifikat nicht gültig ist. Allerdings ist es möglich ein Root-Zertifikat auf das iPhone zu installieren, damit der gefälschte Server angenommen wird. Dadurch konnten die Entwickler die Abfrage an ihren eigenen Server senden und im Nachhinein auswerten. Ein grober Sicherheitsfehler von Apple.

Herausgefunden wurde, dass eine Abfrage mit folgendem Header startet:

ACE /ace HTTP/1.0
Host: guzzoni.apple.com
User-Agent: Assistant(iPhone/iPhone4,1; iPhone OS/5.0/9A334) Ace/1.0
Content-Length: 2000000000
X-Ace-Host: 4620a9aa-88f4-4ac1-a49d-e2012910921

Über diesen ACE-Requests werden nicht nur die Header-informationen gesendet, sondern auch Binärdaten, die mit Hilfe von der zlib-Bibliothek komprimiert werden. Zusätzlich wird auch eine eindeutige Identifikationsnummer (X-Ace-Host), welche für den Autorisierungs-Vorgang benötigt wird, an den Server gesendet. Diese Nummer kann aber laut Applidium recht einfach aus einem iPhone 4S extrahiert werden. Natürlich könnte Apple die entsprechenden X-Ace-Hosts auf ihre schwarze Liste setzen und somit für eingehende Kommunikation sperren. Bei einer privaten Nutzung sollte dies jedoch nicht eintreffen.

Nach der kompletten Analyse der Daten ist den Entwicklern aufgefallen, dass theoretisch jedes Gerät die Sprachsteuerung nutzen könnte. Dafür müsste aber die aufgenommen Sprache auch mit dem freien Codex Speex kodiert und mit dem entsprechenden Header versehen werden. Dadurch wäre es auch möglich ein Android*-Gerät mit der Sprachsteuerung von Apple auszustatten.

Alle benötigen Tools zur Extrahierung und Analyse der Daten werden von Applidium über Github angeboten. Der Großteil der veröffentlichten Software ist in Ruby geschrieben, einige auch in C und Objective-C. Mit Hilfe der Werkzeuge können interessierte Entwickler eigene Siri-Applikationen schreiben, so Applidium. Allerdings wird davon ausgegangen, dass es nur eine Frage der Zeit ist, bis Apple ihr Sicherheitsschema ändert.

via

Bisher noch keine Bewertung.
Bitte warten ...