Créer côté client un code QR de paiement simple sans connexion Internet
(blog.javien.dev)À voir aussi : https://fr.news.hada.io/topic?id=10280
- DimiPay est une solution interne de paiement simple par QR utilisée à la Korea Digital Media High School.
- Les étudiants utilisaient souvent des forfaits data peu coûteux et n’avaient donc pas toujours un accès libre à Internet ; l’équipe a cherché un moyen de permettre les paiements même sans connexion.
- Le membre de l’équipe qui a dirigé le projet de paiement hors ligne a consigné en détail le processus de recherche sur son blog, que nous partageons ici.
Approche technique :
- Un jeton de paiement inspiré de TOTP
- Génération dynamique des clés nécessaires au chiffrement à l’aide du compteur de TOTP et de HKDF
- Chiffrement symétrique avec XChaCha20-Poly1305
- Validation de la validité du code de paiement
- Introduction d’un nonce (
uuidv7) pour distinguer les jetons déjà utilisés ou expirés - Rejet de la transaction si le nonce a été généré avant l’heure du paiement le plus récent
- Objectif : prévenir les attaques par rejeu
- Introduction d’un nonce (
- Adoption du format TLV (Tag-Length-Value) : permet de sérialiser la charge utile de manière flexible tout en restant compacte
3 commentaires
En regardant la vidéo de démonstration, la qualité est incroyable.
Pay généré localement... c’est LG Pay, haha
Hahahahaha