Pull to refresh

Comments 58

Хе-хе, а потом вы немного подкрутите исходники и начнёте потирая ручками собирать логины и пароли пользователей, да ещё и с заботливо указанным сайтом где их стоит применять. :)
Как вариант можно посоветовать сохранить страницу на локалхост и генерить пароль с неё.
В этом случае рекомендуется использовать часть результативной фразы. Выбирать какую именно следуя своей внутренней логике. А так, Вы правы. Не следует доверять важные пароли кому попало. Лучше в таком случае действительно офлайн-инструмент. Или своя голова…
Поддерживаю! :)
Плюс к этому — в трудную минуту понадобится ввести пароль срочно и важный, а доступа к сайту не будет, головой отвыкли пользоваться, пароль не помнится… — это может быть чревато копейкой! :(
Голова всегда должна быть на плечах, согласен. При отсутствии доступа к сайту можно всегда хранить консольную утилиту на флешке.
Сохраните страничку на диск.
Или, что более вероятно, кто-нибудь подкрутит их за Вас.
UFO just landed and posted this here
Вот! В пароль надо добавлять запятые, точки и другие знаки! Опасны простые пароли!
UFO just landed and posted this here
Да. Всё верно. Но если учесть, что пользователь использует не всю результирующую строку (будь то хэш или вот такой «алфавит»), а всего лишь 10 первых символов? Тогда «алфавит» выигрывает.

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

У меня множество таких друзей, у которых один единственный пароль на все сервисы…

Собственно и алгоритм нужно рассматривать более комплексно, не как упрощение хэш-строки, а как усложнение мастер-ключа.
Я думаю LAA имел в виду добавлять в конечный результат. Например по спецсимволу в нулевую, среднюю и последнюю позицию. Алгоритм опять же каждый придумает себе сам. Была строка Оо62*62=3844 варианта, стала .О_о, — ~3844000 вариантов.
Эм… только мне кажется что только что изобрели стул, а потом ещё и стол?
Я обычно храню пароли в блокноте бумажном.
Если хочется и в блокноте хранить их в зашифрованном виде,
нет ничего проще.
Нужно взять готовую или придумать свою систему шифрования,
Например, — такая:

Есть таблица, с определёнными символами, которые будут
использоваться в паролях, например буквы и цифры
(для простоты привёл пример только с буквами)
Заполнена как на картинке.
И у вас есть свой ключик, — это какое-то слово, например «gleb»
И есть пароль, например «pupkin»
Вы шифруете пароль так: ищете в верхней строке очередной символ ключа, например «g»
В той колонке, где вы его нашли спускаетесь вниз до очередного символа из пароля, в данном случае до «p»,
Смотрите, какой символ в левом крайнем столбце в этой строке, — это «j»
Получаете хеш. Обратно расшифровываете так же, только берёте символ ключа «g», ищете пересечение с символом хеша — «j», получаете символ пароля «p»
Если пароль длиннее, чем ключ, то когда кончаются символы ключа, — берёте их заново сначала, например
в пароле «pupkin» символов ключа «gleb» хватит только до «k», значит «i» будет шифроваться опять через «g» и т.д.

Здесь в красном поле — очередной символ ключа, в синем — пароля, в чёрном — хеша.
Не смог почему-то вставить картинку через habrastorage,
и напрямую через img тэг.
вот ссылка edelen.ru/des/shifr.png
Отлично, а вводить 39-значные пароли (у меня такие например) вы будете ручками? Удачи :) По мне так нет ничего лучше KeePassX и похожих программ.
Я всегда ввожу руками.
Странно, что у вас они не 255-ти значные, ну так, на всякий случай.
Хэширование — необратимое преобразование по определению. Ваше преобразование — обратимое, т.е. шифрование. Чёрные символы — шифртекст, а не хэш.
Да, термин перепутал.
Но сути это не меняет.
Не совсем понятно, что делать, если сайт требует регулярной смены пароля и проверяет на совпадения с предыдущим.
Можно, к примеру, к имени сервиса добавлять текущую дату. Что-то типа даты генерации пароля. Алгоритму всё равно, что вводится в полях. Он просто объединяет значения полей в одну строку и из неё уже вычисляет хэш.
я так понимаю, что основная задача расчета — повторяемость, чтобы не запоминать пароль, а генерировать когда он необходим? тогда не получается. каждый день будет новый.
Под текущей датой я имел в виду текущую дату во время смены пароля. Например, мы меняем пароли по понедельникам, вот и добавляем дату последнего понедельника.
Я, конечно, согласен, что прикапываюсь. Но все-таки есть сайты, которые вдруг начинают требовать смены пароля. И происходит это не по понедельникам, и даже не каждую третью пятницу августа. Буквально вчера я менял пароль в кабинете интернет-провайдера, потому что «осталось 3 входа со старым паролем».

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

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

