Capture sur iOS
Capturer sur un iPhone / iPad a toujours été un casse-tête. Les outils ordinaires exigent généralement soit un jailbreak, soit ne permettent que de configurer un proxy (ce qui suppose tout de même d’installer un profil et un certificat, et les applications avec épinglage de certificat restent impossibles à capturer). La capture sur iOS propose trois méthodes sans jailbreak, allant de « voir les requêtes système sans aucune configuration » à « tout le trafic de l’appareil » en passant par « texte clair complet pour une seule application ». L’une d’elles atteindra votre cible.
1. Préparation commune
Section intitulée « 1. Préparation commune »- Connectez l’appareil : utilisez un câble de données pour relier l’iPhone / iPad à l’ordinateur, puis appuyez sur Se fier sur l’appareil.
- Aucun jailbreak requis : les trois méthodes s’adressent à des appareils non jailbreakés.
- Compatible avec les systèmes récents : les versions plus récentes d’iOS (dont iOS 17 et ultérieures) sont passées à un nouveau canal d’appareil ; la connexion et la capture y fonctionnent toujours.
- Si le même appareil apparaît aussi sur le réseau, choisissez en conséquence l’entrée USB / réseau.
2. Comment choisir parmi les trois méthodes
Section intitulée « 2. Comment choisir parmi les trois méthodes »| Votre besoin | Quoi utiliser | Ce que vous pouvez voir | Installation de certificat / re-signature nécessaire ? |
|---|---|---|---|
| Voir rapidement quelles requêtes HTTPS le système a envoyées (adresse / statut / en-têtes) | Capture au niveau système | Fonctionne aussi pour les applications ordinaires (impossible d’en voir le corps) | Ni l’un ni l’autre ; seulement un profil de diagnostic |
| Tout le trafic de l’appareil (y compris non-HTTP, poignée de main / SNI) | Capture sur carte réseau | Données complètes (texte chiffré par défaut, déchiffrable à la demande) | Non nécessaire pour consulter le texte chiffré ; re-signature nécessaire uniquement pour déchiffrer une application donnée |
| Les échanges en texte clair complets (corps compris) d’une application donnée | Capture au niveau applicatif | Texte clair complet pour une seule application | L’application cible doit être re-signée avec un certificat de développement |
Aucune des trois ne nécessite de jailbreak. La capture au niveau système est particulièrement simple : même pour les applications ordinaires et les applications de l’App Store, vous pouvez voir quelles adresses HTTPS elles interrogent, ce que les outils ordinaires ne savent pas faire sur un iPhone non jailbreaké.
3. Capture au niveau système : la plus simple, fonctionne aussi pour les applications ordinaires
Section intitulée « 3. Capture au niveau système : la plus simple, fonctionne aussi pour les applications ordinaires »Vous voulez voir rapidement quelles requêtes HTTPS cet iPhone a envoyées, sans installer de certificat, configurer de proxy ni composer avec l’épinglage de certificat ? C’est la méthode la plus simple.
- Liste les transactions HTTP(S) que le système envoie : méthode de requête, URL complète (l’adresse est en texte clair même pour HTTPS), code de statut, en-têtes de requête et en-têtes de réponse.
- Aucun certificat CA à installer, aucun proxy à configurer, aucun épinglage de certificat à gérer.
- Ce que vous pouvez voir est limité par les journaux de diagnostic système eux-mêmes :
- Applications ordinaires et applications de l’App Store : en général, vous ne pouvez voir que l’adresse de la requête et les en-têtes de requête.
- Applications signées avec un certificat de développement : vous pouvez voir le corps complet de la requête / réponse.
Prérequis : vous devez installer le profil de diagnostic d’appareil correspondant (une seule fois suffit).
4. Capture sur carte réseau : voir tout ce qui se passe sur cet appareil
Section intitulée « 4. Capture sur carte réseau : voir tout ce qui se passe sur cet appareil »Capturez tout le trafic réseau de l’appareil, quelle que soit l’application ou le protocole, y compris QUIC non-HTTP et les protocoles personnalisés.
- Ce que vous voyez par défaut : par défaut, ce sont des paquets en texte chiffré + des métadonnées (adresse de destination, port et nom d’hôte SNI issu de la poignée de main TLS), de quoi voir clairement « à quels endroits cet appareil s’est connecté et avec quel protocole ».
- Vous voulez le texte clair : utilisez « Déchiffrer ce programme » sur l’application cible pour déchiffrer son texte clair ; cela nécessite que l’application ait été re-signée avec un certificat de développement.
5. Capture au niveau applicatif : texte clair complet pour une seule application
Section intitulée « 5. Capture au niveau applicatif : texte clair complet pour une seule application »Ciblant une seule application, cette méthode obtient le texte clair complet (corps compris) qu’elle envoie et reçoit. L’épinglage de certificat ne peut pas l’arrêter, car elle lit depuis l’intérieur de l’application.
- Redémarrer le programme cible : vous pouvez d’abord fermer et relancer l’application pour capturer aussi son trafic des tout premiers instants du démarrage.
- Activez « trafic socket » comme solution de repli lorsque le texte clair ne peut pas être décodé : pour les applications qui font une liaison statique / utilisent une bibliothèque personnalisée et dont les méthodes habituelles ne parviennent pas à obtenir le texte clair, activez cet interrupteur pour emprunter un chemin de plus bas niveau vers les données.
- Seules les applications re-signées avec un certificat de développement sont sélectionnables dans la liste des applications ; les autres sont grisées.
Prérequis : l’application cible doit être re-signée avec un certificat de développement ; les applications de l’App Store et les applications système doivent d’abord être re-signées avant de pouvoir servir de cible.
6. Vous pouvez aussi recourir à la capture par proxy
Section intitulée « 6. Vous pouvez aussi recourir à la capture par proxy »Outre les trois méthodes ci-dessus, un iPhone / iPad peut aussi recourir à la capture par proxy : pointez le proxy Wi-Fi de l’appareil vers cette machine, installez le certificat racine, et vous pouvez capturer du texte clair HTTPS exactement comme sur un ordinateur et utiliser l’ensemble complet des capacités de réécriture et de rejeu. Cela convient au débogage d’applications qui passent par le proxy système, ou aux scénarios nécessitant une réécriture / un rejeu de requêtes mobiles basés sur des règles.
- Installer le certificat : scannez le code QR sur le téléphone pour une installation en un geste → Gestion et installation des certificats
- Capacités de capture et de réécriture : → Capture par proxy
7. Quand utiliser la capture sur iOS
Section intitulée « 7. Quand utiliser la capture sur iOS »- Pour vérifier rapidement « quels points de terminaison une application a interrogés et ce qu’ils ont renvoyé », la capture au niveau système est la plus simple, et même les applications ordinaires fonctionnent.
- Pour voir tout le trafic de l’appareil entier (y compris non-HTTP), utilisez la capture sur carte réseau.
- Si vous pouvez re-signer l’application cible et souhaitez son corps en texte clair complet, utilisez la capture au niveau applicatif.
- Pour consulter et modifier en même temps (réécrire / rejouer des requêtes mobiles), utilisez la capture par proxy.
Retour à Capture par proxy · Voir aussi : Consultation et décodage des données · Gestion et installation des certificats