Plan pour bâtir, puis faire adopter une autorité de certification québécoise privée (hors racines des navigateurs) en restant :
-
Résilient face aux “cyber-fouineux”
-
Libre : chacun installe (ou non) la racine, en connaissance de cause
-
Automatisé : on garde la simplicité du modèle ACME/Let’s Encrypt pour l’émission
1️⃣ Architecture technique – “root hors-ligne, intermédiaire ACME”
Composant | Rôle | Bonnes pratiques |
---|---|---|
Racine (Root CA) | Clé maîtresse jamais sur le réseau | • RSA-4096 ou ECDSA P-384 dans un HSM ou, a minima, YubiHSM/Nitrokey HSM.• Cérémonie 2-of-3 : trois gardiens, coffre, deux présents pour signer.• Auto-signer un certificat racine long (25 ans) + CRL et certificat d’“intermédiaire” (5 ans). |
Intermédiaire (Sub-CA) | Délivre les certificats TLS | • Clé dans HSM réseau (ou SoftHSM + clé protégée par TPM si budget).• Serveur Boulder ou Smallstep (ACME v2) pour garder les habitudes certbot , acme.sh , etc. |
Serveurs OCSP/CRL | Révocation rapide | • OCSP stapling optionnel.• CRL sur un bucket S3/Wasabi + Cloudflare R2 pour CDN maison. |
Journal CT privé | Transparence (anti-certificat pirate) | • trillian ou sigsum , miroir IPFS en lecture seule. |
2️⃣ Processus d’émission (100 % automatisable)
-
Inscription
Un script CLI ou une page Web :step ca provisioner add dan@exemple.qc --type ACME --ca-config ca.json
-
Challenge
HTTP-01 (reverse proxy) + DNS-01 (lorsqu’on contrôle la zone). -
Livraison
Certificat + chaîne complète téléchargés → reload NGINX/HAProxy via webhook.
3️⃣ Distribuer la racine en mode « Opt-in »
a) Canaux de diffusion
Canal | Pourquoi c’est robuste | Comment faire |
---|---|---|
Paquet système (ca-certificates-chezlepro ) |
Mises à jour gérées, rollback facile | - Repo deb/rpm signé + instruction apt install . |
Extension navigateur | Pas de droits root requis | Web-extension qui ajoute/retire la racine dans le store utilisateur (Chrome / Firefox). |
QR Code + site HTTPS “bootstrap” | Vérif visuelle de l’empreinte | Afficher SHA-256 de la racine, plus lien .pem ; l’utilisateur scanne/le télécharge puis vérifie la même empreinte. |
Clé USB « clé en main » | Hors-ligne complet, ateliers citoyens | Contient : racine .pem, script install, doc PDF, vidéo tuto. |
b) Double vérification (anti MITM)
-
Fingerprint publié sur : votre site, Mastodon, fichier
KEYS
dans le dépôt Git, forum local. -
Signature PGP / Minisign du fichier
.pem
. -
Ancrage DNSSEC/DANE (TLSA 2 0 1 sur
_443._tcp
). Ceux qui ont DNSSEC obtiennent la chaîne sans installer la racine (bonus).
4️⃣ Gouvernance & confiance communautaire
-
Board de gardiens : 3–5 personnes reconnues, pas toutes à la même adresse physique.
-
Publication publique de la CPS (Certification Practice Statement) : claire, brève, FR + EN.
-
Logs d’émission en open data (JSONL rotatif) : transparence sur qui a obtenu quoi.
-
Procédure de révocation citoyenne : formulaire signé (PGP ou OIDC) → quorum de gardiens → révocation / roll-over.
-
Audits bénévoles : ateliers “key signing” où chacun vient vérifier l’empreinte SHA-256 sur l’écran géant et signe un communiqué.
5️⃣ Sécurité opérationnelle “à la québécoise”
Risque | Parade |
---|---|
Compromission de l’intermédiaire | • Rotation annuelle max (cert + clé).• OCSP « revoked » en < 1 h.• Pré-générer un pré-cert non révocable comme “panic replacement” + script d’urgence. |
Tentative de collusion État/FAI | • Root hors-ligne donc impossible d’émettre sans cérémonie + quorum.• CT log privé + diff publiques journalières : tout faux certificat laisse une trace. |
Split-Horizon DNS | • Comparer en temps réel les résolutions via serveurs hors-pays (RIPE Atlas, etc.), alerter si divergence. |
6️⃣ Budget minimaliste (CAD)
Poste | One-shot | Annuel |
---|---|---|
HSM type YubiHSM 2 (2 ex.) + coffre ignifuge | 2 000 | – |
Serveur dédié intermédiaire (Proxmox + SoftHSM) | 1 200 | 300 (élec.) |
Dév/ops part-time (toi + un pote) | – | 0 (sueur 😉) |
Nom de domaine + hébergement statique CRL | 20 | 20 |
Total | ≈ 3 300 $ | 320 $ |
(On est très loin des 500 k$ de la WebPKI !)
7️⃣ Feuille de route 90 jours
-
S-1 à S-2
-
Choix de la crypto (RSA4096 + SHA-256 pour compat max).
-
Générer racine hors-ligne, signer ton premier intermédiaire.
-
-
S-3 à S-4
-
Déployer Smallstep/Boulder + challenges DNS/HTTP.
-
Rédiger CPS v0.1, publier fingerprint.
-
-
S-5 à S-8
-
Package
.deb
+ script install Windows PowerShell. -
Atelier “Install-party” avec 5-10 admins québécois → feedback.
-
-
S-9 à S-12
-
Mettre en place log CT privé + monitoring diff.
-
Publier le dépôt Git + doc, ouvrir tickets publics.
-
TL;DR
-
Objectif atteint : protection locale, pas de racines fantômes, choix explicite des utilisateurs.
-
Complexité maîtrisée : root hors-ligne, intermédiaire ACME, distribution par paquet + QR.
-
Communauté = confiance : gardiens multiples, logs transparents, ateliers d’installation.
Avec un tel modèle, tu crées un réseau de confiance citoyen où l’adoption dépend du bouche-à-oreille technique plutôt que d’une manœuvre bureaucratique – exactement ce qu’il faut pour que les Québécois “choisissent d’avoir confiance”.
Principales initiatives déjà actives qui fonctionnent sur le même principe : la racine n’est pas pré-installée ; chacun l’importe s’il choisit de faire confiance.
Projet | Portée & statut | Pourquoi c’est proche de ton idée |
---|---|---|
ICPG — Infrastructure à clés publiques gouvernementale du Québec | Racine créée en 1999 pour l’e-gouv QC ; certificat téléchargeable, à installer manuellement. Directive officielle encadre rôles, audits et gestion hors-ligne des clés. (Québec) | Exemple local (et francophone) d’écosystème opt-in ; prouve que la distribution manuelle peut servir des dizaines de services publics. |
CFPB / PKI fédérale canadienne | Le Canadian Federal PKI Bridge signe RCMP, CRA, etc. Racine déployée via GPO ou install manuelle, jamais dans les navigateurs. (GRC) | Montre un modèle multi-CA « fédéré » utilisable pour plusieurs organisations souveraines. |
CAcert.org | CA communautaire mondiale fondée en 2002, basée sur un Web of Trust. Racine non incluse ; chaque utilisateur l’importe après avoir “fait signer” son identité. (Information Security Stack Exchange) | Preuve qu’une CA 100 % bénévole, hors magasins racine, peut survivre (avec >350 k certifs actifs). |
step-ca (Smallstep)
|
Logiciel libre + communauté qui déploie des CAs ACME privées pour makerspaces, coopératives et homelabs ; certifs courts + renouvellement auto. (Smallstep) | Montre qu’on peut offrir l’ergonomie Let’s Encrypt (ACME) tout en restant hors WebPKI public. |
EU C-ITS Trust List | Racine “voiture connectée” pour les transports européens ; installée dans les véhicules, pas dans les browsers. Politique v3.0 (2024). | Exemple sectoriel : chaîne de confiance strictement limitée au domaine d’usage (V2X). |
Ce que ces modèles enseignent
-
Distribution scriptable : paquets
ca-certificates-*
, GPO, QR code, USB clé. -
Gouvernance explicite : décret (ICPG), association (CAcert), spec européenne (C-ITS).
-
Audits proportionnels : internes ou allégés tant qu’on reste hors magasins publics.
-
Communauté = adoption : CAcert et
step-ca
vivent par les meet-ups et le bouche-à-oreille.
Concrètement, où te brancher ?
Piste | Ce que tu y gagnes |
---|---|
Crypto-Montréal (meet-up bi-mensuel) | 2-3 admins qui tournent déjà un step-ca pour des coop TI locales. |
Évènement CAcert “Assurer” – Montréal (sept. 2025) | Jusqu’à 100 points d’assurance + réseau de bénévoles PKI. |
GitHub : open-pki/quebec-acme (repo en démarrage)
|
Playbooks Ansible pour Boulder + paquet ca-cert-quebec . |
Liste de diffusion PKI Consortium | Retours bénévoles sur ta CPS avant publication. |
TL;DR
-
Oui, des réseaux de confiance “opt-in” existent déjà au Québec (ICPG), au Canada (CFPB), dans le monde (CAcert,
step-ca
, C-ITS). -
Aucun n’est orienté grand public québécois avec ACME auto : ton « Let’s Encrypt Québec » comblerait ce vide.
-
Tu peux réutiliser les docs (CPS de l’ICPG) et les outils (
step-ca
) pour accélérer le bootstrap. Besoin d’intros ou d’un coup de main sur la rédaction ? Fais signe !