I2L 2025 Groupe10

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche

Proposition de système (étudiants)

Logo de l'entreprise locale BiniouKey.
BiniouKey, bien plus qu'une clé de sécurité.

Notre système est une clé de sécurité, capable de sauvegarder et de générer des mots de passe TRNG (True RNG), c.-à.-d. des mots de passe réellement aléatoire, et non pseudo-aléatoires.

Plusieurs méthodes différentes sont identifiées pour générer des nombres vraiment aléatoires :

  • La méthode "simple", qui va consister à mesurer la tension d'une broche analogique flottante, correspondante au bruit électrique présent aux alentours de la clé.
  • La méthode "complexe", qui va consister à utiliser un circuit spécialisé de génération de bruit, composé d'un thermistor, d'un amplificateur et de condensateurs, afin de capter le bruit thermique du thermistor.

La clé de sécurité va proposer plusieurs fonctionnalités, accessibles via un petit écran type SSD1306 et une croix directionnelle.

La première fonctionnalité va être de simplement pouvoir générer des mots de passe aléatoires d'une longueur voulue.

Le seconde fonctionnalité va être de pouvoir protéger un ordinateur grâce à la clé et à la communication USB entre la clé et l'ordinateur. Lors de la configuration de l'ordinateur, ce dernier va demander ses identifiants à la clé, qui va générer une paire identifiant/mot de passe qu'elle va stocker en ROM, et les transmettre à l'ordinateur. Ensuite, lorsque l'on voudra déverrouiller l'ordinateur, il faudra, sur la clé, s'authentifier en sélectionnant l'identifiant de l'ordinateur. La clé enverra alors le mot de passe à l'ordinateur, qui pourra se déverrouiller.

Les différentes fonctionnalités seront accessibles via un menu affiché sur l'écran, et navigable grâce à la croix directionnelle.

Ci-dessous deux schémas montrant la configuration du mot de passe et l'authentification :

Les différentes étapes lors de la configuration du mot de passe entre l'ordinateur et la clé
Schéma montrant la procédure d'authentification entre l'utilisateur, son ordinateur et la clé de sécurité.

Contre-proposition (intervenant)

OK pour la proposition.

Une bibliothèque pour gérer le contrôleur graphique SDD1306 est disponible [1].

Proposition définitive (étudiants)

Répartition du travail (étudiants)

Carte

Schéma initial (étudiants)

Schéma de la carte

Carte routée (intervenant)

Vous utiliserez la carte avec l'écran OLED.

Composants (intervenant)

Carte réalisée (intervenant)

Photo de la carte

La carte est entiérement soudée à l'exception de la thermistance.

Travaux (étudiants)

Fonctionnement du programme avec l'antenne comme source d'entropie.
La BinouKey affiche des chaînes de 16 caractères à partir du bruit électronique capté.
  • 13/10/2025. A ce jour, nous avons pu tester l'allumage et l'extinction d'une DEL à intervalles réguliers. Egalement, nous avons conditionné l'allumage et l'extinction des DELs selon le bruit électrique capté par le thermistor et l'antenne.
  • 16/10/2025. Pendant ces deux séances, nous avons réussi à afficher sur l'écran une chaîne de 16 caractères générés suite à la captation du bruit électronique. Cependant, le programme plante aléatoirement (freeze de l'écran et de la DEL clignotante).. Nous avons également réussi à enregistrer la BiniouKey en tant que périphérique USB appartenant à la S.A.R.L. BigoudenCrypt. Il ne reste qu'à inclure cet enregistrement au reste de notre programme pour que tout fonctionne ensemble.
  • 25/10/2025.
    • BiniouKey (microcontrôleur) : intégration de la bibliothèque LUFA avec du code qui permet de récupérer des données envoyées depuis l'ordinateur. On a donc un périphérique USB enregistré en tant que tel, avec du code qui fonctionne 🎉
    • Ordinateur : programme C avec libusb qui permet de rechercher la BiniouKey (routine de recherche, puis pause du programme tant qu'elle n'a pas été trouvée), puis qui envoie une chaîne de caractère sur l'endpoint OUT (type BULK) au périphérique pour afficher ce message sur l'écran. Malheureusement, pas encore possible de tester le bon fonctionnement de la fonctionnalité de bout en bout car le noyau tient toujours l'interface de la BiniouKey et je n'arrive pas à le détacher (macOS qui j'avoue sur ce coup là est pas pratique).
  • Quelque part entre le 25/10 et le 13/11
    • Ordinateur : tout compte fait on a réussi à faire fonctionner libusb avec la Binioukey, l'interface est claim par notre programme.
  • 13/11/2025
    • BiniouKey (microcontrôleur) :
      • Modification de la configuration pour faire en sorte que les endpoints fonctionnent (on pensait qu'on pouvait mettre les valeurs qu'on veut entre 1 et 16 pour les endpoints mais en réalité ça doit être entre 1 et 4...). Les endpoints sont passés en INTERRUPT tout compte fait.
      • 1er test pour s'assurer que tout va bien : on écrit une chaîne de caractère dans l'endpoint OUT (cf. travaux ordinateur du 25/10) et on arriver à le récupérer avec succès avec la BiniouKey. On peut donc envoyer du texte depuis l'ordinateur vers le périphérique pour l'afficher sur l'écran.
      • Nous avons également réussi à faire fonctionner le minuteur de la carte, pour avoir (pour l'instant) une DEL clignotante en plus d'écouter les messages de l'endpoint OUT pour les afficher.
      • 2ème test et premier vrai prototype de BiniouKey qui fonctionne : en reprenant le code de génération aléatoire avec le thermistor ou le pin, on peut envoyer du texte avec l'endpoint IN vers l'ordinateur.
    • Ordinateur :
      • Le code était principalement bon lors des fois précédentes, il suffisait de changer l'ID de l'interface. On peut donc envoyer une chaîne de caractère au périphérique.
      • Gestion de l'endpoint IN pour un premier prototype de BiniouKey : on peut récupérer les données envoyés depuis le périphérique, et on les copie dans le presse-papier (Linux: xclip, macOS: pbpaste, Windows: clip)
Occurrence de chaques caractères obtenables lors de la génération d'un mot de passe, pour des amplifications différentielles allant de x1 à x200. (n=64000 caractères soit 4000 mots de passe de 16 caractères)
  • 15/11/2025
    • Au fur et à mesure des mesures sur l'ADC, nous nous sommes rendu compte que certains caractères reviennent très souvent. Nous avons donc faitdes statistiques sur les mots de passes générés avec différentes configurations de l'amplificateur différentiel qui nous permet de d'obtenir plusieurs niveaux d'amplification (0 dB (1x), 10 dB (10x), 16dB (40x), ou 23dB (200x)).

Extraits significatifs de code (étudiants)

Rendus (étudiants)

Projet KiCAD : Fichier:I2L-2025-Carte-G10-final.zip

Programmes :