Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ADR-121 — Provisioning air-desktop-host : image first-boot anonyme, publication de la clé d’hôte, amorçage par clé/cert jetable (pas hostbased)

Statut : Accepté (2026-07-26, décision BDFL). RFC de direction (ADR-015). S’appuie sur ADR-109 (cert court / CA), ADR-108 (air-keystore : clé d’hôte, révocation), ADR-100 (base de comptes + création), ADR-096 (authorized_keys binaire), ADR-089 (SecurityManager), ADR-029 (nommage). Compagnon d’ [ADR-120] : le provisioning n’utilise PAS hostbased (§3).

Catégorie : Flux de déploiement de flotte (orchestration couche 2 + air-keystore). Vague 2 #9 (dernier).

Contexte

Objectif BDFL : déployer à la chaîne des « air-desktop-host » — une image Air bootable mais anonyme. Au premier démarrage, la machine doit devenir joignable et personnalisable à distance, sans intervention physique.

Directive BDFL (2026-07-26). « Une image air-desktop bootable mais anonyme… en mode “first boot”, elle génère une hostkey air-sshd et publie la clé sur un serveur chez moi ; le démon air-sshd est lancé ; je peux me connecter à distance grâce à la hostkey et finaliser l’installation/personnalisation en créant le compte utilisateur. » Et, en discussion : pas hostbased pour ce chemin (le plus sensible) — clé/cert d’amorçage jetable.

Décision

1. Séquence first-boot

Un service first-boot (couche 2, unité air-service) exécute, au premier démarrage d’une image anonyme :

  1. Génère la clé d’hôte du serveur air-sshd (via air-keystore [ADR-108]).
  2. Publie la clé d’hôte publique (empreinte + identité machine) sur un serveur central (« chez moi ») — canal réseau Air.
  3. Lance air-sshd.
  4. Attend la finalisation à distance par l’installeur (propriétaire).

2. Deux besoins distincts, deux mécanismes

  • (a) L’installeur vérifie l’identité de la machine fraîche = vérification de la clé d’hôte serveur (le known_hosts client [ADR-108] est alimenté par la clé publiée en §1.2). Pas de TOFU aveugle : l’identité est connue d’avance via la publication.
  • (b) L’installeur s’authentifie sur une machine SANS compte = confiance d’amorçage. Design retenu (façon cloud-init) : un compte d’amorçage éphémère portant une clé publique de provisioning embarquée (dans l’image, magasin authorized_keys binaire [ADR-096]) OU un certificat SSH court ([ADR-109], réutilise air-keystore/CA). Ce secret d’amorçage est révoqué / le compte supprimé en fin d’installation (révocation air-keystore [ADR-108]).

3. Pas hostbased dans ce chemin

Le provisioning n’utilise pas l’authentification hostbased ([ADR-120]) : on évite le service de signature privilégié et la confiance transitive précisément là où le risque serait maximal (une machine fraîche, pas encore durcie). La clé/cert d’amorçage jetable est plus étroite (un secret, une machine, une fenêtre courte, révocable).

4. Finalisation

L’installeur, authentifié par l’amorçage, crée le compte propriétaire (air-account [ADR-100] — base binaire, éventuellement import [ADR-100]), personnalise, puis révoque l’amorçage (clé/cert + compte éphémère). La machine passe alors en régime normal (publickey utilisateur / certificats [ADR-109]).

Conséquences

Positives.

  • Déploiement de flotte sans intervention physique : image anonyme → jointe et personnalisée à distance dès le first-boot.
  • Identité vérifiable (clé d’hôte publiée) : pas de TOFU aveugle sur une machine neuve.
  • Amorçage étroit et révocable (clé/cert jetable) : la fenêtre de confiance est courte et fermée en fin d’install — surface minimale sur le chemin le plus sensible.
  • Réutilise l’existant : air-keystore (clé d’hôte, cert court, révocation), air-account (création de compte), air-sshd.

Négatives / coûts assumés.

  • Serveur central de publication = composant d’infrastructure à opérer et sécuriser (authenticité des clés publiées, anti-usurpation).
  • Secret d’amorçage dans l’image : doit être jetable, à portée limitée, révoqué — un oubli de révocation = porte dérobée. Procédure de révocation obligatoire en fin d’install.
  • Fenêtre first-boot = machine transitoirement peu durcie : minimiser sa durée, restreindre l’amorçage (une machine / un secret / une IP source si possible, via SecurityManager [ADR-089]).

Mise en œuvre (référence, hors décision). Incréments : (a) service first-boot (génération + publication clé d’hôte + lancement air-sshd) ; (b) canal de publication + serveur central ; (c) amorçage (compte éphémère + clé provisioning ou cert court [ADR-109]) ; (d) finalisation (création compte [ADR-100] + révocation amorçage [ADR-108]). Non engagés par cet ADR.

Alternatives rejetées

Aucune alternative n’a été consignée lors de l’instruction.