Guida

Cattura HTTPS su un iPhone, senza bisogno di un Mac

Tutto avviene sul telefono: installa l'app, dai fiducia al suo certificato, scegli gli host da decifrare, attiva la VPN. Le richieste decifrate arrivano nella tua dashboard un secondo dopo, via Wi-Fi o rete cellulare.

Il modo consueto per leggere l'HTTPS di un iPhone è un proxy desktop: un portatile sulla stessa Wi-Fi, un'impostazione proxy manuale sul telefono, un certificato installato a mano e una sessione che muore nel momento in cui passi alla rete cellulare. Busymate DevTools toglie il portatile dal giro. L'app esegue un motore di cattura a livello di sistema direttamente sul dispositivo usando NetworkExtension di Apple, decifra solo gli host che metti in una lista e trasmette ogni richiesta a una dashboard web che puoi aprire ovunque.

Questa guida ti porta da un telefono vuoto alla tua prima richiesta decifrata. Usa la modalità VPN, il tunnel sul dispositivo che copre allo stesso modo Wi-Fi e rete cellulare. Se preferisci catturare tramite un proxy Wi-Fi, l'app offre anche una modalità PAC; viene citata dove serve, ma non ti serve per completare questa guida.

Prima di iniziare

Cosa ti serve

Nessun computer, nessun cavo, nessun jailbreak. Quattro cose, tutte sul telefono o in una scheda del browser.

  • Un iPhone o iPad con un iOS recente e l'App Store disponibile.

  • Un account Busymate: accedi con Apple oppure con email e password. È l'accesso che associa il telefono alla tua dashboard.

  • Due minuti nell'app Impostazioni per installare il profilo del certificato e attivare la fiducia completa.

  • I nomi host dell'API che vuoi leggere. Vengono decifrati solo gli host che aggiungi; tutto il resto passa intatto.

Passo dopo passo

Fallo in ordine

Sei passaggi, in quest'ordine. La scheda di prontezza dell'app ti dice quando la parte del certificato è completata, così non devi mai tirare a indovinare.

  1. 01

    Installa l'app e accetta il consenso alla cattura

    Installa Busymate DevTools dall'App Store e aprila. Al primo avvio vedrai una schermata di consenso alla cattura di rete. Apple la richiede perché l'app ispeziona il traffico del dispositivo, e l'app non si associa né inizia a catturare finché non accetti. È un passaggio una tantum: se qualcosa provasse mai ad avviare il tunnel senza il tuo consenso, la stessa schermata ricomparirebbe.

  2. 02

    Accedi: è questo che associa il telefono

    Una schermata di accesso copre l'app finché il telefono non è associato. Scegli Accedi con Apple o inserisci email e password. Non c'è un passaggio di attivazione separato né un codice da digitare: l'app scambia la tua sessione con una credenziale del dispositivo a lunga durata, la salva nel portachiavi del dispositivo e chiude la schermata.

    Apri la dashboard in qualsiasi browser e guarda la scheda Devices: il telefono è già lì e risulta Online. Puoi rinominarlo da entrambi i lati; il nome si sincronizza in tempo reale in entrambe le direzioni e il dispositivo mantiene la sua identità anche se lo rinomini.

    La schermata di accesso di Busymate DevTools su un iPhone
  3. 03

    Installa il profilo del certificato

    In fondo alla schermata iniziale c'è la scheda di prontezza. In questo momento mostra uno scudo giallo e dice Not Ready, perché il telefono non si fida ancora del certificato che l'app usa per decifrare l'HTTPS. Tocca la scheda per aprire i passaggi di configurazione, poi tocca Download.

    L'app apre Safari su un profilo di configurazione. iOS mostra un avviso di profilo scaricato; apri l'app Impostazioni, tocca quell'avviso in alto e poi tocca Installa sul profilo Busymate DevTools. È lo stesso profilo che puoi scaricare manualmente all'indirizzo qui sotto.

    Il profilo del certificato che l'app apre per te
    text
    https://busymate.net/ca.mobileconfig
  4. 04

    Attiva la fiducia completa per il certificato

    Installare il profilo non basta. iOS richiede un interruttore di fiducia separato ed esplicito per qualsiasi certificato radice installato dall'utente, ed è il passaggio che la maggior parte delle persone salta. Vai in Impostazioni, poi Generali, poi Info, poi Impostazioni fiducia certificati, e attiva Busymate DevTools nell'elenco della fiducia completa.

    Torna all'app. Ricontrolla la fiducia ogni pochi secondi mentre la schermata di configurazione è aperta e ogni volta che torna in primo piano, così entro un secondo o due la scheda di prontezza diventa verde e dice Ready. La schermata iniziale sostituisce l'avviso di configurazione incompleta con i controlli di cattura. La fiducia sopravvive alla reinstallazione dell'app: lo fai una volta per telefono.

    La schermata iniziale di Busymate DevTools con la scheda di prontezza e l'interruttore di cattura
  5. 05

    Aggiungi gli host che vuoi decifrare

    Fidarsi del certificato non apre tutto. L'app decifra solo i domini nella sua lista SSL proxy; ogni altra connessione continua a passare ma resta cifrata, e compare con un lucchetto chiuso, solo con il nome host e un contatore di richieste. Apri la lista dall'ingranaggio sulla scheda di prontezza — Settings, poi Tunnel, poi SSL Proxying —, tocca Add Domain e inserisci un host.

    Un nome host semplice corrisponde esattamente a quell'host. Un asterisco e un punto iniziali corrispondono al dominio principale e a ogni sottodominio a qualsiasi profondità, che di solito è ciò che vuoi per un'API. Nella stessa sezione Tunnel ci sono due interruttori correlati: Inspect All Requests registra ogni connessione fatta dal telefono invece dei soli host in lista, e MITM All Hosts decifra ogni host HTTPS — più pesante, e meglio lasciarlo spento a meno che non ti serva. Ignore Hosts nasconde del tutto dal feed il rumore di fondo come la telemetria.

    Puoi gestire questa lista anche dalla dashboard: modifica lì i domini SSL proxy del dispositivo e la modifica arriva sul telefono in tempo reale, così un collega può aggiungere un host al posto tuo senza toccare il dispositivo.

    La schermata delle impostazioni di Busymate DevTools su un iPhone, dove si trova la lista SSL proxy
  6. 06

    Attiva la VPN e leggi il traffico

    Nella schermata iniziale, la riga Status contiene l'interruttore della VPN. Attivalo. Vedrai un breve Syncing, poi Connected; l'icona dell'app si assesta su un anello verde fisso con un badge VPN, e lo stesso badge VPN compare nella barra di stato di iOS. Da questo momento ogni richiesta del telefono, via Wi-Fi o rete cellulare, viene trasmessa alla tua dashboard, e il tunnel resta attivo quando cambi app.

    Usa l'app che stai debuggando. Poi guarda la dashboard: le nuove righe compaiono in cima al feed nel momento in cui avvengono, una per richiesta, e la barra laterale dei dispositivi ti permette di concentrarti solo su questo telefono. Fai clic su qualsiasi riga per aprire richiesta e risposta complete — header e body, con il JSON formattato. Sul telefono stesso, Settings, poi Tools, poi Network Log mostra la stessa cattura raggruppata per dominio, con un lucchetto aperto su ogni host che hai scelto di decifrare.

    Il Network Log dell'app su un iPhone, con le richieste raggruppate per dominio

