Система паролей (как сделать сам пароль надежным)
Вопрос: как сделать сам пароль защищенным, т.е. как защититься от подглядывания?
Допустим, кто-то подсмотрел как мы вводим пароль. Если пароль короткий, то злоумышленнику его легко запомнить или перебрать незапомнившиеся детали, даже если пароль сгенерирован (т.е. не осмысленное слово).
Если пароль длинный (например, 200 символов), то его сам не запомнишь, сл-но нужно будет носить на бумажке, а это ещё опаснее.
Есть идеи, как решить такую задачку?
Или вот еще, контролировать ввод, учитывая клавиши редактирования (например, после ввода всего пароля н-ный символ должен быть удален, а курсор стоять на м-ном) :)
Пользователю предоставляется набор предложений, в одном из которых есть ключевое слово (или несколько слов). Пользователь должен выбрать именно это предложение. Т.к. в предложениях будет много слов, довольно сложно будет вычислить какое из них ключевое.
Можно усложнить вариант, если у пользователя будет список таких ключевых слов, и в предложении должно быть любое из них.
Идея сложна тем, что простые функции легко вычисляются злоумышленником, а сложные - неприемлемы для пользователя.
Хотя эта идея в принципе таже идея с открытым ключом.
Или вот еще, контролировать ввод, учитывая клавиши редактирования (например, после ввода всего пароля н-ный символ должен быть удален, а курсор стоять на м-ном) :)
хм... если злоумышленник знает о таком порядке, то сможет отследить и это.
[QUOTE=squirL]
имеется ввиду "подсмотрели на клавиатуре"? в этом случае - только использовать одноразовые пароли.
[/QUOTE]
Это наилучший вариант, но он невозможен.
Не смогу я запомнить столько паролей... :)
А носить их на бумажке ещё опаснее, чем иметь один пароль.
Не смогу я запомнить столько паролей... :)
а кто сказал, что их нужно запоминать? одноразовый пароль генерится на основании секретного ключа, который носится с собой на флешке :)
вариант - вообще отказаться от пароля. нечто подобное я использую при работе по ssh. при мне всегда флешка с ключом, а сервера настроены на аутентификацию по ключу. парольная отключена вообще. поэтому я коннекчусь с любого места без проблем, а хакеры могут подбирать пароль до скончания века.
Допустим, это какой-то городской терминал или мобильный телефон...
И пользователь простой гражданин без экстрасенсорных возможностей (память ограничена человеческой), без дополнительных гайджетов... и т.п.
Шаблон: [var]слово[rvar]
Пример:
Кодовое слово: vasya
var = (большее_число - меньшее число) = (50)-(23) = 27
rvar = 27 наоборот = 72
пароль: 27vasya72
Ерунда конечно, но хоть какой-то элемент случайности...
Можно добавить условие по времени суток, хотя, если Вася пьяный, то....
Тогда при регистрации пользователя он вводит несколько символов, по которым вычисляем некоторую преобразующую функцию, определяющую правило смещения ввода, скажем так, которая используется авторизующим модулем. Так как их несколько (мало), их можно ввести незаметно, к тому же злоумышленник не знает их особого значения. Пример: Человек залогинился как Petr Ivanov. Тогда мы предлагаем ему каждый четный символ пароля сдвига по таблице кодировки на k позиций, каждый нечетный на t. Тогда, не зная смещения, будет сложно подобрать пароль, если хотя бы один символ был запомнен наблюдателем неверно.
Для задания "пароля" пользователь выбирает картинку (искользовальсь ярлычки 32x32).
А когда надо этот "пароль" ввести ему на экране случайным образом показывают кучу разных картинок. Он отмечает три из них. Если та самая, ключевая, находится в образованном отмеченными тремя треугольнике, то все ок. И так три раза, с разными картинками в разном порядке. Причем ключевая находится необязательно в центе.
Есть мысль набирать аккордами, чтобы, например, в первом аккорде был зажат первый символ среди пяти других, во втором - второй и так далее. И чтобы все блокировалось, если трижды с одного peer-а вводятся неверные пароли. Причем, конечно, показывать, что набор аккордов задан неверно только после введения всех символов. Чтобы нельзя было символ подобрать.
[(45+35)/(4*1)]=(20+10*2)/2
дальше думайте сами какую систему можно придумать
"Могу привести такой пароль
$tg4r9sh23dfj34ejdcol_93e64325we627db38dja09j#564nsd9289^%39hd9nc
дальше думайте сами..."
:D
[(45+35)/(4*1)]=(20+10*2)/2
дальше думайте сами какую систему можно придумать
подобные штуки не спасут от подсматривания (изначальная тема)
вообще говоря если решать с точки зрения подглядывание то статический пароль не подходит
любое усложнение пароля против подглядывания усложняет для пользователя
вывод - менять пароль по определенному алгоритму
Пусть наш пароль - codenet. Текущее время 21:22 пятница 25.05.2007.
Добавим в нашему паролю букву в дне недели под номером Час/минуту на место - час%минуту получим пcodenet, уберем символ под номером - номер месяца, прибавим по второму символу дня через каждые первый символ дня, получим пс5od5ne5t.. Ну и так далее. алгоритм - ограничивается фантазией и скоростью подсчета вариаций пароля :)
их вряд ли подсмотрят
Пусть наш пароль - codenet. Текущее время 21:22 пятница 25.05.2007.
Добавим в нашему паролю букву в дне недели под номером Час/минуту на место - час%минуту получим пcodenet, уберем символ под номером - номер месяца, прибавим по второму символу дня через каждые первый символ дня, получим пс5od5ne5t.. Ну и так далее. алгоритм - ограничивается фантазией и скоростью подсчета вариаций пароля :)
Сложно и при этом ничем не отличается от обычного пин-кода, т.е. совершенно не защищено от подсматривания.
Я повторюсь
Здесь уже были подобные предложения:
http://forum.codenet.ru/showpost.php?p=177719&postcount=4
http://forum.codenet.ru/showpost.php?p=177798&postcount=11
http://forum.codenet.ru/showpost.php?p=177800&postcount=12
А чем тебе не подходят эти предложения?
Ты ставишь жесткие условия на простоту и доступность системы, а укажи желаемый уровень безопасности? Примеры приведи, точные.
Тогда же было принято решение основанное на принципе открытого ключа, примерно то, что я уже приводил, но не с предложением и словами, а с наборами чисел.
Вот это надежный ключик. А все остальное чем-то мне напоминает попытки зашифровать слово на картинке, чтобы одни поняли, а другие ни за что не поняли что на ней написано.