L'autenticazione tramite impronta digitale è un metodo di identificazione biometrica che utilizza il pattern papillare unico sulla punta delle dita per verificare l'identità dell'utente. La tecnologia è diventata uno standard di sicurezza per i dispositivi mobili: dagli smartphone Android economici ai modelli flagship di Samsung e Google Pixel. Secondo Counterpoint Research (2025), oltre l'85% degli smartphone rilasciati nel 2025 è dotato di un lettore di impronte integrato.
Punti Chiave
L'autenticazione tramite impronta digitale è un metodo di identificazione biometrica che analizza il pattern papillare unico sulla superficie del dito per verificare l'identità dell'utente. Ogni persona ha un pattern individuale di creste e valli che si forma alla 12a settimana di sviluppo prenatale e rimane invariato per tutta la vita, tranne in caso di lesioni fisiche.
L'impronta digitale è una delle tre caratteristiche biometriche riconosciute come le più affidabili per l'identificazione automatica, insieme all'iride dell'occhio e al pattern della retina. Le linee papillari formano caratteristiche distintive — minute: terminazioni, biforcazioni, punti e incroci. L'unicità di un'impronta digitale è determinata dalla posizione e dal tipo di 40–100 minute nell'area di scansione, dando una probabilità matematica di corrispondenza di 1 su 64 miliardi per due persone diverse.
I primi sistemi automatizzati di identificazione delle impronte digitali (AFIS) sono apparsi negli anni '70 per le forze dell'ordine. L'adozione di massa nei dispositivi di consumo è iniziata nel 2013 con iPhone 5S e Touch ID. Oggi, i lettori di impronte sono installati in smartphone, laptop, tablet, serrature e terminali di pagamento.
Indipendentemente dal tipo di sensore, il processo di autenticazione tramite impronta digitale consiste in tre fasi: acquisizione dell'immagine, elaborazione ed estrazione delle caratteristiche, e confronto con un modello di riferimento. Ogni fase può essere eseguita a livello di sistema operativo o a livello di Trusted Execution Environment, a seconda dell'implementazione.
Il sensore cattura il pattern fisico del dito. Le matrici capacitive leggono la differenza di potenziale elettrico tra le creste (che toccano la matrice) e le valli (che non toccano). Gli scanner ottici illuminano il dito con luce LED e catturano la luce riflessa attraverso un sensore CMOS. I sensori ultrasonici emettono un'onda sonora e analizzano l'eco riflesso da diverse profondità della pelle — questo fornisce un'immagine tridimensionale resistente ai contaminanti sulla superficie del dito.
L'immagine acquisita viene sottoposta a filtraggio: rimozione del rumore, normalizzazione del contrasto e binarizzazione (conversione in bianco e nero). L'algoritmo identifica le linee di creste papillari, le scheletrizza (riduce a 1 pixel di larghezza) e trova le minute — punti di terminazione e biforcazione delle linee. Ogni minuzia è descritta da coordinate (x, y), angolo di direzione e tipo. Il modello matematico ha una dimensione di 2–10 KB, non contiene l'immagine originale e non può essere utilizzato per ricostruire l'impronta.
Il modello ottenuto durante la scansione viene confrontato con il modello di riferimento salvato durante la registrazione. L'algoritmo calcola il numero di minute corrispondenti. Per una verifica riuscita è richiesta una corrispondenza di almeno 12–15 minute (regolabile dal produttore). Se il numero di punti corrispondenti supera la soglia, l'autenticazione è considerata riuscita. Nei dispositivi mobili, la soglia è impostata in modo che il FAR non superi lo 0,001% con un FRR di circa il 2%.
I dispositivi mobili moderni utilizzano tre tipi principali di lettori di impronte digitali, che differiscono per tecnologia di lettura, precisione e costo di produzione. La scelta del tipo dipende dalla fascia di prezzo del dispositivo e dai requisiti di sicurezza.
| Tipo di lettore | Principio di funzionamento | FAR | Esempi di dispositivi |
|---|---|---|---|
| Capacitivo | Matrice di condensatori che legge la differenza di capacità tra creste e valli | 0,001% | iPhone (Touch ID), Samsung Galaxy S9, Google Pixel 3 |
| Ottico | Illuminazione LED + sensore CMOS; cattura la luce riflessa dalla superficie del dito | 0,01% | Xiaomi Redmi, Realme, smartphone Android economici |
| Ultrasonico | Trasmettitore piezoelettrico + ricevitore; ricostruzione 3D dal segnale eco | 0,0005% | Samsung Galaxy S10+, Galaxy S21 Ultra, lettori sotto il display |
Nel 2025–2026, i lettori sotto il display (in-display) integrati direttamente sotto lo schermo OLED stanno guadagnando popolarità. Possono essere ottici (segmento economico) o ultrasonici (segmento premium). Il vantaggio è l'assenza di un pulsante o zona separata sul corpo, consentendo un display senza cornice. Lo svantaggio dei lettori ottici sotto il display è la vulnerabilità alla luce solare intensa che satura il sensore CMOS attraverso i pixel dello schermo.
L'autenticazione tramite impronta digitale e il riconoscimento facciale sono le due tecnologie biometriche dominanti nei dispositivi mobili. Ciascuna ha punti di forza e debolezza che influenzano la scelta per casi d'uso specifici.
Per gli sviluppatori di app mobili, è importante notare che BiometricPrompt su Android e LocalAuthentication su iOS astraggono il tipo di sensore. Tuttavia, sui vecchi dispositivi Android (API < 28), potrebbe essere disponibile solo FingerprintManager — in questo caso, l'app deve verificare esplicitamente il tipo di sensore e offrire un metodo di autenticazione alternativo.
Prima di Android 9 (API 28), l'unico modo per integrare il lettore di impronte era la classe FingerprintManager, aggiunta in API 23. A partire da Android 9, Google raccomanda l'uso di BiometricPrompt, che unifica il lavoro con tutti i tipi di sensori biometrici. Tuttavia, per dispositivi con API 23–27, gli sviluppatori potrebbero aver ancora bisogno di FingerprintManager.
class FingerprintAuthHelper(
private val context: Context
) {
private val manager =
context.getSystemService(Context.FINGERPRINT_SERVICE)
as FingerprintManager?
fun isFingerprintAvailable(): Boolean {
return manager?.isHardwareDetected() == true
&& manager?.hasEnrolledFingerprints() == true
}
fun authenticate(callback: FingerprintManager.AuthenticationCallback) {
if (isFingerprintAvailable()) {
manager?.authenticate(
null,
CancellationSignal(),
0,
callback,
null
)
}
}
}
// Utilizzo:
val helper = FingerprintAuthHelper(context)
helper.authenticate(object : FingerprintManager.AuthenticationCallback() {
override fun onAuthenticationSucceeded(
result: FingerprintManager.AuthenticationResult
) {
// Impronta riconosciuta — accesso consentito
binding.showContent()
}
override fun onAuthenticationFailed() {
binding.showError("Impronta non riconosciuta")
}
})
Il codice sopra mostra il ciclo completo di autenticazione utilizzando FingerprintManager per vecchi dispositivi Android. È importante notare che FingerprintManager non utilizza TEE per impostazione predefinita — il risultato dell'autenticazione viene restituito nello spazio utente, rendendolo meno sicuro di BiometricPrompt con il flag BIOMETRIC_STRONG. Per i nuovi progetti, si dovrebbe sempre utilizzare BiometricPrompt e FingerprintManager solo per la retrocompatibilità con API 23–27.
Durante la migrazione da FingerprintManager a BiometricPrompt, considerare il cambiamento nel modello di sicurezza: BiometricPrompt garantisce che tutte le operazioni biometriche vengano eseguite nel TEE (Trusted Execution Environment). Il risultato dell'autenticazione, firmato da una chiave crittografica all'interno del TEE, non può essere falsificato dal codice dello spazio utente. La libreria AndroidX Biometric fornisce inoltre l'interfaccia BiometricPrompt.AuthenticationResult.getCryptoObject() per legare l'autenticazione biometrica a operazioni crittografiche — crittografia delle chiavi e firma dei dati.
La protezione dalla contraffazione delle impronte digitali è una delle sfide principali per i produttori di lettori. I sensori moderni utilizzano una combinazione di metodi hardware e algoritmici per il rilevamento della vitalità (liveness detection) e il blocco delle repliche. Ogni metodo ha i suoi limiti, ma insieme rendono la contraffazione economicamente non vantaggiosa per attacchi di massa.
I principali metodi di protezione includono: analisi della profondità della pelle (i lettori ultrasonici determinano lo spessore dell'epidermide dal tempo di ritorno dell'eco), analisi spettrale della pelle (i lettori ottici valutano il coefficiente di riflessione della pelle a diverse lunghezze d'onda — silicone e gelatina hanno spettri diversi), rilevamento del polso (micro-vibrazioni del flusso sanguigno nei capillari del dito), e verifica potenziometrica (la pelle viva ha un'impedenza elettrica specifica che differisce dai materiali sintetici).
Lo standard ISO/IEC 30107-3:2023 definisce i livelli di resistenza dei sistemi biometrici agli attacchi di presentazione (rilevamento di attacchi di presentazione, PAD). Per le applicazioni finanziarie, si raccomanda il Livello 2 (PAD Level 2), che richiede il rilevamento automatico di almeno il 95% degli attacchi che utilizzano repliche con un FAR non superiore allo 0,01%. I lettori ultrasonici Samsung e Qualcomm 3D Sonic Sensor soddisfano i requisiti PAD Level 2, mentre i lettori ottici economici di solito non superano la certificazione oltre il Level 1.
Domande Frequenti
Un lettore capacitivo legge l'impronta tramite la differenza di potenziale elettrico tra creste e valli della pelle — funziona solo con un dito asciutto e pulito. Un lettore ultrasonico emette un'onda sonora e costruisce una mappa tridimensionale dall'eco riflesso — penetra contaminanti, acqua e persino guanti sottili, offrendo una precisione superiore.
I lettori ultrasonici sono considerati i più affidabili grazie alla scansione tridimensionale e a un FAR dello 0,0005%. Sono resistenti a dita bagnate, repliche in silicone e contaminanti. I lettori capacitivi sono meno precisi (FAR 0,001%) ma più veloci ed economici. I lettori ottici sono i meno affidabili (FAR fino allo 0,01%) e possono essere ingannati da una stampa di alta qualità di un'impronta su pellicola trasparente.
Sì, ma con limitazioni. I regolatori PSD2 e PCI DSS richiedono l'autenticazione multi-fattore: l'impronta digitale è solo un fattore (qualcosa che sei). Per autorizzare un pagamento è necessario anche un secondo fattore — un codice PIN o una password monouso (qualcosa che sai). In Apple Pay, l'impronta viene utilizzata per firmare la transazione tramite Secure Enclave — ciò soddisfa i requisiti di Strong Customer Authentication (SCA).
In caso di tagli, ustioni o desquamazione della pelle, l'impronta digitale potrebbe non essere riconosciuta temporaneamente. In questo caso, il dispositivo richiede un codice PIN o password come metodo di autenticazione alternativo. Dopo la guarigione della pelle, si consiglia di eliminare l'impronta vecchia nelle impostazioni e registrarne una nuova. Sui dispositivi Android, è possibile registrare anche più dita come riserva.
Sì — i dispositivi moderni non memorizzano l'immagine dell'impronta, ma un modello matematico in un'area isolata hardware (TEE o Secure Enclave). Il modello è crittografato con una chiave integrata nel chip e non è accessibile dal sistema operativo o dalle applicazioni. Su Android 9+, BiometricPrompt garantisce che tutte le operazioni biometriche vengano eseguite nel TEE con firma crittografica del risultato.
Riepilogo
Svilupperemo un'applicazione mobile chiavi in mano
IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.
Leggi anche