Codes-barres rotatifs

Introduction

Les codes-barres rotatifs ressemblent à des codes-barres normaux, mais changent régulièrement, généralement toutes les minutes, et le terminal/lecteur est programmé pour n'accepter la plus récente. Cette mesure de sécurité réduit les risques capture d'écran de codes-barres, en particulier lors d'un vol de ticket ou d'un ticket non autorisé la revente. Les codes-barres rotatifs peuvent également servir de solution de secours pour les appareils qui ne peuvent pas utiliser Smart Tap, car il n'est pas compatible avec la technologie NFC (manque de matériel ou logiciel désactivé).

Documentation de référence de l'API

Pour plus de détails techniques sur la rotation des codes-barres, reportez-vous à la Type RotatingBarcode.

Exemple de charge utile

JSON
{
  "rotatingBarcode": {
    "type": "QR_CODE",
    "valuePattern": "MyRotatingBarcode-{totp_timestamp_seconds}-{totp_value_0}",
    "alternateText": "Ticket#: 1234567890",
    "totpDetails": {
      "algorithm": "TOTP_SHA1",
      "periodMillis": "3000",
      "parameters": [
        {
          "key": "3132333435363738393031323334353637383930",
          "valueLength": "8"
        }
      ]
    }
  }
}

Mécanismes de remplacement

Sur l'appareil de l'utilisateur, un seul mécanisme d'utilisation est utilisé à la fois, en fonction de la configuration de la carte et des capacités de l'appareil. Les types d'utilisation sont les suivants (par ordre de priorité) :

  1. Smart Tap: si une charge utile Smart Tap est spécifiée et si l'appareil prend en charge NFC/HCE <ph type="x-smartling-placeholder">
      </ph>
    • Notez que l'utilisateur peut la modifier en cliquant sur "Afficher le code", force l'affichage du code-barres rotatif/statique.
  2. Code-barres rotatif: si une charge utile de code-barres rotatif est spécifiée
  3. Code-barres statique: si une charge utile de code-barres est spécifiée

La spécification de plusieurs charges utiles permet de garantir que tous les utilisateurs sont pris en charge, mais peut avoir des conséquences sur la sécurité. En particulier, l'utilisation d'un code-barres statique une solution de remplacement pour un code-barres rotatif annule la plupart des avantages de sécurité liés à l'utilisation des codes-barres rotatifs. Les codes-barres statiques de remplacement ne s'affichent que dans les vues Web ou sur des clients qui ne prennent pas en charge les codes-barres rotatifs. À ce jour, nous prévoyons tous les clients Google Wallet sont compatibles avec les codes-barres rotatifs.

Enregistrer le flux

L'API Google Wallet propose plusieurs flux, y compris:

  • Créer les classes de transports en commun au moment de la sauvegarde ou à l'avance
  • Envoyer les objets complets dans votre JWT ou enregistrer les objets avant puis en les référençant par ID dans votre jeton JWT
  • Mettre à jour les objets après leur enregistrement

Le champ "rotatingBarcode" proposé est compatible avec tous ces flux, Toutefois, pour améliorer la sécurité, nous vous suggérons de procéder comme suit:

  • Appelez l'API object:insert pour insérer la carte dans la serveur Google Wallet et configurez le bouton "Ajouter à Google Wallet" pour référencer l'objet spécifique par son ID dans votre jeton JWT. Cela permet de s'assurer Le JWT obtenu n'inclut pas la clé secrète du code-barres rotatif.
  • Utilisez une clé secrète OTP limitée à une seule carte.
  • À moins qu'elle ne soit mise à jour, la clé doit être valide pendant la durée de vie la carte. Cette clé ne devrait pas être mise à jour selon une fréquence donnée pendant au cours du fonctionnement normal.

Le schéma séquentiel suivant illustre le flux entre les différents acteurs pour une intégration classique:

Schéma séquentiel pour l&#39;utilisation de codes-barres rotatifs