Là où s’arrête la protection de Crunu
Le chiffrement sur vos appareils empêche le serveur de lire vos secrets. Il ne fait pas disparaître tous les risques pour autant. Voici toutes les limites que nous connaissons, tirées du modèle de menaces du produit lui-même, et ce qu’il faut faire face à chacune.
Ce que le chiffrement sur vos appareils ne peut pas empêcher
Crunu déchiffre sur vos appareils : tout ce qui contrôle un appareil, ou la page qu’il exécute, peut donc voir ce que cet appareil déchiffre. Le chiffrement ne peut pas non plus reprendre ce que quelqu’un a déjà vu.
- Une page modifiée pourrait capturer votre mot de passe et votre Secret Key.La page d’app.crunu.com vient du serveur : un serveur victime d’une intrusion, ou exploité de mauvaise foi, pourrait donc en envoyer une qui enregistre ce que vous tapez. À chaque chargement, l’application se compare au manifeste signé de Crunu, mais cette vérification s’exécute dans la même page. Sur app.crunu.com, ce point repose sur votre confiance envers Crunu et son hébergeur ; sur votre propre serveur, envers qui l’exploite. Que faire : si l’application affiche « Build signature doesn’t match: do not enter your password », ne saisissez pas votre mot de passe, et hébergez votre propre serveur si la page doit provenir d’une infrastructure que vous contrôlez.
- Ce que quelqu’un a vu ne peut pas être repris.Retirer une personne ou révoquer une machine renouvelle les clés, si bien qu’elles ne peuvent rien lire de nouveau. Les valeurs qu’elles ont déjà vues continuent de fonctionner partout où ces valeurs sont valides. Que faire : lancez « Remove from organization », suivez la liste de contrôle de réémission et réémettez chaque valeur chez son fournisseur, en commençant là où c’est le plus important.
- Qui contrôle un appareil ou une machine voit ce qui y est déchiffré.Un logiciel malveillant, une extension de navigateur ou un accès root sur votre ordinateur peut lire ce qui y est déchiffré. Quiconque a les droits root sur une machine où tourne l’agent voit tout ce qui y est livré, et un programme en cours d’exécution garde ses variables jusqu’à son redémarrage. Que faire : utilisez des appareils que vous contrôlez, ne donnez aux machines que ce qu’elles exécutent et, après une compromission, utilisez « Device compromised » ou révoquez la machine, puis réémettez ses valeurs.
Ce que le serveur peut encore faire
Sur app.crunu.com, c’est Crunu qui exploite le serveur ; sur votre propre serveur, c’est son exploitant. Dans les deux cas, ces limites valent aussi pour quiconque s’y introduit. Le serveur ne peut pas lire vos environnements, mais il n’est pas impuissant.
- Il voit les métadonnées.Le serveur lit les noms des organisations, des projets, des environnements, des machines et des personnes, les adresses e-mail, le journal d’audit, qui a reçu quelle version et depuis où, ainsi que l’heure et la taille de chaque version. Il ne lit rien à l’intérieur d’un environnement, pas même les noms des variables ou des fichiers. Que faire : ne mettez pas de secrets dans les noms. Un projet qui porte le nom d’un accord pas encore annoncé révèle cet accord au serveur.
- Il peut refuser de vous servir ou ignorer des modifications.Un serveur peut cesser de répondre, ou prétendre n’avoir jamais reçu une modification, et le chiffrement ne peut pas l’obliger à vous servir. Que faire : téléchargez de temps en temps une copie hors ligne. Elle s’ouvre avec votre mot de passe et votre Secret Key, sans aucun serveur. Sur votre propre serveur, exportez la base de données chaque jour. Pendant l’accès anticipé, app.crunu.com n’offre aucun engagement de disponibilité.
- Il pourrait montrer à un nouvel appareil un état ancien de votre organisation.Vos appareils refusent tout ce qui est plus ancien que ce qu’ils ont déjà accepté, mais un appareil que vous n’avez jamais utilisé n’a rien à quoi comparer. Un serveur compromis, de connivence avec une personne que vous avez retirée, pourrait lui montrer votre organisation telle qu’elle était avant ce retrait. Crunu ne peut pas éliminer complètement ce risque sans une source extérieure attestant la fraîcheur des données. Que faire : sur un nouvel appareil, utilisez « Compare with your other devices » dans « Organization settings » et, si les numéros diffèrent, n’enregistrez rien depuis cet appareil et prévenez un propriétaire.
- Les règles réseau sont ses règles, pas du chiffrement.Un serveur compromis peut ignorer une restriction d’adresse IP. Tous ceux qui sont derrière le même NAT ou le même proxy partagent une seule adresse : ils comptent donc tous comme étant à l’intérieur, et un contenu livré avant une restriction reste là où il a été livré. Que faire : utilisez les règles réseau en complément d’accès restreints, liez les jetons CI par OIDC plutôt que de compter sur les plages d’adresses IP des runners et, après avoir durci une règle, réémettez les valeurs déjà sorties.
La récupération a des limites strictes
Comme le serveur ne détient jamais votre mot de passe ni votre Secret Key, personne ne peut les réinitialiser à votre place. C’est à vous de garder en lieu sûr les moyens de revenir dans votre compte, et ils ouvrent plus que vous ne le pensez peut-être.
- Personne ne peut réinitialiser votre mot de passe.Si vous perdez votre mot de passe, votre Secret Key et votre code de récupération, personne ne peut ouvrir votre compte, pas même nous. Si tous les propriétaires et les administrateurs perdent l’accès, il ne reste personne pour gérer l’organisation. Que faire : imprimez l’Emergency Kit et conservez-le loin de vos appareils, créez un code de récupération et gardez au moins deux propriétaires ou administrateurs.
- Un code de récupération se passe de votre second facteur.Il ouvre votre compte après un délai d’attente, une heure par défaut. C’est le serveur qui gère ce délai et envoie l’alerte : un serveur compromis, de connivence avec quelqu’un qui détient votre code, pourrait donc donner l’accès immédiatement. Que faire : rangez le code à l’écart de votre Emergency Kit et de vos appareils et, si vous recevez une alerte pour une récupération que vous n’avez pas lancée, annulez-la et supprimez le code.
- Les propriétaires et les administrateurs peuvent ouvrir les environnements partagés.La clé de chaque environnement partagé est aussi scellée pour la clé de récupération de l’organisation, que détiennent les propriétaires et les administrateurs. Tant que la récupération des environnements personnels est activée, ce qui est le cas par défaut, ils peuvent aussi ouvrir les environnements personnels des membres. Que faire : réservez ces rôles aux quelques personnes qui gèrent l’organisation. Un propriétaire peut désactiver la récupération des environnements personnels, mais un compte perdu perd alors ses environnements personnels.
- Un appareil volé contient votre Secret Key.Par défaut, votre navigateur conserve la Secret Key pour que vous n’ayez pas à la saisir à chaque connexion, si bien que votre mot de passe reste la dernière barrière. Que faire : choisissez un mot de passe robuste réservé à Crunu, gardez un délai court pour le verrouillage après inactivité et, depuis un autre appareil, retirez l’appareil volé ou utilisez « Device compromised ».
Si vous hébergez votre propre serveur
Ces limites concernent qui exploite le serveur. Sur app.crunu.com, c’est Crunu. L’une d’elles touche vos appareils sur n’importe quel serveur, app.crunu.com compris : restaurer la base de données à partir d’une sauvegarde annule toutes les modifications faites après elle.
- Sans e-mail, les adresses des invitations ne sont pas confirmées.Un serveur sans e-mail configuré ne peut pas envoyer de code pour confirmer l’adresse d’une invitation : quelqu’un pourrait donc s’approprier une adresse qui n’est pas la sienne. La comparaison des empreintes tient malgré tout à l’écart la clé d’un inconnu. Sur app.crunu.com, l’e-mail est configuré. Que faire : définissez
RESEND_API_KEYetALERT_EMAIL_FROMavant d’inviter des personnes extérieures à votre équipe, et comparez toujours l’empreinte. SERVER_KEYest le secret propre au serveur.Il signe les sessions, les liens de partage et les invitations, et sert à chiffrer les secrets des applications d’authentification, mais pas vos environnements. Le perdre déconnecte tout le monde et casse les liens de partage. S’il fuite en même temps qu’une copie de la base de données, il affaiblit les codes des applications d’authentification. Que faire : conservez le fichier.envdans un gestionnaire de mots de passe, à l’écart des sauvegardes, et renouvelez la clé selon la procédure documentée.- Une restauration ramène tout en arrière.Restaurer une sauvegarde annule toutes les modifications faites après elle, et les appareils qui ont vu des données plus récentes signalent un retour en arrière et refusent ces environnements jusqu’à la réinitialisation de leur état enregistré. Que faire : sauvegardez chaque jour, ne réinitialisez les agents et les navigateurs qu’après une restauration que vous avez vous-même effectuée, et traitez un avertissement de retour en arrière sans restauration de votre part comme un signal d’alarme.
- Choisissez l’adresse et la plateforme avec soin.Les signatures de connexion, les liens de partage, les clés d’accès (passkeys) et les agents sont liés à l’adresse du serveur : elle ne peut donc pas changer par la suite. Avec l’offre gratuite de Cloudflare Workers, une requête dispose de 10 ms de temps CPU, et sur Google Cloud Run et AWS App Runner, certaines alertes arrivent en retard. AWS a fermé App Runner aux nouveaux clients. Que faire : utilisez un domaine que vous garderez, Workers Paid pour une équipe, et une plateforme dotée d’un planificateur si ces alertes comptent pour vous.
Ce que Crunu ne fait pas, par choix ou pas encore
Certaines choses, Crunu ne les fait pas. L’une d’elles, Crunu ne la fera jamais, car elle exigerait des clés sur le serveur. Les autres manquent aujourd’hui : organisez-vous en conséquence.
- Pas de secrets dynamiques.Crunu ne crée pas à la demande de mots de passe de base de données ni d’identifiants cloud à courte durée de vie. Il faudrait pour cela des clés sur le serveur, précisément ce que Crunu est conçu pour ne pas avoir, et cela ne changera pas. Que faire : utilisez les identifiants à courte durée de vie de votre fournisseur, là où il en propose.
- Pas de réémission automatique chez les fournisseurs.Dans Crunu, la rotation change les clés de chiffrement. Les valeurs elles-mêmes sont réémises à la main chez chaque fournisseur, à partir de la liste de contrôle de réémission. Que faire : réémettez les identifiants à longue durée de vie selon un calendrier régulier, et enregistrez chaque nouvelle valeur comme une nouvelle version.
- Pas d’accès limité dans le temps pour les personnes.L’accès à un environnement n’a pas de date d’expiration. L’expiration existe pour les invitations, les liens de partage, les jetons de service, les baux des machines et l’accès d’urgence (break-glass). Que faire : revoyez qui a accès à production quand des personnes changent de rôle, et utilisez un lien de partage qui expire pour les besoins ponctuels.
Questions sur ces limites
Le personnel de Crunu peut-il lire mes secrets ?
Non. Sur app.crunu.com, c’est Crunu qui exploite le serveur, et le serveur ne détient que des données chiffrées, sans aucune clé pour les déchiffrer. Nous pouvons voir des métadonnées comme les noms, les adresses e-mail et le journal d’audit, énumérées dans la Politique de confidentialité. Pour atteindre vos valeurs, il faudrait modifier le code qui s’exécute sur votre appareil : c’est la première limite de cette page.
Héberger mon propre serveur supprime-t-il ces limites ?
Certaines passent de votre côté. Vous décidez qui exploite le serveur qui envoie la page web et voit les métadonnées, et les limites de la section « Si vous hébergez votre propre serveur » vous reviennent. Les limites sur vos appareils restent les mêmes.
Pourquoi ne pouvez-vous pas réinitialiser mon mot de passe ?
La clé de votre compte est dérivée sur votre appareil à partir de votre mot de passe et de votre Secret Key, et nous ne recevons jamais ni l’un ni l’autre. C’est ce qui rend vos données illisibles pour nous. Votre Emergency Kit et un code de récupération sont les moyens de revenir dans votre compte.
Que faire en premier quand quelqu’un part ?
Retirez la personne de l’organisation. Crunu cesse de la servir et renouvelle chaque clé qu’elle détenait. Ensuite, suivez la liste de contrôle de réémission et réémettez chez chaque fournisseur les valeurs qu’elle a vues.
Crunu proposera-t-il des secrets dynamiques ?
Non. Créer des identifiants à la demande exige des clés sur le serveur, et Crunu est conçu pour que le serveur n’en ait jamais.
Vous avez trouvé une limite absente de cette page ?
Écrivez à security@crunu.com. Nous préférons l’ajouter ici plutôt que de vous la laisser découvrir à vos dépens.
Mettez les secrets de votre équipe là où le serveur ne peut pas les lire
Créez votre compte sur app.crunu.com. Vos clés sont créées dans votre navigateur, et le serveur ne reçoit que des données chiffrées.