Пароль, раскалывающийся в 2010 и вне

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

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

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

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

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

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

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

5
задан mttr 14 May 2010 в 13:54
поделиться

5 ответов

Насколько я понимаю, существует как минимум два способа взлома этого пароля. Один из них - перебором атака , где мы пытаемся угадать каждую возможную комбинацию символов. Сколько паролей могут угадать современные процессоры (например, в 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, слабым звеном по-прежнему является мой пароль шифрования / дешифрования . Даже если взлом зашифрованного текста займет больше времени, чем время существования вселенной , атака методом перебора моего пароля де / шифрования (угадайте { {1}} пароль, затем попробуйте расшифровать файл, попробуйте следующий пароль ...), может быть успешным намного раньше, чем конец вселенной . Это правильно?

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

3
ответ дан 14 December 2019 в 13:29
поделиться

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

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

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

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

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

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

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

2
ответ дан 14 December 2019 в 13:29
поделиться

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

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

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

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

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

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

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

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

0
ответ дан 14 December 2019 в 13:29
поделиться

Это обновленная информация о моем прогрессе в этом вопросе на данный момент.

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

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

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

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

.
1
ответ дан 14 December 2019 в 13:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: