Annexe A. Justification de conception
Annexe A. Justification de conception
Le défi TLS ALPN existe pour faire évoluer le défi TLS SNI défini dans les premiers brouillons d'ACME. Le défi TLS SNI était pratique pour les fournisseurs de services qui exploitaient de grands systèmes d'équilibrage de charge au niveau TLS sur lesquels ils souhaitaient effectuer la validation, ou des serveurs frontaux pour de nombreux noms DNS depuis un hôte unique, car il permettait une validation entièrement au niveau TLS. La valeur apportée par le défi TLS SNI était jugée suffisante pour que ce document soit rédigé afin de fournir un nouveau type de défi répondant aux préoccupations de sécurité existantes.
Un problème de sécurité dans le défi TLS SNI a été découvert par Frans Rosen. Il permettait à des utilisateurs de divers fournisseurs de services de valider de manière illégitime le contrôle de noms DNS appartenant à d'autres utilisateurs du même fournisseur. Lorsque le défi TLS SNI a été conçu, on supposait qu'un utilisateur ne pourrait répondre au trafic TLS via SNI que pour les noms de domaine qu'il avait enregistrés auprès d'un fournisseur de services; par exemple, si un utilisateur enregistrait a.example, il ne pourrait répondre qu'aux requêtes SNI pour a.example et non à celles pour b.example. Il s'est avéré qu'un certain nombre de grands fournisseurs de services ne respectaient pas cette propriété.
À cause de cela, des utilisateurs pouvaient répondre aux requêtes SNI portant sur les noms utilisés par le processus de validation du défi TLS SNI. Cela signifiait que, si les utilisateurs A et B avaient respectivement enregistré les hôtes A et B, l'utilisateur A pouvait revendiquer le nom SNI construit pour l'hôte B et, lorsque la connexion de validation était établie, répondre à cette connexion, prouvant ainsi le contrôle de l'hôte B. Comme le nom SNI utilisé était un sous-domaine du nom de domaine validé, plutôt que le nom de domaine lui-même, il était probable qu'il ne soit pas déjà enregistré auprès du fournisseur de services pour le routage du trafic, ce qui rendait le détournement beaucoup plus facile.