Secretive stocke les clés SSH dans l’enclave sécurisée de votre Mac
Secretive est une nouvelle app qui intéressera une petite audience, mais c’est peut-être votre cas. Seuls les Mac équipés d’une puce T2 et donc d’une enclave sécurisée, c’est-à-dire les portables avec Touch ID, l’iMac Pro, le Mac Pro de 2019 et les Mac Mini à partir de 2018, peuvent utiliser l’app1. Par ailleurs, elle n’aura d’intérêt que si vous utilisez des clés SSH au quotidien, puisque son rôle est de les stocker dans l’enclave.
Les clés SSH servent à se connecter à un serveur distant. C’est la méthode recommandée aujourd’hui à la place des mots de passe. L’idée est de générer sur votre ordinateur local deux clés de chiffrement uniques : l’une, publique, sera copiée sur le serveur distant quand l’autre, privée, doit rester sur l’ordinateur. Lors de la connexion, le serveur dispose d’une liste de clés SSH qui identifient les ordinateurs autorisés et la connexion ne se fait que si la clé publique du serveur et la clé privée de l’ordinateur sont présentes.
C’est une information naturellement sensible, puisque si quelqu’un met la main sur votre clé SSH privée, il pourra se connecter à tous les serveurs distants associés sans limite. En temps normal, les clés SSH ne sont pas forcément sécurisées2, elles sont stockées dans un dossier caché de votre dossier personnel (~/.ssh
) et si quelqu’un a accès à votre Mac, il aura aussi accès aux clés. Avec Secretive, l’information est déplacée dans l’enclave sécurisée qui est chiffrée et inaccessible sans le mot de passe de la session.
Secretive ne se contente pas de déplacer les clés SSH dans l’enclave sécurisée, l’app propose une interface de gestion pour ajouter et supprimer des clés, ou encore les ajouter au presse-papier. Sur les Mac avec un capteur Touch ID, l’accès aux données peut se faire avec lecture d’empreintes, vous pouvez aussi utiliser une Apple Watch ou à défaut saisir le mot de passe de votre session. Mieux vaut une méthode plus simple toutefois, puisque l’opération d’authentification devra être effectuée à chaque utilisation des clés, dans le terminal, mais aussi dans un client Git, par exemple.
Il faut avoir confiance pour donner ainsi accès à toutes ses clés SSH à un développeur tiers. Secretive est une app gratuite et surtout open-source, vous pouvez ainsi vérifier ce qu’elle fait précisément en consultant son code source. Son développeur prend le sujet de la sécurité très au sérieux, il fournit notamment un log complet de chaque version proposée au téléchargement et vous pouvez le contacter directement si une faille de sécurité a été découverte dans son code.
Secretive n’est proposée qu’en anglais et macOS 10.15 est nécessaire pour l’installer.
-
Techniquement, vous pouvez aussi utiliser l’app sans puce T2, à condition d’avoir une clé USB sécurisée, comme une YubiKey. ↩
-
Il est possible de définir un mot de passe lors de leur création, ce qui ajoute une couche de sécurité. ↩
Moi j’utilise SeKey: https://github.com/sekey/sekey
En ligne de commande. Qui génère des clefs dans la puce t2.
Attention en cas de soucis de ce genre d’utilitaire. Si on réinitialise TouchID, l’enclave est remise à zéro.
Toujours garder une 2e possibilité d’entrée ( genre mot de passe super long.)
On peut aussi appliquer un mot de passe à sa clé privée donc pour l'utiliser il faut entrer avant ce mot de passe qu'on aura défini. Donc si un pirate récupère le contenu du dossier ~/.ssh, il ne pourra pas utiliser les clés privées sans connaitre les mots de passes de ces clés.
Quelle capacité de stockage a l’enclave sécurisée ?
Question débile...
Si c'est si facile pour une application tierce d'utiliser l'enclave sécurisée... en quoi elle est sécurisée?
@Avenger
🤔
🧐
😱
🕳
La partie sur le fonctionnement des clés est en partie fausse.
Les clés SSH générées sont un couple clé privée / clé publique. Le serveur distant n’a que la clé publique. La clé privée reste sur le client. Ainsi un serveur compromis n’expose jamais une clé privée.
Il est possible de protéger sa clé privée avec un mot de passe (Qui lui sera protégé par la puce T2) ou un device externe (yubikey...). Ça l’avantage d’être aussi sécurisé mais plus universel.
@pocketjpaul
En effet, j'ai voulu simplifier mais c'est plus compliqué que ça. J'ai revu ce paragraphe, j'espère ne pas avoir fait d'erreur en simplifiant les choses.
Bonjour,
Dans l’article, la dernière photo est une capture du terminal configuré assez joliment je trouve ( chemin répertoire)
Comment on fait pour le configurer de la sorte ?
@Guillaume77
C’est fait avec le Shell zsh et l’outil « oh-my-zsh » qui propose des thèmes et pleins d’autres options. Probablement qu’il utilise aussi iterm, bien meilleur que le terminal de base !
« Il faut avoir confiance pour donner ainsi accès à toutes ses clés SSH à un développeur tiers. »
Notons que tous les logiciels non sandboxés écrits par des développeurs tiers ont déjà accès à ces clefs, en allant les lire dans ~/.ssh. La confiance est donc déjà là en temps normal.
@BeePotato
C'est pas faux, mais disons que c'est encore plus évident pour une app chargée de gérer les clés SSH…
@nicolasf
Bonjour,
Comment fait-on pour installer et lancer l’application ? 😅
Merci
@emilien43700@gmail.com
L'app est disponible ici : https://github.com/maxgoedjen/secretive/releases
Prenez le zip de la dernière version et à l'intérieur vous trouverez l'app à déplacer dans le dossier des applications, comme d'habitude.
@nicolasf
Merci beaucoup! J’avais en fait téléchargé le source code...😅 Bonne journée
Petite question n’ayant pas de puce T2 je ne peux pas tester, est-il bien impossible de sortir la clé privée ? Sous entendu est ce bien la puce T2 qui gère la partie SSH ? Un peu comme une smart card quoi ....
Il est possible d’utiliser le trousseau aussi.
Pourquoi faut-il une puce T2 au minimum ?
La puce T1 n'a-t-elle pas une enclave de sécurité et Touch ID ?
@nicolasf , j'ai testé avec un mac doté d'une puce T1 et ai obtenu le fonctionnement voulu.