Lo que estoy tratando de lograr es una confirmación de la transacción (no del pago) con un sensor de huellas digitales. Al igual que Google lo hace en su Play Store:
- Elija un producto, haga clic en pagar
- Aprobar su elección con un escaneo de huellas digitales
Lo que siento es que Google usa esto solo en el lado del cliente, sin ninguna confirmación en el back-end de que la aplicación realmente solicitó la huella digital.
En mi caso, es necesario proporcionar una prueba al backend de que realmente se solicitó la huella digital. Para ello yo:
- Gen key pair
- Inscribir una clave pública en el backend
- Escriba una clave privada en el almacenamiento seguro de claves y vincúlela a la huella digital
para que la próxima vez que necesite una aprobación de transacción, yo:
- Pídale a un usuario que proporcione una huella digital, reciba una clave privada
- Firme la transacción con la clave privada
- Valide tx con la clave pública en el backend
Pero aquí vienen dos ideas de por qué puede no ser seguro:
- La aplicación cliente (android / ios) se puede modificar a JMP alrededor de la llamada de huellas dactilares y no vincular una clave a la huella dactilar en absoluto.
- Huella digital & el almacenamiento de claves se puede emular, p. en Android VD
En ambos casos, el backend no tendrá idea de que la llamada de la huella dactilar fue recorrida ya que solo está validando los datos por firma.
De ninguna manera soy un experto en plataformas móviles (seguridad) y estoy tratando de averiguar si esos ataques son realmente válidos / es probable que ocurran y ¿es posible de alguna manera protegernos contra ellos?