Ultrablue : contrôle d'intégrité du démarrage d'un PC via Bluetooth — Gabriel Kerneis, Loic Buckwell, Nicolas Bouchinet
Date : 07 June 2023 à 12:00 — 15 min.
Ultrablue (User-friendly Lightweight TPM Remote Attestation over Bluetooth) est une solution permettant à des utilisateurs d’attester l’intégrité du démarrage de leur ordinateur à partir d’un téléphone. Elle se compose d’un serveur, qui s’exécute sur l’ordinateur et joue le rôle d’attesteur, et d’un client graphique, qui s’exécute sur un téléphone de confiance et joue le rôle de vérificateur.
Un cas d’usage typique est de vérifier l’intégrité de la chaîne démarrage avant d’entrer son mot de passe pour déverrouiller un ordinateur, afin d’éviter des attaques hors-ligne sur un PC portable laissé sans surveillance. Il est également possible d’utiliser Ultrablue en tant qu’outil de débogage du measured boot, par exemple après des mises-à-jour de firmware (BIOS/UEFI), ou encore comme second facteur pour le chiffrement du disque.
L’utilisation d’Ultrablue se fait en trois étapes :
1. Enrôlement : échange d’une clé pour chiffrer la communication par l’intermédiaire d’un QR Code et enregistrement de l’identité de la ma- chine attestée et des mesures de référence dans le téléphone.
2. Intégration au démarrage dans l’initramfs (optionnel) : utilisation d’un secret retourné par le téléphone comme facteur de chiffrement du disque et lancement d’Ultrablue lors du démarrage de la machine pour permettre la récupération de ce secret.
3. Attestation : vérification de la concordances des mesures signées par le TPM avec les mesures de référence, affichage du résultat sur le téléphone et renvoi du secret de déchiffrement de disque le cas échéant.
Une machine virtuelle est fournie démontrant ces trois étapes.
Ultrablue a été développé par Loïc Buckwell sous la direction de Nicolas Bouchinet et Gabriel Kerneis. Le code est disponible sur github.com/ANSSI-FR/ultrablue.