ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Single Sign On with Nginx



Mikhail Fursov wrote:
2010/2/26 Andrew Kopeyko <kaa@xxxxxxxx <mailto:kaa@xxxxxxxx>>

    Mikhail Fursov wrote:


        2) Должна быть указан URL страницы на которую переходить при
        ошибке аутентификации. Тут важно передать странице с ошибкой
        полную информацию об аутентификации - логин, пароль, тип ошибки
        (если возможно). В Apache этого нет, поэтому когда происходит
        ошибка аутентификации и пользователя требуют заново ввести
        пароль совсем непонятно по какой причине: его аккаунт
        заблокирован, задан неправильный пароль etc. Это очень неудобно.


    Зато правильно с точки зрения безопасности - при отказе в доступе не
    происходит раскрытия информации. Удивительно, что вы не знаете таких
    базовых вещей.

    А ваш "дружественный" интерфейс будет подыгрывать взломщику,
    позволяя ему последовательно подобрать логин, а затем пароль.

    Вы ведь не ограничиваете кол-во неудачных попыток авторизации?


Я не гуру в разработке веб-серверов но не вижу тут никакого раскрытия информации. На error-document шли бы те же данные, что ввел сам пользователь. Что из них ожно раскрыть?

Если вы не будете разжёвывать пользователю что именно он ввёл неправильно, а просто скажете "не попал" - тогда раскрытия не будет.

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

Посмотрите вокруг - в подавляюшем большинстве информационных систем при неудачной аутентификации говорится что-то типа "доступ запрещён" не уточняя по какой именно причине. Windows в этом месте - сделан исключительно правильно.

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

Т.е. в дилемме "удобство vs. безопасность" вы выбираете "удобство", тем самым снижая безопасность вашей системы.

Безопасность будет снижаться, потому что злоумышленнику не нужно будет подбирать всю пару логин-пароль - он сможет, пользуясь подсказками вашего дружественного интерфейса, отдельно подобрать незаблокированный логин (передавая, к примеру "" в качестве пароля), и затем подобрать верный пароль к этому логину. Поскольку длина отдельно логина существенно меньше длины пары логин-пароль, времени на такой подбор потребуется существенно меньше.


Решать, разумеется, вам - но настоятельно советую отказаться от вашей затеи "с удобствами", и наружу выдавать только сообщение "доступ запрещён", без подробностей.


--
Best regards,
Andrew A. Kopeyko <kaa@xxxxxxxx>
http://www.zvuki.ru/

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.