Взлом пароля в 2010 году и далее - PullRequest
5 голосов
/ 14 мая 2010

За последние пару дней я немного разбирался с криптографией и связанными с ней вопросами, и сейчас довольно смущен. У меня есть вопрос о надежности пароля, и я надеюсь, что кто-то сможет прояснить мою путаницу, поделившись мнением по следующим вопросам. Я становлюсь одержимым этими вещами, но в противном случае мне нужно тратить время :-)

Предположим, у нас есть восьмизначный пароль, состоящий из прописных и строчных букв, цифр и общих символов. Это означает, что у нас есть 96 ^ 8 ~ = 7,2 квадриллиона различных возможных паролей.

Как я понимаю, есть как минимум два подхода к взлому этого пароля. Одним из них является попытка атаки методом грубой силы, где мы пытаемся угадать каждую возможную комбинацию символов. Сколько паролей могут рассчитывать современные процессоры (например, в 2010 году, например, Core i7 Extreme) в секунду (сколько инструкций требуется для угадывания одного пароля и почему)? Я думаю, что для взлома такого пароля требуется современный процессор порядка лет.

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

  1. Верно ли утверждение в вышеприведенном предложении?
  2. Как я думаю о времени, которое требуется для нахождения коллизий для хэшей MD4, MD5 и т. Д.?

И, наконец, независимо от силы шифрования файлов с использованием AES-128/256, слабым звеном остается мой пароль для en / decryption. Даже если взлом зашифрованного текста займет больше времени, чем время жизни юниверса, атака грубой силой на мой пароль для де / шифрования (угадайте пароль, затем попытайтесь расшифровать файл, попробуйте следующий пароль ...), может быть успешной намного раньше чем конец вселенной. Это верно?

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

Ответы [ 5 ]

3 голосов
/ 14 мая 2010

Как я понимаю, есть как минимум два подходит к взлому этого пароля. Одним из них является попытка атаки методом грубой силы где мы пытаемся угадать каждое возможное комбинация символов. Как много пароли могут современные процессоры (в 2010, Core i7 Extreme для например) угадай в секунду (сколько инструкций делает угадай пароль и зачем)?

Как вы заметили, это зависит от используемого алгоритма. SHA1 является распространенным (хотя и плохим) выбором, поэтому давайте рассмотрим это.

Наилучшие реализации SHA1 в программном обеспечении требуют всего 5,8 циклов на байт в блоках по 1024 байта; давайте будем щедрыми и предположим, что это так же эффективно для одного 512-битного блока; это будет означать 371,2 цикла на блок или эквивалентно на каждый пароль. На вашем предлагаемом процессоре, который, по утверждению Википедии, делает 147 600 MIPS, это очень оптимистично: около 400 миллионов попыток на ядро ​​в секунду, или чуть менее 2,3 миллиарда в секунду для всего процессора. Обратите внимание, что они чрезвычайно оптимистичны, но, по крайней мере, должны быть в центре внимания.

Еще одна возможность - выделенное аппаратное обеспечение: этот заявляет, что работает на ПЛИС, выполняет 82 такта на блок и работает на частоте 350 МГц - что не кажется впечатляющим при 4,2 млн. Угадываний в секунду, пока вы учитываете, что, имея только 14 500 шлюзов на ядро, вы можете построить лот из них размером с Core i7.

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

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

Другой подход будет состоять из получить хэш моего пароля как хранится в операционных системах, а затем поиск коллизий. В зависимости от тип используемого хэша, мы могли бы получить пароль намного быстрее, чем грубая атака. Номер вопросы по этому поводу:

Является ли утверждение в вышеприведенном предложении исправить?

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

Как я думаю о времени, которое требуется найти коллизии для MD4, MD5 и т. д. хэши?

В настоящее время нет известных практических прообразных атак для MD5 или SHA1. Я не уверен насчет MD4, но никто в здравом уме не должен использовать его сейчас!

И, наконец, независимо от сила шифрования файлов с использованием AES-128/256, слабое звено до сих пор мое en / пароль расшифровки используется. Даже если взлом зашифрованного текста займет дольше, чем срок службы Вселенная, атака грубой силы на мой де / шифрование пароля пароль, затем попробуйте расшифровать файл, попробуйте следующий пароль ...), возможно, получится намного раньше, чем конец Вселенная. Это правильно?

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

