Aller au contenu

Coffres de mots de passe · par 101 Studios

Les mots de passe de votre équipe, enfin sous clé.

Vaultilla ajoute des coffres de mots de passe chiffrés à votre application : un pour chacun, un par espace de travail, un pour toute l'application. Vos droits d'accès décident qui les ouvre ; votre serveur les garde sans pouvoir les lire.

Un composant de votre produit, pas un outil de plus.

Vaultilla en action, avec des données fictives

Le constat

Le tableur des mots de passe a fait son temps.

Un fichier partagé, un onglet par client, des mots de passe recopiés en clair dans les messageries. Personne ne sait vraiment qui y a accès, et personne n'ose le nettoyer.

  • « C'était dans quel onglet, déjà ? »
  • « Tu peux me renvoyer le mot de passe du serveur ? »
  • « Il a encore accès, lui ? »
  • Rien ne voyage en clair

    Une entrée est chiffrée dans le navigateur avant de partir. Votre base ne contient que des coffres scellés.

  • Chacun voit ce qui le concerne

    Un coffre appartient à une personne, à un espace de travail ou à toute l'application : vos droits font le tri.

  • Un départ ne laisse pas de clé derrière lui

    Retiré d'une équipe, un membre perd l'accès à l'instant. Le coffre change de clé, et ce qu'il avait pu lire est signalé à renouveler.

Dans votre application

Des coffres là où vos équipes travaillent déjà.

Vaultilla n'est pas un gestionnaire de plus à faire adopter. C'est une partie de votre produit : vos utilisateurs, vos espaces de travail, vos rôles. Les coffres suivent.

AVotre application
Changer d'espace de travail
Vos utilisateurs
Leurs accès dans l'outil qu'ils ouvrent déjà le matin. Pas de compte de plus, pas d'extension, pas de mot de passe maître à retenir.
Vos équipes
Un espace de travail, ses coffres. Un nouveau venu y trouve ce qu'il lui faut ; un départ n'emporte rien.
Votre application
Les rôles que vous gérez déjà décident. Vaultilla les consulte à chaque requête, sans liste d'utilisateurs à tenir en double.
Vos développeurs
Des packages TypeScript, une configuration, une route, un composant React. Le chiffrement est déjà fait.

Un coffre pour soi, un pour l'équipe, un pour toute l'application.

Personnel

À une seule personne. Ni ses collègues ni les administrateurs n'y entrent.

Espace de travail

À une équipe, un client, un projet : ses membres, au niveau que leur donne votre application.

Général

Les comptes de toute l'application, pour les seules personnes que vous désignez. Jamais public.

  • Lecturevoir et copier
  • Modificationajouter, changer, supprimer des entrées
  • Propriétairecréer, renommer, supprimer les coffres
Au quotidien

Trois choses qu'un tableur ne saura jamais faire.

Les droits suivent l'équipe.

Changez le rôle de Bob dans votre application : son coffre s'ajuste au même instant. Lecteur, il copie. Membre, il modifie. Retiré, le coffre disparaît de son navigateur, et Alice sait quelles entrées renouveler.

Rôle de Bob dans Apollo
Ce que voit Bob
Infra ApolloLecture seule
  • Base de données (prod)
  • Coolify
  • Sentry
Ce que voit Alice
Infra ApolloApollo
  • Base de données (prod)
  • Coolify
  • Sentry
Base de données (prod)Espace de travail · Apollo
Mot de passe
••••••••••••••
Essayez : ce mot de passe est fictif.
Générateur
t4K#vQ9!mZ2r-Lw8xPeD
Très fort124 bits

Un secret va du coffre au presse-papiers, et pas plus loin.

Un clic copie, et la confirmation s'affiche à l'endroit du clic. Trente secondes plus tard, le presse-papiers est vidé. Besoin d'un nouveau mot de passe ? Le générateur dit sa robustesse en mots, calculée exactement.

Tous les coffres, une seule recherche.

Personnel, équipe ou général : toutes les entrées en une liste, chacune avec la couleur de sa portée. Le premier résultat s'ouvre sans clic ; ↑ ↓ passent au suivant.

6 entrées
  • Banque en ligne71234567 · Mes accèsPersonnel
  • Base de données (prod)apollo_admin · Infra ApolloApollo
  • Coolifyops@apollo.test · Infra ApolloApollo
  • Mailjetagence@101.example · Outils 101Général
  • OVHcloudab12345-ovh · Outils 101Général
  • Wi-Fi bureau101-Studio · Outils 101Général

