Я могу опустить последние несколько символов моего пароля в Ubuntu 14.04

27

У нас в лаборатории есть Ubuntu 14.04.3 LTS на наших лабораторных ПК. Я заметил серьезную ошибку сегодня.

Я могу пропустить последние несколько символов моего пароля и все равно войти в систему. Например, если мой пароль - a1b2c3d4e5f6g7h8я могу напечатать a1b2c3d4eи войти в систему. Многие другие люди также заметили эту ошибку.

Обратите внимание, что пароль не может быть полностью обойден - максимум, который я смог пропустить, составляет 7 символов. Если я попытаюсь пропустить еще раз, появится сообщение « Неверный пароль, повторите попытку ». Также обратите внимание, что любая случайная перестановка подстроки пароля не работает.

Это также происходит, если я заблокирую экран вручную и снова введу пароль. Такая же ошибка присутствует при использовании sshи хорошо, поиск в Google и поиск переполнения стека не помогли.

Мой вопрос - как я могу исправить эту ошибку, если я могу исправить это вообще? Наш системный доступ не будет доступен до понедельника, и это действительно беспокоит меня.

ВАЖНО: обратите внимание, что ни одна из учетных записей студентов не находится в списке sudoers, только sysadm имеет root-доступ. Кроме того, следующее появляется, когда я sshв свой аккаунт:

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.

ОБНОВЛЕНИЕ: похоже, важная проблема не в количестве символов, опущенных в конце, а в том факте, что возможно войти в систему с первыми восемью или более символами пароля.

Дмитрий Маркович
источник
2
Я подозреваю, что какая-то внешняя аутентификация (LDAP, Active Directory и т. Д.) Была ошибочной и неправильно проверяла пароли. Поговорите с вашим системным администратором.
Андре Бори
8
350 обновлений безопасности доступны. Один из них, вероятно, тоже исправляет ошибку Heartbleed
AnthumChris
4
Ваш системный администратор, кажется, не был доступен в течение нескольких месяцев ...
Майкл Хэмптон

Ответы:

28

Если у вас нет прав администратора, вы мало что можете сделать.

Тем не менее, это, кажется, из-за некомпетентности администратора. Это звучит подозрительно похоже на шифрование пароля с использованием классической crypt(3)функции. От man 3 crypt:

crypt () - это функция шифрования пароля. Он основан на данных
Стандартный алгоритм шифрования с предполагаемыми вариациями (среди прочих
вещи), чтобы препятствовать использованию аппаратных реализаций поиска ключа.

ключ - это введенный пользователем пароль.

соль - это двухсимвольная строка, выбранная из набора [a-zA-Z0-9./]. это
Строка используется для нарушения алгоритма одним из 4096 различных способов.

Взяв младшие 7 бит каждого из первых восьми символов
ключ, получается 56-битный ключ.   Этот 56-битный ключ используется для шифрования
постоянно константная строка (обычно строка, состоящая из всех
нули). Возвращаемое значение указывает на зашифрованный пароль, серию
из 13 печатных символов ASCII (первые два символа представляют
сама соль). Возвращаемое значение указывает на статические данные, содержимое которых
перезаписывается при каждом вызове.

Это звучит знакомо?

Ни одна из последних систем Ubuntu не использует это по умолчанию. Ваш администратор должен вручную настроить пароль для его использования. Или они могут использовать внешнюю аутентификацию (LDAP или аналогичную) и не могут или не могут настроить ее безопасным образом.

См. Также: пароли в современных системах Unix / Linux по-прежнему ограничены 8 символами?

Мур
источник
4
Тогда админ, скорее всего, использует LDAP ..... Я постараюсь связаться с ним. Благодарность!
Дмитрий Маркович
1
OP может дополнительно подтвердить это, посмотрев, имеет ли значение изменение 8-го бита любого из первых 8 символов. Хотя это может быть сложно сделать в среде UTF-8.
Йонас Шефер
@JonasWielicki - переключение 8-го бита любого из первых восьми символов имеет значение - пароль отображается как недействительный. Поэтому я могу использовать только первые восемь или более символов моего исходного пароля.
Дмитрий Маркович
@ die-policy137 Как уже упоминалось, я думаю, сложно перевернуть только восьмой бит - с UTF-8 это приведет к использованию двух байтов вместо одного для кодирования кодовой точки. Так что, к сожалению, это не определенный тест, если только кто-то не очень строго контролирует кодировку, используемую терминалом, и / или данные, отправляемые для аутентификации.
Йонас Шефер
7

В прошлом тысячелетии было время, когда все Unixen шифровали свои пароли таким образом. Откажитесь от всего, кроме восьмого символа, добавьте соль, бросьте через хэш-функцию и все готово.

Большой вопрос здесь в том, доступны ли зашифрованные пароли потенциальным хакерам. Если они есть, это большая проблема. Если они не, это действительно не имеет большого значения. Восемь символов паролей имеет много возможностей. Если вам необходимо выполнить фактическую попытку входа в систему, чтобы проверить потенциальный пароль, то взлом займет много времени. Кроме того, попытки вызовут тревоги.

Итак, большая победа здесь - это теневые пароли. Тем не менее, люди начали думать, что этого недостаточно, и в каждом варианте Unix реализован собственный способ увеличения максимальной длины пароля. Они больше не были совместимы.

Некоторое время, если вы хотели, чтобы несколько компьютеров с разными вариантами Unix использовали один и тот же пароль, вам приходилось использовать старый тип шифрования.

Вполне возможно, что когда эти компьютерные лаборатории были впервые созданы, это было все еще так. И этот тип установки имеет инерцию. Новые клиенты настроены в соответствии с сервером. Новые серверы настроены для соответствия клиентам.

Сегодня дела обстоят лучше. Используется меньше вариантов Unix, и они лучше взаимодействуют.

Я не достаточно компетентен , чтобы сказать вам , как это исправить, но это задача для администратора, а не для вас.

Стиг Хеммер
источник
Хорошо, тогда .... Хотел бы я хоть что-то сделать.
Дмитрий Маркович
"Unixen" над "Unicies"? Никогда такого не слышал раньше, приятное прикосновение
кот
1
@cat Это явно портмоне из Unix и boxen .
Майкл Хэмптон
2
Поскольку Unix - выдуманное слово, во множественном числе тоже можно придумать :)
Thorbjørn Ravn Andersen
Eight characters passwords has a lot of possibilities.Для энтропии паролей вы предполагаете, что злоумышленник знает, как вы генерируете пароли. Если вы используете случайные слова , самое большее, вы получите 2 слова или 22 бита энтропии.
Нелинейно-