Le DNA ID du FPGA, en détail
L'identifiant unique gravé en usine dans les FPGA Xilinx série 7. Ce qu'il est au niveau du silicium, comment le lire, pourquoi un firmware sur mesure y est lié, et ce qu'il n'est pas.
Réponse courte
Le DNA ID est une valeur de 57 bits, en lecture seule, gravée en usine dans chaque FPGA Xilinx série 7. La logique la lit via la primitive DNA_PORT. Un firmware sur mesure est compilé face à cette valeur, donc l'image ne tourne que sur une seule carte. Ce n'est pas une clé de licence, et il ne contient aucune information vous concernant.
Sur cette page10
Ce qu'est réellement le DNA
Tout composant Xilinx série 7, Artix-7 compris, sort d'usine avec un identifiant unique programmé en eFUSE. La logique interne le lit via une primitive appelée DNA_PORT. Cette primitive charge la valeur dans un registre à décalage et la sort bit par bit. Sur les composants de la série 7, la largeur accessible est de 57 bits. La valeur est en lecture seule. Aucune commande ne la réécrit, aucun outil ne l'usurpe dans le silicium, et aucune procédure ne donne la même valeur à deux puces. C'est cette permanence qui en fait une clé de liaison utilisable.
Le DNA en un coup d'œil
Les propriétés qui comptent au moment de décider si vous le collez dans un ticket.
- Où il se trouve
- En eFUSE à l'intérieur du FPGA, programmé à la fabrication
- Largeur
- 57 bits accessibles à la logique sur les composants de la série 7, lus via la primitive DNA_PORT
- Inscriptible
- Non. En lecture seule pour toute la vie de la puce
- Portée
- Identifie une puce FPGA. Pas la carte, pas la puce de flash, pas le PC
- Dérivé de vous
- Rien. Il est antérieur à votre achat et ne sait rien de vous
- Secret
- Pas au sens cryptographique. Traitez-le comme un identifiant que l'on ne publie pas, pas comme un mot de passe
Où la valeur apparaît
MemProcFS monte un lecteur virtuel et y écrit un fichier d'état. La ligne DNA de ce fichier est la valeur dont le support a besoin, copiée à l'identique, sans espace ajouté.
MemProcFS.exe run as Administrator on the second PC
<mounted drive>\misc\pcileech_status.txt
look for the line beginning: DNA_IDLa lecture avec MemProcFS
Le chemin fiable, celui que décrit le guide DNA ID livré avec la commande. À faire sur le second PC, carte alimentée.
- Démarrez d'abord le PC de jeu et laissez-le arriver sur le bureau, pour que la carte soit alimentée et énumérée
- Reliez la carte au second PC sur le port que les instructions de votre commande indiquent pour une lecture d'état
- Lancez MemProcFS.exe en tant qu'administrateur, avec la version livrée avec votre commande
- Ouvrez le lecteur virtuel qu'il monte
- Ouvrez misc\pcileech_status.txt
- Copiez la valeur DNA_ID à l'identique, sans espace final et sans reformatage
Attention
Pourquoi le fichier manque parfois
Un fichier d'état absent signifie que la carte ne parle pas, pas que le DNA a disparu. Vérifiez d'abord le port. Une lecture d'état et un flash n'utilisent pas le même connecteur sur la carte, et le mauvais connecteur est de loin la cause la plus fréquente. Ensuite le câble, ensuite le pilote du pont USB sur le second PC, ensuite un démarrage à froid du PC de jeu. N'inventez pas de valeur. Ne réutilisez pas celle d'une ancienne carte pour vous débloquer. Une compilation faite face au mauvais DNA est une compilation à refaire.
Pourquoi le firmware y est lié
Une image sur mesure est compilée pour une seule carte. Lier le bitstream au DNA face auquel il a été compilé rend cela mécanique plutôt que déclaratif. La logique lit le DNA à l'exécution et ne continue qu'en cas de correspondance. Deux conséquences en découlent. L'image ne peut pas être copiée sur une seconde carte pour y servir, ce qui explique qu'un achat corresponde à une carte. Et si vous remplacez la carte, le nouveau FPGA a un autre DNA. Il vous faut une nouvelle compilation, parce que rien dans l'ancien fichier ne se transpose.
Info
Ce que le DNA ne fait pas
Trois choses qu'on lui prête, et il n'en est aucune. Ce n'est pas une clé de licence : il identifie du matériel, et votre droit d'usage vit sur votre commande, pas dans la puce. Ce ne sont pas des données personnelles : il a été gravé à la fabrication, il ne dérive de rien qui vous concerne, et il ne peut pas être reconverti en identité. Et ce n'est pas un vecteur de détection en soi : un anticheat qui lit l'espace de configuration de la carte voit le profil de donneur, pas le DNA interne du FPGA.
Ce qu'il faut mettre dans le ticket
Tout dans un seul message. Un ticket auquel il faut poser trois questions de suivi est un ticket qui attend trois fois.
- L'ID de commande
- Le DNA ID, copié à l'identique depuis le fichier que vous avez réellement ouvert
- Le modèle de carte et la classe de FPGA telles qu'elles sont marquées sur la carte, plus une photo de la sérigraphie
- L'outil qui a produit la valeur, et la sortie complète plutôt qu'un fragment retapé
- Le jeu et l'anticheat avec lesquels vous comptez l'utiliser
- S'il s'agit d'une première compilation ou du remplacement d'une carte que vous avez changée
Questions sur le DNA
Le DNA ID peut-il être modifié ou usurpé ?
Pas dans le silicium. C'est de l'eFUSE d'usine, en lecture seule. De la logique dans un bitstream peut évidemment rapporter ce qu'elle veut à un outil. Mais la valeur que porte la puce, elle, ne change pas.
Est-il risqué d'envoyer mon DNA ID au support ?
Non, dans le ticket de commande. C'est un identifiant matériel sans aucune information personnelle. Ne le publiez pas dans un canal public, pour la même raison que vous ne publieriez pas un numéro de série.
Deux cartes, faut-il deux compilations ?
Oui. Chaque FPGA a son propre DNA, et une image liée à l'un ne tournera pas sur l'autre. Un ID, une carte, une image.
J'ai remplacé ma carte sous garantie. Puis-je garder mon fichier de firmware ?
Le fichier est lié à l'ancien DNA, donc non. Lisez le DNA de la nouvelle carte et demandez une recompilation face à celui-ci dans le même ticket de commande.
Le DNA ID m'identifie-t-il auprès d'un anticheat ?
Non. Il est interne au FPGA et ne fait pas partie de ce que la carte expose sur le bus PCIe. Ce qui est exposé, c'est l'espace de configuration, c'est-à-dire le profil de donneur.
Sources
La façon dont nous lions une compilation à une seule carte relève de notre propre politique. Ce qui doit figurer dans un ticket vient de nos propres tickets.
- 01AMD/Xilinx DS180, 7 Series FPGAs Data Sheet: Overview
le device DNA programmé en usine dans les composants Xilinx série 7, et les références Artix-7 qu'utilisent ces cartes
docs.amd.com
- 02MemProcFS (Ulf Frisk), AGPL-3.0
l'outil qui monte le lecteur virtuel contenant le fichier d'état où apparaît la ligne DNA
github.com
À lire ensuite
Toujours bloqué ? Ouvrir un ticket sur Discord
Tous les guides