Crear códigos QR de pago fácil en el cliente sin conexión a internet
(blog.javien.dev)Ver también: https://es.news.hada.io/topic?id=10280
- DimiPay es una solución interna de pago fácil con QR utilizada en la Korea Digital Media High School.
- Los estudiantes usaban planes de datos baratos, por lo que muchas veces no tenían una conexión a internet estable, y se buscó una forma de poder pagar incluso sin conexión.
- Un integrante del equipo que lideró el proyecto de pagos offline documentó detalladamente el proceso de investigación en su blog, así que lo compartimos.
Enfoque técnico:
- Token de pago inspirado en TOTP
- Uso del contador de TOTP y HKDF para generar dinámicamente las claves necesarias para el cifrado
- Cifrado con clave simétrica usando XChaCha20-Poly1305
- Validación de vigencia del código de pago
- Se introdujo un nonce (
uuidv7) para distinguir los tokens ya usados o expirados - Si el nonce fue generado antes de la hora del pago más reciente, la transacción se rechaza
- La intención es prevenir ataques de repetición
- Se introdujo un nonce (
- Adopción del formato TLV (Tag-Length-Value): permite serializar la carga útil de forma flexible y compacta
3 comentarios
Viendo el video de demostración, la calidad está increíble.
Pay generado localmente... parece LG Pay jajajaja
jajajajaja