Ouais alors le double anonymat ça me fait bien rire... Je viens d'essayer vite fait un site qui utilise justement Yoti pour la vérification d'âge... Et l'identité du service est tranquillement passée à Yoti via le header "Referer".
Yoti fait payer le service, donc il faut forcément qu'il sache qui fait la demande.
La solution de la CNIL isole un minimum en passant par l'utilisateur, ce qui peut aussi éviter certains bugs d'implémentation (mais c'est plus contraignant).
Là le tiers certifié ne connait pas le service demandeur, donc il ne peut rien lui facturer : soit c'est gratuit, soit c'est l'utilisateur qui paye.
Mais même en vérifiant ces échanges indirects :
- le challenge généré par le service : à part s'il est très court, il pourrait cacher des informations (identifiant du service ou du compte) qu'un tiers complice pourrait lire
- signature du challenge : si c'est un partenaire unique type Yoti (et pas au choix de l'utilisateur), le service et le tiers pourraient s'être mis d'accord sur une signature plus courte (et des données chiffrées ajoutées derrière, l'ensemble aurait la taille de la signature attendue)
Donc pour faire mieux, par exemple :
- l'utilisateur reçoit "challenge" du service
- il choisit un nombre aléatoire "random", et calcule challenge2 = hash(challenge . random) : challenge2 n'est ni choisi par l'utilisateur (impossible de réutiliser des anciens challenges déjà signés), ni par le service (impossible d'y cacher des informations)
- l'utilisateur transmet uniquement challenge2 au tiers, qui le signe
- l'utilisateur vérifie la signature (exactement comme le service le ferait) pour s'assurer qu'elle ne comporte pas de données supplémentaires
- l'utilisateur transmet challenge, random, et la signature de challenge2 au service (qui peut donc identifier le challenge qu'il avait donné, calculer challenge2 puis vérifier la signature)
Dans ce cas, ça me semble sécurisé, tant que le service et le tiers n'ont pas de canal d'échange parallèle (ce qui peut être limité en laissant le choix du tiers à l'utilisateur, comme proposé par la CNIL).