Peut-être que cette question semble évidente, mais je me demande à quel point il pourrait être dangereux de publier une clé publique pour un système de cryptage asymétrique?
Je sais que les clés publiques sont destinées au chiffrement des messages par quiconque est censé le faire, c'est pourquoi nous pouvons même télécharger un certificat public des autorités de certification les plus courantes à partir des navigateurs Web.
Mais est-ce sécurisé si je publie ma clé publique sur un serveur Web pour que tout le monde puisse la télécharger? À quels risques suis-je confronté en faisant cela?
Merci.
Aucun, c'est pourquoi on l'appelle une clé publique. Il ne peut pas être utilisé pour accéder à quoi que ce soit chiffré pour vous sans résoudre des problèmes mathématiques qui sont actuellement trop difficiles à résoudre. Il est possible qu'à l'avenir, il soit possible de résoudre ces problèmes et que la clé publique permette le décodage des messages, mais il n'existe actuellement aucune menace connue.
Le revers de la médaille est que si vous ne partagez pas votre clé publique, votre clé privée ne vous fera aucun bien. La seule raison d'utiliser la cryptographie asymétrique sur symétrique est si vous devez laisser quelqu'un avoir votre clé publique. Sinon, si vous ne faites que des choses par vous-même, symétrique est beaucoup plus rapide et plus sûr.
Juste pour développer quelques informations mentionnées ci-dessus, il y a essentiellement deux risques à considérer, ni l'un ni l'autre concernant les algorithmes (ceux-ci sont sûrs).
Tout d'abord, les fuites accidentelles de données. Exécutez-vous slaterockandgravel.com en tant que M. Slate, mais faites-vous signer votre clé [email protected]? Betty a-t-elle signé votre clé et vous ne voulez pas que le monde soit au courant? Ce sont des cas peu probables, mais considérez-les.
Deuxièmement, peut-être plus, il faut se prémunir contre une personne intermédiaire dans votre site Web et présenter à votre ami une fausse clé pour vous, qu'il prévoit d'utiliser pour intercepter ses communications avec vous. Encore une fois peu probable, mais deux choses que vous pouvez faire pour éviter le problème: a) mettez-le sous TLS -ou- b) (mieux) téléchargez votre clé sur un serveur de clés public (sks ou similaire) et ne mettez que l'ID de clé sur votre site Web (vous pouvez même fournir un lien Web vers les serveurs Web sks avec une recherche de votre identifiant de clé). Les gens ont déjà compris la distribution des clés, alors tirez parti de leur travail.
Pour la plupart de ces choses, ce ne sera probablement pas vous qui serez attaqué de cette façon, mais ce sera quelqu'un, donc chacun de nous devrait agir comme si ce serait nous, et ensuite nous aurons une communauté plus sûre.
Mais, vous avez pour publier votre clé publique afin que les gens puissent crypter les messages qui vous sont destinés. C'est pourquoi vous devez publier votre clé publique et la faire signer par des personnes que vous connaissez (de préférence personnellement).
Pour plus d'informations: Web of Trust et Parties signataires clés
Les risques sont de confiance. De manière non intuitive, si vous ne publiez pas votre clé, il est facile pour quelqu'un de publier sa propre clé et de prétendre que c'est la vôtre. Une clé publique doit être très publique.
Votre meilleure défense est de vous assurer que votre clé est correctement signée.
Le seul risque pour la publication de votre clé publique si votre clé publique est signée par d'autres personnes et que vous ne souhaitez pas révéler qui a signé votre clé (car cela peut être utilisé pour déterminer avec qui vous avez établi des connexions, avec désinvolture ou intimement).
D'une manière générale, dans le cryptage, il existe deux types d'informations: les informations secrètes et les informations publiques.
Garder des informations secrètes secrètes, c'est comme les mettre dans le grand coffre-fort avec une grande porte dans une grande banque comme vous le voyez dans les films.
Garder le secret de l'information publique, c'est comme mettre une pancarte sur la porte qui dit "ne volez pas mes affaires".
Mieux vaut supposer que l'information publique est connue du monde et ne gaspille pas trop effort pour la protéger. Comme indiqué dans une autre réponse, il peut être judicieux de mettre en place des garanties d'authentification de base. Si seulement certaines personnes devraient pouvoir vous envoyer des messages, mettre en place un système par lequel seules ces personnes devrait avoir accès à votre clé publique est logique, ne serait-ce que pour réduire la possibilité que vous receviez de faux les messages que vous devrez éliminer ... vous devrez toujours gérer la reconnaissance et la suppression des faux messages, mais vous réduirez le potentiel de trafic.
Oui, en théorie, les cryptoalogorithmes asymétriques nécessitent la clé publique pour être rendue publique. Cependant, en fonction de l'algorithme utilisé et de la force de l'algorithme (nombre de bits utilisés, etc.), certaines de ces clés publiques peuvent être rompues pour donner la clé privée. Par exemple, si le cryptosystème RSA est utilisé, il est généralement conseillé d'utiliser au moins des clés de 1024 bits. Moins et votre cryptosystème peut être compromis. Même ainsi, il est conseillé d'utiliser des clés de 2048 bits, car même les clés de 1024 bits pourraient être résolues avec les ordinateurs puissants à venir ( http://www.emc.com/emc-plus/rsa-labs/historical/ has-the-rsa-algorithm-been-compromised.htm ). Par conséquent, je ne serais pas trop inquiet à ce sujet à moins que votre demande ne soit à des fins de haute sécurité comme les banques, les militaires, etc.