Apple présente activement aux masses l'idée que tout est désormais en ordre avec la confidentialité des données utilisateur pour leurs produits. Mais les chercheurs d'Hexway ont découvert que le mécanisme Bluetooth LE (BLE) standard et activement utilisé vous permet d'en apprendre beaucoup sur votre iPhone.
Si le Bluetooth est activé, toute personne dans la plage du signal peut découvrir:
- état de l'appareil
- facturer des informations;
- nom de l'appareil
- Statut Wi-Fi
- disponibilité du tampon;
- Version iOS
- numéro de téléphone

Cela est probablement dû à la nouvelle fonctionnalité «Find my» annoncée cette année ( la fonctionnalité «Find My» d'Apple utilise une cryptographie très intelligente | WIRED ). Son essence est de créer un écosystème d'appareils Apple qui échangent des informations BLE entre eux pour suivre les appareils volés et perdus sans utiliser le GPS et les canaux de communication mobiles, même lorsqu'ils sont éteints . Bien qu’il ait été déclaré que
... il a construit la fonctionnalité sur un système de cryptage unique soigneusement conçu pour empêcher exactement ce type de suivi - même par Apple lui-même
Traduction: [Find my] utilise un cryptosystème unique conçu pour empêcher le suivi [par d'autres personnes], y compris Apple.
Exemples de vecteurs d'attaque pertinents
Airdrop
Cette technologie vous permet d'échanger des fichiers entre des appareils Apple sans connexion Internet. Chaque fois que vous "partagez" l'appareil envoie un hachage de votre téléphone au SHA256. Ainsi, après avoir créé une base de données de numéros de téléphone (hachage: numéro de téléphone), vous pouvez capturer assez efficacement les téléphones dans les endroits bondés ... et envoyer des messages personnalisés à leurs propriétaires via iMessage (vous pouvez obtenir le nom du propriétaire via TrueCaller ou à partir du nom de l'appareil). Le profit pour les magasins est plus qu'évident: spammer tous les passants.
Obtenir des mots de passe Wi-Fi
Lorsqu'il est connecté à un réseau Wi-Fi Apple, l'appareil envoie une demande de diffusion et un appareil compatible Apple peut vous aider à accéder au réseau si l'utilisateur le souhaite. Si vous obtenez 3 octets de hachage d'un employé et, lorsque vous essayez de vous connecter au réseau d'entreprise, effectuez une diffusion avec les données reçues, alors l'autre employé sera très gentil et, en voyant un nom familier dans la demande, partagera le mot de passe avec vous.
Comment ça marche
Analyse des paquets BLE
En modifiant les scripts du paquet py-bluetooth-utils, vous pouvez afficher le renifleur du trafic BLE. Apple utilise des messages ADV_IND pour envoyer l'état de l'appareil.
Annoncez la structure du package

Messages à proximité
Exemples de types de messages:
0x05 - Airdrop
0x07 - Airpods
0x10 - À proximité
0x0b - Regarder la connexion
0x0c - Transfert
0x0d - Paramètres Wi-Fi
0x0e - Hotspot
0x0f - Réseau de connexion Wi-Fi
Vous pouvez également obtenir les statuts des packages à proximité:
0x0b - Écran d'accueil
0x1c - Écran d'accueil
0x1b - Écran d'accueil
0x11 - Écran d'accueil
0x03 - Désactivé
0x18 - Désactivé
0x09 - Désactivé
0x13 - Désactivé
0x0a - Désactivé
0x1a - Désactivé
0x01 - Désactivé
0x07 - Écran de verrouillage
0x17 - Écran de verrouillage
0x0e - Appel
0x5b - Écran d'accueil
0x5a - Désactivé
En conséquence, vous pouvez créer un analyseur de paquets BLE simple:

Wifi
Lorsque vous essayez de vous connecter au Wi-Fi à partir du périphérique A, un paquet de la structure suivante est envoyé contenant les trois premiers octets des hachages SHA256 d'AppleID (5-7 octets), le numéro de téléphone (8-11 octets), le courrier électronique (12-14 octets):

Vraisemblablement, les appareils Apple ont haché tous les contacts et comparés à ceux reçus dans le package publicitaire. Lorsque le périphérique B reçoit un paquet avec des hachages de contacts correspondants, le périphérique B offrira un mot de passe de connexion réseau au périphérique A.
Si vous générez une table de hachage de numéros de téléphone pour une région spécifique (environ plusieurs millions), alors pour les 3 premiers octets du hachage, vous pouvez obtenir une collision de l'ordre de plusieurs dizaines de numéros par hachage. Il existe deux façons de vérifier l'exactitude des nombres:
- Certains numéros peuvent être exclus en les vérifiant via le HLR ( HLR Lookup - Front Page - Index ).
- Étant donné que le numéro doit être lié à AppleID, vous pouvez vérifier via iMessage.
Dans tous les cas, l'ensemble de nombres obtenu permettra de désanonymiser le propriétaire assez efficacement (par exemple, en utilisant davantage les méthodes d'ingénierie sociale).
Airdrop
Apple AirDrop dispose de trois paramètres de confidentialité:
- Réception.
- Contacts uniquement.
- Tout le monde.
Lorsque AirDrop démarre, un paquet de la structure suivante est envoyé, contenant deux octets de hachage AppleID, un e-mail et un numéro de téléphone:

Dans le même temps, AirDrop n'est utilisé que pour initier le transfert; pour le transfert de données lui-même, la connexion peer2peer via Wi-Fi (AWDL - Apple Wireless Direct Link) est utilisée.
Pendant l'authentification, l'expéditeur envoie les données d'enregistrement de l' expéditeur pour vérifier les paramètres de confidentialité du destinataire. Ce message contient le hachage SHA256 complet de l'expéditeur. Ainsi, un attaquant peut répondre à toutes les autres requêtes AirDrop BLE, en recevant des hachages complets de numéros.
Schéma de fonctionnement d'AirDrop:

Résumer
Seule une partie des fuites d'informations possibles à l'aide de BLE est prise en compte. Pour le moment, il est difficile d'appeler cela une vulnérabilité, plutôt une mise en œuvre mal pensée du nouvel écosystème d'Apple. En principe, ils ont eux-mêmes déclaré:
Apple avertit qu'il s'agit toujours d'une version quelque peu simplifiée du protocole Find My et que le système est toujours susceptible de changer avant sa sortie dans MacOS Catalina et iOS 13 plus tard cette année. ©
Filaire
Traduction: Apple a averti qu'une version simplifiée du protocole Find My est actuellement utilisée et devrait être mise à jour dans les prochaines versions vers la fin de l'année.
Pour le moment, il n'y a aucun moyen d'empêcher les fuites de données autres que la désactivation de Bluetooth. De plus, ce comportement est typique des versions iOS 10.3.1 et supérieures (y compris iOS 13 beta). Les appareils plus anciens (jusqu'à l'iPhone 6s) utilisent également cette fonctionnalité, mais avec un nombre limité de messages, peut-être pour économiser la batterie.
Les références
GitHub - hexway / apple_bleee: recherche Apple BLE
Apple bleee. Tout le monde sait ce qui se passe sur votre iPhone - hexway