Billet QR code : comment fonctionne la validation à l'entrée — featured illustration
Technologie

Billet QR code : comment fonctionne la validation à l'entrée

5 min de lecture
Créer un QR code

Vendez 300 billets, et quelqu'un enverra une capture du sien à un ami. Dans les petits et moyens événements, la fraude ne vient presque jamais d'un faux code : c'est le même code légitime qui se présente deux fois. Une fois qu'on sait ce que contient vraiment le QR code d'un billet, les bonnes défenses deviennent évidentes, et celles dont on peut se passer aussi.

Ce que contient réellement le code

Pour la plupart des systèmes de billetterie, le code contient une seule chose : un identifiant. Une longue chaîne aléatoire qui renvoie à un enregistrement en base de données contenant l'acheteur, le type de billet et un champ de statut. Le code lui-même ne prouve rien, et c'est voulu. N'importe quel téléphone peut décoder n'importe quel QR code, donc rien de secret ne peut y voyager. Toute la sécurité vit côté serveur, dans la consultation. Un code plus long ou d'apparence plus dense n'est pas un code plus sûr ; ce qui compte, c'est ce que fait le serveur quand cet identifiant arrive.

La variante est la charge utile signée : les données du billet plus une signature cryptographique, si bien qu'une application de scan détenant la clé publique correspondante peut vérifier l'authenticité sans aucun réseau. Les salles avec des zones blanches l'utilisent. La signature prouve « c'est nous qui l'avons émis » ; elle ne peut pas prouver « il n'a pas encore servi », ce qui exige toujours un état partagé. La plupart des événements tournent sur le modèle de l'identifiant simple, et c'est ce que les plateformes généralistes implémentent.

La demi-seconde après le scan

La validation est une séquence courte et stricte :

  1. Le scanner décode le QR code et extrait l'identifiant du billet.
  2. Il interroge le serveur, ou une copie de la liste des billets synchronisée localement.
  3. Le serveur vérifie que le billet existe et correspond à cet événement et à cette date.
  4. Il vérifie le statut : si le billet a déjà servi, l'écran passe au rouge et montre quand et à quelle porte le premier scan a eu lieu.
  5. S'il est valide, il marque le billet comme utilisé et affiche vert. Cette écriture finale est tout le modèle de sécurité.

Tout ce qui importe à un organisateur (vitesse de la file, doubles entrées, comportement hors ligne) vit aux étapes 2 et 5.

Deux portes, un billet : la situation de concurrence

Imaginez la porte A et la porte B scannant des copies du même code dans la même seconde. Les deux lancent la vérification de statut, les deux voient « non utilisé », les deux laissent entrer. Le correctif est côté serveur : la vérification du statut et l'écriture du marquage comme utilisé doivent se produire en une seule opération atomique, pas en une lecture suivie d'une écriture. Les systèmes bien construits le font, et c'est une question légitime à poser directement à tout fournisseur de billetterie.

Le mode hors ligne rouvre la faille. Si les portes mettent la liste des billets en cache et se synchronisent toutes les quelques minutes, un code dupliqué peut passer à deux portes différentes dans une même fenêtre de synchronisation. Les parades sont opérationnelles, pas cryptographiques : tenez une entrée unique quand l'affluence le permet, affectez les types de billets à des portes précises, et considérez le risque résiduel pour ce qu'il est, une poignée de doubles entrées possibles plutôt qu'une défaillance systémique.

Les captures d'écran sont le modèle de menace

Un identifiant de billet valide est une longue chaîne aléatoire, et en deviner un n'est pas une attaque réaliste, donc la contrefaçon face à des billets validés côté serveur est de fait hors jeu. Le problème réaliste, c'est la duplication : un acheteur partage une capture d'écran avec des amis, ou revend le même PDF à trois personnes. Chaque copie est tout aussi réelle. Le premier scan gagne, et la personne refusée à la porte est parfois l'acheteur légitime, ce qui transforme un problème de fraude en dispute au guichet des remboursements.

Les grandes salles contrent cela avec des codes-barres rotatifs : l'application officielle régénère le code toutes les 15 secondes environ à partir d'un secret tournant (le SafeTix de Ticketmaster est l'exemple le plus connu), si bien qu'une capture d'écran périme avant que son propriétaire n'atteigne la porte. Le coût est lourd. Les participants ont besoin de l'application, d'un compte, de batterie et généralement d'une connexion, et les transferts ne fonctionnent qu'à l'intérieur de la plateforme. Dans une arène de 20 000 places, l'échange en vaut la peine ; dans une conférence de 200 personnes, c'est de la friction sans bénéfice. Pour situer la duplication face aux autres abus du QR, voyez le panorama de la sécurité des QR codes.

Ce dont un petit événement a vraiment besoin

Sous environ 500 participants, la réponse honnête est une liste d'émargement et n'importe quel téléphone. Générez un code unique par billet, reliez chaque scan à une fiche participant, marquez les arrivées. L'appareil photo d'un téléphone moderne lit un code sur l'écran d'un autre téléphone en une seconde environ, donc un scanner dédié résout un problème de débit que vous n'avez pas. Le générateur de QR code d'événement de QRolling couvre la page d'événement hébergée, et la génération en masse de l'offre payante produit les codes par billet ; un tableur peut servir de liste d'émargement si l'équipe reste petite. Gardez une liste de participants imprimée à la porte en secours ; quand une batterie meurt ou que le Wi-Fi de la salle tombe, le papier fonctionne toujours.

La porte elle-même (le personnel, le flux de la file, les solutions de repli Wi-Fi, ce que disent les hôtes quand un scan échoue) est une discipline à part entière, et nous la couvrons dans l'enregistrement aux événements par QR code, publié en même temps que cet article.

Et en France ?

La loi française protège les organisateurs contre la revente sauvage. Depuis 2012, revendre de façon habituelle des billets de spectacle, de concert ou de manifestation sportive sans l'autorisation de l'organisateur est un délit. Beaucoup d'organisateurs proposent donc leur propre plateforme de revente, qui annule l'ancien billet et en émet un nouveau.

C'est exactement le mécanisme décrit plus haut : un billet revendu par la plateforme officielle reçoit un nouvel identifiant, et l'ancien passe au rouge au contrôle. Précisez-le sur la page de l'événement : « seuls les billets achetés ou revendus sur notre site sont valables ». C'est la meilleure protection pour vos acheteurs contre les faux billets vendus sur les réseaux sociaux.

Remboursements et transferts doivent invalider l'ancien code

Un remboursement n'est terminé que lorsque le serveur a passé le billet au statut annulé : l'acheteur a toujours son PDF, qui doit désormais s'afficher en rouge au scan. Un transfert fonctionne de la même façon : il faut créer un nouvel identifiant pour le destinataire et annuler l'original, sinon deux copies valides circulent. C'est aussi l'argument contre les billets signés entièrement hors ligne : pour en révoquer un, il faut envoyer une liste d'annulations à chaque porte, si bien que des billets remboursables et transférables demandent en pratique une vérification en ligne ou des synchronisations fréquentes.

Avant l'ouverture des portes de votre prochain événement, faites le test des deux téléphones : prenez un vrai billet, capturez-le en photo d'écran, et essayez de vous enregistrer depuis les deux téléphones. Si les deux affichent vert, vous venez de trouver la conversation à avoir avec votre système de billetterie tant que cela ne coûte encore rien.

Partager cet article