id: Гость   вход   регистрация
текущее время 16:31 28/03/2024
Автор темы: avaEGE, тема открыта 29/06/2012 16:16 Печать
Категории: криптография, симметричное шифрование
http://www.pgpru.com/Форум/ПрактическаяБезопасность/ХранениеПаролейВНезащищенномМесте
создать
просмотр
ссылки

Хранение паролей в незащищенном месте


Есть у кого соображения как хранить удаленно базу данных паролей напр. на e-mail или удаленном сервере? В KeePass есть интересная фича – "Number of key transformation rounds" где можно установить значение "Delay" т.е. кол-во итераций хеширования как я понимаю. При экспорте базы можно устанавливать большое кол-во проходов, что на экспортной копии базы сведет атаки типа brute force на нет.


Например установив значение 9911238656, Core I7 считал 5 минут при 100% двух ядер для проверки одного пароля. Очень эффективная опция для хранителей паролей которые увы нет в Password Safe...


 
На страницу: 1, 2 След.
Комментарии
— SATtva (29/06/2012 16:23)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
А записать пароли в файл и зашифровать его открытым ключом, закрытая часть которого лежит на Вашей машине? Да хоть даже закрыть базу случайным 20-значным паролем, который, опять же, хранится на Вашей машине. Вы не привели модель угрозы и требования, так что насоветовать можно, что угодно и в любом количестве.
— avaEGE (29/06/2012 16:30)   профиль/связь   <#>
комментариев: 12   документов: 7   редакций: 4
SATtva:
аписать пароли в файл и зашифровать его открытым ключом, закрытая часть которого лежит на Вашей машине? Да хоть даже закрыть базу случайным 20-значным паролем

Так вариант этого 20-ти значного пароля проверяется за доли секунды, как и 2 значного.

SATtva:
Вы не привели модель угрозы

Максимально снизить вероятность получить пароль с помощью распределенных вычислений – brute force атак, Радужных таблиц и т.п в данном направлении.
— Гость (29/06/2012 16:35)   <#>
Про стойкость паролей.
Вот здесь удобная табличка оценки энтропии.
Ассиметричное шифрование это хорошо, но разве закрытый ключ правильно без passphrase оставлять?

Так вариант этого 20-ти значного пароля проверяется за доли секунды
Ничего не даст противнику. 128-битный ключ при условии, что алгоритм надёжен, нельзя вскрыть без квантового компьютера.

распределенных вычислений – brute force атак
Мало поможет. Максимум снизит сложность на пару порядков, что недостаточно.

Радужных таблиц
Радужные таблицы применяются когда известен хэш и не использовалась соль. К данному вопросу не имеет отношения.
— unknown (29/06/2012 21:40, исправлен 29/06/2012 21:42)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Опция эта PBKDF2 — стандартная и должна, по идее, в обязательном порядке использоваться во всех криптографических программах, в которых генерируется ключ из пароля. Хотя, не везде есть возможность менять дефолтные значения.


Возможность эта не настолько эффективна как кажется. С вашим запредельным числом итераций вы внесли всего около тридцати бит "фиктивной" вычислительной энтропии. Это скромный результат. Сравните по вышеприведённым ссылкам, насколько для достижения аналогичного результата потребовалось бы увеличить пароль.


Альтернативный нестандартизированный вариант — scrypt — размен с упором не на количество операций, а на требования к памяти. Если для одной машины несколько мегабайт некритично, то при массированном распараллеливании, особенно на видеокартах (на которых из-за высокого быстродействия и параллелизации просчитывают радужные таблицы, генерируют биткоины), это ставит противника в трудное положение.


Радужных таблиц

Радужные таблицы применяются когда известен хэш и не использовалась соль. К данному вопросу не имеет отношения.

Тоже верно.

— Гость (08/07/2012 08:39)   <#>

Интересно, он где-то уже используется? Судя по рекламе на слайдах, он в сотни раз замедляет перебор по сравнению с PBKDF2. По вашей ссылке на вики тоже очень рекламируется:

One weakness of PBKDF2 is that while its c parameter can be adjusted to make it take an arbitrarily large amount of computing time, it can be implemented with a small circuit and very little RAM, which makes brute-force attacks using ASICs or GPUs relatively cheap[15]. The bcrypt key derivation function requires a larger (but still fixed) amount of RAM and is slightly stronger against such attacks, while the more modern scrypt[15] key derivation function can use arbitrarily large amounts of memory and is much stronger.

А что можно сказать про bcrypt в сравнении с PBKDF2? Кстати, в OpenBSD не bcrypt ли используется для хранения паролей в /etc/master.passwd и для их vnconfig? Вообще, было бы интересно увидеть список какие KDF используются в разных Unix'ах. Что-то известно про применение scrypt для софта в Linux?



Посмотрел на NetBSD. В cgd там-таки pbkdf2, но в /etc/master.passwd всё тухло. Лучшее, что есть — blowfish+раунды. И, вообще, что значит «blowfish как hash-функция»? Поглядел в /etc/passwd.conf, который автоматически создаётся при инсталляции и выборе самых безопасных опций:
default:
  localcipher = blowfish,7
  ypcipher = blowfish,7