Risoluzione dei problemi

Cosa può andare storto

Quasi ogni configurazione bloccata è uno di questi cinque casi, e ciascuno ha un segnale visibile.

  • La scheda di prontezza resta gialla dopo l'installazione del profilo

    La fiducia completa è ancora disattivata. Installare il profilo e attivare la fiducia sono due passaggi separati in iOS; torna in Impostazioni, Generali, Info, Impostazioni fiducia certificati e attiva Busymate DevTools. La scheda diventa verde da sola appena lo fai.

  • Un host mostra un lucchetto chiuso e nessun body

    Quell'host non è nella lista SSL proxy, oppure l'hai aggiunto mentre la VPN era attiva. Aggiungilo, poi spegni e riaccendi la VPN così il tunnel carica la nuova lista: una cattura in modalità PAC non ha bisogno del riavvio, il tunnel sì.

  • L'app che stai debuggando rifiuta di connettersi appena l'host viene decifrato

    L'app fissa il proprio certificato e rifiuta qualsiasi altro, cosa che nessuna cattura sul dispositivo può aggirare. Rimuovi l'host dalla lista così torna a passare cifrato, e leggi la guida sul pinning per sapere cosa puoi ancora vedere.

  • La scheda PAC dice Unavailable — VPN active

    È previsto, non è un errore. VPN e PAC si escludono a vicenda; mentre il tunnel è attivo iOS nasconde lo stato del proxy Wi-Fi, e l'app lo dice onestamente. Spegni la VPN se vuoi usare PAC al suo posto.

  • Nella dashboard non arriva nulla

    Controlla i tre passaggi in ordine: il consenso è stato accettato, il telefono risulta Online nella scheda Devices, e l'interruttore Status dice Connected. Se l'app per un attimo non ha raggiunto il backend sotto molto traffico, mostra un piccolo avviso con il numero di voci scartate, quindi non c'è mai perdita silenziosa.

FAQ

Le domande più frequenti

Davvero non mi servono un Mac, un cavo o un'impostazione proxy?

Esatto. Cattura, decifratura e trasmissione avvengono tutte sul telefono. Un computer entra in gioco solo se scegli di leggere la dashboard da lì — e anche il browser del telefono va benissimo.

Cattura il traffico su rete cellulare e quello di altre app?

In modalità VPN sì: il tunnel sul dispositivo copre ogni app del telefono, via Wi-Fi e rete cellulare. L'alternativa PAC copre solo il Wi-Fi, perché è un'impostazione proxy Wi-Fi e non un tunnel.

Viene decifrato tutto una volta che il certificato è attendibile?

No. La fiducia rende solo possibile la decifratura. L'app decifra gli host della tua lista SSL proxy e nient'altro, a meno che tu non attivi deliberatamente MITM All Hosts. Le app che fissano il proprio certificato restano comunque cifrate.

La tua prima richiesta decifrata è a pochi tocchi di distanza

Installa l'app, porta la scheda di prontezza al verde e guarda il traffico del telefono arrivare nella tua dashboard.

Ask your mate