
Immagina di utilizzare un’applicazione di mobile banking e di aver appena completato una transazione. Vorresti che le tue informazioni sensibili fossero al sicuro, vero?
È qui che il certificate pinning gioca un ruolo fondamentale. Si tratta di una precauzione di sicurezza adottata dagli sviluppatori di app per garantire che i tuoi dati vengano trasmessi in modo sicuro attraverso la rete.
Ma cos’è il certificate pinning e come funziona esattamente? E ci sono degli aspetti negativi di cui dovresti essere a conoscenza? Diamo un’occhiata più da vicino.
Indice dei contenuti
- Che cos’è il Certificate Pinning?
- Come funziona l’SSL Pinning?
- Vantaggi del pinning SSL
- Problemi di pinning SSL
- Alternative di SSL Pinning

Che cos’è il Certificate Pinning?
Il pinning del certificato è una misura di sicurezza che collega un host con il suo certificato digitale o la sua chiave pubblica. Si tratta di tecniche come il pinning statico o dinamico, che permettono al sistema di verificare l’identità di un host.
Invece di affidarsi esclusivamente al sistema predefinito di verifica della firma di un’autorità di certificazione affidabile sul certificato SSL di un server, il certificate pinning codifica un certificato specifico o la sua chiave pubblica all’interno dell’app. In questo modo l’app accetta solo il certificato preapprovato, riducendo il rischio di attacchi man-in-the-middle, connessioni non autorizzate al server e autorità di certificazione disoneste.
Tecniche utilizzate per il pinning SSL
Esaminiamo le tecniche utilizzate per l’SSL Pinning, in particolare il Certificate and Public Key Pinning, in modo da capire meglio come funziona.
- Certificato SSL pinning: Incorpora un particolare certificato SSL direttamente nel codice dell’applicazione in modo che questa si fidi e stabilisca connessioni sicure con un server solo se questo presenta l’esatto certificato predefinito. Questo approccio migliora la sicurezza ma può creare problemi durante gli aggiornamenti dei certificati.
- Pinning della chiave pubblica: Si concentra su un livello più granulare, specificando e verificando solo la chiave pubblica estratta dal certificato SSL. Questo metodo offre una maggiore flessibilità rispetto al pinning del certificato, rendendo più facile l’aggiornamento dei certificati senza modificare il codice dell’applicazione. Se si fissa solo la chiave pubblica, il certificato ruotato di solito mantiene la stessa chiave pubblica.
Tipi di SSL Pinning
Sia il pinning SSL statico che quello dinamico migliorano la sicurezza della comunicazione tra un’applicazione e un server. La differenza sta nel modo in cui gli sviluppatori di applicazioni iOS e Android gestiscono i certificati. Il pinning SSL statico incorpora il certificato nell’applicazione stessa, mentre il pinning SSL dinamico consente all’applicazione di aggiornare il certificato nel tempo.
- Pinning SSL statico: Il certificato SSL è inserito nell’applicazione stessa. Questo metodo, pur essendo robusto, non consente l’aggiornamento del certificato e presenta potenziali problemi di sicurezza. Se il certificato hard-coded pinnato scade o viene compromesso, devi aggiornare l’intera applicazione per implementare un nuovo certificato SSL. Pertanto, il pinning SSL statico richiede una pianificazione meticolosa.
- Pinning dinamico SSL: Questo metodo offre un approccio più flessibile al pinning dei certificati, consentendo aggiornamenti senza richiedere una revisione completa dell’applicazione. Il Dynamic SSL Pinning recupera il certificato SSL o la chiave pubblica in fase di esecuzione e consente alle applicazioni software di aggiornare dinamicamente i certificati pinnati. Fornisce una maggiore sicurezza mantenendo l’integrità della comunicazione tra il client e il server.
Quali certificati possono essere appuntati?
Gli sviluppatori di solito appuntano il certificato di base o la chiave pubblica corrispondente al certificato di base. Il certificato principale è quello che corrisponde direttamente al dominio per il quale viene stabilita la connessione sicura.
Ecco una breve panoramica dei diversi tipi di certificati della catena TLS che puoi utilizzare:
- Certificato Leaf (certificato del server o dell’entità finale): Questo certificato è associato direttamente al dominio del server e contiene la chiave pubblica.
- Certificato/i intermedio/i: Questi certificati si collocano tra il certificato root e il certificato dell’entità finale (leaf) come parte della catena di fiducia nelle connessioni TLS.
- Certificato radice: Il certificato root è il livello più alto della gerarchia dei certificati. È autofirmato e rappresenta l’ultima ancora di fiducia. I certificati radice sono preinstallati nei browser web e nei sistemi operativi.
In genere non è consigliabile appuntare il certificato radice perché riduce la flessibilità di aggiornamento del certificato del server. Anche i certificati intermedi sono meno comuni, perché possono essere soggetti a modifiche durante il rinnovo dei certificati. La pratica più comune è quella di appuntare i certificati dei server o le loro chiavi pubbliche.

