« Toile de confiance » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Jbar (discuter | contributions)
mAucun résumé des modifications
m ajoute bright id comme exemple de toile de confiance publique
 
(37 versions intermédiaires par 24 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
[[Fichier:Web of Trust-en.svg|vignette|420x420px|Toile de confiance de l'utilisateur Ingo (en jaune). Il a une confiance directe en ses amis (en rouge) et une confiance indirecte en les utilisateurs en bleu.]]
En [[cryptographie]], la '''toile de confiance''' est un concept utilisé dans [[PGP]], [[GnuPG]], ainsi que d'autre systèmes compatibles avec [[OpenPGP]]. La toile de confiance permet de vérifier la relation entre une [[clé publique]] et son possesseur.<br />
En [[cryptographie]], la '''toile de confiance''' est un concept utilisé par [[Pretty Good Privacy|PGP]], [[GNU Privacy Guard|GnuPG]], ainsi que d'autres applications compatibles avec [[OpenPGP]]. La toile de confiance permet de vérifier la relation entre une [[Clé de chiffrement|clé publique]] et une [[identité numérique]].


C'est un modèle de confiance décentralisé, en alternative aux modèles de confiance centralisé de la plupart des autres [[public key infrastructure|PKI]]. Contrairement aux modèles centralisés la confiance que l'on peut prêter ne passe que par une autorité de certification ([[Certificate_Authority|CA]] ou hiérarchie de CA) dont la plupart ne sait rien, 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.
C'est un modèle de confiance décentralisé, une alternative aux modèles de confiance centralisés de la plupart des autres [[infrastructure à clés publiques|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 confiances indépendantes. N'importe qui peut en faire parti (via son propre certificat), et être un lien entre différentes toiles.<br />


De ce fait, il existe de nombreuses toiles de confiances 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 a été élaboré initialement par [[Phil Zimmermann]], créateur de PGP, en 1992, dans la version 2.0 du manuel de PGP.


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 en informatique|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 en informatique|1994]]<ref>{{en}} [http://www.pa.msu.edu/reference/pgpdoc1.html#section-7.7 « How Does PGP Keep Track of Which Keys are Valid? »], ''PGP User's Guide, Volume I: Essential Topics'', 11 octobre 1994.</ref>.
== Fonctionnement d'une toile de confiance ==

Dans OpenPGP, les certificats d'identité sont vérifiés par la signature numérique d'autres utilisateurs. Ces utilisateurs, en signant ce certificat, vont endosser la responsabilité de l'association entre une clé publique et la personne ou l'entité désignée par ce certificat. Cette action est habituellement faite lors de [[Key_signing_party|key signing parties]]. <br />
== Fonctionnement ==
Dans OpenPGP, les [[Certificat électronique|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 party|key signing parties]]''.


Dans la pratique, un certificat reçu par Jean est considéré comme valide :
Dans la pratique, un certificat reçu par Jean est considéré comme valide :
* Si Jean l'a lui même signé
* si Jean l'a lui-même signé ;
* Ou si le certificat est signé par une personne auquel Jean a donné sa confiance totale
* ou si le certificat est signé par une personne à laquelle Jean a donné sa confiance totale ;
* Ou si le certificat est signé par 3 personnes auquel Jean a donné sa confiance partielle
* ou si le certificat est signé par trois personnes auxquelles Jean a donné une confiance partielle.


Ces paramètres sont ajustables par l'utilisateur, en fonction de ses besoins. Ils peuvent même être complètement ignorés.
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 2 clés : sa clé privée, et sa clé publique. Le clé privée n'est connu que de son utilisateur. Mais la clé publique est diffusée à tout le monde. <br />
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 [[chiffrement]]
Basiquement, ce mécanisme permet 2 utilisations différentes :
:Un message est chiffré avec la clé publique du destinataire. Ce dernier utilise sa clé privée pour le déchiffrer avant de le lire.
* Le '''chiffrement'''
* la [[Signature numérique|signature]]
:Pour chiffrer un message, on utilise notre clé privée. Pour que le récepteur puisse le lire, il utilise notre clé publique.
:L'origine d'un message peut être attestée par une signature, identifiant unique de ce message, chiffré avec la clé privée de l'expéditeur. Techniquement, cet identifiant est une [[Fonction de hachage|empreinte cryptographique]] du message.
* La '''signature'''
:Pour vérifier qu'on est à l'origine d'une message, on ajoute notre signature à la fin de ce dernier. Cette signature est l'identifiant, unique, de ce message, chiffré par notre clé privée.
:Pour vérifier l'origine du message, il suffit d'en déchiffrer la signature avec la clé publique de l'expéditeur. Si la valeur trouvée est égale à l'empreinte du message calculée localement, le message est authentique.
:Pour vérifier qu'on est à l'origine du message, il suffit de déchiffrer l'identifiant du message via notre clé publique. Si la valeur trouvée est égal à l'identifiant du message, nous sommes bien l'expéditeur. Techniquement, l'identifiant est un [[hash]] du message.


Le principe de toile de confiance est alors assez simple :
* Jean signe l'identifiant <tt>Paul</tt> dans le certificat de Paul ;
* lorsque Marie veut vérifier que Jean a signé <tt>Paul</tt>, elle utilise la clé publique de Jean pour vérifier sa signature dans le certificat de Paul ;
* Marie fait confiance à Jean. Elle reçoit un message signé de Paul. Elle vérifie que la signature est bonne avec la clé publique de Paul (clé récupérée le plus souvent depuis un [[serveur de clés]]). Comme elle fait pleinement confiance à Jean, elle valide de plus le fait que c'est bien Paul qui a signé ce message.


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).


== Strong Set ==
Le principe de signature est alors assez simple :
Le '''{{lang|en|strong set}}''' désigne le plus grand ensemble de clés [[OpenPGP|PGP]] reliées entre elles par des signatures valides<ref>{{lien web|langue=en|url=https://people.apache.org/~henkp/trust/|consulté le=13 décembre 2013|nom=Penning|prénom=Henk|archiveurl=https://www.webcitation.org/6Lqb2qiaO|archivedate=13 décembre 2013|titre=on the apache.org web of trust|deadurl=no}}</ref>. C'est la base d'un réseau de confiance universel.
* Jean signe l'identifiant "Paul" dans le certificat de Paul.
* Lorsque quelqu'un veut vérifier que Jean a signé Paul, il utilise la clé publique de Jean pour vérifier sa signature dans le certificat de Paul.
* Marie fait confiance à Jean. Elle reçoit un message signé de Paul. Elle vérifie que la signature est bonne via la clé publique de Paul (clé récupérée le plus souvent depuis un [[serveur de clés]]). Comme elle fait pleinement confiance à Jean, elle valide de plus le fait que c'est bien Paul qui a signé ce message.


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<ref>{{lien brisé|langue=en|url=http://dtype.org/keyanalyze/explanation.php|archiveurl=https://web.archive.org/web/20090203235946/http://dtype.org/keyanalyze/explanation.php|archivedate=3 février 2009|nom=Streib|prénom=M. Drew|consulté le=13 décembre 2013|titre=Explanation of this Keyring Analysis|deadurl=yes}}</ref>.


Le strong set contenait environ {{unité|55000|clés}} au début de l'année 2015<ref>{{lien web|langue=en|url=http://pgp.cs.uu.nl/plot/|nom=Penning|prénom=Henk P.|consulté le=8 janvier 2015|titre=analysis of the strong set in the PGP web of trust|deadurl=no}}</ref>.
Ce système assure que c'est bien Paul qui envoi un message. En effet, Paul envoi un message signé avec sa clé privée, et, si 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 envoi le message. <br />
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é a 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 est pas sûr que ce "Paul" existe vraiment).<br />


== À voir aussi ==
== Toiles de confiance publiques ==
Il existe plusieurs toiles de confiance cryptographiques publiques à grande échelle parmi lesquelles :

* le "strong set" PGP évoqué ci-dessus ({{unité|55000|clés}} en 2015)

* la toile de confiance [[Debian]] utilisée pour signer des paquets logiciels ({{unité|1500|clés}} en 2016<ref>{{Article|prénom1=Gunnar|nom1=Wolf|prénom2=Víctor González|nom2=Quiroga|titre=Insights on the large-scale deployment of a curated Web-of-Trust: the Debian project’s cryptographic keyring|périodique=Journal of Internet Services and Applications|volume=9|numéro=1|date=2018-05-16|issn=1869-0238|doi=10.1186/s13174-018-0082-7|lire en ligne=https://doi.org/10.1186/s13174-018-0082-7|consulté le=2023-09-25|pages=11}}</ref>)
* la toile de confiance [[Bitcoin]] OTC utilisée dans les places d'échanges Bitcoin ({{unité|5900|membres}} en 2023<ref>{{Lien web |titre=#bitcoin-otc web of trust |url=https://bitcoin-otc.com/trust.php |site=bitcoin-otc.com |consulté le=2023-09-25}}</ref>)
* la toile de confiance [[Duniter]] utilisée pour la [[Ğ1|monnaie Ğ1]] ({{unité|8400|clés}} en 2023<ref>{{Lien web |titre=Duniter {{!}} Web of trust |url=https://duniter.org/wiki/web-of-trust/ |site=duniter.org |consulté le=2023-09-25}}</ref>)
* la toile de confiance [https://www.brightid.org/ BrightID] (12 697 "trust units" en 2024<ref>{{Lien web |titre=BrightID Graph Explorer |url=https://explorer.brightid.org/# |site=explorer.brightid.org |consulté le=2024-02-09}}</ref>)

Ces toiles de confiance ont des applications diverses incluant la {{Lien|lang=en|trad=Proof of personhood|fr=preuve d'identité}}.

== Notes et références ==
{{Références}}

== Voir aussi ==
=== Articles connexes ===
* [[Key signing party]]
* [[Key signing party]]
* [[Infrastructure à clés publiques]]
* [[Infrastructure à clés publiques]]
* [[Certificat électronique]]
* [[Certificat électronique]]
* [[Six degrés de séparation]]


== Liens externes ==
=== Liens externes ===
* [http://Manuel%20de%20GnuGPG http://www.gnupg.org/gph/fr/manual.html#AEN562]
* [https://www.gnupg.org/gph/fr/manual.html#AEN562 Le manuel de GNU Privacy Guard : Construisez votre réseau de confiance]
* http://www.gnu.org/software/gnutls/openpgp.html
* {{en}} [https://www.gnutls.org/openpgp.html GnuTLS OpenPGP key support: The OpenPGP trust model]


{{Portail|cryptologie|sécurité de l'information|sécurité informatique}}
[[de:Web of Trust]]
[[es:Anillo de confianza]]
[[fr:Toile de confiance]]
[[it:Web of trust]]
[[nl:Web van vertrouwen]]
[[pl:Sieć zaufania]]
[[vi:Mạng lưới tín nhiệm]]
[[cs:Síť důvěry]]

{{Palette informatique théorique}}
{{Portail|Cryptologie|Sécurité de l'information|Sécurité informatique}}


[[Catégorie:Cryptologie]]
[[Catégorie:Cryptologie]]
[[Catégorie:Gestion de clé]]

[[ja:公開鍵基盤#信用の輪(Web of Trust)]]

Dernière version du 9 février 2024 à 13:58

Toile de confiance de l'utilisateur Ingo (en jaune). Il a une confiance directe en ses amis (en rouge) et une confiance indirecte en les utilisateurs en bleu.

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 confiances 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].

Fonctionnement[modifier | modifier le code]

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 :

  • si Jean l'a lui-même signé ;
  • ou si le certificat est signé par une personne à laquelle Jean a donné sa confiance totale ;
  • ou si le certificat est signé par trois personnes auxquelles Jean a donné une confiance partielle.

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 :

Un message est chiffré avec la clé publique du destinataire. Ce dernier utilise sa clé privée pour le déchiffrer avant de le lire.
L'origine d'un message peut être attestée par une signature, identifiant unique de ce message, chiffré avec la clé privée de l'expéditeur. Techniquement, cet identifiant est une empreinte cryptographique du message.
Pour vérifier l'origine du message, il suffit d'en déchiffrer la signature avec la clé publique de l'expéditeur. Si la valeur trouvée est égale à l'empreinte du message calculée localement, le message est authentique.

Le principe de toile de confiance est alors assez simple :

  • Jean signe l'identifiant Paul dans le certificat de Paul ;
  • lorsque Marie veut vérifier que Jean a signé Paul, elle utilise la clé publique de Jean pour vérifier sa signature dans le certificat de Paul ;
  • Marie fait confiance à Jean. Elle reçoit un message signé de Paul. Elle vérifie que la signature est bonne avec la clé publique de Paul (clé récupérée le plus souvent depuis un serveur de clés). Comme elle fait pleinement confiance à Jean, elle valide de plus le fait que c'est bien Paul qui a signé ce message.

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).

Strong Set[modifier | modifier le code]

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].

Toiles de confiance publiques[modifier | modifier le code]

Il existe plusieurs toiles de confiance cryptographiques publiques à grande échelle parmi lesquelles :

  • le "strong set" PGP évoqué ci-dessus (55 000 clés en 2015)
  • la toile de confiance Debian utilisée pour signer des paquets logiciels (1 500 clés en 2016[5])
  • la toile de confiance Bitcoin OTC utilisée dans les places d'échanges Bitcoin (5 900 membres en 2023[6])
  • la toile de confiance Duniter utilisée pour la monnaie Ğ1 (8 400 clés en 2023[7])
  • la toile de confiance BrightID (12 697 "trust units" en 2024[8])

Ces toiles de confiance ont des applications diverses incluant la preuve d'identité (en).

Notes et références[modifier | modifier le code]

  1. (en) « How Does PGP Keep Track of Which Keys are Valid? », PGP User's Guide, Volume I: Essential Topics, 11 octobre 1994.
  2. (en) Henk Penning, « on the apache.org web of trust » [archive du ] (consulté le )
  3. (en) M. Drew Streib, « Explanation of this Keyring Analysis » [archive du ] (consulté le )
  4. (en) Henk P. Penning, « analysis of the strong set in the PGP web of trust »(Archive.orgWikiwixArchive.isGoogleQue faire ?) (consulté le )
  5. Gunnar Wolf et Víctor González Quiroga, « Insights on the large-scale deployment of a curated Web-of-Trust: the Debian project’s cryptographic keyring », Journal of Internet Services and Applications, vol. 9, no 1,‎ , p. 11 (ISSN 1869-0238, DOI 10.1186/s13174-018-0082-7, lire en ligne, consulté le )
  6. « #bitcoin-otc web of trust », sur bitcoin-otc.com (consulté le )
  7. « Duniter | Web of trust », sur duniter.org (consulté le )
  8. « BrightID Graph Explorer », sur explorer.brightid.org (consulté le )

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]