Как стать автором
Обновить

Комментарии 60

Пароли всё же должны отмереть. Сама идея плоха. Кто запомнит этот случайный мусор, что вы генерируете? Надо переходить повсеместно на аутентификацию по открытому ключу.
А кто запомнит закрытый ключ? :) Имхо, будущее за биометрией в сочетании с системами аналогичными PKI по духу. По крайней мере в «бытовых» целях, а в системах повышенной защищенности аутентификация должна быть многофакторной.
У биометрии есть один недостаток: в случае получения злоумышленником информации, необходимой для прохождения авторизации (отпечаток пальца, рисунок сетчатки и т.д.) их нельзя просто сменить как пароли, наши пальцы и глаза с нами на всю жизнь. По этому голая биометрия плохо применима для серьезных систем, а её сочетание с чем либо слишком сложно для массового сегмента.
Можно совместить и сделать закрытый ключ с паролем на основе биометрии.
Именно, пускай банальный xor данных биометрии (уникальных) и пароля (легко сменяемых) в качестве закрытого ключа могут решить многие проблемы и паролей, и PKI.
Не забывайте, биометрический датчик выдает не одно значение, уникальное для каждого юзера, а значение в определенном диапазоне (шаблон ± отклонение). Допустимую величину отклонения выбирают, ища компромисс между ошибками ложного допуска и ложного отказа.
Представьте, например, что пароль у вас «p1ssword», но система должна принять и «p2ssword», и «p1ssVord». Все XOR-ы и хэш-алгоритмы в этом случае идут лесом.
Имхо, данные биометрии должны «нормализоваться» локально в таком случае.
Так речь идет об уже нормализованных данных. Например, для отпечатка пальца с шаблоном сравнивается не «сырая» картинка, а граф, описывающий расположение линий и узловых точек. И все равно, сравнение идёт не строгое, а с учетом максимально допустимого отклонения.
Не готов обсуждать технические детали, но интуитивно кажется, что способ защиты хоть от «физического» копирования, хоть от «информационного», не уступающий по надежности от ЭЦП на основе асимметричного шифрования и хэширования и по удобству от словарных паролей, должен быть. Проблема, имхо, в инерции индустрии, а не в алгоритмах.
Ну, пальцев десять штук у нас :) Хотя, конечно, да, недостаток, но, по-моему, меньшее зло чем один словарный пароль на все сервисы, который не меняется даже по факту взлома. А про инфраструктуру аналогичную PKI я не зря упомянул — отпечаток должен быть аналогом закрытого ключа, дальше пользовательского устройства не должен уходить. Возможно даже дальше непосредственно датчика (как токены с зашитым ключом, который даже пользователь не может извлечь программным путём). В общем главные, на мой взгляд, недостатки как паролей — «словарность» (ограниченная человеческой памятью сложность и уникальность) и возможность массовых атак (как в случае с Linkedin), — так, и закрытых/открытых ключей — необходимость всегда иметь при себе копию, — биометрия преодлеть способна, а для критических сервисов — многофакторная аутенфикация, хотя бы те же пароли дополнительно к биометрии.
Простите, но пользователь сам виноват, что использует один короткий пароль для всех сайтов.
Как виноваты сайты, разрешающие использовать короткий и не сложный пароль.
Корпоративное окружение мне нравится больше — в политиках учётных записей стоит уровень сложности и срок действия пароля в 30 дней и всё. Меняют и директора, и водители, и бухгалтерия.
Если бы еще сайты писали мол «Товарищ, вы пользуетесь своим паролем два месяца, не хотите ли его сменить для лучшей безопасности».

