Pourquoi FaceTime n’aime pas la portabilité du numéro

Que se passe-t-il lorsque quelqu’un essaie de vous rappeler sur FaceTime après que vous avez changé d’opérateur en profitant de la portabilité du numéro ? Rien. Enfin… ça ne fonctionne pas. Du moins ce fil de discussion, sur les forums d’Apple, le laisse-t-il à penser assez sérieusement. Le souci peut être (assez) facilement corrigé : Réglages > Général > Réinitialiser > Réinitialiser tous les réglages. C’est violent – de nombreux paramètres doivent être rétablis manuellement, comme les fonds d’écran (du lot, ce sont les moindres) – mais c’est efficace. Surtout, ces aléas laissent à penser qu’Apple a déployé, pour supporter FaceTime, un système pas très éloigné d’un authentique IMS. [Un article de la KB d’Apple évoque les éventuels soucis avec la portabilité du numéro]

FaceTime activé sur un iPhone 4

Comme le détaille Lina Mroueh, dans un document d’avril 2006 dédié à l’étude des procédures d’enregistrement et d’établissement de session en IMS, la mise en relation de l’appelant et de l’appelé nécessite la connaissance d’un identifiant dit privé de l’appelé par une base de données dédiée (la HSS; l’équivalent dans l’IMS de la HLR des réseaux mobiles) au sein de l’IMS, base de donnée chargée de faire le lien entre identité(s) publique(s) de l’utilisateur (connu(es) de ses correspondants) et identité privée (unique, connue de l’IMS et du terminal de l’utilisateur). Las, seul un nouveau de type de carte SIM – l’ISIM (pour IMS Subscriber Identity Module) – est censé savoir générer et manipuler cette identité privée. Et, pour l’heure, avec nos terminaux 3G, nous nous contentons d’USIM. Mais voilà, rétro-compatiblité oblige, un IMS doit pouvoir se contenter de ce que lui donne une USIM. Du coup, il utilise l’IMSI, qui identifie un abonné sur un réseau GSM/UMTS et qui est stocké sur la carte SIM/USIM, en guise d’identifiant privé.

Message SIP 200OK capturé avec Wireshark, au début d'une communication FaceTime

Et, justement, que se passe-t-il en cas de portage du numéro ? L’abonné conserve son numéro de téléphone mobile mais… change d’opérateur et, au passage, de carte à puce ainsi, donc, que d’IMSI. Si FaceTime s’appuie effectivement sur un IMS, il n’y retrouve plus ses ouailles : il cherche à joindre l’utilisateur par son numéro de téléphone mobile (une identité publique) mais, dans la base de données de l’IMS d’Apple, ce numéro est encore associé à l’ancien IMSI, celui de la carte USIM du précédent opérateur mobile… La mise en relation est impossible jusqu’à ce que le destinataire dont le numéro a été porté se ré-enregistre auprès de l’IMS d’Apple (en faisant croire à son iPhone que cela n’a jamais été le cas; donc en effaçant les réglages) pour lui fournir, au passage, son nouvel IMSI. Ce lien semble confirmé par l’expérience d’un utilisateur allemand, relatée sur les forums de discussion d’Apple, disposant de cartes SIM jumelles.

Accessoirement, cela expliquerait la rumeur selon laquelle « les serveurs d’Apple reçoivent des messages à chaque fois que deux personnes sont connectées via FaceTime » (des messages pouvant d’ailleurs n’être liés qu’à la connexion SIP entre correspondants). Et enfin qu’un SMS soit envoyé par l’iPhone 4 quelque part au Royaume-Uni (!) lors de l’activation de FaceTime; un processus qui permet à Apple d’obtenir un identifiant privé du terminal [un procédé dont je me demande d’ailleurs s’il n’est pas couvert par un brevet T-Mobile déposé en avril 2007 et publié en avril… 2010].

Un lien de parenté clair entre FaceTime et iChat

Merci à cet anonyme, collaborant à un obscur site Web nommé MacGé, pour la petite séance d'expérimentation avec FaceTime

Alors, avec FaceTime, Apple a-t-il largement anticipé la 4G, ou certains des travaux liés aux réseaux de téléphonie mobile de demain ont-ils simplement inspiré une partie de l’architecture de son service de vidéoconférence ? La question reste entière… mais le sujet suscite manifestement un certain intérêt. Et justement, tant Apple – indirectement – que l’examen des trames échangées lors d’une communication FaceTime indiquent un lien de parenté étroit entre le système de vidéo conférence de l’iPhone 4 et… iChat, de Mac OS X.

Tout d’abord, une partie de la signalisation associée à FaceTime semble reposer sur le protocole XMPP/Jabber : Apple recommande de laisser ouvert le port TCP 5223, utilisé par ce protocole, pour utiliser FaceTime derrière un pare-feu – en fait, il n’est utilisé que pour une séquence de push à partir de serveurs dédiés chez Apple.

Surtout, le User-Agent déclaré lors d’un appel FaceTime (et dans toutes les échanges SIP) est Viceroy 1.4/GK… Viceroy est le User-Agent d’iChat qui, accessoirement, utilise SIP les appels audio et vidéo. L’autre information à retirer de l’examen des trames échangées, c’est que, pour l’essentiel, les échanges entre l’iPhone 4 et les serveurs d’Apple pour l’établissement d’un appel Facetime se font en HTTP/HTTPS; une fois la communication établie, les échanges entre correspondants se font directement, avec SIP, sans intermédiaire (et ça marche très bien, y compris sur un NAT imbriqué dans un premier NAT !), et rien n’indique qu’ils soient chiffrés.

Tagged , , , , , , , , , , , , , , ,