Come funziona l’SSL Pinning?
Quando ti connetti a un sito web protetto, il tuo browser controlla il certificato SSL del sito con un elenco di CA affidabili. Se il certificato è valido, la connessione procede. Il pinning SSL protegge ulteriormente questo processo.
Con il pinning SSL, la tua applicazione non si fida del certificato SSL solo perché è stato emesso da una CA affidabile. Al contrario, verifica il certificato rispetto a una copia o “pin” memorizzata all’interno dell’applicazione. Se il certificato non corrisponde al pin, la connessione si interrompe. Controllando il pin, l’app può verificare l’identità del sito, anche se l’aggressore dispone di un certificato valido proveniente da una CA affidabile.
Ecco il processo di certificazione passo dopo passo per le applicazioni mobili:
- Avvia la connessione: L’applicazione mobile avvia una connessione sicura al server.
- Certificato del server: Il server presenta il suo certificato SSL, comprensivo di chiave pubblica, e il client lo verifica.
- Impostazione del pinning: L’applicazione è configurata per fidarsi di un certificato SSL specifico, come quello rilasciato dal server.
- Controllo del certificato: L’applicazione controlla se il certificato presentato corrisponde a quello pre-approvato.
- Connessione sicura: Se c’è una corrispondenza, l’app stabilisce una connessione sicura; in caso contrario, rifiuta la connessione, migliorando la sicurezza.
Ad esempio, se l’app si aspetta un certificato rilasciato da“Sectigo CA“, si connetterà solo ai server che presentano un certificato firmato da “Sectigo CA”, riducendo i potenziali rischi per la sicurezza.
Vantaggi del pinning SSL
Il pinning SSL offre numerosi vantaggi, tra cui una maggiore sicurezza. Attenua il rischio di spoofing dei certificati, offre protezione contro il reverse engineering e funge da difesa contro l’abuso delle API. Inoltre, migliora l’affidabilità della tua applicazione, rafforzando la fiducia degli utenti nella tua piattaforma.
- Sicurezza migliorata. Il Certificate Pinning precarica la chiave pubblica o il certificato del server nell’applicazione. In questo modo, anche se un hacker riesce a ingannare il tuo sistema e a fargli accettare un certificato fraudolento, l’applicazione accetterà solo il certificato precaricato.
Questo meccanismo di difesa blocca l’accesso non autorizzato o la manomissione dei dati trasmessi tra la tua applicazione e il server. Implementando l’SSL pinning, stai effettivamente alzando la barriera per gli hacker, rendendo il tuo sistema sempre più resistente alle minacce informatiche. - Mitigazione del Certificate Spoofing. Lo spoofing dei certificati consiste nel presentare un certificato SSL falso per indurre i sistemi a fidarsi di un’entità non autorizzata, consentendo la potenziale intercettazione e manipolazione delle comunicazioni sicure.
Questa mitigazione funziona bloccando il client per accettare un certificato specifico o un certificato firmato da una certa autorità. Se un criminale informatico tenta di falsificare un certificato, il tuo sistema lo rifiuterà perché non è il certificato designato, migliorando notevolmente la tua sicurezza contro le potenziali minacce. - Protezione contro il reverse engineering. Oltre a mitigare lo spoofing dei certificati, il pinning SSL protegge il tuo sistema dal reverse engineering, una manovra ingannevole spesso utilizzata dagli hacker per sezionare e replicare il tuo software.
Se inserisci il certificato o la chiave pubblica del server nella tua applicazione, crei un’identità unica e immutabile per il server. Di conseguenza, gli hacker non possono utilizzare i loro certificati. Inoltre, si tratta di una misura proattiva che ti avverte di eventuali discrepanze o potenziali attacchi prima che possano causare danni. - Difesa contro gli abusi delle API. Oltre alla protezione contro il reverse engineering, il pinning SSL offre anche una solida difesa contro l’abuso di API (Application Program Interface), una delle minacce più diffuse nell’attuale panorama digitale. L’abuso di API implica generalmente che gli aggressori sfruttino le debolezze dell’API, provocando accessi non autorizzati e violazioni dei dati.
Tuttavia, con il pinning dei certificati aggiungi un ulteriore livello di sicurezza. Assicura che la tua applicazione comunichi solo con il server designato, annullando il rischio di attacchi man-in-the-middle. - Miglioramento dell’affidabilità. Il pinning SSL può migliorare notevolmente l’affidabilità della tua applicazione, rassicurando gli utenti sulla gestione professionale dei loro dati. Con il pinning del certificato, crei un ulteriore livello di sicurezza, legando la tua applicazione a un certificato o a una chiave pubblica specifici.
In questo modo, anche se un aggressore riesce a falsificare un nuovo certificato, il pinning bloccherà la connessione, rafforzando la fiducia nella sicurezza dei dati della tua applicazione.
Una migliore affidabilità equivale a una maggiore fiducia, fedeltà e coinvolgimento degli utenti. Più la tua applicazione è affidabile, più è probabile che gli utenti le affidino i loro dati.
Problemi di pinning SSL
Sebbene il pinning SSL offra notevoli vantaggi in termini di sicurezza, non è esente da problemi che dovrai affrontare.
Il pinning SSL introduce un significativo overhead di manutenzione, causando potenziali problemi di manutenzione e affidabilità del sistema.
Dovrai affrontare aggiornamenti costanti a causa del pinning dei certificati e il tuo sistema o la tua applicazione potrebbero diventare vulnerabili se non gestiti correttamente.
Può essere impegnativo in caso di scalabilità e di gestione di più certificati. Se implementato in modo improprio, il pinning dei certificati potrebbe bloccare inavvertitamente i server legittimi, causando crash delle app o problemi di accesso.
Una particolare implementazione è stata deprecata a causa di notevoli problemi di sicurezza. HTTP Public Key Pinning (HPKP) permetteva ai siti web di indicare ai browser di accettare solo chiavi pubbliche specifiche durante un determinato periodo di tempo.
Tuttavia, la sua rovina è dovuta alla sua complessa configurazione e ai rischi associati. Un’impostazione non corretta dei parametri di pinning potrebbe portare a risultati gravi, causando potenzialmente un denial of service per i siti web.
Anche se il pinning SSL può migliorare la sicurezza della tua app, non è una soluzione d’argento e può cullarti in un senso di sicurezza potenzialmente falso. Inoltre, molti esperti di sicurezza la considerano obsoleta a causa dei problemi sopra descritti.
Devi essere consapevole di questi problemi e considerare le alternative per prendere la decisione più consapevole per la tua situazione specifica. Analizziamo queste sfide ed esploriamo le altre opzioni possibili.
Alternative di SSL Pinning
Anche se il pinning SSL ha i suoi problemi, ci sono alternative valide che puoi prendere in considerazione.
- Trasparenza dei certificati (CT) offre un registro pubblico dei certificati, fornendo visibilità e prevenendo l’emissione errata o fraudolenta di certificati.
- Protocollo di stato dei certificati online (OCSP) La pinzatura è un altro metodo per ottenere lo stato di revoca di un certificato.
- I criteri di sicurezza dei contenuti (CSP) proteggono dagli attacchi cross-site scripting (XSS) e da altri attacchi di iniezione di codice definendo le fonti attendibili.
DOMANDE FREQUENTI
Qual è la differenza tra la pinzatura dei certificati e la spillatura?
La pinzatura dei certificati semplifica gli handshake TLS (Transport Layer Security), in quanto il server presenta il suo certificato e una prova di validità con data e ora. Il certificate pinning, invece, aumenta la sicurezza legando un certificato preciso a un servizio o a un’applicazione, impedendo l’accettazione di certificati non autorizzati.
Qual è la differenza tra Certificate Pinning e Chaining?
Il certificate pinning stabilisce la sicurezza associando direttamente uno specifico certificato crittografico alle applicazioni client, mentre il certificate chaining verifica l’autenticità di un certificato convalidando l’intera catena di fiducia dei certificati, compresi i certificati intermedi e root.
Gli hacker possono aggirare il Pinning dei certificati?
Anche se si tratta di una sfida, gli hacker più abili e determinati possono trovare il modo di aggirare il pinning dei certificati attraverso tecniche avanzate. Ad esempio, gli aggressori potrebbero utilizzare framework di aggancio come Cydia Substrate o Frida per intercettare e modificare il codice dell’applicazione in fase di esecuzione.
In fondo, la linea di fondo
Il pinning del certificato SSL è un metodo che rafforza la sicurezza della tua connessione HTTPS collegando saldamente la tua applicazione o il tuo sito web a un certificato o a una chiave pubblica specifici. Ma per quanto possa sembrare fantastico, non è privo di difetti.
Nonostante i suoi vantaggi, il cert pinning ha dei limiti. Non garantisce una protezione completa contro tutti i tipi di attacchi e le violazioni più sofisticate possono comunque aggirarlo, rendendo la tua app vulnerabile.
Nel complesso, è un modo decente per migliorare la tua sicurezza, ma non è la fine di tutte le misure di cybersicurezza. Considera le alternative che ti abbiamo fornito per una protezione completa.
Risparmia il 10% sui certificati SSL ordinando oggi stesso da SSL Dragon!
Emissione rapida, crittografia avanzata, affidabilità del browser al 99,99%, assistenza dedicata e garanzia di rimborso entro 25 giorni. Codice coupon: SAVE10






