Single Sign On with Nginx

Andrew Kopeyko kaa на zvuki.ru
Пт Фев 26 14:45:38 MSK 2010


On Fri, 26 Feb 2010, Gena Makhomed wrote:

> On 26.02.2010 11:36, Andrew Kopeyko wrote:
>
>> А вот если вы будете ему сообщать (условно) "неправильный логин", "логин
>> заблокирован", "логин верный, неверен пароль" - это уже раскрытие
>> информации. Ведь до момента успешной авторизации вы знать не знаете кто
>> сидит на другой стороне - валидный пользователь, или злоумышленник.
>> Собственно, для того вы аутентификацию и делаете - дабы отличить одного
>> от другого.
>>
>> Посмотрите вокруг - в подавляюшем большинстве информационных систем при
>> неудачной аутентификации говорится что-то типа "доступ запрещён" не
>> уточняя по какой именно причине. Windows в этом месте - сделан
>> исключительно правильно.
>
> однако, веб-приложения отличаются от десктопных наличием возможности 
> восстановления пароля на емейл и это дает дополнительные преимущества.

Сомнительное это преимущество - нет у него возможности удостовериться что 
ящиком по-прежнему владеет валидный пользользователь, что приводит к 
возникновению дополнительного канала перехвата логина\пароля. Знаете как 
угоняют номера ICQ?

> Windows кстати, - раскрывает логины пользователя / всех пользователей.
> ( в зависимости от типа logon: Classic Logon / Welcome Screen Logon )

Достаточно добавить машину в домен - и это безобразие сразу же исчезает.

> сообщение "Доступ запрещен" может вводить в валидного пользователя 
> заблуждение, лучшим вариантом наверное будет ответить, что "Такая 
> комбинация логина и пароля не найдена. Проверь данные и попробуй еще."

Необученного плюс невнимательного - ещё как вводит.

> или сообщение при ошибке входа в Skype: 
> https://secure.skype.com/account/intl/ru/login - "Ошибка идентификации. 
> Проверьте правильность логина и введите ваш пароль еще раз.". ссылка 
> "Забыли свой пароль?" сразу под кнопкой "Войти в Skype" и сама форма 
> входа - очень хорошо продуманы.
>
> здесь валидному пользователю дается намек, что он наверное ошибся в 
> логине или пароле, и поэтому не удается войти, вместо того чтобы ему 
> сразу же начинать звонить/писать в support с вопросами "почему меня 
> заблокировали, разблокируйте пожалуйста". а вот для злоумышленника 
> раскрытия информации тут нет, он не узнает для себя ничего нового.

Вот!
Такой конструкцией skype снимает нагрузку со своего саппорта.

> сообщить о том, что "Доступ запрещен" после того как пользователь
> ввел валидный емейл для восстановления пароля - формально это есть 
> раскрытие информации, но вот злоумышленнику оно дает очень мало 
> преимуществ. логин пользователя в этом случае не раскрывается,
> а только сообщается о самом факте блокировки учетной записи.

Всё было бы так, если бы email так широко не применялся в качестве 
идентификатора пользователя...

Skype в этом - наполовину-приятное исключение.
Наполовину - потому что показываемое всем skype-имя и является логином, 
т.е. определить его всё-таки возможно, хоть и не со страницы 
восстановления пароля. 
:((

Совсем-совсем правильная конструкция, к сожалению, была бы слишком 
громоздкой и неудобной для среднего пользователя, ибо включала бы 4 поля
- логин
- пароль
- skype-имя
- email

Но была бы более защищённой от угона логина\пароля - знание skype-имени 
и\или доступ к email не давал бы информации о логине, необходимом для 
аутентификации в системе.
;-)


-- 
Best regards,
Andrew Kopeyko <kaa at zvuki.ru>




Подробная информация о списке рассылки nginx-ru