web-dev-qa-db-fra.com

Code source comme mot de passe

Les mots de passe avec un mélange de lettres, de chiffres et de caractères spéciaux sont parfois difficiles à retenir. Est-il sûr d'utiliser à la place une petite quantité de code source mémorable comme "phrase secrète"?

Par exemple, prenez une simple boucle for dans Go: fori:=1;i<5;i++{fmt.Println(i)}

Les gens normaux ne verraient que la syntaxe cryptique, mais en tant que personne ayant une formation en programmation, cela peut être plus facile à mémoriser. Serait-il au moins aussi sûr qu'un mot de passe normal?

24
user3147268

Vous pouvez utiliser le code source comme mot de passe.

Cependant, je déconseille fortement d'utiliser le code source comme phrase secrète.
La raison en est l'entropie.
Les mots de passe/phrases de passe doivent fournir beaucoup d'entropie (100 bits +) et les langages de programmation posent généralement de graves contraintes à la formulation des instructions, ce qui entraîne moins d'entropie par caractère que même avec une phrase de passe standard.

Ce qui peut être possible en dehors de cela, vous pouvez utiliser des fichiers de code source (100 lignes +) avec beaucoup d'instructions complexes et non codables par machine comme fichier de clés.

27
SEJPM

Comme la plupart des algorithmes de génération de mots de passe, celui-ci repose sur la sécurité par l'obscurité.

Tant que personne ne soupçonne que vous utilisez cette méthode, personne n'utilisera un outil de craquage qui essaie des extraits de code source valides aléatoires et la règle de strength = possible_characters ^ number_of_characters restera valide. Mais dès que quelqu'un soupçonne que vous l'utilisez, ou lorsque cela devient même une méthode courante parce que vous commencez à en faire la publicité comme "une très bonne idée" sur un site Web, cela changera.

Dès que quelqu'un se sent obligé d'écrire une routine de craquage sur mesure, vous devez regarder combien il y a vraiment d'entropie dans votre code source. Et lorsque vous êtes limité à "un petit extrait de code mémorable dans un langage de programmation commun", vous êtes peut-être à quelques milliards de mots de passe possibles, ce qui n'est pas suffisant pour résister à une tentative de force brute sérieuse.

21
Philipp

Il est préférable d'utiliser une méthode qui reste sécurisée même si tout le monde l'utilise. Vous aurez moins à vous soucier et cela vous permet de collaborer avec d'autres pour peaufiner la méthode afin qu'elle soit la plus sécurisée, car vous n'avez pas à garder vos méthodes secrètes.

Cette approche "l'ennemi connaît le système" est un énorme moteur d'innovation et de progrès dans la sécurité de l'information. Sinon, vous auriez des groupes indépendants qui travaillent chacun sur leurs propres conceptions et principes obscurs et supposés inattendus.

De plus, vous n'avez aucun moyen de quantifier la sécurité de votre système car tout dépend de la psychologie et de ce que les autres savent de vous.

Dans certains milieux, vous devez faire preuve de créativité et construire votre stratégie sur la base d'informations personnelles et uniques que vous devez garder secrètes, mais la sécurité des informations n'est pas comme ça.

3
isarandi

À première vue, cela semble être une bonne idée. Comme de nombreuses suggestions concernant les mots de passe, dans certaines situations, cela peut même être une bonne solution. Cependant, lorsque vous l'examinez plus en détail, un certain nombre de lacunes deviennent évidentes.

Si j'essayais de casser le mot de passe de quelqu'un, l'une des premières choses que je ferais serait d'essayer de trouver autant d'informations que possible sur la personne. Si je sais que vous êtes un programmeur, je suppose que vous utilisez du code pour votre phrase secrète. J'ai maintenant réduit l'espace de recherche possible.

Si je sais quel est votre langage de programmation préféré, j'ai maintenant réduit encore plus l'espace de recherche. Je n'ai qu'à prendre en compte les formes juridiques de votre langue préférée.

Maintenant, lorsque je considère les formes juridiques autorisées dans votre langue préférée, j'ai encore réduit l'espace de recherche. S'il existe une limite de caractères maximale connue pour la phrase secrète, cet espace de recherche est encore plus petit - en fait, pour la plupart des langues, il n'y aura qu'un très petit ensemble de formes juridiques possibles qui s'adapteront aux limites de caractères autorisées pour de nombreuses personnes. mots de passe.

Comme indiqué par d'autres réponses, le vrai problème avec les schémas de mots de passe/mots de passe "intelligents" est qu'ils dépendent des autres qui ne sont pas en mesure de deviner quel est votre schéma. À mesure que la popularité d'un programme augmente, ses avantages diminuent. Surtout, tout régime que vous choisissez doit être quelque chose qui n'est pas facilement associé à vous.

L'autre problème avec les schémas de mots de passe intelligents est qu'ils sont rarement aussi intelligents que vous le pensez. Si vous analysez des mots de passe déversés à partir de référentiels de mots de passe volés, vous serez surpris de voir à quel point bon nombre de ces schémas intelligents sont "courants". Vous pouvez également être surpris de la fréquence à laquelle le schéma intelligent est lié au domaine d'où proviennent les mots de passe. Par exemple, j'ai vu des mots de passe volés dans un système de l'Air Force et devinez quoi, la grande majorité des mots de passe étaient soit des dérivations de divers noms d'aéronefs et numéros de modèle, soit des noms de personnages de films ou de livres ayant un thème militaire ou de l'armée de l'air. De même, les mots de passe vidés il y a quelques années d'un site de rencontre chrétien avaient un grand nombre de mots de passe qui comprenaient des phrases, des numéros de chapitre et de versets de la Bible. Si j'allais essayer de casser des mots de passe github, je regarderais presque certainement le code comme un modèle possible.

Le seul avantage mineur de l'utilisation du code est que vous aurez probablement un mot de passe/phrase de passe plus long, ce qui est souvent aussi important ou plus important que la complexité sous-jacente. Trop souvent, les gens utilisent des mots de passe courts car ils sont faciles et rapides à taper. De nos jours, je pense que la plupart des gens feraient bien mieux de s'assurer qu'ils utilisent l'authentification à 2 facteurs ou l'authentification en 2 étapes dans la mesure du possible et utilisent un gestionnaire de mots de passe qui générera des mots de passe aléatoires pour vous et, dans la plupart des cas, éliminera le besoin de vous en souvenir.

2
Tim X