Et ce qu'on attend d'un bon gestionnaire

  • Un verrou pour tous les onglets

    Après dix minutes sans usage ou d'un clic ; il tient au rechargement.

  • Plusieurs navigateurs

    Le code de secours ouvre tout sur un nouveau ; un navigateur perdu se retire depuis un autre.

  • Jamais d'écrasement

    Deux modifications en même temps ? La seconde voit les deux versions et choisit.

  • À jour quand vous revenez

    Ce que l'équipe a changé apparaît dès que vous revenez sur vos coffres.

  • Au clavier comme au doigt

    / pour chercher, Ctrl+Entrée pour enregistrer ; tout reste utilisable sur téléphone.

  • Français, anglais, allemand

    Et vos propres mots en premier, si votre application en a.

La démo

Un coffre à explorer. Aucun secret à risquer.

Une vraie instance de Vaultilla, avec de vraies clés et des données entièrement fictives. Quatre personnes y travaillent côte à côte : prenez leur place, ouvrez leurs coffres, changez leurs droits.

Ouvrir la démoRien de réel : la démo repart de zéro à chaque mise à jour, et n'importe qui peut la réinitialiser.

Raccourcis

  • /chercher
  • ↑↓parcourir
  • CtrlEntréeenregistrer
  • Échapeffacer la recherche

Qui est qui

  • AlicePropriétaire d'Apollo et des coffres généraux
  • BobLecteur dans Apollo
  • ChloéPropriétaire de Zephyr, lectrice des coffres généraux
  • DanSon espace personnel, rien d'autre

À tester

  1. 1Retrouver un accèsCherchez « apollo », parcourez avec ↑ ↓, copiez un mot de passe d'un clic.
  2. 2Créer une entréeChoisissez son coffre, demandez un mot de passe au générateur, enregistrez avec Ctrl+Entrée.
  3. 3Retirer Bob d'ApolloDans le tableau des droits : le coffre quitte son navigateur, ses entrées passent « à renouveler » chez Alice.
  4. 4Ouvrir un nouveau navigateurDans une fenêtre privée, déverrouillez Alice avec son code de démo, puis retirez ce navigateur depuis le premier.

Tout recommencer : « Start over with demo data » remet les données de démo et rouvre les coffres de chacun.

Vos retours nous font avancer

Où vous avez hésité, un mot pas clair, ce qui vous manque par rapport à votre gestionnaire actuel : dites-le-nous.

Écrire à 101 Studios
Sécurité

Chiffré de bout en bout, sans jargon ni promesse en l'air.

La même entrée, vue des deux côtés. À gauche, ce que lit Alice dans son navigateur. À droite, ce que votre serveur conserve : des données scellées, et les métadonnées dont il a besoin pour appliquer vos règles.

Dans le navigateur d'Alice
Entrée
Base de données (prod)
Identifiant
apollo_admin
Mot de passe
Pr0d-x7$Wq2^Nc9Lzb4
Adresse et note
postgres://db.apollo.internal
Nom du coffre
Infra Apollo
Portée
Espace de travail · Apollo
Membres
Alice, Bob
Modification
par Alice, aujourd'hui
Taille
—

chiffré ici

Ce qui le garantit

  • Chiffré avant de partir

    Chaque entrée est scellée dans le navigateur en AES-256-GCM, liée à son coffre, sa version et son auteur, et complétée par tranches de 256 octets pour ne pas trahir sa longueur.

  • Une clé par coffre, scellée pour chaque navigateur autorisé

    Avec HPKE (RFC 9180 : X25519, AES-256-GCM), pour chaque navigateur de chaque membre et pour sa clé de secours. Le serveur ne détient jamais une clé en clair.

  • Signée par qui l'écrit

    Chaque entrée porte la signature Ed25519 du navigateur qui l'a écrite. Le serveur refuse celles qui ne viennent pas d'un navigateur de leur auteur, et les lecteurs vérifient à leur tour.

  • Vos règles, à chaque requête

    Le serveur consulte votre règle d'accès avant de répondre ; sans droit, un coffre n'existe pas. Après un départ, aucune entrée n'est acceptée tant que la clé du coffre n'a pas changé.

  • Une clé que personne ne garantit est écartée

    Un navigateur que l'identité de son propriétaire n'a pas signé ne reçoit jamais de clé, et l'interface donne l'alerte.