2 голосов
/ 14 мая 2010
  1. Я не уверен, что вы имеете в виду под «утверждением»? Конечно, это может быть быстрее. Однако в целом вам не нужно беспокоиться об использовании метода хеширования в качестве вектора атаки. Поиск этих коллизий теоретически должен быть чрезвычайно трудным (читай: непрактичным), но если когда-либо существовал алгоритм для быстрого определения коллизии, то соответствующий хеш-алгоритм прост и просто сломан, и все приложения, полагающиеся на него, должны будут заменить его на еще один.

  2. Вы не. Вы должны просто придерживаться алгоритмов, которые, как известно, не сломаны. Например, MD5 и SHA1 считаются сломанными. Хотя не существует действительно эффективного приложения для обнаружения столкновений, исследователи полагают, что оно не за горами. В настоящее время, например самая известная прообразная атака на MD5 имеет сложность от 2 до степени, превышающей 100. Учитывая, что это больше, чем число атомов во вселенной, но уже считается небезопасным, вам даже не нужно беспокоиться об этих алгоритмы считаются безопасными.

  3. Понятия не имею.

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

Чтобы немного очистить голову, подумайте над этим: Как долго вы хотите надежно хранить информацию? В большинстве случаев один или два года - это все, что действительно необходимо, и в этом случае нормальный AES-256 должен работать нормально. Если вам нужна более длительная защита, вам следует выбрать как можно больше ключей и надеяться на лучшее, но гарантии не будет. И даже пресловутый одноразовый блокнот не защитит вас от этой проблемы.

1 голос
/ 14 мая 2010

Это обновление моего прогресса в этом вопросе до сих пор.

Количество инструкций процессора, которое занимает цикл угадывания одного пароля + дешифрования, конечно, зависит от аппаратного обеспечения и алгоритма дешифрования. Я не уверен, как правильно об этом думать, но я предполагаю, что один такой цикл может занять около 1000 инструкций. Теперь, если мы возьмем процессор Intel Core i7 Extreme с пропускной способностью 150 000 MIPS, то это даст нам 150 000 000 предположений в секунду, которые может выполнить ПК, который вы можете легко купить сегодня.

Таким образом, для пароля, описанного в вопросе (скажем, пароля к зашифрованному файлу AES256), попытка взлома его грубой силой может быть успешной менее чем за 556 дней.

Если предположение о 1000 инструкций для одного цикла угадывания-дешифрования правильное, то один стандартный ПК, который вы можете купить сегодня, может взломать такой пароль для ваших зашифрованных файлов AES256 менее чем за два года. Фу, загадка разгадана.

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

0 голосов
/ 14 мая 2010

Я не могу ответить на количественные вопросы, но:

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

Хорошие ОС стараются как можно лучше скрыть действительные пароли, и, кроме того, они солят пароли, вставляя несколько случайных символов в хэш пароля (и, конечно, сохраняя соль). Это означает, что создание «радужной таблицы» хэшей вероятных паролей намного менее практично.

Однако нужно учитывать угрозу, и здесь есть четыре важных компонента.

От кого вы защищаетесь? Есть большая разница между подростком на улице и АНБ. Детский сценарий будет пробовать вещи, которые передаются по Интернету на его домашней коробке, в то время как АНБ будет использовать экспертов и кучу вычислительной мощности. Все остальные между ними.

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

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

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

0 голосов
/ 14 мая 2010

Большая проблема с паролями заключается в том, что они очень редко бывают действительно случайными. Многие люди используют полные или частичные слова в своих паролях, что означает, что существуют атаки с использованием словарей, которые значительно сокращают пространство, в котором необходимо искать возможные пароли. Даже когда человек генерирует «случайный» пароль (не используя механическую помощь, такую ​​как псевдослучайный генератор), у нас возникают бессознательные предубеждения, которые влияют на то, как мы пытаемся сделать что-то «случайное», которое может быть использовано злоумышленниками.

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

...