RSA est un système de cryptographie à clé publique utilisé pour sécuriser les données transmises sur Internet. Il est le plus couramment utilisé dans l’établissement d’une session SSL / TLS – et par le protocole OpenVPN (et parfois IKEv2) pour sécuriser la négociation TLS.
Cet algorithme est appelé RSA en raison des noms de famille des trois hommes qui l’ont proposé en 1977 (Ron Rivest, Adi Shamir et Leonard Adleman). Il s’agit d’un système de cryptage asymétrique qui utilise deux clés RSA, appelées paire de clés.
Comme avec d’autres systèmes de chiffrement à clé publique, l’échange de clé RSA implique le partage d’une clé publique dérivée de la clé privée au moment de la génération. Dans ce type de système de cryptage, toute personne ayant accès à la clé privée peut déduire la clé publique.
En raison du système mathématique complexe impliqué, l’inverse (dériver la clé privée de la clé publique) est impossible. C’est pourquoi il est sûr de partager la clé publique sur Internet pour établir une connexion sécurisée et commencer à partager des données cryptées.
Échange de clés RSA
La chose importante à retenir est qu’avant de pouvoir partager des données cryptées sur Internet, il est d’abord nécessaire d’établir une connexion sécurisée entre le client et le serveur.
Pour ce faire, un échange de clés – appelé prise de contact – doit avoir lieu afin que les deux parties puissent s’entendre sur les clés qui seront utilisées pour crypter les données.
Actuellement, il existe cinq algorithmes différents que les clients peuvent utiliser pour effectuer cet échange de clés, dont RSA fait partie. Nous avons inclus les cinq algorithmes ci-dessous:
- RSA
- Diffie-Hellman
- Courbe elliptique Diffie-Hellman
- Diffie-Hellman éphémère
- Courbe elliptique éphémère Diffie-Hellman
Il est à noter que certains clients (comme le protocole WireGuard) exploitent d’autres primitives cryptographiques telles que Curve25519 pour établir la poignée de main. Cependant, il ne s’agit encore que d’une courbe elliptique conçue pour être utilisée avec le schéma d’accord de clé Diffie – Hellman de courbe elliptique mentionné ci-dessus.
Les clés RSA
La paire de clés RSA est le nom des clés publiques et privées utilisées par l’algorithme RSA. La clé RSA publique est la clé de chiffrement, tandis que la clé privée (qui doit être gardée secrète pour garantir que seul le destinataire prévu peut lire les données) est la clé de déchiffrement.
Une chose à noter est que l’algorithme RSA est en fait assez lent, principalement en raison de sa nature asymétrique. En conséquence, les protocoles utilisent souvent RSA dans le cadre d’une suite de chiffrement pour transmettre des clés partagées pour clé symétrique cryptographie, qui sont ensuite utilisées pour le cryptage / décryptage en masse.
Ainsi, RSA n’est généralement pas utilisé pour crypter les données en masse lui-même, mais plutôt pour établir les moyens de partager des données cryptées avec un algorithme de cryptage symétrique plus rapide comme AES.
Clés RSA et VPN
Si votre fournisseur VPN utilise le protocole OpenVPN ou SSTP pour établir un tunnel sécurisé entre vous et ses serveurs VPN, cela signifie que le client VPN utilise des clés RSA pour sécuriser la prise de contact TLS.
Le protocole OpenVPN utilise RSA sur le canal de contrôle pour transmettre les clés symétriques requises pour le cryptage AES utilisé sur le canal de données. Pour que cette prise de contact soit sécurisée, la taille de la clé RSA doit être au minimum de 2048 bits.
De nos jours, de nombreux fournisseurs de VPN utilisent des clés de 4096 bits, mais la plupart des experts ne considèrent pas cela strictement nécessaire à des fins de sécurité. Ainsi, un tunnel OpenVPN établi avec une taille de clé de prise de contact RSA de 2048 bits n’est pas encore considéré comme un sujet de préoccupation.
Enfin, il convient également de noter que certains VPN utilisent également RSA pour sécuriser la prise de contact TLS dans leur implémentation d’IKEv2 (comme ProtonVPN, par exemple, qui implémente IKEv2 avec un chiffrement symétrique AES-256 utilisant RSA-4096 pour sécuriser la prise de contact TLS ).