En cryptographie, la toile de confiance est un concept utilisé par PGP, GnuPG, ainsi que d'autres applications compatibles avec OpenPGP. La toile de confiance permet de vérifier la relation entre une clé publique et une identité numérique.
C'est un modèle de confiance décentralisé, une alternative aux modèles de confiance centralisés de la plupart des autres infrastructures à clés publiques.
Contrairement aux modèles centralisés où la confiance que l'on peut prêter ne passe que par une autorité de certification (CA ou hiérarchie de CA) dont on ne sait rien pour la plupart, une toile de confiance est relative à un individu qui peut choisir lui-même les tiers (en général d'autres personnes physiques) à qui il fait confiance.
De ce fait, il existe de nombreuses toiles de confiance indépendantes. N'importe qui peut en faire partie (via son propre certificat), et être un lien entre différentes toiles.
Le concept de toile de confiance aurait été initialement décrit par Philip Zimmermann, créateur de PGP, dans le manuel de PGP 2.0, en 1992. C'est l'expression « web of confidence » (plus tard « web of trust ») qui est employée dans le guide de l'utilisateur de PGP 2.6.2, publié deux ans après, en octobre 1994[1].
Dans OpenPGP, les certificats d'identité sont vérifiés par la signature numérique d'autres utilisateurs. Ces utilisateurs, en signant ce certificat, peuvent renforcer (pour d'autres) l'association entre une clé publique et la personne ou l'entité désignée par ce certificat. Cette action est habituellement effectuée lors de key signing parties.
Dans la pratique, un certificat reçu par Jean est considéré comme valide :
Ces paramètres sont ajustables par l'utilisateur, en fonction de ses besoins. Ils peuvent même être complètement ignorés.
Pour simplifier, chaque utilisateur a deux clés : une clé privée et une clé publique. La clé privée n'est connue que de son utilisateur, mais la clé publique peut être diffusée à tout le monde. Ce principe a essentiellement deux emplois :
Le principe de toile de confiance est alors assez simple :
Ce système assure que c'est bien Paul qui envoie un message. En effet, Paul envoie un message signé avec sa clé privée, et, s'il n'utilise pas de serveur de clés, un certificat contenant des signatures de personnes qui peuvent confirmer que c'est bien Paul qui détient ce certificat. Il suffit de vérifier les signatures du certificat pour vérifier que c'est bien Paul qui l'a envoyé. Si on ne fait pas confiance aux signataires, on ne peut valider que c'est bien Paul qui possède la clé privée associée à cette signature, et donc que c'est bien lui qui a signé. Dans ce cas la signature peut être bonne (faite par un certain Paul) mais invalide (on n'est pas sûr que ce Paul existe vraiment).
Le strong set désigne le plus grand ensemble de clés PGP reliées entre elles par des signatures valides[2]. C'est la base d'un réseau de confiance universel.
Toutes les clés dans le strong set ont un chemin entre elles. Bien que des groupes de clés isolés (non reliés au strong set) puissent exister, il suffit qu'un membre d'un tel groupe signe la clé et fasse signer sa clé par un membre du strong set pour que le groupe isolé devienne une partie du strong set[3].
Le strong set contenait environ 55 000 clés au début de l'année 2015[4].
Il existe plusieurs toiles de confiance cryptographiques publiques à grande échelle parmi lesquelles :
Ces toiles de confiance ont des applications diverses incluant la preuve d'identité (en).