Это 5-значный PIN-код лучше, чем большинство паролей?
Это что-то, что беспокоило меня в течение многих лет: почему большинство онлайн-сервисов высокое значение энтропии пароля, ссылаясь на него как на меру безопасности и применяя его, когда пользователи выбирают пароль?
Я решил выйти с этим вопросом после прочтения статьи " Делают Ли Сильные Веб-Пароли Что-Нибудь?" (и, конечно, классический мультфильм Дилберта).
типичная политика онлайн-сайта заключается в требуется не менее 6 или 8-значный верхний+нижний регистр+цифровой пароль. Эта длина несколько актуальна для сложности атаки грубой силы, например, для восстановления пароля из хэша. Но типичный способ угадать происходит в интернете, что кто-то пытается войти в систему на сервере, который может отказаться после нескольких попыток.
Давайте, например, что мы защищаем какого-то среднего службе-значный PIN-код. Человек сразу же думает о 4-значных или 6-значных контактах, но что может быть не очень хорошая идея, так как слишком много людей будет соблазн ввести дни рождения своих детей, которые по сути являются общественные знания.Итак, вот мой 5-значный PIN предложение. Я сохраняю для каждого пользователя флаг "возможная атака".
- пользователь входит в систему правильно - > OK
- в противном случае сохраните сеанс https и разрешите еще 2 попытки
- вход пользователя - > OK
- в противном случае, позвольте еще 2 попытки с 5-й минуты ломайся перед ними
- вход пользователя - > OK
- пользователь прерывает сеанс - > установите флаг
- пользователь прерывает сеанс, но обычно входит в систему позже: присутствует пользователь с диалогом и позволяет очистить флаг
- пользователь исчерпывает попытки выше: отправить по электронной почте со ссылкой; разрешить очистить флаг
- если в течение месяца существует более 100 флагов, установите глобальный флаг "возможной атаки", который требует, чтобы люди, у которых нет cookie ответьте на вопросы безопасности
- автоматически очистить флаг пользователя в некоторых случаях (например, пользователь, наконец, вошел в систему с того же компьютера)
предположим, что имена пользователей каким-то образом известны (обратите внимание, что это не будет верно для большинства сайтов). Нападение грубой силы на одного пользователя безнадежно - вы заблокированы после 5 попыток, поэтому у вас есть шанс 1/200000. Если вы попытаетесь угадать пароль более 200 раз в месяц, флаг погаснет, и вы ничего не получите. Если ты попытаешься ...
размер сайта актуален только в том смысле, что не получает ложных срабатываний, то есть пользователей, которые действительно забывают свой пароль (скажем, 1% в месяц), восстанавливают его, но не очищают флаг (скажем, 1% из них), и когда вы не можете очистить флаг автоматически (скажем, 10% из них). Это составляет 10 ожидаемых ложноположительные флаги в месяц за 106 пользователи - - - что означает, что сайт среднего размера имеет достаточно низкую вероятность входа в режим "паники", что в любом случае не так уж плохо.
Я считаю, что эта схема очень практична. Вот некоторые очевидные первые факты об этом (обновляется):
- пользу: штырь легче запомнить. Я считаю, что это большое преимущество, так как теперь можно требовать, чтобы пользователь помнил пароль генерируется. Я считаю, что большинство людей намного лучше запоминают 5 случайных цифр, чем любой другой тип случайного пароля.
- компромисс: хэширование не поможет, если ваш злоумышленник знает как хэшированный PIN-код, так и соль. Это возможно, если кто-то взломал вашу базу данных и узнает, что ваш процесс засолки. Однако, я считаю, что стандартная энтропия пароля не помогает в этом случае.
- пользу: люди гораздо счастливее запоминать случайные 5 цифр, чем случайные буквенно-цифровые пароли; поэтому гораздо проще также требовать, чтобы мы генерировали пароль, а не пользователь. Это устраняет атаки словаря / персональных данных.
мои вопросы:
- каковы другие компромиссы / преимущества моей схемы по сравнению с той, которую я описал как типичную?
- не будет большинств среднего размера местами и организации лучше с моей схемой паролей?
- по каким причинам они выбирают схема у них?
Примечание: Я не сторонник всегда иметь короткие пароли. Мои собственные веб-пароли обычно генерируются случайным образом и шифруются менеджером паролей (1Password
) с 12-символьным паролем высокой энтропии. Но я думаю, что часто схема выше будет лучше, чем то, что мы имеем на практике.
13 ответов
нет, вы ошибаетесь. Атаки грубой силы-это одно, но реальная опасность-радужные таблицы, которые из хэш-значения дают вам пароль открытого текста.
во-первых, вы никогда ничего не храните как открытый текст. Если кто-то нарушает вашу безопасность (или даже если сотрудник имеет злого умысла) вы не хотите открывать пароли пользователей. Поэтому вы будете использовать правильно посоленный хэш.
затем, с 5-значным PIN-кодом, он слишком короткий для защиты с помощью хэша. Есть радужные столы (или даже поиск в Google), который позволит кому-то получить пароль обратно, если они получат хэш.
имейте в виду, что злонамеренный пользователь с 3.000 попытками может успешно заблокировать 1.000 учетных записей в течение нескольких минут. Другое дело, что он может изменить шансы одного успешного входа в систему, пробуя тысячи различных учетных записей в день. Is OpenID не вариант?
обновление
просто было немного вдохновения о 5-значной вещи. Если 5 цифр (10^5=100.000) очень легко запомнить и в то же время, что об этих случаи:
4 letters all lowercase (26^4 = 456.976) => abcd
3 letters with mixed cases (52^3 = 140.608) => aBc
3 letters lowercase + numbers (36^3 = 46.656) => ab1
пароли с солеными хэшами лучше всего. Соль предотвращает большинство радужных атак, а пароль намного сложнее грубой силы. Даже с атакой словаря вы были бы более вероятно, чтобы получить более быстрые хиты на 5-значный pin-код, то на аналогичную длину пароля.
остерегайтесь обработки сеанса
Я не знаю слишком много об обработке сеанса, но, насколько я знаю, это в большинстве случаев делается с помощью куки. Когда у вас есть такая схема, как ваша, необходимо записать ложные попытки в базу данных или в специальные файлы на вашем сервере, так как вы не можете полагаться на обработку сеанса (в вашем описании это звучит немного, так как вы просто можете "провести сеанс", чтобы иметь всю правду...), поскольку занятия через интернет очень уязвимый. Это просто конструкция куки (которые могут быть удалены) и / или имена страниц (которые также могут быть испорчены). Единственное, на что вы можете положиться, это то, что пользователь по-прежнему проводит сеанс-вы не можете определить, является ли какое-то (совместное) новое соединение не вашим старым пользователем ...
специально, это не имеет никакого значения, чтобы отличаться между "пользователь все еще сеанс" и "пользователь перерывы сессии" (Ваш пункт 7) это просто пренебрежимо разница, а также может стать безопасность отверстие.
запоминание на самом деле не проще
вы также говорите, что запоминать 5 цифр легче. Это может быть правильным для вашей кредитной карты или банковской карты (в Германии у нас есть 4-значные пин-коды) номер безопасности, но для веб-сайтов, у вас всегда есть проблема, что эти многие веб-сайты имеют пароли. Запомнить десятки 5-значных чисел так же сложно, как и множество паролей.
Я до сих пор не понимаю, почему люди ограничивают длину пароля. Не проще ли мне запомнить фразу или предложение? Например, я могу захотеть, чтобы мой пароль был "this is my stackoverflow password
". У меня были бы серьезные проблемы с памятью, если бы я забыл об этом. Его длина составляет 34 символа и использует только алфавит из 27 символов, но все равно было бы практически невозможно отменить хэш (4.6 x 1048 возможных перестановок).
в сочетании с вашими идеями относительно "флаг атаки" и правильные методы соления/хеширования, это было бы идеальным решением, на мой взгляд.
реальная проблема? Люди.
Я знаю школьный округ с 4 паролями: 1111, 2222, 3333 и 4444. Почему? Пользователи собрались вместе и согласились сделать это, чтобы они всегда могли попасть, когда персонал был дома болен. Слишком много боли, чтобы попасть в заблокированный компьютер с деньгами на обед, когда работник обеденного стола был болен.
О да, я видел обед компьютер без присмотра много раз. И, да, вы можете попросить, чтобы Ваш баланс превратился в наличные деньги в любом время.
пользователи сошли с ума.
по этой логике, если 5 цифр легче запомнить, чем 8 символов, но содержат достаточную энтропию, то одна цифра и три буквы без учета регистра должны быть еще проще!
10**5 = 100,000
26**3 * 10 = 175,760
теперь только четыре маленьких символа, но они передают больше энтропии!
возможно, я просто использую свои инициалы, за которыми следует цифра 1 . . .
Я не то, что доказано этим, за исключением того, что между reductio ad absurdum и сарказм.
Я предложил схему, похожую на вашу в прошлом, потому что я видел много случаев, когда пользователи просто выписывают пароли на стикере рядом с их монитором, ссылаясь на соучастие, слишком сложно запомнить. Я утверждал, что пароли не имеют большого значения, потому что хакер, скорее всего, найдет другие дыры в системе, будь то через приложение или просто немного социальной инженерии.
Я думаю, что некоторые люди, особенно технические менеджеры, которые не полностью понять, что вы говорите, как чувство безопасности. Большой сложный пароль чувствует себя сильным. Как гарантия на коробку, это заставляет тебя чувствовать себя хорошо. Вроде как зубная фея
PINs против паролей, пароли win, не идеальны, но с сильной политикой, намного лучше, чем PINs.
и кто сказал, что многие люди не пишут свои булавки на липких заметках, для многих легче запомнить словосочетание, чем 5-значное число, лично я помню числа проще всего, и поэтому мои пароли более числовые, чем алфавитные.
Я думаю, что было бы легче запомнить " passphrases бить булавки в любой день!- который выдержит нападение грубой силы примерно 400 триллионов лет.
как таковой полагаться на блокировку для безопасности-плохой пользовательский опыт и приведет к блокировке злоумышленником нескольких учетных записей, что приведет к неудобствам для реальных пользователей. Вместо этого используйте более сильные пароли с соленым хэшем, которые сложнее сломать с помощью грубой силы и не подвержены атакам радужной таблицы, если выбор между PIN-кодом и паролем. Если выбор среди парольной фразы, пароля и PIN-кода. Моя рекомендация-идти с паролем, за которым следует парольная фраза, а затем PIN-код нисходящий порядок предпочтений. Парольная фраза (>10 символов) обычно более безопасна, чем пароль (от 6 до 8 символов), но не обеспечивает большой опыт, поскольку пользователь должен вводить парольную фразу (>10 символов) каждый раз !! Сделайте выбор на основе того, насколько чувствительны данные и насколько хороший пользовательский опыт вы хотите предоставить. Подожди минутку.. Исследуйте новую возникающую область аутентификации пароля без использования мобильного устройства в качестве аутентификатора.
Я также экспериментирую с pins против паролей. Это зависит от общей безопасности приложения, которое вы пытаетесь создать, но пароли обычно выигрывают каждый раз, если вы включаете некоторую проверку безопасности паролей. Я понимаю, что хорошая парольная фраза, которая по крайней мере 14 + символов, может быть даже лучше, чем "типичный" пароль. Это позволяет людям вводить что-то, что они могут легко запомнить, но что-то, что может быть сложнее воспроизвести в атаке. Просто чисто количество символов в одиночку делает его трудно взломать.
Если вы объединили парольную фразу с вашим подходом блокировки выше, у вас может быть более безопасная система.
другим фактором является легкость входа. PIN-код просто ввести быстро на цифровой клавиатуре, как вы идете для большой сложности простота ввода падает. Простота зависит от устройства. На стандартной клавиатуре с сенсорным вводом я могу легко вводить символы и UC. На смартфоне мне трудно ввести строчные буквы надежно,а символы трудно и медленно вводить, потому что клавиатура меньше. Цифровой PIN-код быстро вводится, и я могу запомнить и ввести длинный последовательность цифр легко. Человеческому наблюдателю будет легче захватить пароль, если вход медленный и использует необычные движения, которые выдают то, что вводится.
короче говоря, вам нужно учитывать не только сложность пароля и то, как он хранится, но и легкость его сохранения в секрете и легкость входа.