Aller au contenu
Langue : FR

Qu'est-ce qu'un code tournant sur un tag ?

Une valeur que la puce produit à neuf à chaque lecture, de sorte qu'une valeur captée une fois est déjà dépensée quand quelqu'un tente de s'en servir. Cela met en échec le rejeu, l'attaque qui consiste à enregistrer un échange et à le répéter. Cela ne fait rien contre quelqu'un qui tient le tag en main.

Ce que cela fait

À chaque lecture du tag, la puce produit une valeur qui n'est jamais apparue. Le lecteur n'a rien de particulier à demander : la valeur diffère, simplement.

La valeur est couramment associée à un compteur, de sorte que le côté qui reçoit sait non seulement que cette lecture est nouvelle mais aussi à peu près combien de lectures ont eu lieu.

La conséquence est qu'une valeur observée une fois ne vaut plus rien ensuite, puisque la présenter à nouveau revient à présenter quelque chose de déjà vu.

Ce qu'il faut en face

Quelque chose qui se souvienne. Une valeur tournante ne signifie quelque chose que pour un vérificateur qui sait quelles valeurs sont déjà apparues, ou qui sait calculer quelle devrait être la suivante.

C'est un service détenant un secret et un relevé, c'est-à-dire la même exigence d'infrastructure que tout dispositif d'authentification et la même que toute évaluation sous-estime.

Une valeur tournante lue par quelque chose sans mémoire est un nombre qui change, et un nombre qui change n'est pas une propriété de sécurité.

Ce que cela arrête et ce que non

Cela arrête le rejeu : enregistrer un échange et le répéter plus tard, ce qui est sinon l'attaque la moins chère contre un tag qui dit la même chose à chaque fois.

Cela n'arrête pas quelqu'un qui a la possession physique, puisqu'il lui suffit de relire le tag pour obtenir une valeur fraîche.

Cela ne prouve rien de l'article auquel le tag est attaché, pour la même raison qu'aucun mécanisme de puce ne le fait.

Et cela n'aide pas si le vérificateur accepte quand même une ancienne valeur, ce qui relève de la configuration plutôt que de la puce.

La défaillance à prévoir

Les compteurs dérivent. Un tag lu plusieurs fois hors de portée du vérificateur avance au-delà de ce que celui-ci attend, et un vérificateur strict rejette alors un tag authentique.

Tout déploiement rencontre cela, en général parce qu'un tag est éprouvé pendant la pose ou lu par curiosité avant sa mise en service.

Le vérificateur a donc besoin d'une fenêtre de tolérance et d'une façon définie de se resynchroniser, décidées avant le déploiement plutôt que pendant le premier incident.

Un dispositif sans réponse à un tag authentique qui échoue sera coupé la semaine où il commencera à refuser des clients.

Questions fréquentes

Un code tournant empêche-t-il le clonage ?

Il empêche qu'un échange enregistré soit rejoué. Il n'empêche pas quelqu'un qui tient le tag de le relire.

Faut-il un service pour en employer un ?

Oui. La valeur ne signifie quelque chose que pour un vérificateur qui se souvient de ce qu'il a vu ou qui sait calculer la suite.

Que se passe-t-il si le compteur prend de l'avance ?

Un vérificateur strict rejette un tag authentique. Prévoir une fenêtre de tolérance et un moyen de resynchroniser avant de déployer.

Est-ce la même chose que l'authentification ?

C'en est une famille. L'autre envoie un défi auquel la puce doit répondre, ce qui ne demande aucun suivi de compteur.