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


37

Quand Unix a-t-il cessé de stocker des mots de passe en texte clair dans passwd? Aussi, quand le fichier shadow a-t-il été introduit?


Avez-vous cherché quelque chose?
Ken Sharp

Réponses:


62

Pour en savoir plus sur le stockage des mots de passe Unix, lisez Robert Morris et Password Security de Ken Thompson : Un cas d'histoire . 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 des fonctionnalités importantes du stockage de mots de passe (mais améliorées).

  • Les premiers systèmes Unix stockaient les mots de passe en texte brut. Unix Third Edition a introduit la cryptfonction qui hache le mot de passe. Il est décrit comme un «cryptage» plutôt qu'un «hachage», car la terminologie cryptographique moderne n'était pas encore établie et utilisait un algorithme de cryptage, bien que de manière non conventionnelle. Plutôt que de chiffrer le mot de passe avec une clé, ce qui serait facile à annuler lorsque vous avez la clé (qui devrait être stockée sur le système), ils utilisent le mot de passe comme clé.
  • Quand Unix est passé d'un ancien chiffrement au DES moderne , il a également été ralenti en itérant le DES plusieurs fois. Je ne sais pas exactement quand c'est arrivé: V6? V7?
  • Le simple hachage du mot de passe est vulnérable aux attaques à cibles multiples: 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 dans la 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 publiquement /etc/passwd. Mettre le hachage dans un fichier séparé, /etc/shadowauquel seul le système (et l'administrateur système) pouvaient accéder, était l'une des nombreuses innovations de Sun, datant des environs de SunOS 4 au milieu des années 1980. Il s'est progressivement étendu à d'autres variantes d'Unix (en partie via la suite shadow tierce dont le descendant est encore utilisé sous Linux aujourd'hui) et n'était disponible partout qu'au milieu des années 1990.

Au fil des ans, l’algorithme de hachage a été amélioré. Le saut le plus important a été l’ algorithme basé sur le MD5 de Poul-Henning Kamp en 1994, qui a remplacé l’algorithme basé sur le DES par un algorithme de meilleure conception. Il a supprimé la limitation à 8 caractères de mot de passe et 2 caractères de sel et a augmenté la lenteur. Voir Développement de IEEE avec un logiciel open source , janvier – février. 2004, p. 7–8 . Les algorithmes basés sur SHA-2, qui sont la norme de facto à l’heure actuelle, reposent sur le même principe, mais avec une conception interne légèrement meilleure et, plus important encore, un facteur de lenteur configurable.


Incidemment, le sel est ce qui est crypté.
Josué

Pour ceux qui n'ont pas de
lecteur

8

Je n'ai pas encore de source principale, mais selon ce post de 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é une cryptographie basée sur la machine de chiffrement m-209 et celle-ci est apparue dans la version 3 Unix , bien que Crypt n'ait pas été utilisé pour stocker des mots de passe avant la 6ème édition Unix (1974).

Selon plusieurs sources, la version 3 d’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 de texte en clair a été utilisé à l'origine:

Le système UNIX a d'abord été implémenté avec un fichier de mots de passe contenant les mots de passe réels de tous les utilisateurs. C'est pourquoi le fichier de mots de passe a dû ê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.


6

Selon la section Histoire de la page passwd de wikipedia ,

Le masquage de mots de passe est apparu pour la première fois dans les systèmes Unix avec le développement de SunOS au milieu des années 1980 [10], la version 3.2 de System V en 1988 et la version BSD4.3 Reno en 1990. les nouvelles fonctionnalités de suivi des mots de passe dans leurs versions, laissant les utilisateurs de ces systèmes exposés aux attaques de fichiers par mot 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 shadow est encore souvent utilisé sur les serveurs NIS; dans d'autres mécanismes distribués, le problème de l'accès aux divers composants d'authentification d'utilisateur est traité par les mécanismes de sécurité du référentiel de données sous-jacent.

En 1987, Julie Haugh, l'auteur de la suite Shadow Password Suite d'origine, a fait l'expérience d'une intrusion dans un ordinateur et a écrit la version initiale de la suite Shadow 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. La suite Shadow a été portée sur Linux en 1992, un an après l’annonce initiale du projet Linux, et a été incluse dans de nombreuses distributions antérieures et continue de l’être dans de nombreuses distributions Linux actuelles.


5
Stockage du mot de passe non-shadow! = Stockage du texte brut.
rackandboneman le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.