web-dev-qa-db-fra.com

Quand Unix a-t-il cessé de stocker les mots de passe en texte clair?

Quand Unix a-t-il abandonné le stockage des mots de passe en texte clair dans passwd? De plus, quand le fichier reflet a-t-il été introduit?

37
ZDOSA

Pour l'historique du stockage des mots de passe Unix, lisez Sécurité des mots de passe: une histoire de cas de Robert Morris et Ken Thompson. Ils expliquent pourquoi et comment les premiers systèmes Unix ont acquis la plupart des fonctionnalités qui sont encore considérées aujourd'hui comme les fonctionnalités importantes du stockage de mots de passe (mais mieux).

  • Les premiers systèmes Unix stockaient les mots de passe en texte clair. Unix Third Edition a introduit la fonction crypt qui hache le mot de passe. Il est décrit comme "chiffrement" plutôt que "hachage" car la terminologie cryptographique moderne n'a pas encore été établie et il utilise un algorithme de chiffrement, quoique d'une manière non conventionnelle. Plutôt que de chiffrer le mot de passe avec une clé, ce qui serait trivial à annuler lorsque vous avez la clé (qui devrait être stockée sur le système), ils utilisent le mot de passe comme clé.
  • Lorsque Unix est passé d'un chiffrement antérieur à celui alors moderne DES , il a également été ralenti en itérant DES plusieurs fois Je ne sais pas exactement quand cela s'est produit: V6? V7?
  • Le simple hachage du mot de passe est vulnérable aux attaques multi-cibles: hachez tous les mots de passe les plus courants une fois pour toutes et recherchez une correspondance dans le tableau des mots de passe. L'inclusion d'un sel dans le mécanisme de hachage, où chaque compte a un sel unique, annule ce précalcul. Unix a acquis un sel en Septième édition en 1979 .
  • Unix a également acquis des règles de complexité de mot de passe telles qu'une longueur minimale dans les années 1970.

À l'origine, le hachage du mot de passe se trouvait dans le fichier lisible par le public /etc/passwd. Mettre le hachage dans un fichier séparé /etc/shadow auquel seul le système (et l'administrateur système) pouvait accéder était l'une des nombreuses innovations à venir de Sun, datant d'environ SunOS 4 au milieu des années 80. Il s'est étendu progressivement à d'autres variantes d'Unix (en partie via le tiers shadow suite dont le descendant est toujours utilisé sur Linux aujourd'hui) et n'était pas disponible partout jusqu'au milieu des années 90 environ.

Au fil des ans, l'algorithme de hachage a été amélioré. Le plus grand saut a été l'algorithme basé sur MD5 de Poul-Henning Kamp en 1994, qui a remplacé l'algorithme basé sur DES par un meilleur design. Il a supprimé la limitation à 8 caractères de mot de passe et 2 caractères de sel et a augmenté la lenteur. Voir IEEE's Developing with open source software , Jan – Feb. 2004, p. 7–8 . Les algorithmes basés sur SHA-2 qui sont la norme de facto aujourd'hui sont basés sur le même principe, mais avec une conception interne légèrement meilleure et, surtout, un facteur de lenteur configurable.

Je n'ai pas encore de source principale, mais selon ce post TrustedSec (c'est moi qui souligne):

Les premiers systèmes stockaient les mots de passe en texte clair, mais ils ont finalement été remplacés par des formes plus sécurisées de stockage des mots de passe. Robert Morris a développé le cryptage basé sur la machine de chiffrement m-209 et il est apparu dans la version 3 Unix , bien que Crypt n'ait pas été utilisé pour stocker les mots de passe jusqu'à la 6e édition Unix (1974).

Selon plusieurs sources, la version 3 UNIX a été publiée en février 1973 .

D'après l'article original de Thompson et Morris , nous pouvons confirmer que le stockage en texte brut a été initialement utilisé:

Le système UNIX a d'abord été implémenté avec un fichier de mots de passe qui contenait les mots de passe réels de tous les utilisateurs, et pour cette raison, le fichier de mots de passe devait être fortement protégé contre la lecture ou l'écriture.

/ etc/shadow est apparu dans plusieurs branches d'UNIX comme indiqué dans d'autres réponses.

8
Royce Williams

Selon la section Historique de la page passwd de wikipedia,

L'observation des mots de passe est apparue pour la première fois dans les systèmes Unix avec le développement de SunOS au milieu des années 1980, [10] System V version 3.2 en 1988 et BSD4.3 Reno en 1990. Mais, les fournisseurs qui avaient effectué des ports des versions UNIX antérieures n'incluaient pas toujours les nouvelles fonctionnalités d'observation des mots de passe dans leurs versions, laissant les utilisateurs de ces systèmes exposés aux attaques de fichiers de mots de passe.

Les administrateurs système peuvent également organiser le stockage des mots de passe dans des bases de données distribuées telles que NIS et LDAP, plutôt que dans des fichiers sur chaque système connecté. Dans le cas de NIS, le mécanisme de mot de passe caché est souvent encore utilisé sur les serveurs NIS; dans d'autres mécanismes distribués, le problème d'accès aux différents composants d'authentification des utilisateurs est géré par les mécanismes de sécurité du référentiel de données sous-jacent.

En 1987, l'auteur de l'original Shadow Password Suite, Julie Haugh, a connu un effraction informatique et a écrit la version initiale de la Shadow Suite contenant les commandes login, passwd et su. La version originale, écrite pour le système d'exploitation SCO Xenix, a rapidement été portée sur d'autres plates-formes. Shadow Suite a été porté sur Linux en 1992 un an après l'annonce originale du projet Linux, et a été inclus dans de nombreuses premières distributions, et continue d'être inclus dans de nombreuses distributions Linux actuelles.

6
VGe0rge