Not a kernel guy

… in the Windows kernel team

Friday, January 26, 2007

Про безопасность, smart карты и usability.

Microsoft серьёзно подходит к безопасности корпоративной сети. Помимо всего прочего, для авторизации при удалённом доступе обязательно использование smart карты, простой пары имя-пароль недостаточно. Впрочем, я собираюсь рассказать не о стандартах безопасности, а о том, как я однажды заблокировал свою smart карту из-за особенностей реализации этих стандартов.

Дело было так. Подключаясь к сети в очередной раз, я получил стандартное приглашение ввести PIN карточки:

Приглашение ввести PIN карточки

Ввожу и, естественно, получаю в ответ – “неверный PIN, попробуйте еще раз”. Обычное дело, подумал я. Ввожу ещё раз. С тем же результатом. Уже хуже. Третий раз будет последним. Проверяю текущую раскладку, так как PIN состоит из букв, цифр и спецсимволов; ввожу PIN, проверяя каждый символ, и получаю третье, на этот раз окончательное, “нет”.

Что же произошло? На выяснение причин я потратил добрые полчаса. Оказалось, что я просто нажал Num Lock, который переключает половину буквенной клавиатуры ноутбука в цифровой режим. :-) Понятно, что на полноразмерной клавиатуре такой проблемы не может возникнуть в принципе – цифровые клавиши расположены отдельно. Привычки пользоваться клавишей Num Lock у меня не было никогда: на обычной клавиатуре он всегда включён, на ноутбуке – всегда выключен. Это и сыграло со мной злую шутку.

При чём же тут стандарты безопасности? Дело в том, что многое диалоги ввода пароля совершенно нетолерантны к подобным ошибкам пользователя. Они не дают уверенности, что нажатие нужных клавиш даст набираемый пароль. Хороший пример борьбы с этой проблемой – окно входа в систему в Windows XP. В отличие от Windows 2000, пользователь может визуально определить текущую раскладку клавиатуры. Кроме того, всплывающая подсказка предупреждает пользователя о случайном (или намеренном) нажатии клавиши Caps Lock.

Впрочем, даже эти методы далеки от идеала. Лучший известный мне метод проверки – набрать часть пароля в поле ввода имени пользователя. Хотя этот способ тоже не даёт стопроцентной гарантии в случае похожих букв из разных языков. В моём конкретном случае с неверным PIN-ом редактирование поля ввода имени пользователя было запрещено. Соответственно воспользоваться этим способом не получилось. Хотя и очень хотелось.

Posted at 9:03 pm •

RSS feed | Trackback URI

5 Comments »

Comment by Arcady Chumachenko — January 27, 2007 @ 1:32 am

Насколько я помню, вполне возможно программно определить, что нажаты Caps Lock или Num Lock :)

 
Comment by Daniel Kornev — January 27, 2007 @ 6:09 am

:))) У меня первая проверка смарт-карты будет уже в Лиссабоне :) Посмотрим, что будет с ней веселого! ;)

 
Comment by Not a kernel guy — January 27, 2007 @ 12:05 pm

> Насколько я помню, вполне возможно программно определить, что нажаты Caps Lock или Num Lock :)

Можно конечно. Однако нельзя гарантировать, что какая-нибудь клавиатура будет использовать дополнительную статусную клавишу. Скажем какой-нибудь smart phone может отличиться.

 
Comment by Raider — January 27, 2007 @ 3:00 pm

> Подключаясь к сети в очередной раз, я получил стандартное приглашение ввести PIN карточки

Может просто стоит использовать токены в качестве носителя пароля/пина/etc? Например, SD-карточку: вставил в card reader, считалось что нужно, авторизовался, вынул карточку. На клавиатуре нажимать ничего не надо. Если card reader-ы не на всех машинах, то USB flash спасет.

 
Comment by Not a kernel guy — January 27, 2007 @ 3:34 pm

> Может просто стоит использовать токены в качестве носителя пароля/пина/etc?

Smart карта и является таким токеном. Только токен без пароля по определению менее безопасен чем токен с паролем. Он не защищает от кражи токена.

 

Your Comment (smaller | larger)

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress