keycloak : l'ancre de confiance existe — publiee hors du canal de livraison

La commande que j'avais donnee etait circulaire : `gpg --recv-keys <empreinte>`
demande la cle PAR son empreinte, et une empreinte est le condensat du materiel
de la cle. Le serveur ne peut rien renvoyer d'autre. Ca n'etablit rien.

Elle a tout de meme revele l'identite : Keycloak Bot <keycloak.bot@gmail.com>,
ed25519 2024-02-13, expire 2027-02-12. Mesure localement : cle AUTO-SIGNEE
uniquement, aucune certification tierce.

L'ancre reelle : keycloak.org/keys publie
861ab50e8cc6611fb6bc01a6b8f12ea26fd6eeba, identique a l'epinglage. Canal
DISTINCT de github.com qui livre l'archive — la propriete qu'avait Forgejo et
qui manquait ici.

Deux reserves consignees dans le role plutot que tues : la page decrit la cle
comme servant aux artefacts Maven, et l'ancrage vaut ce que vaut le controle de
keycloak.org (DNS + TLS).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Daniel Allaire 2026-08-11 02:06:02 -04:00
parent 037577fcd2
commit ce4ff0cec5
2 changed files with 37 additions and 0 deletions

View file

@ -1,5 +1,30 @@
# CHANGELOG — Set-OPS
## 2026-08-11 — L'ancre Keycloak existe (et la commande que j'avais donnée ne prouvait rien)
La vérification de signature était en place, mais elle ne prouvait que « la même clé
qu'hier ». Restait à établir que cette clé est bien celle de Keycloak.
**La première tentative était circulaire.** `gpg --recv-keys <empreinte>` demande la clé
*par son empreinte* — or une empreinte est le condensat du matériel de la clé : le serveur
ne peut rien renvoyer d'autre. Confirmer que la clé reçue porte l'empreinte demandée
n'établit donc rien. Et un serveur de clés n'est pas une autorité : n'importe qui y
téléverse n'importe quelle clé avec n'importe quel UID (GPG l'affiche : `[ unknown ]`).
La manœuvre a tout de même révélé l'identité : **`Keycloak Bot <keycloak.bot@gmail.com>`**,
ed25519 créée le 2024-02-13, expirant le 2027-02-12. Et, mesuré localement, la clé est
**auto-signée uniquement** — aucune certification tierce, aucune toile de confiance.
**L'ancre réelle** : <https://www.keycloak.org/keys> publie
`861ab50e8cc6611fb6bc01a6b8f12ea26fd6eeba`, identique à l'épinglage. Ce canal
(`keycloak.org`) est **distinct de celui qui livre l'archive** (`github.com`) — la
propriété qu'avait déjà Forgejo et qui manquait ici.
Deux réserves consignées dans `roles/serveur_keycloak/defaults/main.yml` plutôt que
passées sous silence : la page décrit la clé comme servant aux **artefacts Maven** (c'est
notre vérification qui établit que le `.asc` de l'archive est validé par elle), et
l'ancrage vaut ce que vaut le contrôle de `keycloak.org` — DNS et TLS.
## 2026-08-11 — Les épinglages éprouvés en vrai, par une reconstruction ciblée
Les rôles **installent, ils ne mettent pas à jour** (`creates:`). Relever une version ne

View file

@ -202,6 +202,18 @@ serveur_keycloak_cache_local: "{{ setops_cache_artefacts | default(lookup('env',
# Continuite constatee le 2026-08-10 : cette meme cle a signe 26.0.7 (la version alors en
# production), 26.3.0, 26.6.2 et 26.7.1.
#
# ANCRE (2026-08-11) — l'empreinte est PUBLIEE PAR LE PROJET sur https://www.keycloak.org/keys,
# sous l'UID « Keycloak Bot <keycloak.bot@gmail.com> ». Ce canal (keycloak.org) est
# DISTINCT de celui qui livre l'archive (github.com) : la confiance ne repose donc plus
# sur la seule continuite. C'est la propriete qui manquait auparavant.
#
# Deux reserves, a connaitre plutot qu'a ignorer :
# - la page decrit cette cle comme servant aux ARTEFACTS MAVEN, pas aux archives de
# distribution ; c'est notre verification qui etablit que c'est la meme cle (le `.asc`
# de l'archive GitHub est valide par elle) ;
# - la cle est AUTO-SIGNEE, sans aucune certification tierce : pas de toile de confiance.
# L'ancrage vaut donc ce que vaut le controle de keycloak.org (DNS + TLS).
#
# Un changement d'empreinte en amont fera ECHOUER le remplissage du cache — c'est voulu :
# il exige une relecture humaine, pas un remplacement silencieux.
serveur_keycloak_signature_empreinte: "861AB50E8CC6611FB6BC01A6B8F12EA26FD6EEBA"