Dans quelle mesure RSA est-il sûr et sécurisé?
Je suis à l'aide de RSA pour le chiffrement et le déchiffrement. J'ai entendu dire qu'il est vulnérable aux attaques. S'agit-il? Comment est-il sûr à utiliser?
source d'informationauteur suraj | 2012-04-18
Vous devez vous connecter pour publier un commentaire.
L'habitude d'attaque sur RSA implique l'affacturage d'un grand nombre qui est le produit de deux grands nombres premiers. L'idée générale derrière cela est que la recherche des nombres premiers est assez facile, et de les multiplier pour obtenir un grand nombre est également très facile, mais si vous commencez par un grand nombre, de trouver les facteurs assez dur.
En arrière quand ils ont été une société indépendante, RSA Data Security, Inc., couru d'affacturage défi. Autant que je me souvienne, les derniers prix ont été remportés par des équipes de RSA DSI eux-mêmes. Ceci a été fait en utilisant le grand Champ de Numéro de Tamis (GNFS). L'implémentation typique utilise un grand nombre de postes de travail pour quelques mois pour construire un "facteur de base". Ensuite (le plus dur) vous nourrir que d'une seule machine avec gargantuesque quantités de RAM (pensez téraoctets comme un point de départ) et l'ont crunch pour quelques semaines pour obtenir les facteurs.
Le point de ce qui est à souligner que la plupart des communes de l'attaque sur le RSA a un très coût initial élevé (c'est à dire, obtenir quelque chose comme un superordinateur Cray) à même d'avoir commencé. En toute honnêteté, cependant, je ne crois pas que la machine existe actuellement qui peut contenir suffisamment de RAM pour commencer une attaque sur quelque chose comme une clé RSA de 1024 bits (pour ne pas mentionner les 2048 ou même 4096 bits clés de certains paranoïaques types d'insister sur l'utilisation).
Il y a, bien entendu, d'autres méthodes de factorisation qui ne nécessitent pas l'énorme machine, mais ils sont assez moins efficace que même au mieux, vous seriez à la recherche à des années de travail de briser, même à une assez petite clé RSA normes -- 512 bits, par exemple.
De façon réaliste, la sécurité de RSA lui-même est généralement le moins de vos préoccupations dans la conception d'un système qui l'utilise. En fait, c'est vrai de presque tous assez moderne des algorithmes de chiffrement. Quand quelque chose est cassé, c'est essentiellement jamais fait de briser les fondamentaux de l'algorithme, c'est de trouver des faiblesses dans la façon dont les clés sont distribuées, "l'ingénierie sociale", les attaques, etc.
Alors que (comme je l'ai dit), ce qui tend à être vrai de chiffrement en général, il est encore plus systématiquement vrai avec RSA que la plupart des autres chiffrement. C'est tout simplement parce que la normale de cas d'utilisation pour le RSA est relativement complexe. En particulier, vous ne pas normalement souhaitez utiliser RSA pour crypter les importants flux de données brutes. RSA est assez lente qu'en général, vous ne voulez pas l'utiliser pour crypter un grand nombre de données. Au lieu de cela, vous utilisez généralement RSA en collaboration avec certains de clé symétrique (aka clé privée) algorithme de chiffrement tels que AES.
Lorsque vous utilisez les deux ensemble, vous commencez par obtenir la clé publique de la personne à qui vous souhaitez envoyer des données. Vous ensuite de générer un nombre aléatoire de taille correcte pour être utilisé comme une clé de l'algorithme symétrique que vous avez choisi. Vous chiffrez votre nombre aléatoire avec un RSA et de l'envoyer à la cible. Vous pouvez ensuite l'utiliser numéro de la clé avec l'algorithme symétrique, et l'utilisation que l'algorithme symétrique pour chiffrer les données réelles.
Cela signifie que, en utilisation réelle, la RSA a quelques faiblesses, qui ne s'applique pas nécessairement à la plupart des algorithmes de chiffrement symétrique. Juste pour un exemple évident, si l'utilisation d'une méthode pour choisir le "hasard" la clé de l'algorithme symétrique n'est pas vraiment tout à fait aléatoire, un attaquant peut être en mesure de trouver la clé et décrypter les données, sans attaquer le cryptage RSA lui-même à tous (et oui, cela a été la source d'une réelle vulnérabilité dans le réel, rendu public le logiciel).
Notez également que ce que j'ai décrit ci-dessus est à peu près la façon la plus simple que le RSA est normalement mis à utiliser. Systèmes réels souvent obtenir beaucoup plus complexe encore de fournir à des choses telles que "perfect forward secrecy"1. Le RSA dans un tel système est encore parfaitement normal RSA, mais le reste du système qui l'utilise est beaucoup plus complexe encore.
Résumé: si vous allez utiliser le cryptage RSA, la sécurité de RSA lui-même est probablement le cadet de vos soucis. L'itinéraire de "RSA", à "sécuriser le système de communication" est un peu comme quelque chose de tordu de combinaison de la mythologie grecque et la Bible Chrétienne: un labyrinthe avec un millier de mauvais tours, chaque de ce qui conduit à un endroit qui ressemble exactement où vous voulez aller--mais en prenant toutes les mal tourner va sacrément vous à une éternité de torture et le supplice.
1. Non, je ne vais pas essayer de décrire ce droit maintenant, mais je suis sûr que la recherche sur Crypto.SE aura des résultats pertinents. Je devrais sans doute ajouter, toutefois, que bien que le RSA peut être utilisé dans un système qui fournit PFS, c'est assez rare dans la pratique.
Assumer RSA est sans danger pour tous vos besoins réalistes.
Mais bien sûr cela dépend de ce que vous faites, comment vous le faites et que vous voulez défendre.
Si vous souhaitez sécuriser votre connexion et vous vous en tenez à l'habituelle recommandée trucs RSA est assez sûr.
Si vous souhaitez exécuter une opération secrète en vertu de la NSA nez, alors vous avez déjà perdu parce que vous devez vous poser cette question.
PS: Vous voudrez peut-être avoir un coup d'oeil à la -Sécurité Site ici sur StackExchange pour des trucs comme ça..
Mis en œuvre correctement (c'est à dire, si vous utilisez une bibliothèque existante qui fait cela pour vous), votre canal de données est sécurisé. Cependant, n'oubliez pas que le point de chiffrement est simplement de faire le canal de données pas le point le plus faible dans l'ensemble de votre système. RSA va le faire, mais vous avez encore besoin de s'inquiéter sur les autres parties de votre système et la manière dont ils sont sûrs.