Quello che sto cercando di ottenere è una conferma della transazione (non del pagamento) con un sensore di impronte digitali. Proprio come fa Google nel suo Play Store:
- Scegli un prodotto, fai clic su paga
- Approva la tua scelta con una scansione delle impronte digitali
Ciò che ritengo è che Google lo utilizzi solo sul lato client, senza alcuna conferma sul back-end che l'app abbia realmente richiesto l'impronta digitale.
Nel mio caso, è necessario fornire una prova al back-end che l'impronta digitale sia stata realmente richiesta. Per farlo io:
- Coppia di chiavi gen
- Iscrivi una chiave pubblica al back-end
- Scrivi una chiave privata per l'archiviazione delle chiavi sicure e collegala all'impronta digitale
In modo che la prossima volta che ho bisogno di una approvazione della transazione I:
- Chiedi a un utente di fornire un'impronta digitale, ricevere una chiave privata
- Firma la transazione con la chiave privata
- Convalidare tx con la chiave pubblica sul back-end
Ma ecco due idee per cui potrebbe non essere sicuro:
- L'applicazione client (android / ios) può essere modificata in JMP attorno alla chiamata alle impronte digitali e non associare affatto una chiave all'impronta digitale.
- Impronta digitale e amp; la memoria della chiave può essere emulata, ad es. in Android VD
In entrambi i casi, il back-end non avrà idea che la chiamata alle impronte digitali sia stata passata in giro poiché sta solo validando i dati per firma.
Non sono affatto un esperto di piattaforma mobile (sicurezza) e sto cercando di capire se quegli attacchi sono realmente validi / probabili e in qualche modo è possibile proteggerli contro di loro?