Gestion des clés
EAB : External Account Binding. « Liaison à un compte externe », par analogie avec la carte de fidélité qu'on présente en caisse pour rattacher un achat à un compte client existant.
Principe : L'autorité de certification fournit un identifiant de clé et un secret HMAC. Le client ACME s'en sert pour signer sa demande de création de compte, ce qui lie sa clé de compte ACME à un compte client déjà connu de l'autorité.
Où on le croise : Chez les autorités de certification commerciales qui parlent ACME et doivent savoir qui facturer, ainsi que dans les serveurs ACME internes d'entreprise qui réservent l'émission aux équipes enregistrées. Le mécanisme est défini dans la RFC 8555 comme une option du protocole.
Ce que ça ne fait pas : EAB authentifie le client auprès de l'autorité, mais ne remplace jamais la validation du domaine : les challenges ACME restent obligatoires. Le secret HMAC reste un secret, et il finit pourtant régulièrement collé en clair dans un dépôt Git, juste à côté du README qui recommande de bien le protéger.
Ce qui arrive si on s'en passe
Sans EAB, un serveur ACME accepte la création d'un compte par n'importe quel client capable de joindre son point d'enregistrement : une clé de compte générée localement suffit, sans preuve que le demandeur est un client connu de l'autorité de certification. Sur une AC interne ou commerciale, toute machine du réseau peut alors ouvrir un compte et obtenir des certificats dès qu'elle réussit le défi de validation du domaine. Les règles attachées au compte client (domaines autorisés, profils et durées de validité, quotas) ne s'appliquent plus, puisque rien ne relie la demande à ce compte. La traçabilité recule aussi : chaque émission ne se rattache qu'à une clé ACME anonyme. Il devient alors plus difficile d'auditer les certificats émis et de révoquer de façon ciblée ceux d'un demandeur compromis.
Explication de la marmotte
Pour qu'un site internet affiche le petit cadenas, il lui faut une sorte de carte d'identité numérique, délivrée par un organisme de confiance. Souvent, c'est un programme automatique qui la demande, sans intervention humaine. Certains organismes veulent pourtant savoir à qui ils parlent avant de répondre. Ils remettent donc à leur client un code secret, un peu comme le code d'invitation d'une soirée privée. Le programme présente ce code lors de sa toute première visite. L'organisme sait alors que ce programme travaille bien pour ce client précis : il peut lui facturer le service ou lui appliquer ses propres règles. Sans le code, la porte reste fermée.
Où ce terme est utilisé
- Sécuriser ACME wildcard et external account binding (17 occurrences)
