Une faille de sécurité bouchée dans Connexion avec Apple

Mickaël Bazoge |

Apple a récemment corrigé une faille de sécurité qui affectait le service Connexion avec Apple, qui permet de se connecter dans les applications en tout anonymat, aux côtés des systèmes d'identification de Google, Facebook et autres. Au mois d'avril, le chercheur en sécurité Bhavuk Jain a prévenu le constructeur de la présence d'une vulnérabilité qui, exploitée par un malandrin, aurait pu lui permettre de prendre possession du compte de l'utilisateur.

Bhavuk Jain donne toutes les explications techniques sur son blog. Connexion avec Apple utilise soit un JWT (token web JSON), soit un code généré par le serveur du constructeur ; celui-ci est utilisé pour générer en retour un token JSON. Après cette opération, le système propose à l'utilisateur la possibilité de partager l'adresse e-mail de son compte Apple ID avec l'application, ou de la cacher derrière une adresse aléatoire.

Il se trouve qu'un brigand était en mesure de créer un JWT avec l'e-mail de l'identifiant, et obtenir ainsi un accès au compte de la victime (pour peu que le filou dispose de l'adresse e-mail en question). Plutôt embarrassant, mais Apple a mené son enquête et a constaté qu'aucun compte n'avait été compromis avant que la faille ne soit bouchée. Le chercheur a été récompensé de sa découverte : il a décroché 100 000 $ du programme de « bug bounty » récemment lancé par le constructeur.

avatar rua negundo | 

Je n’ai encore jamais eu l’opportunité d’utiliser ce service, je ne tombe que sur connexion avec Facebook et parfois Google.
Je suppose que la raison de cette réticence à proposer se connecter avec Apple est le manque de données personnelles mises à disposition par Apple

avatar rapx3 | 

@rua negundo

Et aussi sa relative nouveauté. On avait pour projet de l’implémenter sur un projet, mais Azure AD B2C (service de Microsoft pour gérer des utilisateurs) ne proposait aucune documentation et se bornait à nous renvoyer vers le support Apple pour la mise en place. Donc on a un peu laissé tomber...

avatar rua negundo | 

@rapx3

Donc Apple ne cherche pas à promouvoir son outil ? Contrairement à Facebook et Google j’imagine, lesquels ont un intérêt financier direct à le faire, pour vendre des pubs mieux ciblées

avatar rapx3 | 

@rua negundo

C’est pas exactement mon propos. J’évoquais le retard de Microsoft dans son intégration. Je n’ai pas directement travaillé avec Apple, donc je n’en sais rien.

avatar XiliX | 

@rua negundo

"Donc Apple ne cherche pas à promouvoir son outil ? Contrairement à Facebook et Google j’imagine, lesquels ont un intérêt financier direct à le faire, pour vendre des pubs mieux ciblées"

Azure est un outil de dev « cross platform » de Microsoft. Qui permet de créer des applications pour iOS et Android avec « le même code »
Microsoft a pris du retard pour l’implémentation de l’authentification Apple.
Enfin, nous non plus on ne l’a toujours pas vu

avatar rua negundo | 

@XiliX

Merci pour l’explication, je ne comprenais pas ce que Microsoft venait faire dans cette histoire.

Ne faudrait-il pas alors qu’Apple fasse pression sur Microsoft pour qu’ils adoptent son outil, quitte aussi à leur mâcher le travail si possible ? En l’état actuel, je ne comprends pas l’intérêt d’avoir créé connexion avec Apple si la fonctionnalité est absente sur 99% des sites et applis avec inscription obligatoire.

avatar Krysten2001 | 

@rua negundo

Euh 99% non mais les développeurs ont une date limite.

avatar rua negundo | 

@Krysten2001

Ma statistique était au pifomètre bien sûr. N’empêche, je n’ai jamais eu une seule occasion d’utiliser connexion avec Apple. C’est peut-être plus répandu sur les services de e-commerce mais sur les services gratuits où l’inscription obligatoire n’a pas de justification technique (exemple : les sites de catch up des chaînes TV), je ne vois jamais connexion avec Apple

avatar Sindanárië | 

Fonction inutile (malheureusement) parce que n’est présente presque nulle part, aucun développement tiers ne l’implique et donc va disparaître d’ici quelques temps

avatar Lameth | 

@Sindanárië

Je doute fortement qu’elle disparaisse, en tout cas j’espère pas. Je l’utilise dès que je peux.

avatar raoolito | 

@Sindanárië

patience, on en reparle dans 4 ou 5 ans pour voir ou ca en sera

avatar Nesus | 

@Sindanárië

Il y a peu de chance qu’Apple arrête ce service. C’est une question de communication et Apple s’est imposer ses technologies. Ça se fera lentement, mais ça se fera. Les applications étant obligées de le proposer, il faudra aussi si mettre pour toutes les applications où il y a un compte accessible via un navigateur web. Ça fera doucement tache d’huile.

avatar r e m y | 

@Nesus