В принципе, его можно сколько угодно усовершенствовать и усложнять. Я же в своей реализации преследовал две цели: простота (не нужно ничего нигде хранить) и обратная совместимость с оригинальной утилитой (чтобы можно было генерировать пароль без доступа к сайту).

Понятно. Эх, как было бы хорошо, если бы все это дело стандартизировать (вот фантазёр). Чтобы любой программой или где-нибудь на сайте можно было бы восстановить свой пароль.
Ребята, всё хорошо, но дело в том, что вы в который раз создаёте криптопротокол «на коленке» без его анализа.
Криптография и безопасность — не то место, где можно каждому встречному создавать велосипеды. Они по определению будут плохими. Используйте SRP-6.
Хм, тогда дату эту запоминать. Проще уж случайный пароль.
Меняй мастер пароль.
4 random common words -> 550 years at 1000 guesses/sec
Английский словарь такой большой? ;)
Хотя нет, все правильно, при таком подходе цифры еще больше.
UFO just landed and posted this here
Думаю изобретать то, над чем годами работают крупные конторы выпуская продукты вроде — LastPass, не имеет смысла. Да идея интересная, но я бы ей не стал пользоваться. Да и опять-же терять время на генерацию и т.п. лишние манипуляции. В общем палка о двух концах! Единственный плюс, который я вижу во всем этом, это то, что информация хранится в голове, а не у третьих лиц.
Для тех, кому понравилась идея, но не устраивает деление по модулю на кол-во символов в алфавите:
thepassword.org
pass=md5(site+'@'+login+master password);
Вычисления на клиенте на JS, но параноикам рекомендуется включать в браузере автономный режим.
Логичнее было бы видеть:
pass=md5(login+':'+master_pass+'@'+site);

Хотя плохо то, что получаем символьную избыточность, ведь используются только 16-чные числа (0-9,a-f), и для многих сайтов придется обрезать пароль по длине, уменьшая его стойкость. Это тот случай, когда простота всё-таки хуже воровства, воруешь у себя безопасность.
Извиняюсь, был невнимателен, когда писал. На самом деле:
pass=md5(login+'@'+site+master_pass);
Но это непринципиально.

А про обрезку — да, Вы правы, стойкость теряется. Хотя с другой стороны, что это за сайт, который устанавливает глупые ограничения на длину пароля, но при этом позволяет перебирать 16^13, 16^10, да даже 16^7 вариантов паролей? И так ли важна учетка на таком сайте? На самом деле для сайтов важно не количество вариантов, а отношение кол-ва вариантов к неправильным попыткам ввода пароля. Вон, у большинства кредиток пин всего 4 цифры, зато всего 3 попытки подобрать.