PS сам пользуюсь keepassx, все пароли уже полностью несколько раз менял и стараюсь не забывать ставить дату в свойствах записи, когда пароль меняю.
Что значит «виноват»? Он или не сознавал угрозы, или счёл риск допустимым. Вот для меня в отношении большинства сервисов важнее, что я могу не получить к ним доступ, когда он мне понадобится, чем что кто-то другой его временно получит, потому использую на них простые одинаковые пароли (один из них утёк как минимум через линкедин, если вообще словарным не считается, в публичных таблицах md5, sha1, mysql, ntlm он точно есть), а если кто-то узнает мой «мастер-пароль» (пароль от основного email), то я могу постоянно потерять доступ почти ко всем ресурсам (кроме тех, где я проходил «юридическую» аутентификацию). Но также я потеряю доступ если его забуду, поэтому он должен быть запоминаемым, то есть не сложным случайным из 16+ символов. Но если бы я использовал его на линкедин, то сейчас бы я вероятно лишился и доступа к ящику и к другим сервисам. Потому на других сервисах у меня пароль более простой, чем на мыле, но и на мыле не сложный и мнемоничный (для меня), а значит на других сервисах совсем простой. Перейдёт массово индустрия на использование сложных для запоминания паролей или, например, сертификатов, то мне придётся смириться с увеличившейся вероятностью ошибок первого рода и постараться её минимизировать доступными свойствами, например хранить список паролей или копий сертификатов где-то в паблике по «секретному» url или под защитой простого пароля.
Я не знаю и не хочу знать ни одного своего пароля с его длиною в 25 символов, из которых хорошо, если треть алфавитно цифровые, ах, да, есть учётка для телефона, длиною в 16 символов, на 25 оно ругалось, пришлось понизить, но её я нигде не свечу и не использую.
Все пароли хранятся в базе KeePassX, база лежит в облаке и синхронизируется с обоими компьютерами и, если допишут, то и с телефоном.
А вот то, что пользователи не осознают угрозы — это 90% аудитории вконтактика, одноклассников и уютненькой мейлрушечки. А это уже печально.
Пользователи бухгалтерии, работающие с клиентбанками или сотрудники банков еще хоть как-то понимают, чем это грозит, ну или те, кому шарящие друзья/родственники обьяснили…
А так — печально всё.
НЛО прилетело и опубликовало эту надпись здесь
Биометрическая аутентификация, к большому сожалению — крайне громоздкая технология в силу требуемой многофакторности, а при однофакторном исполнении — еще и абсолютно ненадежная.

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

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

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

А проблема дачиков выглядит ещё хуже если разобраться — нужно исключать или минимизировать возможность выдавать произвольные данные за данные снятые физическим датчиком в данном сеансе. Зачем делать физическую «маску», если мы можем на своём компьютере отослать однажды полученные где-то и как-то цифровые данные отправлять на сервер аутентификации, выдавая их за полученные с датчика?
Может, лучше графическая аутентификация?
Лучше двухступенчатая по типу вебмани:
1. Смс вопрос-ответ
2. Ввод пароля
Нет возможности получить смс — не можешь аутенфицироваться. Фэйл, иной раз более страшный чем когда кто-то может несанкционированно получить доступ к аккаунту.
НЛО прилетело и опубликовало эту надпись здесь
мне кажется удивительным, что в данной простой проблеме есть пробелы. Те же китайцы, делающие кучу бесполезных гаджетов, вполне могли бы сделать флешку-брелок с дисплеем и парой кнопочек.
Нажимаем одну кнопочку — генерится и запоминается пароль, нажимаем вторую — девайс эмулирует клавиатуру, и этот пароль «набирает». Можно добавить мастер-пароль к нему, в зависимости от желаемого уровня безопасности (ведь девайс может схватить кто-то другой), но основные проблемы пользователя он бы решил и без мастер-пароля.
Как он решит проблему запоминания разных паролей для разных ресурсов и сервисов?
а в чем проблема — на девайсе несколько слотов, просто переключаешься по ним клавишей навигации. В худшем случае они просто занумеронваны, в лучшем — есть подпись и пиктограмма каждого сервиса.
Вот сейчас у меня браузер запоминает пароли для сотни, наверное, сервисов. Вы предлагаете мне переключаться клавишами навигации среди сотни записей на девайсе таком?
Потерял флешку. дальше что? даные на флешке тоже надо чем-то защищать.
это не двухфакторный брелок с пинкодом, по которому еще попробуй пойми, к какому сайту он привязан. Потерял, написал в СБ, выдали новый.
image
А instant, во времени взлома брутфорсом, что под собой подразумевает? Мгновенно?
Время, меньшее секунды.
Спасибо за программку, проверил некоторые из своих паролей — на ближайшие 68 лет мне ничего не грозит :)
Если только развитие мощностей ЭВМ не пойдёт значительно быстрее, чем по закону Мура. :)
… то он раскладывается на «Good», «123», «Password»… время на перебор всего лишь «в три раза больше, чем почти ничего»

Мне кажется, или все же t3, а не 3t? (t- время перебора)
да, абсолютно верно, в погоне за шутковатым слогом забыл о достоверности, выше же было написано правильно. Спасибо, сейчас поправлю.
Почему-то некоторые слова по типу Traveler он расшифровывает, как «T»+«rave»+«ler», хотя слово-то словарное.
ну исходный код у вас есть, можете добавить большой словарь, и простой поиск по нему — но это не представляет интереса, потому как словари могут быть очень разными. Такая программа должна идти как минимум с двухгигабайтным словарем, что неприемлемо.
При поиске словарных частей не учитываются замены символов на похожие:


