GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce que la cryptographie à clé publique (comment fonctionnent les VPN, partie 2)

Cet article de la série « Comment fonctionnent les VPN » décrit le fonctionnement de la cryptographie à clé publique (chiffrement asymétrique). Si vous êtes déjà perdu, pas de panique ! Cette série d'articles est écrite pour expliquer les concepts et les méthodes derrière les VPN sans nécessiter une plongée approfondie dans les mathématiques qui les alimentent.

Si vous êtes complètement nouveau dans le concept des VPN, consultez cette introduction. Si vous connaissez déjà un peu le fonctionnement des VPN et que vous voulez en savoir un peu plus, cette série est pour vous. Chaque article aborde un aspect des moyens par lesquels un VPN aide à sécuriser les données en racontant une histoire qui sert de métaphore des mécanismes logiques impliqués. Ces histoires impliquent deux personnes, Adam et Burt, essayant de garder un secret et une troisième personne, Cesar, essayant de découvrir sournoisement leur secret. Étant donné que les VPN n'ont pas d'équivalent parfait dans le monde physique, certains éléments peuvent repousser les limites de la crédibilité (par exemple, Cesar a accès à un rayon duplicateur). Rappelez-vous, ce n'est qu'une histoire…

Chaque article a également des sections extensibles (indiquées par l'engrenage icône) qui contiennent une explication un peu plus approfondie qui est un peu plus technique mais évite tout de même de se perdre trop dans les mathématiques. Ces sections lient un peu plus les événements de l'histoire aux composants ou aux étapes de chiffrement ou d'authentification, mais ne sont pas nécessaires pour acquérir une compréhension de base du sujet.

Adam et Burt ont déjà découvert la faiblesse de l'utilisation d'un coffre-fort avec une clé symétrique partagée pour sécuriser les choses. Ainsi, Burt propose qu'ils essaient une nouvelle méthode dans laquelle chacun d'eux a son propre ensemble unique de clés (chiffrement asymétrique).

Cryptage à clé publique

La cryptographie à clé publique est une méthodologie de chiffrement asymétrique qui vise à maintenir la confidentialité sans jamais avoir à partager une clé secrète sur un canal non sécurisé (tel qu'un courrier électronique non chiffré). Dans cette explication, Adam et Burt ont chacun une serrure unique, mais pour le reste de cet exemple, nous couvrirons la serrure et les clés de Burt (la serrure et les clés d'Adam fonctionneront de la même manière). Chaque serrure a deux propriétés spéciales :premièrement, la serrure a deux clés distinctes et liées qui peuvent fonctionner avec elle, et deuxièmement, chaque clé qui fonctionne avec la serrure ne peut tourner dans la serrure que dans une direction - pour les besoins de cet exemple, ils ne tournent que dans le sens des aiguilles d'une montre.

Clés jumelées

Les deux clés de ce système asymétrique ne fonctionnent que par paire. Si Burt devait recléer cette serrure, il devrait créer deux nouvelles clés. Pour simplifier la distinction des deux touches, Burt les code par couleur. Il en fait un vert et l'autre rouge. Burt garde la clé rouge sécurisée (sa clé privée), mais il peut rendre la clé verte largement accessible à tous ceux qui le souhaitent (sa clé publique). Cela peut sembler contre-intuitif. Mais une caractéristique importante de ces clés est que, bien qu'elles soient liées, il est pratiquement impossible de comprendre une clé en se basant sur la connaissance de l'autre. Ainsi, une clé peut être rendue publique sans rien révéler de son homologue.


Systèmes de cryptographie à clé publique.

Ces clés sont, dans l'utilisation réelle, appelées les clés publiques et privées (les désignations de couleur servent à explication un peu plus facile à suivre). La génération de ces clés implique des mathématiques assez astucieuses et compliquées. (Ces algorithmes commencent par des calculs impliquant le produit de deux très grands nombres premiers et vont bien au-delà de la portée de cet exemple.) Les algorithmes courants utilisés dans la cryptographie à clé publique incluent RSA (du nom de ses créateurs, Rivest, Shamir et Adleman), DSA /DSS (algorithme de signature numérique/norme de signature numérique) et ECDSA (algorithme de signature numérique à courbe elliptique). Ce dernier algorithme utilise à la place les mathématiques autour des courbes elliptiques et est au moins aussi intimidant pour les mathématiciens que l'algorithme RSA.

La serrure dans le sens des aiguilles d'une montre (comment fonctionnent les touches)

En plus de ne fonctionner que dans le cadre d'une paire, ces clés ne fonctionnent également dans la serrure que dans une seule direction. Par exemple, Burt utilise la clé verte (publique) pour verrouiller la serrure, ce qui nécessite un demi-tour dans la serrure. Étant donné que la serrure ne fonctionne que dans un sens, la clé verte ne peut pas déverrouiller la serrure en inversant la direction comme une serrure ordinaire. À ce stade, en raison de la nature particulière de ce mécanisme de verrouillage, la seule façon de le déverrouiller est d'utiliser la clé rouge (privée) couplée.

De cette façon, lorsque la serrure est sécurisée avec la clé verte (publique), seule la personne qui possède la clé rouge (privée) peut l'ouvrir. C'est ainsi que Burt peut rendre la clé verte largement accessible au public. Il peut envoyer une copie de la clé verte à Adam (il pourrait même en mettre une copie à la disposition du public pour qu'elle soit récupérée ou dupliquée). Quiconque a une copie de cette clé verte peut verrouiller cette serrure, et à ce stade, seul Burt - en supposant qu'il garde sa clé rouge (privée) en sécurité - peut ouvrir la serrure. Maintenant, quand Adam veut envoyer quelque chose à Burt en toute sécurité, il peut utiliser la clé verte (publique) de Burt. De même, Adam aurait sa propre paire de clés, et il pourrait également mettre sa clé verte à la disposition de Burt (ou de n'importe qui d'autre).

Maintenant, si notre vaurien Cesar essayait de casser cette méthode de sécurité, il aurait besoin de casser deux serrures différentes pour obtenir toute la conversation. Même s'il était capable d'en dépasser une seule, il ne pourrait voir qu'une moitié de la conversation.


Chiffrement unidirectionnel.

Cette utilisation du cryptage à sens unique est employée dans certains échanges de courrier électronique sécurisés, comme avec l'utilisation de PGP (Pretty Good Privacy) ou GPG (Gnu Privacy Guard). Si vous avez déjà vu la mention de la clé publique PGP ou GPG de quelqu'un (et probablement d'un bloc de texte d'aspect aléatoire qui était la clé elle-même), vous pouvez comprendre pourquoi elle peut être publiée dans le cadre d'une signature électronique ou d'un document accessible au public. site Internet. Avec cette clé, n'importe qui peut chiffrer un e-mail que seul le possesseur de la clé privée (le destinataire) peut déchiffrer.

Une boîte à double verrouillage

Voici où Burt a une idée intelligente. Il place des illustrations pour la bande dessinée sur laquelle Adam et lui travaillent dans une boîte, place son cadenas sur la boîte et la sécurise avec sa clé verte (publique). Maintenant, il est la seule personne (puisqu'il a la seule copie de la clé rouge) qui peut déverrouiller cette boîte. Il envoie cette boîte à Adam.

Adam, n'ayant pas de copie de la clé rouge (privée) de Burt, ne peut pas déverrouiller la serrure. Mais il peut placer son propre cadenas sur la boîte. Il sécurise cette serrure avec sa propre clé verte (publique). Adam renvoie cette boîte verrouillée deux fois à Burt.

Burt récupère la boîte, et la seule façon de l'ouvrir est s'il a à la fois sa propre clé rouge et la clé rouge d'Adam. Mais Adam garde sa clé rouge aussi secrète que Burt garde sa propre clé rouge, donc Burt ne pourra pas ouvrir la boîte. Burt, cependant, ne veut pas ouvrir la boîte - rappelez-vous, il a commencé ce processus, alors il veut qu'Adam obtienne l'art contenu dans la boîte. Il peut cependant déverrouiller sa propre serrure avec sa propre clé rouge (privée). Quand il fait cela, la seule sécurité sur la boîte est le verrou qu'Adam a sécurisé.

Burt renvoie la boîte à Adam, et maintenant Adam, en utilisant sa clé rouge, déverrouille la serrure restante. Burt a envoyé ce colis avec succès et en toute sécurité. Cette méthode ajoute quelques couches de sécurité, en ce sens qu'il existe deux couches de verrouillage/cryptage et qu'aucune clé partagée ne doit jamais être échangée via un support potentiellement non sécurisé. Cependant, ce n'est pas un système très efficace s'ils ont besoin d'envoyer des messages plus sécurisés dans un délai plus court.


Doublez le cryptage.

Cette capacité est l'une des caractéristiques intéressantes des mathématiques derrière la cryptographie à clé publique. Un message peut être chiffré plusieurs fois; puis, lors du décryptage, ce décryptage peut être effectué dans n'importe quel ordre. Cela fonctionne de manière commutative comme certaines fonctions mathématiques simples fonctionnent. Par exemple, si vous deviez commencer par le nombre 10 et ajouter trois autres nombres - disons, 3, 5 et 7 (donc, 10 + 3 + 5 + 7 pour obtenir 25), vous pourriez alors les soustraire de votre total dans tout ordre pour revenir au même nombre d'origine (25 – 5 – 7 – 3 =10). Bien sûr, les mathématiques derrière cette cryptographie sont beaucoup plus complexes.

Une serrure compliquée et robuste

Alors qu'Adam et Burt ont maintenant mis au point une méthode de cryptographie à clé publique, ce n'est pas sans inconvénients. Cette méthode de boîte à double verrouillage pour sécuriser la communication prend trois fois plus de temps par message. De plus, les méthodes de cryptographie à clé publique ont tendance à demander plus de travail lorsqu'il s'agit d'effectuer le chiffrement ou le déchiffrement. Dans l'exemple ci-dessus, imaginez qu'au lieu que chaque clé tourne dans la serrure d'un demi-tour, elle nécessite 10 rotations complètes. Cela signifierait 40 rotations (Burt verrouille (10) + Adam verrouille (10) + Burt déverrouille (10) + Adam déverrouille (10)) par message !

Il y a cependant un avantage à cette inefficacité. Si Cesar devait utiliser un appareil qui pourrait simuler n'importe quelle clé, et en supposant que pour ouvrir l'une de ces serrures nécessite les 10 rotations complètes juste pour voir si cette clé fonctionne, alors le temps qu'il lui faudrait pour essayer chaque combinaison de clé (une brute Force Attack) augmente également d'un facteur 10.


Comment des clés plus grandes améliorent la sécurité.

La longueur d'une clé de chiffrement est mesurée en bits. Plus la longueur en bits de la clé est grande, plus cette clé est découverte via des tentatives de craquage par force brute. Plus la longueur en bits de la clé est grande, plus le travail requis pour effectuer le chiffrement ou le déchiffrement augmente. Cependant, étant donné que les algorithmes de chiffrement asymétrique et symétrique fonctionnent de différentes manières, leurs longueurs de clé ne sont pas directement comparables. Par exemple, une clé RSA (asymétrique) de 1 024 bits a à peu près la même force qu'une clé symétrique de 80 bits. Il existe des outils disponibles pour comparer les longueurs de clé relatives entre les différentes méthodes de chiffrement, telles que celle gérée par BlueKrypt, qui peuvent aider à éclairer la différence de coût de calcul entre ces méthodes.

Ces différences mettent en évidence l'une des principales énigmes de la sécurité informatique :la sécurité par rapport à la commodité. Le travail effectué pour améliorer l'un se fait souvent au détriment de l'autre. L'augmentation de la longueur en bits de la clé de chiffrement augmente sa force, mais cela signifie également qu'il faudra plus de temps pour effectuer ce chiffrement et ce déchiffrement. Lorsque des mesures sont prises pour améliorer la commodité, telles que l'augmentation de la puissance de calcul ou la réduction de la longueur de la clé, ces mêmes mesures signifient également qu'il faut moins de travail pour réussir à deviner la clé par des méthodes de force brute.

Plus d'informations dans la série "Comment fonctionnent les VPN"

Partie 1 :Algorithmes de chiffrement symétrique
Partie 3 :Échange de clés partagées
En savoir plus sur les services d'Atlantic.Net, y compris l'hébergement VPS.


Linux
  1. Qu'est-ce qu'un Makefile et comment ça marche ?

  2. Qu'est-ce qu'un serveur Web et comment fonctionne un serveur Web ?

  3. Qu'est-ce que le DNS et comment ça marche ?

  4. Qu'est-ce que l'échange de clés partagées (comment fonctionnent les VPN, partie 3)

  5. comment mettre à jour homebrew avec Cron sur Mac os

Comment configurer la clé publique et privée SSH sous Linux

Qu'est-ce que Docker ? Comment ça marche?

Comment ajouter une clé publique SSH au serveur

Qu'est-ce que la commande source sous Linux et comment ça marche ?

Comment fonctionne un équilibreur de charge ? Qu'est-ce que l'équilibrage de charge ?

Qu'est-ce que le chiffrement à clé symétrique (comment fonctionnent les VPN, partie 1)