Изучаем длину паролей
Восстановление пароля может быть довольно сложным процессом. Шифрование можно сравнить с головоломкой "Судоку". Чем больше и запутаннее головоломка, тем сложнее обойти схему шифрования. Хотя есть два способа, чтобы попытаться это сделать.
Обычно в ходе первого хакеры пытаются найти какую-то общую закономерность. Этот способ можно разделить на несколько различных классов атак, о некоторых из них вы, возможно, слышали в новостях, например, таких, как атака по сторонним каналам. Эти методы сложны и не из тех, которыми пользуются обычные компьютерные пользователи. Только небольшая группа людей умеет их применять и применяет.
Намного более примитивный подход к обходу шифрования – просто "гадать и проверять". Этот способ известен как метод подбора. Представьте, что вы приводите каждую единичную комбинацию чисел, которую можно использовать для решения вышеупомянутой головоломки "Судоку", начиная с использования единиц во всех направлениях и заканчивая всеми девятками. Существуют способы, которые позволяют скрыть "проверку", чтобы атака стала более сложной. Но такие простые программы, как WinZip и WinRAR, не имеют такого преимущества. Если вы настойчивы, то можете продолжать угадывать пароли, пока рак на горe не свистнет. Нет предела количеству вариантов, которые вы можете предложить к проверке. Таким образом, настоящая проблема в вопросе восстановления пароля заключается в скорости, с которой вы сможете отгадать правильный вариант.
Вручную проверять пароли – это, в лучшем случае, глупая попытка, особенно если вы имеете дело с длинным паролем. Вот тут-то и выходят на сцену программы восстановления паролей. Они автоматизируют процесс "угадывания" паролей.
Доступные символы с применением английского алфавита Возможных паролей из двух символов Возможных паролей из четырёх символов Возможных паролей из шести символов
Строчные буквы 676 456 976 308 915 776
Строчные и прописные буквы 2 704 7 311 616 19 770 609 664
Строчные, прописные буквы и цифры 3 844 14 776 336 56 800 235 584
Все символы ASCII 8 836 78 074 896 689 869 781 056
Атаки методом подбора рассчитаны на вероятность. Чем длиннее пароль, тем больше будет паролей на проверку. Здесь полагаются на идею перестановки, то есть расстановки объектов в определённом порядке. Представьте, что пароли – это анаграммы. Если мы дадим вам буквы a, b и c, сколько различных упорядоченных расстановок вы сможете сделать? Всего с тремя буквами вы сможете провести шесть перестановок набора {a,b,c}, а именно: [a,b,c], [a,c,b], [b,a,c], [b,c,a], [c,a,b] и [c,b,a].
Вычислить количество возможных паролей просто. Повторения допускаются, поэтому формула будет такой: n(длина пароля), где n – это число возможных символов. Как видите, при шести символах мы уже имеем дело с миллиардами вариантов, если в пароль включены строчные и прописные буквы. Если вы также использовали особые символы и числа (все символы ASCII (American Standard Code for Information Interchange – Американский стандартный код для обмена информацией)), то обнаружите, что число паролей-"кандидатов" резко возрастёт до ? триллиона (10 в 12-й степени). И не забывайте, что, если вы не знаете длины своего пароля, то должны будете испробовать все возможные комбинации, начиная с пароля в один символ, пока не доберётесь до выбранного вами пароля.
Взлом паролей: вычисления на базе CPU
Существует бесчисленное множество программ, из которых можно выбрать ту, которая поможет вам восстанавливать пароли, но две наиболее популярные называются так: Advanced Archive Password Recovery и Visual Zip Password Recovery Processor. Когда мы потеряли пароль к какому-то из WinZip-файлов, то смогли увидеть в деле первую программу, которая восстановила пароль длиной в семь символов за 20 минут. Но это дало нам пищу для размышлений и разожгло наше любопытство. С какой скоростью наш компьютер искал пароли? Что бы произошло, если бы мы использовали более сильный метод шифрования, такой как AES-128?
Ещё важнее следующий вопрос: неужели для открытия всех наших защищённых паролями архивов требуется всего лишь 20 минут, а потом к ним получит доступ кто-то, кто не должен его получить?
Скорость прямого подбора паролей, паролей в секунду Advanced Archive Password Recovery Visual Zip Password Recovery Processor
Сжатие: нет
Шифрование: Zip 2.0 28 357 311 20 943 157
Сжатие: нет
Шифрование: AES-128 9 715 неудача
Сжатие: нет
Шифрование: AES-256 9 713 неудача
Сжатие: Zip
Шифрование: Zip 2.0 28 492 733 20 888 938
Сжатие: Zip
Шифрование: AES-128 9 733 неудача
Сжатие: Zip
Шифрование: AES-256 9 760 неудача
Сжатие: RAR-хранилище
Шифрование: AES-128 213 -
Сжатие: RAR-хранилище
Шифрование: AES-128, названия файлов 202 -
Сжатие: RAR стандартное
Шифрование: AES-128 213 -
Сжатие: RAR стандартное
Шифрование: AES-128, названия файлов 202 -
Как видите, сжатие лишь в малой степени влияет на скорость, с которой вы можете попытаться подбирать пароли, но самый большой недостаток заключается в старой схеме шифрования Zip 2.0. В результате пароль из пяти символов может быть найден всего лишь за несколько секунд, потому что вы можете обрабатывать данные со скоростью около 28 миллионов паролей в секунду, используя процессор Core i5-2500K. Visual Zip также обнаружил правильный пароль при помощи метода шифрования Zip 2.0, но, вследствие проблем программного обеспечения, эта утилита не смогла восстановить пароль файла, зашифрованного с помощью AES-128.
Несомненно, это ещё не вся история. Нас не интересует производительность CPU только ради того, чтобы можно было похвалиться, что может сделать новый центральный процессор (хотя это могло бы, в сущности, привести нас к проведению интересного эталонного теста). И потому мы беспокоимся о производительности ЦП из-за того, что она воздействует на скорость, с которой мы можем найти пароль.
Общее время подбора, если он идёт со скоростью 28 миллионов паролей/сек. Пароли от 1 до 4 символов Пароли от 1 до 6 символов Пароли от 1 до 8 символов Пароли от 1 до 12 символов
Строчные буквы Мгновенно 11 секунд 2 часа 112 лет
Строчные и прописные буквы Мгновенно 12 минут 22 дня 451 345 лет
Все символы ASCII 3 секунды 7 часов 8 лет 701 193 345 лет
Даже если вы предположите, что сможете попытаться обрабатывать 28 миллионов паролей в секунду, то ваши шансы угадать правильный пароль будут всё более и более неясными, когда вы приступите к более длинным паролям и наборам символов. Потратить целый месяц на то, чтобы взломать пароль из восьми символов, из которых все восемь являются буквами, – это не такая уж ужасная перспектива, если защищённая информация действительно важна. Но 700 миллионов лет – это, согласитесь, слишком большая цифра, чтобы заставлять вас ждать.
К счастью, программа Advanced Archive Password Recovery позволяет приостановить процесс и сохранить позицию, на которой прервался поиск. А если в вашем распоряжении несколько домашних компьютеров, то вы сможете значительно снизить время поиска, распределив объём работ между ними. Вам ещё не страшно?
Взлом пароля: центральный процессор i5-2500K.
Цель атаки методом подбора – быстро перебрать максимальное количество паролей. Но современные CPU недостаточно хорошо оптимизированы для этого. В то время, как наша рабочая станция на архитектуре Sandy Bridge может обрабатывать около 28 миллионов паролей в секунду, она всё же не использует все доступные такты ЦП. Вспомните, мы ведь только угадываем и проверяем. Вышеприведённый снимок экрана с данными по использованию центрального процессора иллюстрирует это: тогда как тактовая частота, конечно же, помогает в данном процессе, программа способна воспользоваться преимуществом параллелизма, поэтому наличие бoльшего количества ядер поможет ускорить процесс поиска пароля.
Как мы знаем, когда дело доходит до параллельно запущенных задач, с чем иногда очень неплохо справляются центральные процессоры, то арифметико-логические устройства на видеокарте могли бы в большинстве случаев работать и лучше. У компаний AMD и Nvidia работают целые группы, занимающиеся транскодированием видео, участники которых были уверены в этом, до тех пор пока Intel не доказала, что несколько специализированных логических схем в её архитектуре Sandy Bridge могут намного превзойти тяжеловесный графический процессор. Но теперь выходит, что у нас появилось ещё одно приложение, прекрасно подходящее для работы на современных GPU.
Было время, когда взлом паролей при помощи технологии GPGPU (General-purpose graphics processing units – вычисления общего назначения на GPU) не выходил за пределы научного мира: студенты-выпускники прилагали большие усилия для работы со специальными программами, которые так и не находили коммерческого применения. Но теперь всё изменилось. В настоящее время существуют две GPGPU-утилиты, которые может купить любой, у кого есть кредитная карта: Parallel Password Recovery и Accent Password Recovery.
Parallel Password Recovery – это программа, оптимизированная исключительно под архитектуру с параллельными вычислениями Nvidia CUDA. Мы не говорим о том, что ядра CUDA лучше, чем разработка AMD Stream. Однако следует отдать должное Nvidia. Её "вторжение" в область вычислений общего плана при помощи графического процессора началось уже довольно давно и компания предоставила разработчикам доступ к многочисленным библиотекам низкого уровня, необходимым для изучения данной технологии. AMD предприняла ответные действия намного позднее. В действительности, мы всё ещё сталкиваемся с некоторыми проблемами при применении ускорения Stream, включённого в популярные приложения для перекодировки. Это частично объясняет, почему ещё одно решение, Accent Password Recovery, всё же склоняется в сторону применения разработок Nvidia. Хотя эта утилита распознаёт CUDA и Stream, только аппаратное обеспечение от Nvidia оптимизировано для того, чтобы можно было проникнуть в файл с шифрованием Zip 2.0.
Взлом с видеокартой GeForce GTX 460
Прямой подбор паролей, паролей в секунду Parallel Password Recovery Accent Password Recovery
Сжатие: Zip
Шифрование: Zip 2.0 24 111 280 516 096 000
Сжатие: Zip
Шифрование: AES-128 185 072 166 800
Сжатие: Zip
Шифрование: AES-256 185 177 156 138
Сжатие: RAR стандартное
Шифрование: AES-128 3 493 4 231
И, кстати, что за скорости у шифрования Zip 2.0! С видеокартой GeForce GTX 460 мы уже можем подбирать пароли со скоростью около 500 миллионов комбинаций в секунду. Чтобы вы лучше себе представляли, что это значит скажем, что мы можем подобрать любую из возможных комбинаций символов ASCII для пароля длиной от одного до 7 символов меньше, чем за 48 часов. Что касается пароля из восьми символов, то здесь речь пойдёт уже о 168 днях.
Видеокарта GeForce GTX 460
Прямой подбор паролей, все символы ASCII, общее время подбора Длина пароля от 1 до 6 символов Длина пароля от 1 до 8 символов
Если подбор идёт со скоростью 180.000 паролей в секунду... 50 дней, 20 часов 1 284 года, 79 дней
Если подбор идёт со скоростью 24 миллиона паролей в секунду... 9 часов, 9 минут 9 лет, 230 дней
Если подбор идёт со скоростью 500 миллионов паролей в секунду... 26 минут, 21 секунда 168 дней, 17 часов
Несомненно, Zip 2.0 весьма устаревший алгоритм шифрования. Программа WinZip поддерживает его только из соображений совместимости. Стандарт AES – вот новый "фаворит", к которому все стремятся. Эту схему намного сложнее использовать в параллельных задачах, хотя разработчики ПО, конечно же, предпринимают такие попытки.
Производительность особенно сильно страдает, когда мы начинаем пытаться восстановить пароль, зашифрованный с применением кода AES. Курсор мыши в нашей тестовой системе буквально начал "спотыкаться". Атаки методом подбора на файлы с AES-шифрованием проводятся довольно медленно. Для того, чтобы испробовать все возможные комбинации из символов ASCII для пароля длиной от 1 до 7 символов, понадобится больше 13 лет.
2 х GeForce GTX 570 SLI
Прямой подбор паролей, паролей в секунду Parallel Password Recovery Accent Password Recovery
Сжатие: Zip
Шифрование: Zip 2.0 45 412 290 1 492 279 088
Сжатие: Zip
Шифрование: AES-128 495 133 513 936
Сжатие: Zip
Шифрование: AES-256 496 244 513 880
Сжатие: RAR стандартное
Шифрование: AES-128 13 904 14 605
Вычисления общего плана при помощи GPU связаны с явлением параллелизма и потому, если у кого-то из вас на видеокарте 480 ядер CUDA работают хорошо, то, если объединить ядра с двух карт, получим значение 960, которое, должно быть, намного лучше, не так ли?
Когда мы объединяем вместе две видеокарты GeForce GTX 570 и включаем SLI, шифрование Zip 2.0 перестаёт казаться надёжным. Благодаря оптимизированному коду, мы можем проверять 1,5 миллиарда паролей в секунду. Это кажется даже немного абсурдным. Теперь мы сократили время поиска для паролей длиной от одного до восьми символов с применением всех символов ASCII почти до двух месяцев.
Между тем, защита AES всё же выглядит весьма привлекательной. Если пароль состоит из более чем семи символов, то придётся потратить почти пять лет, подставляя комбинации со скоростью 500 000 паролей в секунду.
Скачать.
https://goo.gl/pS75Sh