Le protocole de Siri déchiffré - Siri bientôt sur Android ?
Applidium est une société française spécialisée dans le développement d’applications mobile. Et chez Applidium, ils viennent de publier un long article dans lequel ils donnent un peu plus d’explications sur le fonctionnement de Siri sur iPhone4.
Après avoir sniffé le trafic TCP sur l’iPhone avec tcpdump, ils se sont rendu compte que toutes les données envoyées par Siri allaient vers le serveur 17.174.4.4 (guzzoni.apple.com), qui est un serveur de chez Apple. Chaque échange avec ce serveur est chiffré (HTTPS) et est vérifié. Impossible de diriger ce trafic vers une autre machine qui ferait office de faux serveur. Impossible ? Pas exactement, car il leur a suffi de créer un faux certificat pour guzzoni.apple.com et l’application Siri a bien voulu envoyer ses données vers ce faux serveur.
En analysant les trames échangées, ils ont réussi à déterminer la structure des paquets (entête et corps). Voici donc ce qu’on sait :
- Les données binaires (autres qu’audio) sont compressées avec Zlib et sont soit des ping, soit des pong, soit des fichiers plist.
- Les données audio sont compressées avec Speex (un codec conçu pour la VoIP)
- Chaque échange est identifié grâce à un marqueur unique contenu dans chaque iPhone 4S que Apple vérifie constamment lors des échanges entre votre téléphone et Siri. On pourrait toutefois copier ce code sur un autre appareil afin de le faire passer pour un iPhone4S.
- Que Siri et le serveur d’Apple échangent beaucoup de données, y compris des scores de confiance pour chaque mot.
Alors concrètement, ça veut dire quoi tout ça ? Et bien tout simplement qu’il est maintenant possible (pour peu qu’on ait un ID iPhone4S), d’envoyer de manière indépendante n’importe quel fichier Audio vers le serveur Siri d’Apple. Et par conséquent de développer et d’utiliser une application tierce pour Android ou iPad (ou même Windows ou Linux…etc.) capable de communiquer avec ces serveurs Siri d’Apple.
Grosse news donc… Reste à voir maintenant comment Apple prendra la nouvelle (mal c’est sûr). Il risque d’y avoir des ID iPhone4S bloqués si certains poussent le bouchon un peu trop loin… Mais peut-être que dans quelques jours / semaines / mois, un petit malin arrivera à pondre un générateur d’ID iPhone4S, ce qui risque de compliquer considérablement le problème pour Apple.
Merci à Alexander pour l’info !