Au mois de juin dernier, après les révélations sur les programmes de collecte de données de la NSA, Apple avait affirmé que son application iMessage, qui permet aux utilisateurs d'envoyer gratuitement des textos en WiFi, était protégée par un cryptage «de bout en bout», ce qui empêchait quiconque de prendre connaissance du contenu des dits messages. Mais des chercheurs présents à la conférence Hack-in-the-Box (HITB), qui s'est tenue du 14 au 17 octobre à Kuala Lumpur, ont montré qu'Apple pouvait, volontairement ou à la demande des autorités, intercepter les messages. L'affirmation selon laquelle iMessage est protégé par un cryptage incassable est « un pur mensonge », a déclaré Cyril Cattiaux lors de la conférence. Le chercheur, à l'origine d'un jailbreak pour iOS, travaille pour Quarkslab, une société basée à Paris et spécialisée dans les tests de pénétration et d'ingénierie inverse. Les chercheurs ont précisé qu'aucune information ne leur permettait de dire qu'Apple ou le gouvernement interceptaient actuellement les iMessages, mais simplement qu'il leur serait possible de le faire. Apple n'a pas répondu à une demande de commentaire sur le sujet, renvoyant simplement au communiqué publié au mois de juin dernier après les révélations sur le programme de collecte de données Prism de la NSA. Dans ce communiqué, Apple disait avoir entendu parler du programme Prism par la presse. « Nous ne permettons pas à un organisme gouvernemental d'avoir un accès direct à nos serveurs, et toute agence gouvernementale qui fait une demande de données d'un client doit avoir une ordonnance du tribunal », indique la déclaration. Mais, un document fourni par l'ancien consultant de la NSA, Edward Snowden, mentionne qu'Apple participe au programme Prism depuis octobre 2012.

Impossible de vérifier l'intégrité des messages

L'entreprise de Cupertino utilise une clef publique pour chiffrer les iMessages entre l'expéditeur et le destinataire. Or, selon les chercheurs, son système de gestion des clés publiques est opaque et ne permet pas de voir si les messages sont envoyés à un tiers comme la NSA. Quand quelqu'un envoie un iMessage, le terminal iOS va chercher sur le serveur de clés non public d'Apple la clef publique du destinataire pour créer le texte chiffré ou le message crypté. Quand le destinataire reçoit le iMessage, il le décrypte à l'aide de sa clé privée. Selon Cyril Cattiaux, le problème c'est « qu'Apple a un contrôle total sur ce répertoire de clés publiques ». La question de confiance se pose toujours avec les clés publiques. Quand il envoie un message crypté, l'expéditeur doit faire confiance au serveur, c'est-à-dire que la clé stockée sur le serveur de clés utilisé pour relayer le message appartient bien au destinataire.

Avec un serveur public, comme le serveur PGP Public Key Server du MIT, l'expéditeur peut avoir plus d'informations et voir par exemple si une clé a changé. Dans ce cas, il peut décider de faire confiance ou non au cryptage, notamment s'il soupçonne une attaque de type « man-in-the-middle ». Selon les chercheurs, le serveur de clés d'Apple n'est pas public. « L'utilisateur ne peut pas voir si la clé publique qu'il utilise au moment du cryptage du message est vraiment la clé de son destinataire et non pas, par exemple, la clé publique de certains salariés d'Apple », a déclaré Cyril Cattiaux. Son collègue chercheur - il se fait appeler GG - ajoute que « Apple fournit la clé, mais personne ne peut vraiment savoir si c'est un substitut ou quelque chose de ce genre. C'est vraiment une question de confiance et un réel problème pour les utilisateurs ».

Apple n'est pas le pire sur ce sujet

Pour Paul Kocher, président et directeur scientifique de Cryptography Research, « en général, les gens ne peuvent pas évaluer ou contrôler les risques des services cloud puisque les données sont conservées dans des systèmes qui ne peuvent pas être vérifiés ». Dans la pratique, « iMessage est aussi sûr qu'Apple a choisi de le faire, mais il n'est pas juste de critiquer Apple aussi sévèrement, alors que d'autres services ne sont pas mieux (voire pires) », a-t-il ajouté par e-mail à notre confrère Jérémie Kirk d'IDG NS. « La cryptographie d'iMessage est sûre en elle-même, mais il est clair qu'Apple contrôle la distribution des clés publiques », a écrit dans un courriel Matthew D. Green, professeur assistant au département des sciences informatiques à l'Université Johns Hopkins. « Apple a mis en avant auprès de ses clients le fait que les messages étaient cryptés de « bout en bout » et qu'ils ne pouvaient pas lire les messages », a écrit l'enseignant chercheur. « Techniquement, c'est tout à fait vrai, mais en même temps, ils savent très bien qu'ils pourraient détourner facilement le système s'ils le voulaient. En ce sens, ils ne disent pas toute la vérité ».

Cyril Cattiaux affirme aussi qu'il n'y a aucun moyen de détecter des attaques de type «man-in-the-middle» sur un terminal iOS, car le système mobile d'Apple ne stocke pas les clés publiques qu'il utilise pour iMessage. Il est donc impossible de voir si une clé a soudainement changé et, finalement, si le iMessage a été dérouté. L'expert en cryptographie Moxie Marlinspike, qui n'a pas participé à cette recherche, a évoqué un autre scénario d'attaque possible. Un compte iMessage peut être relié à plusieurs terminaux Apple. Le terminal utilisé pour envoyer un iMessage peut récupérer plusieurs clés publiques pour dispatcher le message vers un iPhone et un iPad par exemple. « L'interception par Apple devient encore plus facile, car ils n'ont pas techniquement besoin de mener une pure attaque de type « man in the middle » », a-t-il déclaré par courriel. « Ils peuvent tout simplement ajouter leur propre clé à la liste. L'expéditeur cryptera une copie supplémentaire directement pour Apple, en plus de celle envoyée normalement ».

« Une solution pour Apple serait de stocker les clés publiques localement, dans une base de données protégée, à l'intérieur d'iOS. Cela permettrait de comparer les clés » a suggéré Cyril Cattiaux. D'ailleurs, en plus de leur présentation, les chercheurs ont livré l'application « MITM Protect » pour les appareils jailbreakés, qui permet de faire cette comparaison entre les clés. « Il faut vraiment avoir confiance pour donner la gestion de ses clés à une entité tierce. Cela revient à lui livrer un texte en clair, non codé », a déclaré Moxie Marlinspike. Selon lui, « iMessage n'offre pas vraiment de cryptage de « bout-en-bout » au sens où le laisse entendre cette expression ».