web-dev-qa-db-fra.com

Une approche différente de PKI

Après - Encore une autre Défaillance de l'infrastructure clé publique, je pensais à la façon dont tout cela est brisé. Cette activité d'association indéniablement une identité avec une clé publique et de tout le travail que nous mettons dans la réalisation, commence à ressentir de la chasse à la glace. Pardonne-moi, je pense surtout à penser à haute voix ici.

J'ai commencé à penser au protocole de service caché et leur méthode de résolution de cela. Nom du service caché '' (qui est saisi dans la barre d'adresse comme toute autre URL) est réellement dérivé de la clé publique - afin que vous finiez pas de visiter sites comme kpvz7ki2v5agwt35.onion - Mais vous n'avez pas besoin de certificats ou de PKI, la clé publique et le seul domaine sont suffisants pour prouver qu'ils appartiennent ensemble (jusqu'à ce que vous puissiez générer des collisions, mais c'est une autre histoire). Maintenant, il y a clairement un problème avec cela - tout le point de la DNS est de fournir une mappage lisible par l'homme aux adresses IP.

Qui me conduit à ma finale, éventuellement imparfaite, suggestion; Pourquoi n'utilisons-nous pas une adresse IP générée à partir d'une clé publique? (L'inverse des sons plus commode au début, mais ne peut pas travailler pour des raisons cryptographiques évidentes).

Nous avons un grand espace d'adresse avec IPv6. Un clavier RSA de 1024 bits est censé avoir environ 80 bits d'entropie au maximum. Alors pourquoi ne pas diviser un segment de 80 bits et cartographier des clés RSA publiques sur les adresses IP de ce segment?

Certains descendent au sommet de ma tête;

  • Donc, un attaquant peut générer une paire de clé et savoir immédiatement quel serveur que la paire de clés serait utilisée, si un tel serveur existait. Peut-être que l'espace 80 bits pourrait être étendu à l'utilisation des touches RSA de 4096 bits, croyait avoir environ 256 bits d'entropie maximale, en faisant une telle recherche infaisable (nous aurions malheureusement besoin de IPv7 + avec une adresse de 512 ou une adresses de bits pour cela). Cette attaque n'est pas non plus comme , car il pourrait au premier son, comme il est endommagé. Cette attaque pourrait être atténuée en incluant un sel dans le processus clé> IP, que le serveur envoie aux clients lorsqu'il se connecte. Ce sel fait de la clé de chaque serveur -> Processus IP unique.
  • Un attaquant pourrait potentiellement brut-forcer l'espace clé à l'aide d'un sel connu jusqu'à ce qu'ils correspondent à une adresse IP choisie. C'est une attaque ciblée, alors est un peu plus effrayant. Cependant, à l'aide d'un lent (1-3 secondes) algorithme pour rendre la cartographie de la clé publique à IP pourrait atténuer cela. L'utilisation du sel signifie également qu'une telle force brute ne s'appliquerait qu'à une adresse IP unique et devrait être répétée par adresse IP cible.

Afin de , essayez pour arrêter les mods de la fermeture, je ferai de mon mieux pour la transformer en une question; Cette idée est-elle complètement défectueuse d'une manière ou d'une autre? A-t-il été tenté dans le passé? Suis-je juste à la randonnée?

24
lynks

Mappage de la clé publique à une adresse IP est facile (il suffit de hadrier et de conserver les 80 premiers bits) et vous avez répertorié les moyens de le rendre robuste (c'est-à-dire de faire la transformation lent). Il a l'inconvénient , il ne résout pas le problème du tout : cela le déplace simplement.

Le problème consiste à lier l'accès cryptographiquement protégé (nommément, la clé publique du serveur) à la notion d'identité que l'utilisateur humain comprend. Utilisateurs humains GRAPS Noms de domaine. Vous ne les préparerez pas valider les adresses IPv6 générées par hash ...

Bien sûr là-bas est Un système déployé qui mappe noms sur des données techniques telles que les adresses IP; C'est le [~ # ~ #] DNS [~ # ~] . Vous pouvez l'étendre à la carte des noms de domaine aux jetons de vérification des clés publiques (c'est-à-dire mettre le hachage de la clé publique quelque part dans le DNS), voire de la clé publique eux-mêmes. Si vous utilisez le DNS pour transférer des liaisons de clés de noms sensibles à la sécurité, alors le DNS devient une cible précieuse. Vous devez donc ajouter une sécurité au DNS lui-même. À ce moment-là, vous avez DNSSEC , lequel est Une proposition actuelle pour un remplacement du X.509 PKI pour HTTPS Site Internet. Si DNSSEC va mieux que la CA existante n'est pas claire; Cela change d'acteurs, mais l'activité de certification conceptuelle serait toujours cachée ici.

Les humains veulent des noms lisibles humains et des clés publiques sont illisibles. Toutes les solutions basées sur le certificat (sont-elles X.509 ou DNSSEC ou autre) Essayez de lier une clé publique à un nom choisi arbitrairement. Une autre méthode distincte serait de rendre la clé publique lisible . Un peu assez, il existe des protocoles cryptographiques pour cela: Cryptographie à base d'identité . Ils utilisent des outils mathématiques plutôt tortueux (appariements sur les courbes elliptiques). Ils ne changent pas le concept de base (vraiment, à un moment donné, quelqu'un doit faire le lien entre une identité sociétale, comme "Google" et le monde des ordinateurs), mais ils changent de Dynamics. Dans un système basé sur ID pour SSL, chaque serveur aurait des clés privées très courtes et une autorité centrale délivrerait à chaque serveur une nouvelle clé privée chaque jour, correspondant à son nom. L'effet net serait comme un x.509 pki où la révocation fonctionne bien bien, le confinement des dommages serait donc efficace.

Encore une autre torsion serait de remplacer la notion d'identité. Puisque les humains ne peuvent pas lire les clés publiques, alors acceptez-la: ils ne les liront pas. Au lieu de cela, suivez les attaques actives avec des entités spécialisées, qui do savoir lire les clés. C'est tout le point des "notaires" dans convergence . Les notaires gardent une trace de ce que la clé publique est utilisée par quel site, et crie-ils et frappent chaque fois qu'ils voient quelque chose de louche.


De toute façon , le système actuel est non Cassé - pas de manière économiquement pertinente. La violation que vous êtes liée à rejoindre les Mishaps Comodo et Diginotar; C'est une liste courte. De tels problèmes se produisent de manière rarement à se présenter sur le radar financier: si vous additionnez le coût de toutes les fraudes qui utilisaient un faux certificat de serveur obtenu à partir d'une "CA de confiance", vous obtiendrez un montant qui est rarement petit en ce qui concerne Les milliards de dollars de fraudes de carte de crédit plus mondaines. Du point de vue des banques et des marchands et des personnes qui font le commerce sur Internet, le X.509 PKI fonctionne. Il n'y a pas d'incitation à ce qu'ils favorisent un remplacement. S'il y avait un faux certificat Google Tous les jours, utilisé pour effectivement voler de l'argent de personnes, la situation serait différente. En ce moment, nous sommes autour d'un événement par an.

24
Thomas Pornin

La première grande faille de votre idée est que cela ne résout pas beaucoup beaucoup. Une fois que vous souhaitez des noms significatifs comme ils sont actuellement utilisés, vous avez besoin de DNS ou d'un système similaire. Donc, votre point d'échec est de retour, sauf que c'est maintenant DNS et non CAS.

Mettre l'empreinte digitale dans l'IP offre peu d'avantages pour la mettre dans le DNS à côté de la propriété intellectuelle, mais a l'inconvénient que le routage devient plus compliqué et coûteux.

Il existe un système qui met les empreintes digitales clés dans le DNSSEC, elle s'appelle DAND . Chrome récemment support ajouté pour cela.

Il y a un système appelé CJDNS qui met les empreintes digitales dans IPS. Il utilise 120 bits de la propriété intellectuelle et 8 bits d'une construction de renforcement, pour obtenir l'équivalent des empreintes digitales de 128 bits. Notez qu'en raison d'attaques multi-cibles, le niveau de sécurité réel est inférieur à la taille de l'empreinte digitale.

Vous surestimez également le niveau d'échec PKI. Des adversaires puissants le brisent parfois, mais un criminel normal ne le fera généralement pas. Déploiement d'un système comme Transparence de certificat conduira également à une détection rapide de ces échecs. Un attaquant brûle de ses précieux certificats beaucoup plus rapidement.


Tous les systèmes de résolution de noms rencontrent triangle de Zooko . Si vous souhaitez des noms globaux et significatifs, vous aurez besoin d'une sorte de registre central de confiance.
[.____] Namecoin vient le plus proche du triangle de Zooko, mais il a également sa part de problèmes. Le plus grand imo est que, depuis que les marques commerciales ne peuvent être appliquées, le propriétaire de google.bit ne sera probablement pas la société bien connue.

Vous devriez également lire essai de Zooko sur ce sujet.

12
CodesInChaos

Je pense que la plus grande clé est d'améliorer la façon dont les CAS racinaires de confiance PKI sont révoqués. L'exposition pourrait être limitée s'il y avait une liste de révocation maître pour la CAS RADFR, une seule autoroute racine compromise compterait vraiment et que l'on pouvait être gardée comme Fort Knox. Si cela a jamais été compromis, les moyens de correctifs actuels peuvent être appliqués.

Une autre possibilité est de lier les informations d'identification SSL à l'enregistrement DNS. Un TLD donné devrait être en mesure de résoudre ce que le certificat SSL est valide pour dire que c'est son identité. Cela nécessiterait alors les deux DNS à utiliser et une care racine à compromettre, à la fois sans détection pour déclencher une révocation. Par exemple, si une racine CA a été compromise et que j'ai fait un certificat en disant que j'étais google.com, il suffit de choisir un enregistrement DNS de Google.com pourraient indiquer que le certificat ne correspond pas et n'est pas authentique. Effectivement, plutôt que de faire face exclusivement à la tierce partie, nous exigerions que la tierce partie et la première partie soient toutes deux d'accord sur deux canaux différents.

Je me rends compte que cela n'aide toujours pas à l'encontre des situations où un MITM a à la fois une CA racine compromise et la capacité de modifier les résultats DNS, mais il limite considérablement les scénarios d'attaque utiles potentiels d'une ca. (Contrairement à la plupart des utilisateurs de la plupart des utilisateurs, pensez que www.gaggle.com est un nouveau service Google qu'ils doivent se connecter à leur portefeuille Google.

2
AJ Henderson