При этом в man'е говорится
the value can be between 4 and 31
А если выбирать умолчания при инсталляции, то вообще так:
default:
        localcipher = sha1
        ypcipher = old
т.е. совсем плохо.

При этом в OpenBSD аналогичный дефолт — «blowfish,6». В fileстатье про bcrypt говорится, что его сделал «The OpenBSD Project» — это оно и есть в опциях с blowfish? В предпоследней ссылке:
The cipher to use for local passwords. Possible values are: «old», «newsalt,<rounds>», «md5», and «blowfish,<rounds>» where «old» means classic 56-bit DES (facepalm). For «newsalt» the value of rounds is a 24-bit integer with a minimum of 7250 rounds. For «blowfish» the value can be between 4 and 31. It specifies the base 2 logarithm of the number of rounds.

P.S.: А про сам проект http://www.tarsnap.com, куда ведут ваши ссылки, что можете сказать? Он чем-то лучше tahoe или совсем нераспределённый?
— neverward (08/07/2012 12:26, исправлен 08/07/2012 12:27)   профиль/связь   <#>
комментариев: 43   документов: 0   редакций: 7
Есть у кого соображения как хранить удаленно базу данных паролей напр. на e-mail или удаленном сервере?

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

— Гость (08/07/2012 17:39)   <#>
Ему ж не авторизовываться на сервере надо, а хранить бэкапы самих паролей, потому хэш+соль не подойдут.
— neverward (09/07/2012 14:39)   профиль/связь   <#>
комментариев: 43   документов: 0   редакций: 7
Ему ж не авторизовываться на сервере надо, а хранить бэкапы самих паролей, потому хэш+соль не подойдут.

Блин, не понял идею в начале. Получается, что сложность пороля увеличивается, так как к нему добавляется число проходов, но при расшифровке даже зная пароль выполняется некоторый брутфорс в течении 5-10 минут. Кто, что думает, сравнимы ли по вычислительной сложности задачи вида пароль=X+Y и пароль=X + проходов=Y. Что-то мне кажется, что вторая задача не должна брутфорситься больше, чем первая.

Сама идея весьма интересна, только лучше её переформулировать в такую: пользователь вводит пароль(или подсовывает ключ), и к нему присовокупляется ещё, ну три-четыре символа из /dev/urandom. При расшифровке требуется кроме правильного пароля ещё немного брутфорса, но разумное время(допустим 10 минут). Ясно, что сложность взлома растёт, так как выросла энтропия пароля.
— Гость (09/07/2012 16:34)   <#>
Вам неочевидно, зачем применяются специальным образом сконструированные key derivation function, замедляющие перебор?
— neverward (09/07/2012 17:18)   профиль/связь   <#>
комментариев: 43   документов: 0   редакций: 7
Вам неочевидно, зачем применяются специальным образом сконструированные key derivation function, замедляющие перебор?
Уже понял зачем. Возникает тот же вопрос, допустим у нас есть файл и надо его зашифровать так, чтобы на проверку одного пароля уходило по 5 минут. Чем это сделать? Как вариант я уже понял как это реализовать несколькими способами, но вот что насчёт готового утиля?
— Гость (09/07/2012 17:28)   <#>

Например:
An example parameters file which uses PKCS#5 PBKDF2:
algorithm aes-cbc;
             iv-method encblkno1;
             keylength 128;
             verify_method none;
             keygen pkcs5_pbkdf2/sha1 {
                     iterations 39361;
                     salt AAAAgMoHiYonye6Kog \
                          dYJAobCHE=;
             };
Можно генерить paramsfile и для своих целей, необязательно его использовать для того, что в man описано. Параметр iterations можете поменять руками, но не переусердствуйте. Если поставить раз в 10-100 больше, чем в норме, пароль будет проверяться минуту.
— neverward (10/07/2012 11:59, исправлен 10/07/2012 12:00)   профиль/связь   <#>
комментариев: 43   документов: 0   редакций: 7
Можно генерить paramsfile и для своих целей, необязательно его использовать для того, что в man описано. Параметр iterations можете поменять руками, но не переусердствуйте. Если поставить раз в 10-100 больше, чем в норме, пароль будет проверяться минуту.

о, спасибо, надо брать на вооружение

— Гость (11/07/2012 00:02)   <#>
В LUKS должно иметься что-то подобное, но это unknown может лучше подсказать.

Вот ещё:
Хотя стандартных консольных тулзов для PKBDF2 вроде бы нет, есть примеры реализации на Perl'е
— unknown (11/07/2012 09:43)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
В LUKS число итераций в PBKDF2 подбирается так, чтобы вычисление ключа из пароля занимало ровно 1 сек. на текущей машине. Это число можно принудительно менять опцией --iter-time.
— avaEGE (11/07/2012 12:57)   профиль/связь   <#>
комментариев: 12   документов: 7   редакций: 4
SATtva:
хранится на Вашей машине

Хочется хранить пароли удаленно. Иметь возможность открыть базу паролей имея только пароль. Но в таком случае усложить задачу атак перебором.

Господа а как на счет криптографических приложенияй способных не только менять кол-во итераций хеширования но и опционально выставлять другие параметры, например таких кол-во итераций шифра, размер блока и т.д..?
На страницу: 1, 2 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3