Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет dima_i ([info]dima_i)
@ 2010-11-05 12:44:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Время от времени сталкиваюсь с проблемой, что забываю пароли от разных веб-сервисов. Со временем их становится все больше и больше, повторять пароли хочется как можно меньше, особенно с незнакомыми сайтами, уровень надежности которых заранее неясен (некоторые особенно "продвинутые" сайты, например, умудряются присылать пароли обратно e-mail'ом).

А как вы решаете проблему запоминания множества паролей? Пользуетесь каким-то password manager с одним главным паролем? Думается, что была бы полезна простая программка, которая могла бы помнить хэш-функции всех паролей, так что забытый пароль можно было бы вспоминать-подбирать локально, без долгих попыток ввода разных паролей на самом сайте (что тоже ужасно небезопасно, конечно). Знаете такую? Или может быть, знаете какую-нибудь простую библиотеку, скажем, на C, с помощью которой такую программку можно самому на коленке склепать?


(Добавить комментарий)


[info]meshko.livejournal.com
2010-11-05 19:43 (ссылка)
О, идея отличная (про то, чтобы пароль не помнить, а только давать хеши пробовать). Поспрашиваю есть ли. Написать очень просто на Python -- http://docs.python.org/library/hashlib.html#module-hashlib см md5

(Ответить) (Ветвь дискуссии)


[info]meshko.livejournal.com
2010-11-05 20:21 (ссылка)
Похоже, что нету такого.
Кстати, если будешь писать, не забудь добавить соль (http://en.wikipedia.org/wiki/Salt_%28cryptography%29), иначе не кошерно выйдет.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dima_i
2010-11-05 22:43 (ссылка)
Конечно, как же без соли :)
Только я на питоне ничего никогда не писал.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]meshko.livejournal.com
2010-11-05 23:00 (ссылка)
Ну на Питоне проще гораздо, чем на каком-нибудь Си. То есть мд5 -- это функция на 20 строчек где-то, но слишком много мороки. На питоне вся программа должна строк в 100 уложиться, если без ГУИ.

(Ответить) (Уровень выше)


[info]slazav.livejournal.com
2010-11-05 23:53 (ссылка)
Вот, попробовал сделать скрипт с учетом пожеланий:
http://slazav.mccme.ru/tmp/md5check2.tgz

Две программы, обе запускаются без аргументов. Первая спрашивает пароль (дважды для проверки, при этом на экране он не виден) и комментарий и сохраняет md5-сумму от пароля (безо всякой соли). Вторая спрашивает пароль и выводит все комментарии, относящиеся к соответствующей md5-сумме...

(Ответить) (Ветвь дискуссии)


[info]slazav.livejournal.com
2010-11-06 00:00 (ссылка)
И даже в 100 строчек уложился!

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dima_i
2010-11-06 01:07 (ссылка)
О, отлично! Я, правда, еще немножко подправлю интерфейс, чтобы она спрашивала отдельно имя (сайта) и отдельно пароль, а затем кодировала их вместе (да еще и посолить впридачу). Думаю, что справлюсь.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]slazav.livejournal.com
2010-11-06 01:29 (ссылка)
Да, будет еще более суровая тренировка для памяти :) Но комментарий, видимо, придется оставить. Бывают ведь, например, нестандартные логины, которые совсем уж глупо запоминать...

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dima_i
2010-11-06 03:01 (ссылка)
Что-то очень извращенного накрутил (вот такого). Кажется, такой версией уже готов пользоваться (с открытой солью: не знаю, имеет ли это какой-нибудь смысл). Интересно, насколько это все надежно.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]slazav.livejournal.com
2010-11-06 03:55 (ссылка)
- зачем дважды вводить site name, если его и так видно?

придирки по совместимости :)
- если пользуешься "==" вместо "=", ставь /bin/bash в заголовок
- тоже и про ${salt:2:8}
- кроме того, чуть лучше $(($linenum+1)), но это уже для совместимости с совсем уж экзотическими shell'ами

- смысл такой соли от меня ускользает

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]slazav.livejournal.com
2010-11-06 04:12 (ссылка)
Наверное, если хочется все по-честному, надо почитать man sslpasswd из пакета openssl...

Если я все правильно понимаю, то правильная команда для ввода пароля:
result="$(openssl passwd -salt "$random_salt" "$passwd")"

для проверки:
[ "$result" = "$(openssl passwd -salt "$result" "$passwd")" ]

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dima_i
2010-11-06 10:35 (ссылка)
- посмотрю. Только мне казалось, что все-таки для проверки соль-таки надо как-то знать?
- исходно я думал добавлять открытую соль, чтобы разные пароли кодировались разными мд5. Если добавлять site name, то такое наверное необязательно.
- про совместимость скриптов-шеллов я мало что понимаю (пишу две строчки раз в 10 лет), но спасибо.
- два раза вводить site name, чтоб не ошибиться при вводе :)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]slazav.livejournal.com
2010-11-06 20:23 (ссылка)
- Я так понял, что для проверки в качестве соли используется хэш пароля. Алгоритм устроен так, что именно с такой солью получается именно такой результат.
Откудо бы еще могла быть известна соль, кроме как из того же места, что и хэш пароля?

- Смысл соли я понял так: пусть у врага есть словарь и хэши многих паролей. Он надеется подобрать хоть какой-нибудь. Без соли ему надо делать хэш слова из словаря, а потом сравнивать со всеми, а с солью надо вычислять хэш для каждой пары слово+хэш пароля.
Видно, что это верно и для твоего способа, и для моего (который я подглядел вчера в man'е).
Впрочем, кажется, что для твоей задачи это вряд ли даст пользу.
А вот перенос имени сайта из комментария в хэш явно затрудняет подбор.

- Ну, вроде, в Дебиане по умолчанию /bin/sh = /bin/ash. Так что уже там должны быть сюрпризы.

- Дважды вводить видимое поле - непривычно и неожиданно, но если так удобнее, то и хорошо.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dima_i
2010-11-07 03:35 (ссылка)
- ну тогда эта соль ничем по сути не отличается от моей "открытой" соли, как я понимаю.
- добавление имени сайта чуть-чуть затрудняет подбор, но т.к. набор сайтов обычно стандартный, то их тоже можно включить в общий перебор.
- дважды вводить видимое поле -- это я научился у каких-то коммерческих сайтов (типа продажи авиабилетов), которые должны присылать что-то важное по e-mail'у и поэтому просят его ввести дважды для надежности. Здесь это тоже актуально, потому что впоследствии проверить, что именно было введено, уже невозможно.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]meshko.livejournal.com
2010-11-07 05:39 (ссылка)
Насколько я помню, смысл соли только в том, чтобы нельзя было сделать атаку со словарем готовых хешей. Так что соль прятать не надо, главное, чтобы для каждого хеша своя соль.

(Ответить) (Уровень выше)


[info]olkab.livejournal.com
2010-11-06 08:16 (ссылка)
А с физических объектов можно хранить мастер-копию дома, на домашнем, например, диске. Или на бэкапе.

(Ответить) (Ветвь дискуссии)


[info]dima_i
2010-11-06 10:36 (ссылка)
тогда уж на доступном удаленном компьютере. и физический объект не понадобится.

(Ответить) (Уровень выше)