RSA est un algorithme cryptographique répandu et sécurisé qui permet de chiffrer et déchiffrer les données. Il offre une méthode sûre pour transmettre des données sensibles sur Internet. Malgré quelques vulnérabilités, RSA est toujours employé dans de nombreuses applications, notamment pour appliquer des signatures numériques afin d’authentifier la source d’un message.
Cet article décrit ce qu’est RSA, son fonctionnement et ses principales applications. Il s’intéresse également aux vulnérabilités de sécurité de RSA et propose des pistes pour les atténuer.
Splunk est fier d’avoir été désigné leader du domaine du SIEM par Forrester, Gartner® et IDC. Téléchargez le dernier Magic Quadrant pour comprendre pourquoi. Recevoir le rapport →
En savoir plus sur les solutions et les produits Splunk pour la sécurité :
Rivest Shamir Adleman (RSA) est un célèbre algorithme de clé publique ou de cryptographie asymétrique. Il protège les données sensibles en les chiffrant et en les déchiffrant à l’aide d’une paire de clés : une clé publique et une clé privée.
Inventé en 1977 par Ron Rivest, Adi Shamir et Leonard Adleman du Massachusetts Institute of Technology, l’algorithme RSA tire son nom de leurs initiales.
Le domaine des réseaux informatiques, en pleine expansion à l’époque, avait besoin d’une solution pour sécuriser les communications numériques. C’est dans cette optique que RSA a été développé en 1977. RSA a pour principal objectif d’assurer la transmission sécurisée des données sur des réseaux non sécurisés, afin de permettre des communications privées via Internet et d’autres systèmes électroniques.
Dans les systèmes cryptographiques traditionnels, la distribution sécurisée des clés était un véritable défi. Il fallait que les deux parties échangent une clé secrète avant d’envoyer ou de recevoir un message. Avec RSA, la cryptographie par clé publique permet aux utilisateurs de diffuser librement leur clé publique tout en préservant la confidentialité de leur clé privée. Cette approche résout le problème de la distribution des clés et permet aux utilisateurs de communiquer en toute sécurité, sans avoir à échanger leurs clés dans un premier temps.
Pour toutes ces raisons, RSA est l’un des mécanismes de chiffrement les plus employés au monde. Mais en raison de la complexité des calculs qu’il impose, RSA n’est pas adapté au chiffrement de grandes quantités de données.
Pour parvenir à cet objectif, on utilise RSA pour chiffrer une clé symétrique. Cette clé est ensuite utilisée pour chiffrer les données réelles, quel que soit leur volume. Cette approche hybride utilise à la fois la cryptographie asymétrique et symétrique pour maximiser l’efficacité du chiffrement.
(Lisez notre introduction à AES, une autre norme de chiffrement courante.)
RSA repose sur la factorisation de grands nombres entiers. Vous devez d’abord choisir deux grands nombres premiers pour la paire de clés, qui seront difficiles à factoriser. Ces nombres premiers doivent donc être sélectionnés de façon aléatoire et distants d’une différence conséquente. Imaginons que vous avez choisi les deux nombres premiers p et q.
L’algorithme calcule leur produit : n = p*q. Les valeurs de p et q doivent rester secrètes, tandis que n, qui sera utilisé comme module des clés publiques et privées, doit être rendu public.
Ensuite, on calcule la fonction indicatrice de Carmichael en utilisant p et q, puis on sélectionne l’entier e, dont la valeur sera utilisée comme exposant public. L’étape suivante consiste à calculer la valeur de d, qui fera office d’exposant privé.
La clé publique correspond à la paire (n, e), tandis que la clé privée correspond à la paire (n, d).
RSA s’appuie sur la difficulté de factoriser les grands nombres premiers (nous y reviendrons plus tard). La sécurité de RSA dépend de la longueur de la clé. Si RSA est actuellement considéré comme sécurisé, il reste vulnérable aux menaces à venir, à commencer par celle de l’informatique quantique.
Les algorithmes quantiques, et notamment l’algorithme de Shor, peuvent rapidement factoriser de grands nombres, ce qui rendrait RSA obsolète. Contre les attaques traditionnelles, RSA est sûr lorsque la clé est longue (2048 bits ou plus). Toutefois, les progrès accomplis dans la puissance de calcul pourraient mettre sa fiabilité à l’épreuve à l’avenir.
Que se passe-t-il si quelqu’un parvient à casser RSA ? Le principal danger réside naturellement dans l’exposition de données sensibles (informations financières ou personnelles, par exemple). Les signatures numériques ne seront plus fiables, et les systèmes financiers et juridiques en souffriront.
Pour gérer ce risque, la cryptographie post-quantique, notamment illustrée par le chiffrement basé sur un réseau de treillis fait actuellement l’objet d’études comme solution pour garantir la sécurité des données dans un mode où RSA est vulnérable.
RSA est employé dans de nombreuses applications de sécurité de l’information et de cryptographie. Voici quelques applications courantes :
Une signature numérique est une technique qui permet au destinataire d’un message de vérifier son authenticité, son intégrité et sa non-répudiation. Elle prouve que le message n’a pas été altéré pendant son transport.
Pour créer une signature numérique, l’expéditeur commence par générer une valeur hash du message en utilisant une fonction de hachage cryptographique. Il le signe ensuite en appliquant l’algorithme RSA avec la clé privée, pour obtenir en sortie la signature numérique. Le destinataire peut ensuite appliquer l’algorithme RSA à la signature numérique en utilisant la clé publique de l’expéditeur.
Vous pouvez également vérifier la signature en la comparant à la valeur hash générée sur le message.
RSA est largement employé pour créer des certificats numériques, et notamment des certificats SSL. Ces certificats peuvent être utilisés pour vérifier l’identité des individus ou des organisations qui exploitent des sites web.
Les certificats numériques utilisent RSA pour chiffrer la signature numérique de l’émetteur, signature qui peut ensuite être vérifiée à l’aide de sa clé publique. Le certificat numérique comprend des informations telles que le nom de domaine et l’organisation qui exploite le site web, afin de prouver la légitimité du site auprès des visiteurs.
RSA chiffre la communication entre les deux parties sur un réseau non sécurisé tel qu’Internet. On utilise par exemple RSA avec le protocole TLS (sécurité de la couche de transport) pour établir une connexion sécurisée entre les serveurs web et les navigateurs web. RSA contribue également à sécuriser les communications par e-mail en offrant une méthode pour chiffrer et déchiffrer les messages.
On l’emploie également pour créer des réseaux privés virtuels (VPN). Les VPN utilisent TLS pour établir la liaison entre les deux parties qui échangent des informations. La poignée de main TLS dépend de l’algorithme RSA pour authentifier l’identité des deux parties impliquées dans l’échange.
RSA permet également à deux parties d’échanger une clé de façon sécurisée, même si elles n’ont encore jamais partagé de clé secrète. Les deux parties impliquées génèrent une paire de clés publique-privée à l’aide de l’algorithme RSA.
L’expéditeur et le destinataire possèdent la même clé symétrique, utilisable pour sécuriser les communications.
L’algorithme RSA est difficile à casser dès lors qu’il respecte les recommandations. Plusieurs vulnérabilités ont été mises au jour dans RSA ces dernières années, parmi lesquelles :
Une attaque par canal latéral cible les vulnérabilités qui émergent lorsqu’un système informatique traite les données (temps d’exécution du programme, consommation électrique, rayonnement électromagnétique) plutôt que le logiciel ou le code lui-même.
Un adversaire peut notamment extraire des informations du rayonnement électromagnétique émis par un ordinateur lorsqu’il réalise des opérations cryptographiques.
L’analyse de la puissance et le chronométrage sont deux exemples courants d’attaque par canal latéral contre le chiffrement RSA :
Des acteurs malveillants peuvent utiliser ces données pour déduire la clé secrète utilisée pour le chiffrement. Il faut donc prendre des mesures de défense adaptées pour éviter les attaques par canal latéral.
La sécurité de l’algorithme RSA dépend en grande partie des grands nombres premiers utilisés pour le processus de génération de la clé. Plus la clé est longue, plus il est difficile de factoriser le produit de deux grands nombres premiers.
On recommande d’augmenter la longueur de la clé lorsque la puissance de calcul augmente. Des ordinateurs robustes peuvent factoriser de grands nombres avec une relative facilité et dans des délais assez courts. Ils sont donc capables de casser les clés les plus courtes.
Il est désormais possible de casser une clé RSA de 1024 bits. Longtemps recommandée, cette longueur n’est plus considérée comme valide. La bonne pratique recommande désormais une longueur minimale de 2048 bits.
Les faiblesses des nombres premiers sont de deux ordres :
Nature aléatoire des nombres premiers. Le processus de génération de clé avec l’algorithme RSA repose sur la génération de nombres premiers aléatoires, qui sont ensuite multipliés pour produire les clés publiques et privées.
Imaginons qu’une entreprise utilise un générateur de nombre aléatoire médiocre, ou un algorithme qui génère des nombres aléatoires faciles à prédire ou à factoriser. Des acteurs malveillants pourraient alors deviner le modèle utilisé pour générer les nombres premiers et factoriser très simplement les clés.
Proximité des nombres premiers. La sécurité de la clé RSA peut également être compromise si les deux nombres premiers utilisés sont trop proches l’un de l’autre, ou si la valeur de l’un d’entre eux est trop faible. Dans ces situations, des adversaires n’auront aucun mal à déterminer les facteurs du modules RSA, ce qui leur permettra de casser le chiffrement et d’accéder à la clé privée.
Une clé perdue, volée ou compromise peut être directement exploitée par des adversaires qui pourront ainsi lire les messages chiffrés à l’aide de la clé publique correspondante. Il est donc essentiel de gérer correctement les clés pour éviter des vulnérabilités de ce type.
Dans les attaques de défauts, les malfaiteurs introduisent délibérément des défauts dans le matériel ou le logiciel employé pour mettre en œuvre l’application cryptographique. Ils peuvent, par exemple, employer un laser ou une inversion de bits pour créer une faille dans les fonctions cryptographiques et affaiblir la clé en faisant en sorte que sa valeur soit plus prévisible.
Sans contre-mesures adaptées, les implémentations de RSA peuvent être vulnérables à ce type d’attaques de défauts.
Vous pouvez faire plusieurs choses pour atténuer les vulnérabilités de RSA.
RSA est un algorithme cryptographique très répandu dont la création remonte à 1977. Il s’appuie sur des paires de clés publiques et privées pour chiffrer les données et les déchiffrer. Si RSA est utile dans de nombreuses applications, la complexité des calculs empêche de l’utiliser pour chiffrer des messages ou des fichiers volumineux. Actuellement, RSA est utilisé pour créer des signatures numériques et des certificats visant à sécuriser l’authentification, la communication, l’accès web, les e-mails et l’échange de clés.
RSA présente un certain nombre de vulnérabilités : attaques par canal latéral, clé de longueur insuffisante, faiblesses dans les nombres premiers, attaques de défauts et risques liés aux clés perdues ou volées. Les entreprises qui utilisent RSA dans des applications cryptographiques ont donc tout intérêt à suivre les recommandations décrites dans cet article.
Une erreur à signaler ? Une suggestion à faire ? Contactez-nous à l’adresse ssg-blogs@splunk.com.
Cette publication ne représente pas nécessairement la position, les stratégies ou l’opinion de Splunk.
La plateforme Splunk élimine les obstacles qui séparent les données de l'action, pour donner aux équipes d'observabilité, d'IT et de sécurité les moyens de préserver la sécurité, la résilience et le pouvoir d'innovation de leur organisation.
Fondée en 2003, Splunk est une entreprise internationale. Ses plus de 7 500 employés, les Splunkers, ont déjà obtenu plus de 1 020 brevets à ce jour, et ses solutions sont disponibles dans 21 régions du monde. Ouverte et extensible, la plateforme de données Splunk prend en charge les données de tous les environnements pour donner à toutes les équipes d'une entreprise une visibilité complète et contextualisée sur l'ensemble des interactions et des processus métier. Splunk, une base solide pour vos données.