?

Log in

No account? Create an account
Об одном подходе к генерации паролей - Журнал Витуса.
[Друзья] [Свежие записи] [Dreamwidth] [Фото] [Тексты] [Друзья Ирины] [Матерные писатели] [Сообщества] [3 круг]
July 28th, 2016
10:40 am
[User Picture]

[Link]

Previous Entry Share Next Entry
Об одном подходе к генерации паролей
Тут узнал о существовании таких забавных инструментов как password maker и SS64.com password generator.

Идея заключается в следующем - не хранить паролей от сайтов, ни в зашифрованном, ни в каком бы то ни было еще виде, а выводить их при помощи одностороннего криптографического алгоритма из общего для всех сайтов мастер-пароля и URL. Алгоритм выведеня получается простым - вот шелл-скрипт, генерирующий пароль, совместимый с ss64.com (оттуда и взят).

# Bash version
strongpw() {
    read -rs -p 'Encryption key: ' key
    echo '' # line break
    echo -n "$key:$1" | sha256sum | perl -ne "s/([0-9a-f]{2})/print chr hex \$1/gie" | 
       base64 | tr +/ Ea | cut -b 1-20
}


Его можно запомнить, его можно на футболке напечатать, его можно каждый раз скачивать в виде веб-странички с javascript с оригинального сайта.



Недостатком данного подхода является то, что разные сайты предъявляют разные требования к набору символов, длине пароля и т.д., и эту информацию нужно либо все же где-то хранить, либо каждый раз правильно извлекать
из сайта, чтобы сгенерировать тот же пароль, что был в прошлый раз.

Кроме того, стандартного способа борьбы с любителями password expiration policy этот подход не предусматривает. То есть для каждого сайта, имеющего такую policy, придется держать в памяти, что вот здесь URL сайта нужно модифицировать датой - здесь - годом, а здесь - месяцем. А вот сюда я три месяца не заходил и вопремя пароль не сменил.

Всякие single sign-on-ы которые вообще-то жизнь упрощают, тут ее вдруг начинают портить.

Так что лучше я пока не будут переходить на эту систему, а потаскаю с собой базу keepass, поскольку уж сейчас-то есть на чем таскать.

This entry was originally posted at http://vitus-wagner.dreamwidth.org/1213199.html. Please comment there using OpenID. Now there are comment count unavailable comments

Tags:

(35 comments | Leave a comment)

Comments
 
[User Picture]
From:freedom_of_sea
Date:July 28th, 2016 07:57 am (UTC)
(Link)
а md5sum "$MASTERPASS:$URL" не пойдет ?
[User Picture]
From:vitus_wagner
Date:July 28th, 2016 08:01 am (UTC)
(Link)
Половина сайтов заявит, что пароль слишком длинный, другая - что в нем должен присутствовать хотя бы один знак пунктуации или буквы разного регистра.

Поэтому приведенный выше вариант, где бинарная хэш-сумма преобразуется в base64 лучше, чем просто шестнадцатиричное значение хэшсуммы. Но и он не универсален.
[User Picture]
From:krievs
Date:July 28th, 2016 08:01 am (UTC)

купил Ironclad флешку?

(Link)
На чем таскаешь базу паролей? На телефоне?
[User Picture]
From:vitus_wagner
Date:July 28th, 2016 08:04 am (UTC)

Re: купил Ironclad флешку?

(Link)
В основном - на телефоне. Потому что на нем же её и посмотреть можно.
[User Picture]
From:burbilog
Date:July 28th, 2016 08:31 am (UTC)
(Link)
Я таскаю все в keepass, потому что а) там хранятся не только пароли, но и неформальная важная информация, пины и проч. и б) сама база keepass резервируется на разных серверах и с ротацией, чтобы уж точно не потерять.

Но чем дальше, тем мне меньше нравится содержать пароли и прочее на телефоне. Хочется отдельное маленькое устройство, которое занимается только паролями и не имеет на борту никакого другого функционала. Совсем. Qwerty клавиатура, небольшой дисплейчик, нормальная криптография, простой текстовый интерфейс. И все.
[User Picture]
From:vitus_wagner
Date:July 28th, 2016 09:13 am (UTC)
(Link)
Тут важно соблюдать баланс между "чтобы самому не потерять доступ" и "чтобы доступ не получил кто не надо". keepass пока, на мой взгляд, ближе к идеальному балансу, другие решения.

А pin-ы - что Pin-ы? У современных смарткарт pin обычно можно поменять. Так что ничто не мешает пин выводить из номера карты или названия банка тем же алгоритмом.
[User Picture]
From:dzz
Date:July 28th, 2016 08:44 am (UTC)
(Link)
> а выводить их ... из общего для всех сайтов мастер-пароля и URL

Хе-хе, я такой же подход применяю на практике, только алгоритм реализован в голове на базе модификации одной длинной фразы :)
Password expiration у меня, как правило, одновременно имеется не более чем в 1-2 местах, поэтому в составе пароля есть циклически изменяемый элемент.

Понятное дело, что md5sum в уме не посчитаешь, но за 10+ лет использования моей схемы ни одного случая компроментации пароля не было. Мастер-фразу менял 1 раз.

