Как стать автором
Обновить

Комментарии 88

Брутфорсить станет проще)

А так, — идея не нова (хотя не знаю, где воплотили), но отлична=)
ну это я в минусах и описал, все зависит от целей проекта. Понятное дело, что в банковских системах подобное никак нельзя применять =)
В PSB интернет-банк, согласно документации, восьмибитные символы в пароле вообще не принимает.
а нельзя ли сделать алгоритм, чтобы после нескольких попыток ввода на 1 логин отключал конвертацию на пару часов?
Ну как вариант)
А вот мне кажется, что идея не айс. Пароль по определению уникален и другого варианта того же пароля существовать просто не должно. Это противоречит любым принципам безопасности. А если у пользователя был случайно нажат Caps Lock?

Лучше бы сделать индикатор языка или какой-то попап рядом с полем. Но это уже существует
не думаю что безопасность снизится от того, что вместо двух наборов символов станет всего один. вон в америке и в англии он изначально только один (там только английские буквы) и никто не жалуется, что это не безопасно
согласна. а давайте для полной безопасности будем иероглифы рисовать? лучше вперемешку с русскими, английскими и греческими буквами и арабской вязью? зато красиво)))
Я имею в виду — пароли на русском языке, набранные русскими буквами — процент таких паролей довольно большой, ИМХО=)
идя интересная. Будет полезна для обычных сайтов, не содержащих в профели пользователя очень важной информации
сама идея нормальная, но я все же придерживаюсь мнения что кое-что пользователь должен делать сам. По крайней мере внимательно следить за раскладкой клавиатуры при вводе.
НЛО прилетело и опубликовало эту надпись здесь
А как система определит, что пароль введен не в той раскладке, без проверки её?
НЛО прилетело и опубликовало эту надпись здесь
да вообще пароль на русском помоему редкто кто пишет, можно просто проверить на наличие кирилицы в строке
Это вам кажется, все опять же зависит от аудитории(
ну никто же их не принуждает вводить на английском, можно просто уведомить пользователя о том, что он вводит на русской раскладке
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
отличная идея)
Если еще и капс добавить, и еще что то добавить, то кол-во проверок будет возрастать 2^N где N это кол-во этих всяких вероятных состояний.
Что неправильно — лучше 16-м шрифтом красного цвета сообщать пользователю требования к паролю, при неправильном вводе. Это педагогически более правильно. И пользователь учится, и система не перегружается.
Пароль может удовлетворять требованиям, но быть набран не в той раскладке.
А набранный не в том регистре пароль тоже приравнивается к правильным?
Выводить сообщения о неправильном пароле с вариантами исправления:
— раскладка не та
— caps lock нажат
Вроде все. И ресурсы зря не тратятся, безопасность не страдает и пользователь перестает нервничать и логинится.
если система не предполагает в паролях русских букв, то проверку можно (и нужно) производить на клиенте, тем же JS проверять введенные буквы, и если они русские выводить предупреждение об этом.
совершенно верно, на некоторых сайтах в текстовое поле вообще нельзя ввести русские буквы
>>предложения?
Может, поставим openID?
Кроме русского и английского, есть еще много других языков… Можно сделать намного проще, запретив при регистрации использование в пароле символов, кроме определенного набора (a-z, A-Z, 0-9, знаки препинания) + выводить предупреждение, если при логине пользователь использует символы, отличные от этого набора.
Решает проблему нескольких раскладок + в целом не снижает криптостойкость.
Терпеть не могу, когда мне говорять что в пароле, например В%-С%№$, я использую недопустимые символы, — это мой пароль, какие хочу символы такие туда и сую
Но уж лучше пусть об этом говорят, чем молчат а потом работают с ошибками!
У меня как-то был такой прецедент с символом " в пароле
За ошибки в реализации таких важных вещей, как кода для работы с паролями вообще надо лишать компьютера =)

Действительно, какой хочу пароль, такой и использую.
Аналогично: неправильно ограничивать максимальную длину пароля, хотя иногда это сложно не делать (например если пароль хранится в открытом виде, ну придется трогда, что поделаешь), а в остальных случаях — почему бы и нет? Например если логин можно делать 32 символа, то почему пароль только 16?

Мне такая идея тоже приходила, про раскладку, про капс, но отказался сразу же. Т.к. можно домыслить и вообще сделать регистронезависимые пароли — совсем уж до маразма.

Но сама по себе идея неплоха и интересна по-своему, может быть в применении не к паролям, а чему-то еще. Имя пользовавателя например, адрес электронной почты — можно прямо сразу в интерфейсе замечать неправильный ввод и переводить, предупреждать. Многие если не спасибо скажут, то хотябы не выматерятся в очередной раз :)
самый кашерный символ в пароле это пробел, и перевод строки. Но помню была тема, как пошаманить с аськой и вставить туда такие символы.
легко — при помощи ескейп последовательностей: \c \n \t
неа, не подходит ;)
Полностью согласен.

Проверять нужно лишь на наличие «посторонних символов», которые не являются ни символами латинского алфавита, ни цифрами, ни знаками препинания.

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

Мгновенный фидбек по мере ввода позволяет пользователю понять, что он вводит что-то неправильно. Это позволяет очень быстро переучиться работать правильно и сразу проверять раскладку при вводе пароля. Таким образом, этот способ в большей степени будет полезен «новыичкам», позволив в будущем избегать ошибок.

Насколько мне известно, макос и, в частности, в сафари будет показывать специальный символ в углу поля ввода пароля, если ты пишешь с зажатым Caps Lock. Это позволяет мгновенно среагировать и ввести пароль корректно.
Очень многие (в том числе и я) не владеют слепым набором и если это не диалоговое окно, а какой-то символ или надпись, то есть большой шанс его не увидеть вообще закончив ввод пароля «ентером».

Ок, поскольку ни у меня, ни у вас (как я предполагаю) нет точных данных по этому вопросу, сделаем ряд допущений.

Предположим, 50% пользователей увидят надпись по мере ввода. 50% пользователей будут нажимать кнопку входа с помощью мыши (т.е. посмотрят на экран перед отправкой формы ввода). 50% пользователей, которые будут пользоваться только клавиатурой, нажмут Enter не глядя (даже не делая TAB, к которому быстро приучают все эти «чужие компьютеры» на mail.ru и т.п.)

Итак, 12,5% «не оповещённых» пользователей после ввода неверного пароля увидят сообщение об ошибке, на которое всё равно придется посмотреть. Там же они увидят причину ошибки — сообщение о кириллическом вводе пароля. Вход будет успешным со второго раза.

Допустим, мы откажемся от принятых метрик эффективности и просто будем использовать коэффициент: 1 в случае входа на сайт с первого раза, 0,5 в случае входа со второго раза, 0 в случае невыполнения входа (как это было у знакомой автора поста). Тогда эффективность предложенного способа: 87,5*1+12,5*,5=93,5%. По-моему, это неплохой результат.

Автор поста предлагает стопроцентное решение, которое, к сожалению, лишено эффекта обучаемости. Таким образом, если какая-то другая система, используемая пользователем, не поддерживает предложенное автором поста решение, пользователь всё так же будет в непонятках по поводу того, почему ему не удалось войти в систему.
Почему не изменять вводимое налету?
Например: П. нажал «й», в поле появилось «q».
Это было бы полезно в полях допускающих ввод только латиницей — почта, скайп ид и прочее.
Потому что учить не обращать внимания на раскладку — моветон. Тогда пользователь быстро привыкнет к этому и попадя на сайт где такой замены нет будет долго материться.
Простите, это шутка?
В интернетах чудовищно много бесполезных, неудобных, отвратительных сайтов, но это ведь не повод делать все сайты одинаково убогими, чтобы не вызвать вдруг удивление у пользователя?

Значек раскладки не обязан присутствовать на экране, и, тем более, его нет в видимой области, о том что выбрана неверная раскладка узнают обычно постфактум.

ЗЫ: Если пользователь будет материться на сайтах конкурентов, то это только плюс: )

нет, не шутка.
любое упрощение ввода пароля кроме индикации раскладки, состояния переключателей caps и num lock — ухудшение защиты проекта.
Чем легче пароль ввести (за нас раскладку сменят, скажут на каком языке он должен быть, в каком регистре нужно вводить…), тем легче его подобрать.
Пользователь должен помнить свои пароли… или хранить их в безопасном месте, но ИМХО password manager'ам пароли от важных ресурсов/сервисов доверять не стоит.
Речь ведь идет не о менеджере паролей (зачем передергиваете?), а о смене раскладки.
Предполагаемый скрипт нужен не только для паролей, но и вообще для всех полей, где доступен ввод только на 1 языке.
Если пароль может содержать только латинские буквы и спецсимволы, то о каком облегчении подбора вы говорите?
я не передергиваю. менеджеры паролей были приведены как место безопасного хранения.

Если злоумышленник не знает о запрете использования кириллицы по какой-либо причине (сам не посмотрел по неопытности или забывчивости, регистрация только по инвайтам или еще чего), то пароль созданный по принципу «русское слово на английской раскладке» будет подобран много быстрее.

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

А вот поместить индикатор раскладки рядом с полем ввода пароля — хорошая идея.
например так:
При вводе в поле чего-либо можно определять раскладку яваскриптом и выводить ее рядышком с полем. Я таких извратов, которые имеют пароль в двух раскладках не знаю, но я уверен, что такие черти в неправильной раскладке не наберут ;)
накатал небольшой такой скриптец, если кому интересно могу написать.
только не понятно как определять расскаладку. если по вводимым символам, то тогда непонятно какая расскладка при вводе цифр и прочих символов.
По-умолчанию, считаем, что англ, до первой русской буквы…
дискриминация какая то :)
До ввода букв можно вообще не показывать язык раскладки.
Я против.
Понятно, что интерфейсы сайтов должны быть дружественными для пользователей, но не до такой же степени!
Соглашусь с explanent насчет отсутствия «обучаемости». Маловероятно, что все сайты в мире моментально перейдут на такую систему, а пользователи будут только больше путаться. И уж тем более те из них, которые не в состоянии правильно ввести свой собственный пароль. :-/
Да и по поводу снижения безопасности, тут выше в комментах уже писали. Мне кажется, это не тот случай, когда стоит рисковать безопасностью ради юзабильности.
имхо, безопасность страдает не сильно. Вопросы:
1) во сколько раз увеличивается брут при отсутствии данной опции(учитывая что ввод только на английском)?
2) во сколько раз увеличивается брут при добавлении одного символа?
3) что мешает сделать защиту от брута?

З.Ы. Кстати!!! при разрешенном вводе в русской раскладке данная автозамена не проходит. Пароль: LЛ3 поменяйте :)
НЛО прилетело и опубликовало эту надпись здесь
Зачем? Получили от пользователя некую строку, захешировали её, проверили на совпадение с хешем пароля, если хеши не совпали — перевели полученную строну в другую раскладку, опять захешировали и проверили с хешем пароля. Так что серверу достаточно хранить только хеш оригинальноо пароля.
Да ну нафиг, придумайте что-нибудь другое лучше
А если пароль в двух раскладках=)?

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

Вот и особо не распространяться об этом, чтобы брутфорсеры не прибежали=)
В копилку: после первой же неудачной попытки ввода пароля вернуть форму с указанием ошибки, а рядом с полем password поставить переключатель типа поля на обычный «text», чтобы пользователь мог посмотреть, что же он такое ввел в поле пароля, что не подошло. Думаю, ошибка пользователю будет очевидна и он тут же сможет её исправить.
Мне кажется, что нужно просто сделать галочку «показать вводимые символы».
НЛО прилетело и опубликовало эту надпись здесь
Ничего себе какой фашизм. У меня на некоторых сайтах пароли содержат русские буквы. Как же мне войти?
у меня еще круче идея. пускать пользователя какой бы пароль он ни набрал и выдавать предупреждение что он чет там неправильно ввел. блондинки будут довольны.
А как быть с пользователями у которых кроме русской и английской установлено несколько раскладок? Проблема в том, что это не только национальные раскладки (белорусская, украинская и т.д.), к примеру, многие ставят греческую раскладку для удобного набора формул.
Моё мнение — не надо тут облегчать жизнь пользователю. Пользователь должен уметь ввести пароль правильно. Если не умеет — пусть учится. Не надо террористических мер, просто надо провести тренинг по теме «что такое раскладка, Shift и CapsLock». Не думаю, что найдутся люди, которым этого не понять (в крайнем случае я бы порекомендовал им заняться чем-нибудь не связанным с компьютерами. Например, руководящей работой :-)).

