
Approuvez sudo sur un poste de travail Linux avec une empreinte digitale sur votre téléphone Android. LAN uniquement ; la clé ECDSA ne quitte jamais le TEE du téléphone et parle le protocole ssh-agent à pam_rssh.
Approuvez sudo sur votre machine Linux en touchant le capteur d'empreintes de votre téléphone Android.
Tapez sudo, votre téléphone vibre, vous touchez le capteur, la commande s'exécute. Aucun mot de passe saisi, rien
dans le cloud : le téléphone répond sur votre réseau local, et l'empreinte est vérifiée par le matériel sécurisé
du téléphone (TEE / StrongBox), et non par le code de l'application. Si quelque chose ne va pas (téléphone éteint, hors de portée, vous
appuyez sur Refuser, 60 secondes s'écoulent), sudo revient simplement à votre invite de mot de passe ordinaire. Cela peut rendre
sudo plus pratique ; cela ne peut pas vous verrouiller dehors.
![]() 1. sudo sur l'hôte Le téléphone affiche qui demande. Refuser fonctionne directement depuis ici. |
![]() 2. Appuyez Un compte à rebours, l'hôte et l'heure, un avertissement pour les hôtes jamais vus. Puis l'invite d'empreinte du système. |
![]() 3. Touchez le capteur Le TEE signe, sudo continue, l'application se ferme elle-même. |
![]() Premier lancement Trois étapes et un bouton. Propose l'enrôlement d'empreinte si le téléphone n'en a aucune. |
![]() Configuration Une liste de contrôle en direct : listener, notifications, batterie, Ne pas déranger. « Ready » uniquement quand tout est validé. |
![]() Refusé ou expiré Aucune signature ne quitte le téléphone ; l'hôte demande le mot de passe. |
Captures d'écran d'un émulateur Pixel 7 (d'où 10.0.2.2, l'hôte de l'émulateur). La
fenêtre d'empreinte du système qui apparaît à l'étape 2 est une fenêtre sécurisée et n'apparaît pas dans
les captures d'écran.
sudo on the host
-> PAM: pam_rssh (third-party) dials the phone over the LAN, as an ssh-agent
-> phone: "Approve sudo? From 192.168.1.10" (notification)
-> tap -> BiometricPrompt -> fingerprint
-> the phone's TEE signs pam_rssh's fresh 32-byte challenge
-> pam_rssh verifies against the pinned public key -> sudo proceeds
pam_rssh,
un module existant et maintenu. Rien de ce qui est écrit ici ne s'exécute en root sur l'hôte au
moment de l'authentification.setUserAuthenticationParameters(0, AUTH_BIOMETRIC_STRONG) : une biométrie forte fraîche pour
chaque signature, appliquée à l'intérieur du TEE (ou StrongBox). Un logiciel malveillant sur le téléphone ne peut pas signer
sans votre doigt non plus, et la clé ne peut pas être exportée.SECURITY.md contient le modèle de menace complet, y compris ce qu'il ne protège pas contre. docs/DESIGN.md contient la conception et le raisonnement qui la sous-tend.
pam_rssh avec lui : un paquet là où il en existe un, sinon
compilé depuis un commit épinglé et vérifié.