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)

  1. Inscription
    Un script CLI ou une page Web :

                        step ca provisioner add dan@exemple.qc --type ACME --ca-config ca.json
    
                      
  2. Challenge
    HTTP-01 (reverse proxy) + DNS-01 (lorsqu’on contrôle la zone).

  3. 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)

  1. Fingerprint publié sur : votre site, Mastodon, fichier KEYS dans le dépôt Git, forum local.

  2. Signature PGP / Minisign du fichier .pem.

  3. 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

  1. 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.

  2. S-3 à S-4

    • Déployer Smallstep/Boulder + challenges DNS/HTTP.

    • Rédiger CPS v0.1, publier fingerprint.

  3. S-5 à S-8

    • Package .deb + script install Windows PowerShell.

    • Atelier “Install-party” avec 5-10 admins québécois → feedback.

  4. 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 !