Nous avons Ubuntu 14.04.3 LTS sur nos ordinateurs de laboratoire de mon collège. J'ai remarqué un bug grave aujourd'hui.
Je peux ignorer les derniers caractères de mon mot de passe et continuer à me connecter en douceur. Par exemple, si mon mot de passe est a1b2c3d4e5f6g7h8
, je peux taper a1b2c3d4e
et toujours me connecter. Beaucoup d'autres personnes ont également remarqué ce bogue.
Notez que le mot de passe ne peut pas être entièrement ignoré - le maximum que j'ai pu ignorer est de 7 caractères. Si j'essaie de ne plus passer, le message "Mot de passe invalide, veuillez réessayer" apparaît. Notez également que toute permutation aléatoire d'une sous-chaîne du mot de passe ne fonctionne pas.
Cela se produit également si je verrouille l'écran manuellement et ressaisis le mot de passe. Le même bogue est présent lorsqu’on utilise ssh
et bien, googler et rechercher Stack Overflow n’a pas aidé.
Ma question est la suivante: comment puis-je résoudre ce problème, si je peux le résoudre du tout? Notre administrateur système ne sera pas disponible avant lundi, et cela me trouble vraiment.
IMPORTANT: Notez qu'aucun compte d'étudiant ne figure dans la liste des sudoers, seul l'administrateur système a un accès root. En outre, les éléments suivants apparaissent lorsque je ssh
dans mon propre compte:
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-65-generic i686)
* Documentation: https://help.ubuntu.com/
543 packages can be updated.
350 updates are security updates.
New release '16.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
UPDATE: Il semble que le problème important ne soit pas le nombre de caractères omis à la fin, mais le fait qu'il soit possible de se connecter avec les huit premiers caractères ou plus du mot de passe.
Si vous n'avez pas d'accès administrateur, vous ne pouvez pas faire grand chose.
Cela dit, cela semble être dû à l'incompétence de l'administrateur. Cela ressemble étrangement au cryptage de mot de passe utilisant la fonction classique crypt(3)
. De man 3 crypt
:
crypt () est la fonction de cryptage du mot de passe. Il est basé sur l'algorithme Data Encryption Standard avec des variantes destinées (entre autres) à décourager l'utilisation d'implémentations matérielles d'une recherche par clé. Key is mot de passe d'un utilisateur. salt est une chaîne de deux caractères choisie dans l'ensemble [a-zA-Z0-9./]. Cette chaîne Est utilisée pour perturber l’algorithme de 4096 façons différentes. En prenant les 7 bits les plus bas de chacun des premiers On obtient huit caractères de la clé . On obtient une clé de 56 bits. Cette clé de 56 bits est utilisée pour chiffrer de manière répétée une chaîne constante (généralement une chaîne consistant en tous les zéros). La valeur renvoyée pointe vers le mot de passe crypté, une série De 13 caractères imprimables ASCII (les deux premiers caractères représentent Le sel lui-même). La valeur de retour pointe vers des données statiques dont le contenu Est écrasé par chaque appel.
Cela vous semble familier?
Aucun système Ubuntu récent ne l’utilise par défaut. Votre administrateur doit avoir configuré manuellement la configuration du mot de passe pour l'utiliser. Ou bien, ils utilisent peut-être une authentification externe (LDAP ou similaire) et ne l'ont pas configurée ou ne l'ont pas configurée de manière sécurisée.
Voir aussi: Les mots de passe sur les systèmes Unix/Linux modernes sont-ils toujours limités à 8 caractères?
À une époque, dans un millénaire précédent, toutes les sociétés Unixen chiffraient leurs mots de passe de cette façon. Jeter tout ce qui est au-delà du huitième caractère, ajouter du sel, passer à travers une fonction de hachage et faire.
La grande question est de savoir si les mots de passe cryptés sont disponibles pour les pirates potentiels. S'ils le sont, c'est un gros problème. S'ils ne le sont pas, ce n'est vraiment pas grave. Les mots de passe à huit caractères offrent de nombreuses possibilités. Si vous devez réellement tenter de vous connecter pour vérifier un mot de passe potentiel, la saisie prend beaucoup de temps. En outre, les tentatives déclencheront des alarmes.
Donc, la grande victoire ici est les mots de passe masqués. Néanmoins, les gens ont commencé à penser que cela n’était pas suffisant et chaque variante Unix a mis en œuvre sa propre méthode d’extension de la longueur maximale du mot de passe. Celles-ci n'étaient plus compatibles.
Pendant un certain temps, si vous vouliez que plusieurs machines avec différentes variantes Unix utilisent le même mot de passe, vous deviez utiliser l'ancien type de cryptage.
Il est fort possible que, lors de la première installation de ces laboratoires d’informatique, c’était encore le cas. Et ce type d'installation a l'inertie. Les nouveaux clients sont configurés pour correspondre au serveur. De nouveaux serveurs sont configurés pour correspondre aux clients.
Aujourd'hui, les choses vont mieux. Il y a moins de variantes Unix en service et elles coopèrent mieux.
Je ne suis pas assez compétent pour vous dire comment résoudre ce problème, mais cela est une tâche pour l'administrateur, pas pour vous.