Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Вход через ssh — проверяются только первые 8 символов пароля?, UniFi Network
 
Здравствуйте, у меня есть три UAP-AC-LR, которые были установлены в режиме самостоятельного управления (без контроллера) через мобильное приложение. Два точки доступа настроены через iOS-приложение, одна (в другом месте) — через Android-приложение. В одном месте я использовал пароль длиной 22 символа, в другом — 12 символов.

А теперь самое «интересное»: я заметил, что могу войти по SSH (использую putty), вводя только первые 8 символов пароля. Например, если пароль «password1234», то войти можно с «password», «password1», «password123» или даже с «passwordfgersdf34523454». Поддержка ubnt проверила и подтвердила такое поведение во время удалённой сессии, но у них в лаборатории воспроизвести проблему не смогли.

Кто-нибудь сталкивался с таким или не мог бы проверить? Спасибо, с уважением, Мартин.
 
Спасибо за напоминание, @waterside, и огромное спасибо @mfessler за обнаружение проблемы. Могу подтвердить, что эта ошибка присутствует в последних версиях приложений как на iOS, так и на Android. Дело в том, что приложения действительно используют DES для шифрования. Мы уже начали работу над обновлением, которое должно выйти как можно скорее, скорее всего, в ближайшие пару дней. Дэвид
 
Хорошо, сделаю. К счастью, я не устанавливал много устройств таким способом. Было бы неплохо получить короткое уведомление в приложении или хотя бы в журнале изменений приложения. Хотя, конечно, это не представляет серьезной угрозы безопасности, но я могу представить, что пользователь не будет регулярно сбрасывать точку доступа, и эта проблема будет тянуться долго — вероятно, многие годы.
 
@mfessler Да, всё верно, при настройке через Android требуется сброс точки доступа до заводских настроек и её повторная конфигурация.
 
Привет, Дэвид, эти изменения — идеи для будущей версии, поэтому они пока не реализованы, и для перехода на более длинный пароль на Android нужна перенастройка — правильно? Привет, Мартин
 
@mfessler

ОК, спасибо! На iOS это работает именно так. Если зайти в настройки точки доступа и сохранить их, пароль тоже обновится. На Android имя пользователя и пароль применяются только при первой настройке. Возможно, мы внесём изменения, чтобы пароль обновлялся при каждой конфигурации. Текущая публичная бета с исправлением уже доступна (если хотите попробовать, прокрутите страницу Google Play вниз, там есть раздел для присоединения к бете).  
Дэвид
 
@waterside

@caffn8me

Большое спасибо за вашу помощь в расследовании этой проблемы!

@UBNT-Jonge

Спасибо за быструю реакцию. К сожалению, у меня сейчас под рукой нет ни одного iOS-устройства. Но как только выйдет обновление для Android-приложения, я с удовольствием его опробую. Было бы здорово, если бы простая «переконфигурация», например, переключение светодиодного индикатора включить/выключить, была бы достаточной, чтобы «переключиться» на более длинный пароль. Или единичный повторный ввод пароля тоже подошёл бы. Спасибо, привет из Австрии! Мартин
 
Последнее сообщение как раз всё объясняет. Пароль, который устанавливается при подключении к AP через ssh, использует MD5-хэш, что даёт и длинный, и надёжный хэш, плюс почти неограниченную длину фразы-пароля. При этом пароль, установленный через приложение, судя по всему, использует DES — алгоритм, который уже давно устарел и не должен применяться. Поведение, которое ты описываешь, полностью соответствует использованию DES (то есть учитываются только первые восемь символов, независимо от длины пароля). Также я считаю, что приложение не должно бездумно сбрасывать пароль при каждом входе, если это действительно так.

@UBNT-Jonge
 
@caffn8me

Спасибо еще раз! Забавно, что если пароль короче 8 символов, добавление лишних символов не приводит к успешному входу. Например: если пароль «password123», то вход с «password123xyz» тоже работает. А если пароль «pass123», то вход с «pass123xyz» не срабатывает.

password123 установлен через приложение: ubnt:T0NR.Gbjaa7Gc:0:0:Administrator:/etc/persistent:/bin/sh  
password123 установлен через ssh: ubnt:$1$3tDrMt20$4aXmvIuatJjQF.PZQJy5J.:0:0:Administrator:/etc/persistent:/bin/sh  
pass123 установлен через приложение: ubnt:9390LsTttHYZQ:0:0:Administrator:/etc/persistent:/bin/sh  
pass123 установлен через ssh: ubnt:$1$wRBqA/Lo$G8rtgLckaRI7mCpSKe.K1.:0:0:Administrator:/etc/persistent:/bin/sh

Что из этого можно понять?

//редактирование:  
Еще интересный момент:  
Когда я добавляю устройство в контроллер (V5.6.29), в system.cfg появляется строка «unifi.version=5.6.29» (у устройства стоит версия V3.9.19).  
Но когда я настраиваю точку доступа через андроид-приложение (V1.6.8) в режиме EasySetup/Standalone/Controllerless, в system.cfg стоит строка «unifi.version=4.7.1».  
Возможно, этот нюанс с паролями — это какой-то «пережиток из прошлого»?
 
Вы всегда можете войти через ssh и посмотреть, как выглядит файл /etc/passwd на точке доступа, а затем сравнить, как он меняется, когда пароль устанавливается через ssh или через мобильное приложение. Точка доступа не использует shadow-пароли, поэтому имя пользователя и пароль хранятся прямо в этом файле.
 
Спасибо! Я теперь сменил пароль на «password123», и теперь работает только он — отлично! Но... как только я вхожу в приложение с новым паролем, старый пароль снова устанавливается как текущий, и происходит то же странное поведение. Если сначала удалить данные/кеш приложения, тогда используется новый пароль (password123), но опять кажется, что учитываются только первые 8 символов. Похоже, это довольно серьёзный баг мобильного приложения — оно берёт только первые 8 символов. Тогда почему же, например, вход с паролем «password123asdfghjkl» тоже работает? Интересно, я один заметил эту проблему?! Спасибо, привет, Мартин.
 
Не подключайтесь к устройству через функцию «adopt», а зайдите на него по SSH. Как только вы войдёте в устройство, можно использовать команду passwd для смены пароля. Возможно ли, что при установке пароля через приложение на Android или iOS передаются только первые восемь символов введённого пароля?
 
Хорошая идея, мне нравится её протестировать. Но как — есть подсказки? Также обратите внимание на мою правку в последнем сообщении. Спасибо!
 
Что произойдет, если подключиться к точке доступа через SSH с помощью PuTTY и сменить пароль напрямую, а не через мобильное приложение?
 
Сегодня я установил ещё один совершенно новый AP-AC-LR. Опять же через мобильное приложение (Android, v1.6.8) в автономном режиме: сначала очистил кэш и данные приложения, затем настроил с новым паролем — длиной в 24 символа. И всё точно так же: после настройки я могу войти по ssh (да и через мобильное приложение тоже) используя только первые 8 символов пароля. Дома у меня другой AP-AC-LR, и он ведёт себя точно так же. Я что, один такой с этой проблемой?

//редактирование:  
Когда AP подключён через сервер, пароль сайта (Device Authentication) проверяется полностью. Похоже, что эта проблема «только» возникает при настройке AP через мобильное приложение в автономном режиме (без контроллера).
 
Проблема должна быть исправлена на iOS и доступна в бета-версии TestFlight. Если кто-то хочет протестировать (буду очень признателен), пришлите мне в личку свой e-mail, чтобы я мог пригласить вас. На Android это исправят позже на этой неделе или в начале следующей.
Страницы: 1
Читают тему (гостей: 1)