Une grande partie du travail sur les mots de passe et les clés est liée au contrôle où ils sont stockés et copiés.
-
Un mot de passe est stocké dans l'esprit d'un utilisateur humain. Il est saisi sur un clavier (ou équivalent) et parcourt les registres d'un CPU et de la RAM de l'ordinateur, pendant son traitement. Sauf erreur terrible, le mot de passe n'atteint jamais une zone de stockage permanente comme un disque dur.
-
Un algorithme existe en tant que code source quelque part, sur la machine d'un développeur, un système de gestion des versions source et des sauvegardes. Il existe des documents de conception, qui ont été montrés à diverses personnes (par exemple, ceux qui décident de financer ou non le développement du système), et souvent déposés par négligence sur une étagère anonyme ou dans une couche de croûte sur le bureau typique. Plus important encore, l'algorithme existe également sous forme de fichier exécutable sur le système déployé lui-même; binaire n'est pas aussi lisible que le code source mais le reverse engineering fonctionne néanmoins.
Par conséquent, nous ne pouvons raisonnablement pas considérer que l'algorithme est secret, ou du moins aussi secrète que le mot de passe (ou la clé).
En réalité, les méthodes cryptographiques ont été divisées il y a un siècle en algorithme et clé précisément à cause de cela: dans un système qui fonctionne, une partie de la méthode fuit forcément des traces partout. Avoir une clé signifie concentrer le secret dans l'autre moitié, la partie que nous pouvons garder secrète.
"La sécurité par l'obscurité" est une expression qui utilise le terme obscurité , pas secret . La cryptographie consiste à assurer la sécurité grâce au secret . C'est toute la différence: un mot de passe peut être secret ; un algorithme est, au mieux, obscur . L'obscurité est dissipée dès qu'un type intelligent pense à apporter une lanterne métaphorique. Le secret ressemble plus à un coffre-fort en acier: pour le percer, vous avez besoin d'outils plus puissants.
Un homme intelligent Auguste Kerckhoffs l'a déjà écrit il y a plus d'un siècle. Malgré l'invention de l'ordinateur et de toute la technologie actuelle, ses découvertes s'appliquent toujours. Il a fallu un certain temps aux praticiens de la cryptographie pour apprendre cette leçon; 60 ans plus tard, les Allemands mettaient encore beaucoup dans le "secret" de la conception de la machine Enigma. Notez que lorsque les Allemands ont mis en service la Navy Enigma à 4 rotors, les cryptographes alliés ont été incommodés (le craquage de routine s'est arrêté pendant quelques mois) mais n'ont pas été totalement déconcertés car certains documents capturés de l'année précédente faisaient allusion au développement de la nouvelle version, avec un quatrième rotor "réflecteur". Voilà: l'algorithme secret n'a pas pu être atteint en pratique.
Une autre particularité est que l'obscurité de l'algorithme peut nuire à la sécurité . Ce que j'explique ci-dessus, c'est qu'on ne peut pas faire confiance à l'obscurité pour la sécurité: elle pourrait augmenter la sécurité, mais pas de beaucoup (et vous ne pouvez pas vraiment savoir "combien"). Il s'avère que cela peut également diminuer la sécurité. Le problème est le suivant: il est très difficile de faire un algorithme cryptographique sécurisé. La seule méthode connue est de publier l'algorithme et d'attendre que la sagesse collective des cryptographes du monde entier la ronge et parvienne à une conclusion qui peut être exprimée comme «peut être brisé de cette façon» ou «apparemment robuste». Un algorithme n'est déclaré "bon" que s'il a résisté à l'assaut de dizaines ou de centaines de cryptographes compétents pendant au moins trois ou quatre ans.
Internet, la procrastination académique et l'orgueil humain sont tels qu'avec la bonne campagne de communication, vous pouvez amener ces quelques centaines de cryptographes à faire ce travail d'évaluation difficile gratuitement - à condition algorithme public (et «attractif» en quelque sorte). Si vous souhaitez maintenir l'algorithme obscur, vous ne pouvez pas bénéficier d'une telle consultation gratuite. Au lieu de cela, vous devez payer. Vingt bons cryptographes pour, disons, deux ans d'efforts: on parle ici de millions de dollars. Personne ne fait ça, c'est beaucoup trop cher. De même, les algorithmes obscurs sont invariablement beaucoup moins soumis à des tests de stress que les algorithmes publics, et donc moins sûrs .
(Notez les petits caractères: la sécurité ne consiste pas seulement à ne pas être brisée, mais aussi avoir une certaine a priori savoir que les violations ne se produiront pas. Je veux pouvoir dormir la nuit.)
Résumé:
- Vous ne devez pas garder votre algorithme secret.
- Vous ne savez pas combien votre algorithme est secret.
- Vous ne pouvez pas garder votre algorithme secret.
- Mais vous pouvez et devez garder votre mot de passe secret, et vous pouvez savoir "combien" il est secret est (c'est tout le business de "l'entropie").