Pour les développeurs

Trois fichiers, et vos utilisateurs ont leurs coffres.

Le package AdonisJS fournit la configuration, les migrations et les routes ; l'interface React fait le reste. Chaque réglage de la configuration se retrouve dans ce que voient vos utilisateurs.

Installer
$ pnpm add @101-lu/vaultilla-adonis @101-lu/vaultilla-react @101-lu/vaultilla-client
$ node ace configure @101-lu/vaultilla-adonis
$ node ace migration:run
1import { defineConfig } from "@101-lu/vaultilla-adonis"
2
3export default defineConfig({
4 // Who is calling, from your session.
5 user: (ctx) =>
6 ctx.auth.user ? { id: String(ctx.auth.user.id), name: ctx.auth.user.fullName } : null,
7
8 // The scopes each person sees vaults in, named by you.
9 scopes: async (person) => [
10 { key: `user:${person.id}`, kind: "personal", name: "Personal" },
11 ...(await workspacesOf(person.id)).map((w) => ({
12 key: `workspace:${w.id}`, kind: "workspace", name: w.name,
13 })),
14 ...((await isStaff(person.id)) ? [{ key: "app", kind: "app", name: "Général" }] : []),
15 ],
16
17 // "read", "write", "owner", or null: asked on every request.
18 access: (person, scope) => levelIn(person.id, scope),
19
20 // Your highest level, a recent passkey.
21 stepUp: (ctx) => recentlyStrong(ctx),
22})
Ce que vos utilisateurs obtiennent

Ensuite, selon vos besoins

vaultilla.scopes.sync()
quand les membres d'un espace changent : qui sort, sort tout de suite
vaultilla.people.forget()
quand un compte disparaît, dans votre transaction
node ace vaultilla:maintenance
chaque nuit, pour vérifier les membres et les coffres orphelins
emitter.on("vaultilla:device:added")
pour vos e-mails : un navigateur ajouté, des clés réinitialisées…
--vaultilla-*
vos couleurs, rayons et espacements, en clair comme en sombre
createFetchHandler()
pour un serveur Node qui n'est pas AdonisJS

@101-lu

  • vaultilla-react
  • vaultilla-client
  • vaultilla-server
  • vaultilla-adonis
  • vaultilla-crypto

Les règles de la maison

  1. Chez vous : votre serveur, votre base de données. Vaultilla n'appelle aucun service de 101 Studios.
  2. Le serveur garde des coffres scellés, jamais de quoi les ouvrir.
  3. Votre application décide qui entre : Vaultilla ne tient pas sa propre liste d'utilisateurs.
  4. Nous disons ce que le serveur sait, et ce que coûte un code perdu.
  5. Chaque version arrive avec ses migrations et ses notes de mise à jour.

Avant d'ouvrir

Faut-il changer notre backend ?

Non. Vaultilla s'ajoute à votre serveur Node et à votre Postgres : un package pour AdonisJS, un handler Fetch pour les autres. Vos utilisateurs et vos rôles restent les vôtres.

Où sont nos données ?

Dans votre base, scellées. Les clés, dans les navigateurs de vos utilisateurs. Rien ne passe par 101 Studios.

Que se passe-t-il quand quelqu'un quitte l'équipe ?

Votre application lui retire son rôle : il perd l'accès à l'instant, la clé du coffre change avant la prochaine entrée, et ce qu'il pouvait lire est signalé à renouveler.

Un nouveau membre voit-il tout de suite les coffres ?

Dès qu'un membre déjà présent ouvre le coffre, son navigateur scelle la clé pour le nouveau venu. Le serveur, lui, ne peut pas la donner : il ne l'a pas.

Et si on perd son code de secours ?

Depuis un navigateur encore ouvert, on en crée un nouveau sans rien perdre. Sans navigateur ni code, les membres des coffres partagés rendent l'accès ; les coffres personnels sont perdus.

Y a-t-il une extension, un remplissage automatique ?

Pas pour l'instant, et c'est voulu : Vaultilla vit dans votre application. On copie d'un clic, et le presse-papiers se vide tout seul.

Peut-on importer notre tableur actuel ?

C'est la prochaine étape prévue : un import CSV, chiffré dans le navigateur au moment de l'import.

Combien ça coûte ?

Parlons de votre projet : 101 Studios vous accompagne de l'intégration à la mise en production.