Хорошая штука на эту тему есть в LotusNotes — там показываются разные картинки в зависимости от введенного в поле «пароль». Если введешь в другой раскладке — сразу это видишь, даже не нажимая Enter. Вот это, как по мне, хорошая идея.
Просто при вводе на русском следует JS вызывать алерт с сообщением вида «Вводимая Вами информация содержит русские буквы. Вы хотите продолжить? Да. Нет.»
Да — подверждает и постит введенные данные
Нет — возвращает false и дает возможность исправить введенный пароль.
Вот и все решение.
По идее эта проблеима должна решаться на уровне ОС или Пунто (авт. вкл. англ. расклдку и откл. КапсЛокпри вводе пароля) — но в качустве временного решения я бы запретил кириллицу в пароле.
Я считаю такую функциональность неуместной. Как решение проблемы предожу паттерн, который используется в окне логина винды: значок языка и капслока рядом с полем ввода.
Паттерн отличный, да только вот как JavaScript'ом получить текущую раскладку и состояние CapsLock?
Вы не можете использовать этот пароль так как он используется пользователем «dima»
В клиенте webmoney там около окошечка ввода пароля висит значек, который показывает текущую раскладку. Все остальное — от лукавого. По-крайней мере по-моему мнению.
система «угадывает» регист… система «угадывает» раскладку… система «угадывает» похожие символы (O и 0)… система укадывает похожие по звучанию символы (e и i)… и в завершении после ввода логина система спрашивает «вы действительно знаете пароль (да/нет)»
и если вы его не знаете, то она так дружелюбна, что пишет его вам или отправляет по почте (опционально)
НЛО прилетело и опубликовало эту надпись здесь
А почему собственно сегодня нельзя предположить, что пароль уже не должен быть только на английском? UTF-8 не всё ли держит? Хочет человек пароль на русском, пожалуйста. тогда раскладку не надо отслеживать. Или пока не дожили?
Сотни и тысячи готовых проектов не будут ломать свою базу единовременно только ради какого-то UTF-8, который им, может, и не принесёт никакой выгоды. Затраты ради понта получатся.
Хотя, конечно, хочется уже утфизации всего и вся. (:
Если пароль находится в зашифрованном виде, то, имхо, не важно это хеш от «абв» или от «āĕÑ». Главное чтоб хеш введенного пароля сошелся с тем, что в базе.
ps: UTF-8 не какой-то)
Применительно к описанному в топике способу — важно.
А UTF-8 рулит, это точно. (:
НЛО прилетело и опубликовало эту надпись здесь
Можно дать пользователю самому выбрать, так как пользователю виднее будут взламывать его аккаунт или нет. Допустим при регистрации или в настройках пользователя поставить галочки «использовать регистро-независимый ввод пароля», «языково-независимый ввод пароля».

Извините, но это гик-подход, секретарша такие незнакомые слова просто пропустит.
Согласен. Ну тогда может методом от противного?: при регистрации можно просто спросить «Любите сложные пароли?»(да|нет). И наградить это поле тултипом с подробным объяснением. Секретарша не будет читать тултип и просто выберет «нет», а гик прочитает и будет проинформирован.
Есть один момент. Если у меня например клавиатура на четырёх языках: украинская, русская, арабская и еврит, то каким образом нужно угадать пароль? Например я набрал пароль на арабском)
можно хранить последовательность ascii кодов
Правда получется встроенный брутфорс)
Придумался термин для данной технологии: Дегенератор паролей. ^__^
лучше деградатор)
Пароль для нормального пользователя — это всего лишь кнопки на клаве.

Такие понятия, как шифт, кэпс и раскладка его должны мало волновать.

Для гика пароль же конечно же секретная комбинация символов длиною около 32 в разном регистре и с цифрами.

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

ps: А если серьезно, то здесь надо просто подходить по принципу Паретто
часть до хабраката напомнила
Пароль: «русскими_буквами» в английской раскладке © баш
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации