Je peux omettre les derniers caractères de mon mot de passe sur Ubuntu 14.04

27

Nous avons Ubuntu 14.04.3 LTS sur nos PC de laboratoire dans mon collège. J'ai remarqué un grave bug aujourd'hui.

Je peux ignorer les derniers caractères de mon mot de passe et me connecter sans problème. Par exemple, si mon mot de passe est a1b2c3d4e5f6g7h8 , je peux taper a1b2c3d4e et toujours me connecter. De nombreuses 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 sauter plus, 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 saisis à nouveau le mot de passe. Le même bug est présent lors de l'utilisation de ssh et bien, googler et rechercher Stack Overflow n'a pas aidé.

Ma question est: comment puis-je résoudre ce problème, si je peux le réparer? Notre sysadm ne sera pas disponible avant lundi et cela me trouble vraiment.

IMPORTANT: Notez qu'aucun des comptes des étudiants ne figure dans la liste des sudoers, seul sysadm a un accès root. En outre, ce qui suit apparaît 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.

MISE À JOUR: 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 du mot de passe.

    
posée Dimitri Markovich 10.02.2017 - 08:59
la source

2 réponses

28

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 des administrateurs. Cela ressemble étrangement au chiffrement de mot de passe en utilisant la fonction crypt(3) classique. De man 3 crypt :

crypt()  is  the password encryption function.  It is based on the Data
Encryption Standard algorithm with  variations  intended  (among  other
things) to discourage use of hardware implementations of a key search.

key is a user's typed password.

salt is a two-character string chosen from the set [a-zA-Z0-9./].  This
string is used to perturb the algorithm in one of 4096 different ways.

By taking the lowest 7 bits of each of the first  eight  characters  of
the  key, a 56-bit key is obtained.  This 56-bit key is used to encrypt
repeatedly a constant  string  (usually  a  string  consisting  of  all
zeros).   The returned value points to the encrypted password, a series
of 13 printable ASCII characters (the first  two  characters  represent
the salt itself).  The return value points to static data whose content
is overwritten by each call.

Est-ce que 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 pu.

Voir aussi: Les mots de passe sur les systèmes Unix / Linux modernes sont-ils toujours limités à 8 caractères?

    
réponse donnée muru 10.02.2017 - 09:14
la source
7

Il y a eu un temps, dans un millénaire précédent, où tous les Unixen ont crypté leurs mots de passe de cette façon. Jeter tout au-delà du huitième caractère, ajouter du sel, passer à travers une fonction de hachage et terminer.

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. Huit caractères de mots de passe ont beaucoup de possibilités. Si vous devez faire une tentative de connexion pour vérifier un mot de passe potentiel, la procédure d’installation prend beaucoup de temps. De plus, les tentatives déclencheront des alarmes.

Le gros avantage est donc les mots de passe masqués. Cependant, les gens ont commencé à penser que cela ne suffisait pas et que chaque variante Unix implémentait sa propre manière d'étendre la longueur maximale du mot de passe. Celles-ci n'étaient plus compatibles.

Pendant un certain temps, si vous souhaitiez que plusieurs machines utilisant des variantes Unix différentes utilisent le même mot de passe, vous deviez utiliser l'ancien type de cryptage.

Il est tout à fait possible que lorsque ces premiers laboratoires d’informatique aient été installés, c’était toujours 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 utilisées et elles coopèrent mieux.

Je ne suis pas assez compétent pour vous dire comment résoudre ce problème, mais c'est une tâche pour l'administrateur, pas pour vous.

    
réponse donnée Stig Hemmer 10.02.2017 - 12:12
la source

Lire d'autres questions sur les étiquettes