Для меня надежность паролей — это не только гарантия, что их не узнает злоумышленник, но и гарантия, что я смогу воспользоваться любым из своих паролей всегда и при любых условиях, и что никакой пароль никогда не будет утерян. Усложнение же алгоритма наложит дополнительные ограничения на инструменты, с помощью которых можно посчитать пароль. Это меня не устраивает.
Вы не правы насчет нужно ли регистрироваться на сайте, не принимающим мой пароль, наша цель это получение информации с сайта, и если она закрыта регистрацией, то тут решаешь, нужна ли эта информация действительно, если нужна, то пройдешь и препятствия в виде ограниченной длины пароля.
И тогда попадаем в ситуацию, когда какой-то сайт не принимает 32-символьные пароли, делаем 10-символьный, а потом забываем, и не можем войти на этот сайт, начинается чехарда с восстановлением пароля, а это потеря нашего времени.
Лучше уж усложнить алгоритм, сделать его легкодоступным везде, и сразу генерить надежные пароли той длины, которую примут везде.
Если не подходит 32-символьный, значит обрезали до 13/10/7. Быстрее подобрать длину нежели восстанавливать пароль.

Проблема в том, что пароль, который примут везде — это что-то вроде 7 символов длины (а вдруг сайт больше не примет) и 62 символа алфавита a-Z0-9 (на маках нельзя в поле пароля вводить кириллицу, спецсимволы сложно вводить на телефоне и т.п.). Получается, что максимальная сложность — 62^7, а её может не хватить для действительно важных оффлайн ресурсов (для которых доступен быстрый перебор, не по HTTP), и для них нужен будет другой алгоритм, что не универсально. Плюс BASE62 так просто в одной php-строчке или в консоле линукса не посчитаешь, получается, приобретаем зависимость от инструмента для вычислений, а это минус.

Впрочем, я не агитирую. Просто поделился инструментом и способом, который лично меня полностью устраивает уже много лет.
Использую keepass + dropbox. Мне удобно.
А чем не вариант использовать такой способ:
md5( Логин + адрес сайта + ключевое слово )

а он-лайн md5 сервисов тучи + можно хоть на том же php в 1 строчку реализовать такой генератор/
или на javascript

гораздо безопаснее, чем пользоваться сомнительным сервисом
Каждый волен выбрать любой подходящий и устраивающий только его способ. Мой сервис всего лишь один из многих вариантов решения проблемы, возникающей с необходимостью хранить пароли.
Согласен! Дело лишь привычки, возможно в будущем я переду на ваш способ!
Посоветуйте способ, как забыть старые пароли… За 15 лет администрирования в голове уже каша — сотни уже давно ненужных.
крепко нажраться коньяком, водкой, лучше на дискотеке, авось прокатит… а если информация в моторную память просочилась, в «незатираемую» — тут… использовать их куда-нибудь :)
Если стирать водкой на дискотеке, то обязательно нужно цеплять дискотечную жрицу и жарить её в клубном туалете. Без этого не сотрется!

О результатах пиши сюда. Ждем!
Было бы круто если бы md5 или что там еще мог бы вычислить человек у себя в голове не используя какие-то средства расчета пароля и даже не используя бумагу.
Прокачай свой мозг, получишь бесплатный билет в дурку.
Идея появилась в сентябре 2004го, первая реализация под IE где-то через полгода, в 2007 перешел на pwdhash.com. Есть реализации для Firefox, Chrome и Opera. Всё вычисляется локально. При необходимости получить пароль на чужом компьютере всегда можно зайти (по https!) на pwdhash.com

В общем — удобно.
На первый взгляд заметны минусы: длина результата зависит от длины мастер пароля; и в полученном хэше используется знак +, некоторые сайты не примут такой пароль.
Сделал приложение для телефона специально для тех, кто не хочет доверять онлайн-сервису.
SuperGenPass.com

Можно добавить в закладки специальную ссылку из JavaScript кода (и тогда будет работать везде), можно воспользоваться онлайн формой (например, если за чужим компьютером), либо поставить плагин для браузера. По-умолчанию формирует 10-символьный пароль из цифр, строчных и прописных латинских букв.

У вас же явно лишнee полe — user id, хотя конечно его можно и не использовать ведь.
Поле userid скорее для тех, кто имеет на одном сервисе несколько учётных записей. Несколько номеров аськи, к примеру.
Так же добавил приложение для Андроида. Пометил бетой, т.к. пробовал запускать исключительно в эмуляторе. Отчёты бета-тестеров принимаются.
Sign up to leave a comment.

Articles