GOTCHA — Больше никаких взломов паролей


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

Исследователи из Карнеги-Меллона считают, что у них есть возможное решение растущей проблемы взлома паролей, но сначала давайте посмотрим на конкретную проблему, для решения которой предназначена GOTCHA.

Пароли обычно не хранятся в компьютерной системе. Вместо этого пароль p хешируется с использованием криптографической хеш-функции h (p). Это дает номер, который хранится где-то в системе. Когда пользователь входит в систему, он предоставляет пароль p ‘, который затем система использует для вычисления хэша h (p’). Если это равно сохраненному значению хеш-функции, значит, был отправлен правильный пароль, а если нет, то пользователю необходимо повторить попытку.

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

Один из способов сделать пароль более надежным — использовать соль — случайное значение. Когда вы устанавливаете пароль в первый раз, операционная система генерирует случайное число, соль, s и добавляет его к вашему паролю. Затем система вычисляет h (p, s) и сохраняет соль вместе с хешем. Когда вы вводите свой пароль p ‘, система ищет значение соли s, добавляет его к p’ и вычисляет h (p ‘, s), и если это то же хеш-значение, в котором хранится пользователь.

Соль усложняет атаку по словарю, потому что злоумышленник должен вычислять каждое предположение с каждой солью. Если соль не присутствует, вы можете попробовать h («пароль») и просмотреть файл, чтобы увидеть, достаточно ли глуп, чтобы использовать пароль в качестве пароля. С солью вы должны вычислить h («пароль», s) для каждой соли в файле — намного больше работы.

Теперь у нас есть GOTCHA, которая вроде добавляет сгенерированную пользователем соль к паролю, что значительно усложняет задачу для злоумышленника, потому что система не хранит дополнительную соль — пользователь генерирует ее каждый раз. Иеремия Блоки, Мануэль Блюм и Анупам Датта ожидают, что мы поверим в то, что аббревиатура «Генерация паноптических тестов Тьюринга для разделения компьютеров и людей», то есть GOTCHA, просто появилась, но это умная идея.

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

Затем компьютер генерирует перестановку чернильных пятен, например P = 321456709 означает чернильное пятно 3, затем 2, затем 1, затем 4 и так далее. Затем машина вычисляет хэш с солью и перестановкой в качестве дополнительной соли. То есть он вычисляет h (p, s, P) и сохраняет хэш, соль и фразы, назначенные пользователем, в переставленном порядке. Обратите внимание, что он не сохраняет переставленный порядок P.

Пока все хорошо, но как пользователь входит в систему?

Когда пользователь входит в систему с правильным паролем, ему показываются десять чернильных пятен в стандартном порядке и фразы, которые они применили к ним, в порядке перестановок. Все, что нужно сделать пользователю, это сопоставить фразы с чернильными пятнами, и машина может использовать это, чтобы выработать перестановку P. Используя это и соль. затем машина может вычислить h (p ‘, s, P), и если это дает сохраненное хеш-значение, пользователю разрешено вводить.

Теперь подумайте, что произойдет, если пользователь укажет неправильный пароль p » — в этом случае они даже не увидят правильные чернильные пятна и, следовательно, не имеют шанса угадать перестановку. Даже если бы они это сделали, хэш не удастся, потому что пароль неправильный.

Что, если пользователь не совсем уверен, какая фраза к какому чернильному пятну соответствует?

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

Теперь предположим, что злоумышленник получает хэш-файл — насколько легко угадать правильный пароль? Единственные доступные данные — это хеш-значение, соль и переставленный список фраз. Теперь, когда проводится атака по словарю, злоумышленник должен попытаться присвоить фразы сгенерированным чернильным пятнам — непростая задача, даже если пароль правильный.

Единственный альтернативный способ — попробовать h (p ‘, s, P) для всех возможных паролей и всех возможных перестановок … и с перестановкой, представляющей собой десятизначное число, это множество возможностей для проверки.

Изобретатели настолько убеждены, что их идея хороша, что бросили вызов сообществу ИИ.

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

Для меня это звучит сложно, и я думаю, в этом вся суть.

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


Добавить комментарий