Любите ли вы запоминать пароли вида:
qG4'P}:ZGKq?
0[KO!,7`@;6F
]xQ1H]mxLPa#
?
Я — терпеть не могу! Особенно с учётом того, что периодически все эти пароли нужно менять и для каждого сервиса отдельно, а их столько, что голова кругом идёт! Где тут всё запомнишь?
Вариантов несколько:
а) задавать простые пароли и боятся что их кто нибудь подберёт/угадает;
б) задавать сложные пароли (см. выше) и таскать их всё время с собой на бумажке (что тоже очень небезопасно!);
в) использовать метод шифрования простых фраз штатными средствами в системе.
Именно третий пункт я и затрону. Сей метод сводится к следующему (примитивный пример):
%echo "простая_фраза" | md5
На выходе вы получите криптостойкий хеш вида:
b3d0da41b07d550d97d579bd642d7dbf. Однако это самый примитивный пример. Можно использовать md5 в связке с sha1/uuencode/openssl и вообще со всем что вам только в голову придёт! Так же можно, например, брать хеш с хеша определённое кол-во раз. Только хотелось бы предупредить, что длину пароля необходимо урезать (!), т.к. если размер будет известен — криптостойкость падает в разы.
Представляю вашему вниманию простой скрипт для реализации сего деяния. Назвал я его «genspass» (от GenerateS encoded Password), написан на классическом unix shell (разумеется совместим с bash/zsh и прочими).
Программа работает просто: получает ключевую фразу (слово, символ — не важно), переводит в MD5, далее в BASE64 и урезает до назначенной длины (задаётся в скрипте), после чего на экран выводится результат.
Пример: вводим
123 получаем
YmExZjI1MTFmYzM, копируем и вставляем куда нужно.
Последнюю версию скрипта всегда можно получить по
этому адресу.
комментарии (147)
возможно это новый суржик?
Ну на худой конец 1-2 орфографический ошибки и привет словарик, ну например djnnt,tvfzgfhjkmrf (воттебемаяпаролька) :)
Руссий язык настолько богат — грех этим не пользоваться, имхо :)
Русский язык богат, не спорю, за это его и люблю! Но вы явно недооцениваете современные «брутфорсы», особенно в связи с открытым и активным коверканьем языка так наз. «подонками».
дибиловподонков уже давным-давно добавлена и используется :)Обычно при подборе пароля используют не словарь из настоящих слов, а псевдо-словарь, построенный из наиболее вероятных слогов и других буквосочетаний, поэтому любые несильные искажения (превед) все равно будут проверены.
она между Словарной и Брутефорсом
вот как то так =)
Я бы по возможности избегал таких продуктов/сервисов/сайтов или что это там…
Потому что ломайте мой логин сколько влезет, мне всё равно.
И таких сайтов, где ну просто наиобязательнейшая регистрация, много, а придумывать и запоминать пароли, конечно, лень.
Кстати, в рамках данного топика, не уверен, что у вас в отпуске под рукой будет unix shell :)
Думаю на случай отпусков/необычных обстоятельств придется все таки либо бумажками либо спец программами для хранения паролей воспользоваться.
брутфорс на таком пароле тоже поведет себя неплохо (если. конечно, заранее известно, что пароль просто буквенный да еще и в определенном регистре)
base64(md5(мастер пароль).md5(домен сайта))? Хочу завтра для .net приложение накотать для себя, хочется чтоб совместимость была.
substring(base64(md5(master_pass.":".domain)), 0, 10)А может и к лучшему и стоит использовать своё, чтоб не знали алгоритм.
На сайте одного из участников www.angel.net/~nic/, во всяком случае его версия генератора, что находится на его сайте перешла давно на SHA-1. Может там тоже уже не MD5 или вы из javascript вытянули алгоритм?
глянул в робоформ — у меня их 735. и как быть тут?!
дело вкуса. а самый лучший пароль это придумать схему какую то. я к примеру пинкоды от дебеток ношу с собой. но они зашифрованы по правилу.
к примеру пинкод — 1234. у меня оно записано 2345 — то есть инкремент каждой цифры. для вот таких вот случаев (когда мало паролей или пинов) — вариант канает. но что делать если человек потеряет ваш скрипт? ))))
То есть защит несколько:
1) человеку надо взломать пароль к базе keepassx;
2) ему необходимо знать каким методом я преобразовываю эти пароли (а фантазия у меня извращённая);
2.1) сколько символов из шеща я беру.
Мой скрипт — лишь пример, не более :) Ну потеряет он и что, неужели сложно будет через "|" написать несколько команд, предварительно из запомнив? =)
echo «Base64 » | openssl enc -base64
и наоборот
echo «QmFzZTY0IAo=» | openssl enc -d -base64
хотя всё равно конечно тут всё просто — но можно и усложнять, с некоторой потерей наглядности и лёгкости запоминания — а автору — всё равно спасибо — за саму идею.
Спасибо за информацию и приятный отзыв.
if `uname` = "Darwin" ]; then md5_utils="openssl dgst -md5" base64="openssl enc -base64" fi <pre> Проверьте пожалуйста, а то у меня нет нигде Mac OS X и отпишите сюда. Благодарю :)ну да, если я знаю что у кого то пароль на почту 32 символа, подбор пароля мне станет значительно легче.
Или это у Вас был сарказм. Никак не могу научится определять сарказм.
В общем, если у нас 100 символов, что число вариантов пароля (если известно что он размером в 32 символа ) 10032 если же длина пароля неизвестна, но ограничена 32 символами, то число вариантов равно 10032+10031 +10030 +...+1001. А это значительно меньше чем 10032.
ЗЫ. Правильность расчетов не гарантирую, комбинаторику давно использовал, может что и забыл.
Предлагаю дополнение. Вот такой вариант позволяет не светить на экране секретную фразу:
openssl passwd -salt 'my'
А я вот всё думаю как в shell не светить фразу через read… пока ничего не придумал.
В хеше нет спецсимволов типа: ` @ ( &,?
md5 подвержен коллизиям.
Тот же keepassx генерит более криптостойкие пароли (ввиду более сложной логики получения случайной комбинации) и удобней в обращении.
aes-128-cbc
aes-128-ecb
aes-192-cbc
aes-192-ecb
aes-256-cbc
aes-256-ecb
base64
bf
bf-cbc
bf-cfb
bf-ecb
bf-ofb
camellia-128-cbc
camellia-128-ecb
camellia-192-cbc
camellia-192-ecb
camellia-256-cbc
camellia-256-ecb
cast
cast-cbc
cast5-cbc
cast5-cfb
cast5-ecb
cast5-ofb
des
des-cbc
des-cfb
des-ecb
des-ede
des-ede-cbc
des-ede-cfb
des-ede-ofb
des-ede3
des-ede3-cbc
des-ede3-cfb
des-ede3-ofb
des-ofb
des3
desx
rc2
rc2-40-cbc
rc2-64-cbc
rc2-cbc
rc2-cfb
rc2-ecb
rc2-ofb
rc4
rc4-40
rc5
rc5-cbc
rc5-cfb
rc5-ecb
rc5-ofb
Вот скажите, рискнёт ли кто нибудь вообще перебирать все эти методы шифрования? По-моему проще сразу пристрелиться :)
2. Приведенный список содержит алгоритмы шифрования, а не хеш алгоритмы, о которых идет речь в вашей статье.
3. Отсутствие спецсимволов и осмысленность начальной фразы снижают криптостойкость.
2. статьёй я просто передал идею, а додумывать тут уже каждый сам за себя должен что ему ближе, а идею шифрования я в комментариях уже раскрыл ранее!
3. добавляйте в начало/конец пароля какой нибудь спецсимвол/спецсимволы. Я сомневаюсь что с паролем в 20 символов, да с произвольным регистром и спецсимволами ваш пароль будет взломан каким нибудь «брутфорсом» в ближайшем столетии :)
Есть два варианта:
1) скачать на компьютер putty (маленькая, не требует установки) и соединиться с unix-системой на которой есть OpenSSL;
2) Скачать OpenSSL под Windows: www.openssl.org/related/binaries.html
не вижу ничего плохого в менеджере паролей — достаточно запомнить один очень сложный пароль на сам менеджер.
Но если я правильно прикинул, то стойкость 16-символьного пароля (в Вашем скрипте — 15-символьный, но для 16 считать удобнее :), полученного таким способом примерно равна стойкости 4-значного пароля того самого «страшного» вида.
Кроме того, из-за того, что длина md5 фиксирована (128 бит), то максимальная стойкость пароля, полученного таким скриптом, примерно равна стойкости 10-символьного «страшного» пароля. Это уже неплохо, но для этого вам придется вводить каждый раз 44-символьный пароль. Мне было бы неудобно :)
— название эккаунта (напр. greesha.habrahabr.ru или greesha@mail.ru)
— секретную фразу, которую держу в голове — достаточно длинную, но одну для всех паролей
В результате получаются хорошо защищённые пароли, которые в случае необходимости (или периодически) достаточно легко можно сменить, задав другую секретную фразу.
Более того, держу этот скрипт в интернете, так что в крайних случаях, когда находишься далеко от дома, а нужно срочно получить доступ к своему эккаунту с чужого компьютера (из гостиницы или инет-кафе), нужный пароль легко можно «вспомнить». Ну, понятно, тут уже другие проблемы с безопасностью возникают, но они решаются даже в случае запущенной паранойи последующей сменой всех паролей.
Вот в интернет-кафе лучше вообще никаких своих паролей не светить. Проверено на собственной шкуре. Во многих интернет-кафе стоят снифферы. У меня уже один раз так пароль угнали. Поэтому если я вдруг где и засветил — сразу же по возможности меняю пароль.
Сейчас гораздо больше опасностей imho в широком распространении открытых WiFi сетей. Если пароль передаётся в plaintext, то тут уж точно никакой генератор не поможет, хоть каждый час их меняй.
— название эккаунта (напр. greesha.habrahabr.ru или greesha@mail.ru)
— секретную фразу, которую держу в голове — достаточно длинную, но одну для всех паролей
Делаю примерно то же самое: секретная фраза (набранная в другой раскладке) + кодовое слово для того ресурса, куда этот пароль предназначен. Причём и то, и другое — искажённое «падонкаффским» образом. В целом получается что-то вроде «CfaactvPfbgfnj{f,h»
Достаточно придумать для себя последовательность действий/алгоритмов и пользоваться ими.
С тех пор принцип немного изменился но не очень, и пароль помнится и менеджеы никакие не используются.
Простите, но на этом я спор закончу
Труднозапоминаемый не значит труднорасшифровываемый или трудноподбираемый.
Повторяю труднозапоминаемый не значит труднорасшифровываемый или трудноподбираемый.
Не популярная фраза и пароль стойкий, если паролей много то да, без менеджера никак.
— Пароль у меня такой: мама сшила мне штаны из березовой коры
— Молодой человек, кто вас такие пароли учил делать?.. Набирать также?
— Хакер один знакомый: Да, также: Только вместо символов нижнего подчеркивания ничего не ставьте.
— Вы ошибаетесь — пробелов в пароле быть не может.
— А пробелы и не надо — все слитно пишется.
— А: Понятно. Минуточку:
— Погодите, девушка:
— Я сказала — минуточку:
— Девушка:
— Ваш пароль не подходит
— Это еще не все, девушка. Теперь надо в этом пароле удалить каждую вторую букву
— Конспиратор: Удаляю: Удалила. Все?
— Нет, теперь надо каждую оставшуюся вторую букву заменить на цифру «0»
— Молодой человек, вы часто будете пользоваться своим ящиком?
— Да, каждый день. У меня сейчас интернета нет
— О, боже!
PS Могу посоветовать Sticky Password. Добротная программка.
В вебе оно как то интересней будет, да и телефон если что всегда под рукой с gprs.
./genspass.sh: 56: md5: not found
./genspass.sh: 56: b64encode: not found
md5 нет такого пакета, есть md5deep и md5sum
и b64encode только для перла libmime-base64-urlsafe-perl
проверка системы работает не корректно
короче, убрал проверку и все заработало
То есть, «безопасно потому, что засекречено».
Помню только один пароль — от кипаса. Остальные помнит Firefox Portable и собственно Keepass Portable на флэшке.
Вот пример: Dauph3ve
Можно запомнить как Дауф3ве.
Опять же перебрать такой пароль практически не возможно(я имею ввиду логин форму для интернет ресурса).
А вообще, посмотрите программу apg, по-моему она намного интереснее pwgen.
Примеры, которые запомнились(уже не действительны):
gapdocor
lamlajil
lotsujun