Да что там, даже изменение регистра не учитывается:
Да, но тут не все так просто, алгоритмы, которые производят замены на похожие работают еще в 2^вариантов_замен раз медленнее, чем просто декомпозиция или атака по словарю. Но, конечно, для полноты картины следует еще добавить набор распространенных правил замены, чуть позже займусь.
«Cthsq Lbyjpfdh 2» — чем плох этот пароль?
Программы для подбора паролей давно знают про слова, набранные в другой раскладке.
Тем что он неслучайный. Можно в словарь добавить исходные слова записанные в неправильной раскладке (учитывая несколько распространённых языков). Перебор станет несколько медленней, конечно.
в общем, я понял, что одним общим «словарем» тут не отделаться, нужно сгенерировать несколько подмножеств и проверять уже среди каждого с учетом меньшей мощности словаря.

Когда сам подбирал пароли — именно так и делал, несколько различных техник перебора, запущенных параллельно.
Эмм. Я использую следующий подход:

Беру два случайных слова из словаря (любой обычный словарь типа Даля, например), затем перемешиваю там все буквы внутри каждого слова, случайным образом заменяю буквы на похожие цифры или например А -> [/\,@] и ещё меняю регистр с вероятностью 15%.

Нормально, не?
да, буквы в латиницу, или просто словарь английских слов какой-нить.
А как запоминать алгоритм перемешивания букв? Как потом вспомнить, какие именно два случайных слова были взяты? Если же пароль хранится не в голове, то зачем использовать для его генерации словарь Даля вместо хорошего ГСЧ?
Сысмл в том, что это иывнзестй фкат, мы чтеиам так все солва. В отличие от машинно-сгенерированных последовательностей этот пароль можно запомнить. Каждые полгода.
Зря не сделали сервис IMHO. Во-первых, несправедливо обделили всех не программистов на .NET; во-вторых словарь на 40 Кб это несерьезно, в комментариях уже приводили примеры.
Хотя бы соберите и выложите бинарник.

И еще нужна возможность проверки на одного пароля, а по списку. Мне, к примеру, очень интересно проверить, насколько стойкие (с учетом атаки декомпозицией) пароли выдают различные генераторы (в частности мой любимый KeePass). Особенно с включенной опцией «легкозапоминаемые».
Так это же прототип, хотите чего-то большего — берите идею или часть исходников и реализовывайте как вам больше нравится.

Словарь на 40кб это вполне нормально, именно по нему были сломаны 2.5 миллионов паролей с LinkedIn, брать словарь больше — время растет, но я уже написал выше, что идея с несколькими словарями более-менее разумная.

Бинарник кстати включен, но первый параграф думаю вы зря игнорируете, чем больше вы проверяете пароли разными программками — тем больше шанс что они куда-нибудь «уйдут».
Ну вот на черта вам в такой программе ломиться к WinAPI напрямую? Она из-за этого на Mono не заводится.
Хеш-функция же. Можно какую-нибудь реализацию в исходниках поискать, но я не стал ради уменьшения размера кода. Это же прототип, и может он вообще нафиг не нужен, а тратить время на кроссплатформенное написание в таком случае — бессмысленно. Судя по текущим отзывам — не нужен :)
DateTime.UtcNow.ToBinary() даёт 64-битное целое. Зачем вылезать за пределы CLI и городить вызов APIшки? Не понимаю.
а, вы про это. Ну тогда не правильно — UtcNow достаточной энтропии не дает (впрочем в сочетании с запоминанием «мышиного хвоста» это сработает, но оснований для надежности уже нет).
Текущее время вообще не может использоваться для получения качественной энтропии, если что.
Время в тиках процессора — не тоже самое, что и время астрономическое, и вполне может. Сложно придумать более надежный источник энтропии.
Тики процессора -> время работы, так?
только вот «время работы» чего?
Видимо компьютера имелось в виду. В отличие от количества тиков от 01.01.1970, которые более предсказуемы, чем время работы конкретного ПК
НЛО прилетело и опубликовало эту надпись здесь
Ну круто, очередная моя заметка получает 48-49 плюсов. Это ведь сильно уменьшает мое желание писать продолжение. Или копи-паст с жж правда интереснее читать?
В смысле слишком мало для стимуляции?
я на ППА намекаю, конечно. Там пороги вполне четко обозначены, и меньше 50 — ничем не отличается от нуля.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории