Les petits secrets de Siri

Anthony Nelzin-Santos |

L'équipe d'Applidium, qui avait réalisé le portage iOS de VLC, s'est intéressée de près au fonctionnement de Siri, et particulièrement à la communication entre l'iPhone 4S l'utilisant et les serveurs d'Apple. En utilisant des méthodes très communes et quelques raffinements, Applidium a réussi à en savoir plus sur le fonctionnement précis de Siri.

La méthode très commune, c'est le reniflage : puisque Siri communique avec les serveurs d'Apple, il est possible de s'intercaler entre les deux pour analyser les requêtes. La communication entre l'iPhone 4S et les serveurs d'Apple étant sécurisée (protocole HTTPS), il faut aller un peu plus loin, ici utiliser un faux certificat dans iOS. L'iPhone 4S va ensuite se connecter à un serveur personnel qu'il va prendre pour un serveur d'Apple, et donc communiquer avec lui : les bidouilleurs n'ont plus qu'à récupérer les informations.

Les raffinements, c'est l'analyse de ces informations. L'article d'Applidium explique en détail cette analyse que l'on peut résumer de la manière suivante : les données de Siri sont assez opaques. Le système utilise en effet une méthode de requête propriétaire, avec un identifiant unique par appareil et les données sont compressés (avec zlib). Une fois décompressées, elles ne sont pas particulièrement lisibles : on obtient un flux binaire.

La lecture des passages les plus lisibles révèle cependant des informations intéressantes sur Siri. Les données audio elles-mêmes sont compressées, avec le codec Speex, un codec libre et très efficace conçu pour la VoIP. L'iPhone et les serveurs d'Apple échangent un grand nombre de données : à chaque mot, par exemple, est associé un indice de confiance — quand Siri n'est pas sûr de lui, il souligne d'ailleurs sa transcription de bleu. Ces données sont néanmoins elles aussi compressées, ce qui rappelle l'importance pour Apple que les échanges entre l'iPhone 4S et ses serveurs soient aussi légers que possible (lire : À propos de la consommation de données de Siri).

Avec cette analyse et les outils fournis par Applidium, il est techniquement possible d'utiliser Siri sur tout appareil (y compris un appareil non-iOS). À un détail près : toutes les communications sont signées avec un identifiant unique par appareil. Si trop de requêtes proviennent d'un même identifiant, Apple pourrait le bloquer. La firme de Cupertino pourrait aussi simplement complexifier son protocole de communication pour refermer cette porte entrouverte.

Accédez aux commentaires de l'article