Torna al blog

Bypass SSL Pinning tramite proxy: come intercettare il traffico delle app mobili senza compromettere il test

SSL Pinning impedisce l'intercettazione del traffico delle applicazioni mobili: analizziamo come aggirarlo tramite proxy senza conoscenze tecniche approfondite.

📅6 agosto 2026
```html

Stai configurando un proxy, colleghi il dispositivo — eppure l'applicazione non mostra il traffico o si arresta con un errore. Probabilmente, il problema è SSL Pinning: una protezione che gli sviluppatori integrano intenzionalmente nell'app per bloccare l'intercettazione delle richieste HTTPS. Questo è un grosso problema per chi analizza il comportamento delle applicazioni concorrenti, testa integrazioni pubblicitarie o studia le API dei marketplace.

In questa guida analizzeremo cos'è SSL Pinning, perché ostacola il lavoro con i proxy e come bypassarlo — passo dopo passo, senza teoria superflua.

Cos'è SSL Pinning e perché viene integrato nelle applicazioni

SSL Pinning (o Certificate Pinning) è un meccanismo di sicurezza in cui un'app mobile "incorpora" in anticipo un certificato SSL specifico o una chiave pubblica del server. Ad ogni connessione, l'app verifica: il certificato del server corrisponde a quello incorporato? Se no, la connessione viene interrotta.

Nello schema HTTPS normale, il browser o l'app si fidano di qualsiasi certificato firmato da un'autorità di certificazione (CA) fidata. È proprio questo che sfruttano gli strumenti proxy come Charles Proxy o mitmproxy: inseriscono il proprio certificato, decriptano il traffico e lo inoltrano. L'utente vede tutto lo scambio di dati in chiaro.

SSL Pinning rompe questo schema. L'app vede il certificato dello strumento proxy, capisce che non corrisponde al certificato "originale" del server e si rifiuta di funzionare. È per questo che vedi errori come SSL handshake failed, Certificate verification failed o semplicemente uno schermo vuoto nell'app.

Gli sviluppatori implementano SSL Pinning per diverse ragioni:

  • Protezione contro attacchi di tipo Man-in-the-Middle (MITM)
  • Prevenzione del reverse engineering delle API
  • Protezione contro bot e richieste automatizzate
  • Nascondere la logica interna di monetizzazione e integrazioni pubblicitarie

Tra le applicazioni che utilizzano attivamente SSL Pinning ci sono: applicazioni bancarie, marketplace (Wildberries, Ozon), SDK pubblicitari (Facebook, TikTok), sistemi di pagamento e grandi piattaforme e-commerce. È per questo che bypassare SSL Pinning è così importante per marketer, arbitraggisti e specialisti di analisi della concorrenza.

Perché il proxy non funziona se l'app ha SSL Pinning

Quando configuri un proxy sul telefono (ad esempio, tramite le impostazioni Wi-Fi), tutto il traffico HTTP e HTTPS passa attraverso il server proxy. Per HTTP funziona senza problemi — il traffico è già aperto. Ma per HTTPS lo strumento proxy deve "presentarsi" come server, inserendo il proprio certificato.

Qui sorge il conflitto. Le applicazioni normali accettano questo certificato se hai installato il certificato radice dello strumento proxy nel keystore di sistema del dispositivo. Ma le applicazioni con SSL Pinning ignorano il keystore di sistema — controllano solo il loro certificato "incorporato".

Come appare nella pratica:

Colleghi Charles Proxy, installi il suo certificato radice su iPhone, avvii l'app del marketplace — e vedi un errore o uno schermo vuoto. Nei log di Charles — vuoto o registrazioni con errore SSL. Questa è la classica immagine di SSL Pinning in azione.

È importante capire: il problema non è nel server proxy (residenziale, mobile o in data center). Il proxy qui funge da nodo intermedio per il routing del traffico. Il problema è nell'app stessa, che si rifiuta di accettare il certificato sostituito. Pertanto, la soluzione deve essere cercata a livello di applicazione o dispositivo, non a livello di server proxy.

Esistono diversi tipi di SSL Pinning, e si differenziano per complessità di bypass:

Tipo di Pinning Cosa viene verificato Difficoltà di bypass
Certificate Pinning Certificato completo del server Media
Public Key Pinning Chiave pubblica dal certificato Alta
Hash Pinning Hash del certificato o della chiave Alta
Network Security Config File di configurazione Android (XML) Bassa-media

Strumenti per l'intercettazione del traffico: Charles, mitmproxy, Burp Suite

Prima di passare al bypass di SSL Pinning, è necessario scegliere uno strumento per l'intercettazione del traffico. Tutti funzionano secondo lo stesso principio: sollevano un server proxy locale attraverso il quale passa il traffico del dispositivo. La differenza è nella comodità, nelle funzionalità e nel prezzo.

Charles Proxy

Lo strumento più popolare tra marketer e tester senza un background tecnico profondo. Ha un'interfaccia grafica, funziona su Windows e macOS. Permette di vedere tutte le richieste e risposte in un comodo albero, filtrare per dominio, modificare le richieste al volo. A pagamento, ma c'è un periodo di prova. Ottimo per analizzare le API dei marketplace e gli SDK pubblicitari.

mitmproxy

Strumento gratuito e open source. Funziona tramite linea di comando, ma ha un'interfaccia web (mitmweb). Molto flessibile: supporta script per la modifica automatica del traffico. Buono per chi vuole automatizzare l'analisi o integrare l'intercettazione nel pipeline di test. Un po' più complesso da configurare rispetto a Charles.

Burp Suite

Strumento professionale per il testing della sicurezza. Ha una versione Community gratuita con funzionalità di base. Particolarmente utile per l'analisi dettagliata delle richieste, gestione di cookie e sessioni. Utilizzato attivamente nell'analisi delle API dei concorrenti e nello studio delle integrazioni pubblicitarie. L'interfaccia è più complessa di Charles, ma le possibilità sono più ampie.

Strumento Interfaccia Prezzo Per chi
Charles Proxy GUI (comoda) A pagamento (~$50) Marketer, analisti
mitmproxy CLI + Web UI Gratuito Specialisti tecnici
Burp Suite GUI (complessa) Free / Pro Tester di sicurezza

Per la maggior parte delle attività di un marketer o di un arbitraggista — analisi delle richieste pubblicitarie, studio delle API del marketplace, monitoraggio del traffico dell'app — Charles Proxy sarà la scelta ottimale. Se hai bisogno di automazione o di lavorare senza GUI — mitmproxy.

Metodi per bypassare SSL Pinning: da semplici a avanzati

Esistono diversi approcci per bypassare SSL Pinning. Si differenziano per complessità, requisiti del dispositivo e affidabilità. Analizziamo ciascuno — dal più semplice al più potente.

Metodo 1: Installazione del certificato nel keystore di sistema (solo Android)

Il modo più semplice — ma funziona solo per le applicazioni che utilizzano il keystore di certificati di sistema. Su Android fino alla versione 7.0, i certificati personalizzati venivano accettati allo stesso modo di quelli di sistema. A partire da Android 7.0, le applicazioni ignorano per impostazione predefinita le CA personalizzate. Se l'applicazione consente esplicitamente i certificati personalizzati in network_security_config.xml — questo metodo funzionerà. Per la maggior parte delle moderne applicazioni con SSL Pinning — non aiuterà.

Metodo 2: Frida — patching dinamico dell'applicazione

Frida è uno strumento per l'instrumentazione dinamica delle applicazioni. Permette di intercettare "al volo" le chiamate di funzione all'interno dell'app e sostituirne il comportamento. Per bypassare SSL Pinning esistono script pronti che disabilitano il controllo del certificato senza modificare l'APK. Richiede root su Android o jailbreak su iOS. Questo è il metodo più affidabile e versatile.

Metodo 3: Patching dell'APK (Android)

Decompilazione del file APK utilizzando apktool, rimozione o modifica del codice di SSL Pinning, ricompilazione e firma dell'applicazione. Non richiede root, ma richiede competenze tecniche per lavorare con il codice smali. Funziona bene per le applicazioni con una semplice implementazione di Pinning tramite Network Security Config. Per le applicazioni con codice nativo (C/C++) — è significativamente più complesso.

Metodo 4: Objection — wrapper su Frida per principianti

Objection è uno strumento basato su Frida con un'interfaccia a riga di comando più semplice. Contiene comandi integrati per bypassare SSL Pinning con un solo comando: android sslpinning disable. Adatto a chi non vuole occuparsi della scrittura manuale di script Frida. Richiede root o jailbreak.

Metodo 5: Utilizzo di un emulatore con root

Invece di un dispositivo fisico, puoi utilizzare un emulatore Android (ad esempio, Genymotion o il normale AVD di Android Studio) con accesso root abilitato. Questo consente di installare certificati di sistema e avviare Frida senza rischiare di "brickare" un telefono reale. Un'opzione comoda per test regolari in un ambiente di lavoro.

Bypass passo passo di SSL Pinning su Android

Analizziamo lo scenario più pratico: dispositivo Android o emulatore con root, strumento Objection + Frida, strumento proxy Charles Proxy o mitmproxy.

Cosa serve:

  • Dispositivo Android con root o emulatore Genymotion
  • Computer con Python 3 installato
  • Frida-server per Android (scarica da GitHub)
  • Objection (installato tramite pip)
  • Charles Proxy o mitmproxy sul computer
  • ADB (Android Debug Bridge)

Passo 1: Configura lo strumento proxy sul computer

Avvia Charles Proxy o mitmproxy. Per impostazione predefinita ascoltano sulla porta 8888 (Charles) o 8080 (mitmproxy). Ricorda l'indirizzo IP del tuo computer nella rete locale — ti servirà per configurare il proxy sul dispositivo.

Passo 2: Configura il proxy sul dispositivo Android

Vai su impostazioni Wi-Fi → seleziona la tua rete → premi "Modifica" → "Opzioni avanzate" → Proxy: Manuale. Indica l'IP del computer e la porta dello strumento. Ora tutto il traffico del dispositivo passa attraverso il tuo proxy.

Passo 3: Installa il certificato dello strumento proxy

Apri il browser sul dispositivo e vai all'indirizzo chls.pro/ssl (per Charles) o mitm.it (per mitmproxy). Scarica e installa il certificato. Su Android con root, sposta anche il certificato nel keystore di sistema — questo è necessario per alcune applicazioni.

Passo 4: Avvia Frida-server sul dispositivo

Scarica frida-server della versione corretta da GitHub (la versione deve corrispondere a quella di Frida sul computer). Carica il file sul dispositivo tramite ADB:

adb push frida-server /data/local/tmp/
adb shell "chmod 755 /data/local/tmp/frida-server"
adb shell "su -c /data/local/tmp/frida-server &"

Passo 5: Connettiti tramite Objection e disabilita SSL Pinning

Sul computer, installa Objection tramite pip e avvialo, specificando il nome del pacchetto dell'applicazione:

pip install objection
objection -g com.example.app explore

Dopo la connessione, nella console di Objection esegui il comando per disabilitare SSL Pinning:

android sslpinning disable

Dopo di che, apri l'app e inizia a interagire con essa. Il traffico apparirà in Charles o mitmproxy in forma decriptata.

Passo 6: Per applicazioni con Network Security Config

Se l'app utilizza network_security_config.xml, puoi decompilare l'APK tramite apktool, trovare questo file e aggiungere il permesso per i certificati personalizzati, quindi ricompilare e risignare l'APK. Questo funziona senza root, ma richiede di disabilitare il controllo della firma dell'app.

Bypass passo passo di SSL Pinning su iOS

Su iOS la situazione è più complessa: per la maggior parte dei metodi è richiesto il jailbreak. Senza di esso, le possibilità sono limitate. Analizziamo entrambe le opzioni.

Opzione A: Con jailbreak (iOS 14-16, checkra1n / palera1n)

Passo 1: Configura il proxy

Su iPhone vai su Impostazioni → Wi-Fi → la tua rete → Configura proxy → Manuale. Indica l'IP del computer e la porta Charles/mitmproxy.

Passo 2: Installa il certificato

Apri Safari e vai su chls.pro/ssl. Installa il profilo tramite Impostazioni → Generali → VPN e gestione dispositivo. Quindi attivalo in Impostazioni → Generali → Fiducia nei certificati.

Passo 3: Installa SSL Kill Switch 2 tramite Cydia/Sileo

SSL Kill Switch 2 è un tweak per iOS jailbroken che disabilita globalmente SSL Pinning per tutte le applicazioni. Trovalo in Cydia o Sileo, installalo, riavvia il dispositivo. Dopo di che, la maggior parte delle applicazioni smetterà di controllare i certificati e il traffico sarà visibile in Charles.

Passo 4: Alternativa — Frida + Objection su iOS

Analogamente ad Android: installa frida-server tramite Cydia, connettiti tramite Objection sul computer ed esegui ios sslpinning disable. Questo metodo è più flessibile e funziona per le applicazioni che SSL Kill Switch 2 non copre.

Opzione B: Senza jailbreak (possibilità limitate)

Senza jailbreak, bypassare SSL Pinning su iOS è significativamente più difficile. Una delle opzioni è utilizzare lo strumento Proxyman con la sua funzione di SSL Proxying per iOS senza jailbreak. Proxyman installa un profilo speciale sul dispositivo e utilizza un'interfaccia VPN per intercettare il traffico. Funziona per molte applicazioni, ma non per tutte con un Pinning rigido.

Un'altra opzione è utilizzare l'emulatore iOS in Xcode. L'emulatore non ha SSL Pinning a livello di OS e molte applicazioni possono essere eseguite in esso (se supportano l'emulatore). Ma questo è adatto solo per test, non per analisi di applicazioni in produzione.

Quale tipo di proxy scegliere per testare le applicazioni mobili

Dopo che SSL Pinning è stato bypassato, il traffico dell'app passa attraverso il tuo strumento proxy (Charles, mitmproxy). Ma per alcune attività è necessario anche indirizzare il traffico attraverso un server proxy esterno — ad esempio, affinché l'app "veda" un'altra regione o un altro indirizzo IP. Qui è importante scegliere correttamente il tipo di proxy.

Proxy residenziali

I proxy residenziali utilizzano indirizzi IP di veri utenti domestici. Le applicazioni mobili, in particolare gli SDK pubblicitari e i marketplace, si fidano di questi IP molto di più rispetto agli indirizzi dei data center. Se stai analizzando il comportamento dell'app in base alla regione — i proxy residenziali forniranno l'immagine più "pulita", vicina a quella di un utente reale.

Proxy mobili

I proxy mobili funzionano attraverso reti mobili reali (3G/4G/5G). Questo è particolarmente rilevante durante il testing delle applicazioni mobili: gli IP provenienti da reti mobili hanno il massimo livello di fiducia presso Facebook Ads SDK, TikTok e altre piattaforme pubblicitarie. Se il tuo obiettivo è analizzare le richieste pubblicitarie dell'app o testare il comportamento degli SDK in un ambiente mobile, i proxy mobili sono la scelta ottimale.

Proxy dei data center

I proxy dei data center sono adatti per attività in cui la velocità è più importante della "naturalità" dell'IP: ad esempio, per il parsing massivo di API aperte o il testing delle prestazioni. Per l'analisi degli SDK pubblicitari e delle applicazioni protette sono meno preferibili, poiché vengono facilmente riconosciuti dai sistemi antifrode.

Tipo di proxy Fiducia delle applicazioni Velocità Miglior scenario
Residenziali Alta Media Analisi per regioni, marketplace
Mobili Massimo Media SDK pubblicitari, Facebook, TikTok
Data center Bassa Alta Parsing di API aperte, test di carico

Casi pratici: arbitraggio, e-commerce, marketing

Analizziamo compiti specifici per i quali i marketer e gli arbitraggisti ricorrono al bypass di SSL Pinning.

Scenario 1: Analisi degli SDK pubblicitari di Facebook e TikTok

Gli arbitraggisti che lavorano con Facebook Ads e TikTok Ads vogliono spesso capire quali dati l'SDK invia al server: quali eventi vengono registrati, come vengono formate le richieste di attribuzione, quali parametri influenzano l'ottimizzazione delle campagne. Senza bypassare SSL Pinning, questo è impossibile — entrambi gli SDK utilizzano Certificate Pinning.

Dopo il bypass tramite Frida/Objection, puoi vedere in Charles tutti gli eventi dell'SDK: installazioni, acquisti, registrazioni — e assicurarti che il tracking sia configurato correttamente. Questo è particolarmente importante durante la configurazione del CAPI (Conversions API) e per verificare la deduplicazione degli eventi.

Scenario 2: Monitoraggio dei prezzi su Wildberries e Ozon tramite l'app

Le applicazioni Wildberries e Ozon utilizzano SSL Pinning per proteggere le loro API. I venditori che vogliono monitorare i prezzi dei concorrenti tramite l'app mobile (e non la versione web) si trovano di fronte a questa protezione. Dopo il bypass di SSL Pinning, puoi studiare la struttura delle richieste API e capire quali endpoint vengono utilizzati per ottenere dati sui prezzi, disponibilità e valutazioni dei prodotti.

Importante: i dati ottenuti possono essere utilizzati solo per analisi personali. Il parsing automatizzato tramite la riproduzione delle richieste API viola i termini di utilizzo delle piattaforme.

Scenario 3: Testare creatività pubblicitarie da diverse regioni

I marketer che testano la pubblicità in Facebook Ads e TikTok Ads da diverse regioni vogliono vedere come si comporta l'app quando si connette tramite IP di un determinato paese. La combinazione di bypass di SSL Pinning + proxy residenziale della regione desiderata consente di vedere quale contenuto e quali prezzi vengono mostrati agli utenti di quella regione.

Scenario 4: QA testing della propria applicazione

Se stai sviluppando la tua applicazione mobile o lavori con un team di sviluppo, l'intercettazione del traffico con bypass di SSL Pinning è una pratica standard di QA. Questo consente di verificare la correttezza delle richieste, trovare perdite di dati, controllare il funzionamento dell'analisi e degli SDK pubblicitari in condizioni reali prima del rilascio.

Scenario 5: Analisi della concorrenza nel settore dei giochi e delle applicazioni mobili

I marketer di giochi mobili utilizzano l'intercettazione del traffico per analizzare la monetizzazione dei concorrenti: quali offerte vengono mostrate, come funziona il sistema di acquisti in-app, quali reti pubblicitarie vengono utilizzate. Questo aiuta a costruire strategie più efficaci per l'UA (User Acquisition) e la monetizzazione.

Checklist: controlla la configurazione prima del test

Prima di iniziare a intercettare il traffico, assicurati che tutto sia configurato correttamente. Ecco la checklist completa:

✅ Checklist di configurazione

  • Lo strumento proxy (Charles/mitmproxy) è avviato sul computer e ascolta la porta corretta
  • Il computer e il dispositivo si trovano sulla stessa rete Wi-Fi
  • Sul dispositivo, nelle impostazioni Wi-Fi è indicato l'IP corretto del computer e la porta del proxy
  • Il certificato radice dello strumento proxy è installato sul dispositivo
  • Su Android: il certificato è stato spostato nel keystore di sistema (se hai root)
  • Su iOS: il certificato è attivato nella sezione "Fiducia nei certificati"
  • Frida-server è avviato sul dispositivo (se utilizzi Frida/Objection)
  • La versione di Frida sul computer corrisponde alla versione di frida-server sul dispositivo
  • Objection si è connesso con successo al processo dell'applicazione
  • Il comando android sslpinning disable è stato eseguito senza errori
  • In Charles/mitmproxy appaiono registrazioni durante l'utilizzo dell'applicazione
  • Le richieste HTTPS vengono decriptate (non mostrano errori SSL)

Problemi comuni e le loro soluzioni

Problema Causa Soluzione
Il traffico non appare in Charles IP/porta del proxy errati Controlla l'IP del computer e la porta
Errore SSL in Charles Certificato non installato o non attivato Reinstalla e attiva il certificato
Frida non si connette Discrepanza tra le versioni frida/frida-server Sincronizza le versioni
Objection non disabilita il Pinning Codice nativo (C/C++) con Pinning Utilizza uno script Frida personalizzato
L'app si arresta dopo il bypass L'app verifica l'integrità Disabilita anche il rilevamento del root tramite Objection

Conclusione

SSL Pinning è una protezione seria, ma non insormontabile. Per la maggior parte delle attività pratiche di un marketer o di un arbitraggista, è sufficiente una combinazione: emulatore Android con root + Frida/Objection + Charles Proxy. Su iOS — SSL Kill Switch 2 in presenza di jailbreak o Proxyman senza di esso. L'importante è configurare correttamente la catena: strumento proxy sul computer → traffico attraverso di esso → bypass del Pinning sul dispositivo.

Ricorda che il bypass di SSL Pinning in applicazioni di terze parti è consentito solo per analisi e ricerche personali. Il parsing automatizzato e la riproduzione delle richieste API violano i termini di utilizzo della maggior parte delle piattaforme.

Se il tuo compito è analizzare il traffico delle applicazioni mobili in diverse regioni o testare il comportamento degli SDK pubblicitari di paesi specifici, avrai bisogno non solo di bypassare SSL Pinning, ma anche di un server proxy di qualità. Per lavorare con piattaforme pubblicitarie (Facebook Ads, TikTok Ads) e marketplace, ti consigliamo di utilizzare proxy mobili — hanno il massimo livello di fiducia presso i sistemi antifrode e consentono di emulare correttamente un ambiente mobile reale.

```