2016-12-05 10 views
-1

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

Из интереса к тому, что мой браузер не просит меня сохранить мое имя пользователя и пароль, я решил посмотреть источник, чтобы узнать, как это делается. При этом, я наткнулся на какой-то странный код JS, который компилирует пароль с тем, что, как представляется, соль, а затем преобразует его в hexMD5:

password = hexMD5(
    '\360' + 
    document.login.password.value + 
    '\123\076\310\204\336\276\065\360\375\311\365\076\031\311\360\117' 
) 

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

Любое понимание этого было бы очень полезно, и, пожалуйста, дайте мне знать, если этот вопрос больше подходит для другого сайта SE.

+1

Я бы сказал, что этот вопрос будет более целесообразно размещен на http://security.stackexchange.com/ – George

+0

@George, спасибо - должен ли я удалить этот и переместить его, или было бы лучше, если бы модератор переехал? –

+0

Uhm ... не более вероятно, что сервер хранит хешированную версию пароля вместо хранения версии открытого текста и хэширования ее во время каждой попытки входа? Несмотря на это, мы не знаем, что сервер делает или не делает, и как (в) это безопасно. – deceze

ответ

1

Я предполагаю, что hexMD5() представляет собой реализацию для преобразования любой строки в хэш-файл MD5. Если это верно, то ваш пароль не сохраняется в текстовом формате.

Бэкэнд может сохранить хэш MD5 и сравнить сохраненный хэш с хешем, который он получает от входа.

Но если они создают новую соль каждый раз при входе в систему тогда да они могут экономить пароль в качестве открытого текста, если их реализация не нечто похожее на md5(salt + md5(password)).

Безопасность на SO имеет много потоков о хэшировании, если вы хотите получить дополнительную информацию.

+0

Проблема в том, что соль, окружающая пароль, изменяется при перезагрузке, и все это хэшируется вместе. –

+0

@MikeRockett Если соль отправлена ​​вместе с хешем MD5, это не проблема. Они просто сохранили бы соль. И даже если он не отправляется, его можно сохранить в сеансе. –

+0

Итак, как бы сервер попал в тот же хеш, не зная моего пароля, учитывая, что он все хэшируется вместе? Если бы пароль был хэширован отдельно, это имело бы смысл для меня ... –