Edited at 2016-07-28 08:47 am (UTC)
[User Picture]
From:vlad_suh
Date:July 28th, 2016 10:59 am (UTC)
(Link)
Тоже так делаю.
[User Picture]
From:dims12
Date:July 28th, 2016 09:04 am (UTC)
(Link)
Разумно. Однако, компрометация мастер пароля означает автоматическую компрометацию паролей ко всем сайтам.
[User Picture]
From:vitus_wagner
Date:July 28th, 2016 09:10 am (UTC)
(Link)
В случае хранения базы паролей - тоже. Но это все равно получается секьюрнее чем попытка держать в голове все пароли.
[User Picture]
From:do_dodo
Date:July 28th, 2016 09:35 am (UTC)
(Link)
давно подобный подход применяю(ничего не зная про SS64.com)
кто-то ещё до такого же додумался, надо же
у меня ещё проще скрипт, с переводом в base64 не заморачивался

read -p Password: -s BASE_PWD
echo
printf %s "$BASE_PWD$1" | md5sum | head -c 16
echo
[User Picture]
From:do_dodo
Date:July 28th, 2016 09:44 am (UTC)
(Link)
ещё я применяю не урл, а комбинацию username@domain, поскольку может быть много аккаунтов на одном и том же домене
[User Picture]
From:amarao_san
Date:July 28th, 2016 11:46 am (UTC)
(Link)
В случае компрометации мастер-пароля в случае keepass'а нужно ещё саму базу упереть, а тут - всё открыто.
В случае компрометации мастер-пароля есть список скомпрометрированных аккаунтов, а у ss64 - список открыт и неизвестен. Всё равно как по email'у пытаться догадаться какие сайты к нему привязаны.
[User Picture]
From:legolegs
Date:July 28th, 2016 07:46 pm (UTC)
(Link)
Такой бы алгоритм, для чтоб в голове работал.
[User Picture]
From:eugenebo
Date:July 28th, 2016 09:46 pm (UTC)
(Link)
Там уже выше справедливо на слабость такого подхода указали: при утечке мастер-пароля автоматически "утекают" пароли от всех других сайтов. В том числе тех, где человек ещё даже не зарегистрировался. При этом, в отличие от password manager-ов, даже саму базу красть не надо. Более того, при утечке одного пароля и имени сайта нахождение мастер-пароля тоже резко облегчается.

Разумеется, password managers тоже страдают в некоторой степени от этой проблемы. Они фактически заменяют высокую энтропию identity человека (много разных паролей) на низкую (один пароль). Энтропия уменьшается в любом случае. Поэтому все схемы подобного роды слабы в любом случае.

На эту проблему можно взглянуть шире. В каком-нибудь веке 13-м умение вывести витиеватую, трудноподделываемую подпись было неотъемлемой частью аристрократической identity. Можешь сделать подпись -- можешь сам себя удостоверить. Не можешь подпись -- нет identity, так, Васька Какой-то из "народной массы".

Умение генерить и запоминать большое количество сложных паролей -- это сегодня эквивалент подписи в 13-м веке. Либо человек это (как-то) умеет. Тогда он всегда и везде может, как пишут, to assert his identity. Без всякой зависимости от внешних костылей, калькуляторов или дополнительных authorities вроде сертификационных центров. Сам.

Либо нет -- а тогда и identity нет, она оказывается частично растворена в телефоне в руках, записной книжке, или облачном password manager-е. Когда хозяин этих вещей или просто злой человек их отнимет, identity пропадает. Всё просто.

Отсюда выбор. Либо научиться генерить и помнить сложные, невзламываемые, запоминаемые пароли. Полностью в уме. Либо нет, но тогда не считать, что владеешь способностью удостоверять собственную identity без внешней милости.

Во-всяком случае, как-то так мне это сейчас видится.
[User Picture]
From:livelight
Date:July 28th, 2016 10:17 pm (UTC)
(Link)
Я однажды покопался в памяти и нашёл там десяток телефонов, пяток айпишников и 5-10 разных паролей. Только вот мест, где надо логиниться всё равно гораздо больше, и не все из них достаточно доверенные, чтобы дать им пароль от других мест. Плюс протухание паролей добавляет геморроя.

> владеешь способностью удостоверять собственную identity без внешней милости.

Да и хрен бы с ним. Моя identity не нуждается в подтверждении её существования внешними силами, перед которыми я должен плясать с бубном вприсядку, чтобы они подтвердили моё право на существование. Я и без них существую и не сомневаюсь в этом. Всё, что мне нужно, - это носимые ключи от реальных и виртуальных мест, где я могу что-то своё хранить и что-то делать и не пущать других на своё усмотрение. А ключница (в смысле приспособления, а не должности), да и вообще ключи - это всего лишь приспособление для моего удобства, а не я сам, она должна знать своё место.
[User Picture]
From:fk0
Date:July 31st, 2016 07:29 pm (UTC)
(Link)
pwdhash же. 100 лет в обед.
My Website Powered by LiveJournal.com