"Les applications étant obligées de l'utiliser..."
Ou, comment imposer sa technologie non grâce à ses mérites propres (qui existent pourtant) mais par la contrainte en jouant de son monopole de distribution des apps iOS... 🤦‍♂️

J'imagine déjà les réactions ici, si la France imposait par la loi à tous les services Internet accessibles en France, d'implémenter une possibilité d'accès via FranceConnect 🥴

avatar Krysten2001 | 

@r e m y

Apple fait le même avec le fait de prendre en charge l’écran de l’iPhone X, Face ID,... l’app store c’est son truc

avatar fredsoo | 

@r e m y

France connect pour les services admin est bien pratique ca evite de créer un compte pour chaque service.

avatar pat3 | 

@Nesus

"C’est une question de communication et Apple s’est imposer ses technologies."

Tu veux dire « sait imposer » ou « s’est imposée » ? 🤔 parce que parfois, l’orthographe, ça permet de comprendre le sens des phrases 🙂

Oui, je sais, boomer, ayatollah, tout ça tout ça. Mais je suis resté perplexe devant le sens à donner à cette phrase…

avatar celebration | 

@pat3

Idiocracie, par chance la faune et tique règle rat nos pro blêmes.

avatar pat3 | 

@celebration

😄

avatar r e m y | 

@celebration

👏 😂

Moi j'avais compris: "Apple c'est : imposer ses technologies" (comme une sorte de profession de foi...)

avatar Sindanárië | 

@pat3

"Oui, je sais, boomer, ayatollah, tout ça tout ça. Mais je suis resté perplexe devant le sens à donner à cette phrase…"

En général c’est le newbie ou le bêta qui donne ce genre de qualificatifs 😅

avatar XiliX | 

@Sindanárië

"Fonction inutile (malheureusement) parce que n’est présente presque nulle part, aucun développement tiers ne l’implique et donc va disparaître d’ici quelques temps"

Toutes applications MacOS/iOS qui utilisent authentification FB/Google doivent dorénavant implémenter aussi l’authentification Apple.
Donc je ne pense pas que ça va disparaître

avatar David Finder | 

Je l’utilise sur plusieurs apps qui s’y sont mises rapidement. Je ne partage jamais mon adresse, question de principe, même si j’ai plus confiance en la solution d’  que de Facebook (que je n’utilise pas d’ailleurs).
Je doute que cela disparaisse un jour. Ça ne coûte rien à .

avatar r e m y | 

@David Finder

Sauf si trop de failles sont découvertes régulièrement... les colmater pourrait finir par coûter à Apple.
Pour mémoire le service "back to my Mac" a été supprimé le jour où une grosse faille de sécurité a été trouvée. Apple a préféré stopper cette fonctionnalité plutôt que de dépenser du temps et de l'argent pour corriger.

avatar Krysten2001 | 

@r e m y

Sauf que là on crée des comptes avec et que c’est un gros argument pour Apple ;)

avatar Korhm | 

Je ne suis pas sur de comprendre.

Un JWT est signé avec une clé privée.
Apple semble vérifier la validité du token avec la clé publique associée.

Mais le bug est qu’un token signé avec la clé publique est validé avec la clé publique ?

avatar Sometime | 

@Korhm

Le bug semblerait plutôt être que le chercheur a réussi à obtenir un JWT valide pour un apple id existant quelconque. Ce qui semble supposer que les services d’Apple ne vérifiait pas correctement - ou pas du tout? - qui/quoi tentait d’obtenir le-dit JWT.
L’article est un peu lacunaire, mais il ne semble pas qu’il y ait un problème particulier avec les clés: Apple retourne un JWT signé avec sa clé privée, qui est ensuite vérifié plus tard grace a la clé publique.

avatar Tibimac | 

@Sometime

Moi ça m'a donné l'impression que le mec obtient un JWT pour SON AppleID avec SON email puis il remplace SON email par un autre dans le JWT et envoi ensuite ce JWT à l'app. Si l'app se base sur l'email comme ID au lieu du user ID donné par Apple dans le JWT et que un compte existe pour cet email alors l'app se dit "OK email/compte existant et JWT (faisant office de mot de passe) valide don on connecte".

Si c'est bien ça alors la plus grosse faille serait du côté des apps !

avatar Ginger bread | 

Est ce qu Apple a été généreuse pour ce genre de faille selon vous?

avatar Krysten2001 | 

@Ginger bread

Oui 100000$

avatar Ginger bread | 

@Krysten2001

Ce n’est pas la question. Je sais lire.
Je demande si selon vous le big bounty d’Apple est suffisamment généreux pour ce type de faille.

Apple a revu son bug bounty mais est il à la hauteur?

avatar Krysten2001 | 

Ah ça je ne sais pas mais je pensais que vous demandiez combien il a reçu 🧾

avatar monsieurg33K | 

J’aime bien la fonction mais elle n’est pas toujours utile. Par exemple je l’ai testé avec UPS mais il a fallu que je communique quand même des données personnelles pour finaliser l’inscription alors qu’elles étaient dispensables à mes yeux.

CONNEXION UTILISATEUR