Введение
Когда вы забываете свои ключи в машине и срабатывает автоматическое запирание дверей, то это не кажется смешным. В последний раз, когда это случилось у одного из наших сотрудников, ему пришлось провести бoльшую часть дня, ожидая слесаря. К счастью, можем вас успокоить: этот человек совершил такую ошибку всего лишь раз и с тех пор он никогда не упускает свои ключи из виду.
Самое забавное, что при всей своей сознательности и осторожности, просто невозможно уследить за своими электронными ключами (паролями), когда мы пользуемся компьютером. Просто их становится всё больше и больше, ведь известно, что не следует использовать один пароль для всех случаев. За обычными ключами от дома или офиса уследить намного легче. Даже когда они теряются, они всё равно потом где-то находятся. Просто нужно проследить свой путь в обратном порядке. Ну или в крайнем случае вызвать специалиста (например, слесаря по замкaм), который поможет вам преодолеть преграду в виде замкa в двери.
То же самое происходит, когда дело касается паролей, по крайней мере, до определённого момента. Неважно, электронная почта или банковский счёт, – обычно восстановление пароля в интернете – это несложный процесс. Как правило, на сайтах есть ссылка “Forgot Your Password?” (“Забыли пароль?”), которая позволяет вам вновь получить доступ к своему аккаунту. Однако, что касается зашифрованных файлов, перспективы обычно менее радужные. Мы недавно столкнулись с такой проблемой, пытаясь получить доступ к старому зашифрованному архиву WinZip.
Прежде чем мы углубимся в исследование вопросов восстановления паролей, хотелось бы заметить, что существует много способов, чтобы защитить свои данные. Если вам нужно комплексное решение, можем предложить вам такую программу, как TrueCrypt (смотрите статью “Защитите свои данные! Анализ производительности программы TrueCrypt 7.0a”), которая даже более привлекательна сейчас, поскольку поддерживает AES-NI. И всё же, шифрование архивов остаётся наиболее распространённым способом защиты данных. Являетесь ли вы сотрудником отдела по работе с персоналом, еженедельно рассылающим платёжные ведомости, или голливудской актрисой, пытающейся обеспечить сохранность и защиту своих личных фотографий на iPhone, шифрование архива для вас – это быстрый и лёгкий способ защиты.
Тем не менее, существуют разногласия в том, насколько хорошо защищены ваши данные. Если вы чрезмерно озабочены вопросом безопасности своей информации, то вам, скорее всего, понравится наиболее сильная из всех возможных программ шифрования. Вероятно, вы предположите, что, чем мощнее ПО для шифрования, тем сложнее взломать файл, зашифрованный этой программой, и что шифрование AES-256 лучше, чем AES-128. Но это не совсем так. Считайте шифрование своего рода большим сейфом. Чем толще стенки, тем сложнее в него проникнуть. Однако защита сейфа хороша настолько, насколько хорош замок, защищающий его. Точно так же действует пароль. Это ключ к хранилищу. Чем длиннее ваш пароль, тем более сложен ваш замок и тем сохраннее ваши данные.
Большинство пользователей полагают, что восьмизначные пароли достаточно сложны для того, чтобы хакеры потерпели поражение. Но и это не совсем так, и мы собираемся вам рассказать, почему.
Тестовая конфигурация
Тестовое аппаратное обеспечение | |
Процессор | Intel Core i5-2500K (Sandy Bridge), 3,3 ГГц, LGA 1155, 6 Мбайт общего кэша L3 |
Материнская плата | Asus P8P67 Deluxe |
Память | Kingston Hyper-X 8 Гбайт (2 x 4 Гбайт) DDR3-1333 @ DDR3 1333, 1,5 В |
Жёсткий диск | Samsung 470 256 Гбайт |
Видеокарта | Palit GeForce GTX 460 1 Гбайт Asus GeForce GTX 570 1,28 Гбайт AMD Radeon HD 5870 1 Гбайт |
Блок питания | Seasonic 760 Ватт, 80 PLUS |
Системное ПО и драйверы | |
Операционная система | Windows 7 Ultimate 64-битная ОС |
DirectX | DirectX 11 |
Драйверы | Nvidia 270.51 Catalyst 11.4 |
Программное обеспечение | |
Visual Zip Password Recovery Processor | Версия: 6.2 |
Advanced Archive Password Recovery | Версия: 4.53 |
Accent Zip Password Recovery | Версия: 2.01 |
Accent RAR Password Recovery | Версия: 2.01 |
Parallel Password Recovery | Версия: 1.6.0 |
WinZip | Версия: 15.5 Pro Шифрование: Zip 2.0 (по умолчанию), AES-128, AES-256 Сжатие: без сжатия, Zipx/PPMd (по умолчанию), Zip/deflate |
WinRAR | Версия: x64 4.00 Шифрование: AES-128 Сжатие: стандартное, хранение |
Важно отметить, что программа WinZip предлагает три разных варианта шифрования: Zip 2.0, AES-128 и AES-256, а также несколько схем сжатия. WinRAR в этом плане намного проще: он предлагает только шифрование AES-128 и различные уровни этой же схемы сжатия. Мы протестировали разные варианты, чтобы показать вам, как они влияют на скорость взлома пароля.
Шифрование архивов: WinZip и WinRAR
Данные в зашифрованном файле, таком, как, например, в архиве WinZip или WinRAR, обычно находятся в меньшей безопасности, чем информация на полностью зашифрованном накопителе. Именно поэтому мы говорим о разных концепциях.
Сжатие данных представляет собой заключение файла или ряда файлов в контейнер и удаление излишних информационных битов с целью сохранения области памяти. Вы можете увидеть действительную разницу, просто сравнив файлы в любом шестнадцатеричном редакторе. Обратите внимание на то, что вследствие сжатия строк будет меньше.
Конечно, идея контейнера для файлов – это то, что ещё и позволяет вам открывать зашифрованный WinZip-файл. Контейнер не является зашифрованным, а вот содержимое является. Это означает, что вам не нужен пароль, чтобы увидеть содержание архива. Имена файлов не защищаются.
Программа WinRAR использует ту же концепцию. Но здесь у вас есть возможность зашифровать имена файлов. Это можно сделать путём защиты доступа ко всему контейнеру. При этом вы не можете даже открыть файл, если у вас нет пароля.
Имена файлов – это часть так называемых метаданных. Это как данные о данных и это единственная характеристика, отличающая WinRAR от WinZip. Последняя позволяет вам увидеть содержание зашифрованного архива, поскольку первая может хранить метаданные.
Одно это, само по себе, не обязательно делает WinRAR более защищённой программой. Но настойчивые взломщики паролей пытаются использовать метаданные, поскольку обычно они незашифрованы. Найдя слабые места, можно выполнить действия, воспользовавшись недостатками в способе применения шифрования.
Вам не стoит слишком сильно переживать, если ваш пароль сложный и вы используете хорошую схему шифрования (AES-128 или AES-256). В то же время, если вы не хотите, чтобы посторонние узнали о том, что вы зашифровали при помощи WinZip, лучше используйте неописательные имена файлов вместо таких, как “2011 1040 Декларация о доходах”. Конечно же, сильная защита отсечёт оба способа. Если вы сделаете имена файлов неприметными, то не узнаете, что находится в зашифрованном файле, пока он не будет полностью расшифрован. Обычно, если сделать доступ менее удобным, это будет означать, что и для вас он тоже станет менее удобным.
Так что же произойдёт, когда вы, внимая нашему предупреждению, “затянете гайки” на всех своих цифровых замках, а затем забудете, как их снова открыть?
Изучаем длину паролей
Восстановление пароля может быть довольно сложным процессом. Шифрование можно сравнить с головоломкой “Судоку”. Чем больше и запутаннее головоломка, тем сложнее обойти схему шифрования. Хотя есть два способа, чтобы попытаться это сделать.
Обычно в ходе первого хакеры пытаются найти какую-то общую закономерность. Этот способ можно разделить на несколько различных классов атак, о некоторых из них вы, возможно, слышали в новостях, например, таких, как атака по сторонним каналам. Эти методы сложны и не из тех, которыми пользуются обычные компьютерные пользователи. Только небольшая группа людей умеет их применять и применяет.
Намного более примитивный подход к обходу шифрования – просто “гадать и проверять”. Этот способ известен как метод подбора. Представьте, что вы приводите каждую единичную комбинацию чисел, которую можно использовать для решения вышеупомянутой головоломки “Судоку”, начиная с использования единиц во всех направлениях и заканчивая всеми девятками. Существуют способы, которые позволяют скрыть “проверку”, чтобы атака стала более сложной. Но такие простые программы, как 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 позволяет приостановить процесс и сохранить позицию, на которой прервался поиск. А если в вашем распоряжении несколько домашних компьютеров, то вы сможете значительно снизить время поиска, распределив объём работ между ними. Вам ещё не страшно?
Взлом паролей: технология GPGPU
Взлом пароля: центральный процессор 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 паролей в секунду.
Nvidia против AMD: эффективность атаки методом подбора
Этот маленький пример связан с масштабированием. Вы хотите иметь много ядер и хотите, чтобы они быстро работали? Даже несмотря на то, что это в некоторой степени повлияет на наши результаты, давайте на минуту отложим вопросы архитектуры. Тогда как две видеокарты GeForce GTX 570 имеют только 2,8x от числа ядер CUDA в одной GTX 460, мы получили производительность в три раза выше, поскольку все ядра производительных видеокарт также работают на 8% быстрее.
Что касается GeForce GTX 590, то мы получили схожие результаты на конфигурации SLI. На видеокарте 590 больше ядер, но они работают чуть медленнее. Если вам нужна первоклассная видеокарта, то успехи Nvidia намного заметнее, поскольку возглавляет список лучших её модель с 1 024 ядрами CUDA. В то же время, если вы согласны смириться с высоким нагревом и большой прибавкой к стоимости, две GeForce GTX 590 с конфигурацией SLI должны превзойти производительность двух GTX 570 в два раза.
Для сравнения: есть 3072 процессора Stream, работающие при 830 МГц на лучшей видеокарте от AMD – Radeon HD 6990. Не забудьте, что ядро от AMD не похоже на ядро от Nvidia, так что мы не можем сравнить их и провести соответствие между ними, как 1:1.
У нас было время, чтобы поработать с парочкой Radeon HD 5850 в CrossFire, но результаты, тем не менее, оказались впечатляющими. С 2880 процессорами Stream мы подбирали около 1,1 миллиона паролей в секунду, пытаясь взломать зашифрованный с помощью AES-128 WinZip-файл. Две видеокарты Radeon HD 6990 – это, вероятно, лучший выбор, если вы хотите использовать свой компьютер на полную мощность при восстановлении пароля AES. Но даже при наиболее оптимистичном варианте вы сможете работать со скоростями чуть выше 3 миллионов паролей в секунду. Этого всё ещё недостаточно, чтобы взломать пароль, состоящий из восьми символов, менее чем за год.
Видеокарта | Ядра с поддержкой технологий CUDA/Stream | Производительность ядра при обработке шейдеров |
GeForce GTX 460 1 Гбайт | 336 | 1 350 МГц |
GeForce GTX 570 | 480 | 1 464 МГц |
GeForce GTX 590 | 1 024 | 1 214 МГц |
Radeon HD 5850 | 1 440 | 725 МГц |
Radeon HD 5970 | 1 600 | 725 МГц |
Radeon HD 6990 | 3 072 | 830 МГц |
Пара GeForce GTX 570 в конфигурации SLI – это подходящий набор, который можно увидеть в игровом компьютере. В то время, как вы, вероятно, не ожидаете, что на восстановление старых паролей длиной больше семи символов понадобится продолжительное время, вспомните, что мы всё же говорим о самом неблагоприятном сценарии. Это как если бы мы искали пароль в пределах от 00 до 99, и правильный ответа оказался равным 99. Обычно до такого не доходит и пароль находится где-то в средних значениях в ходе поиска.
Программы восстановления паролей, такие как вышеперечисленные, не проводят полный последовательный поиск, поскольку это не слишком хорошая стратегия для восстановления пароля. На самом деле, успешное восстановление произойдёт, вероятнее всего, где-то в середине поиска. Однако, предоставляя временные рамки, с которыми мы столкнулись, мы не изменили заключения, к которому пришли. По нашему мнению, шифрование Zip 2.0 является абсолютно не надёжным. Несмотря на то, что потребуется продолжительное время, чтобы найти пароль из 9 или 10 символов, определённо, с этим вполне могут справиться несколько приятелей-игроков.
2 x GeForce GTX 570 SLI | ||
Прямой подбор паролей, общее время подбора | Длина пароля от 1 до 6 символов | Длина пароля от 1 до 8 символов |
500 000 паролей в секунду | 18 дней, 7 часов | 462 года, 116 дней |
45 миллионов паролей в секунду | 4 часа, 52 минуты | 5 лет, 49 дней |
1,5 миллиарда паролей в секунду | 8 минут | 56 дней, 5 часов |
Вопросы защиты: WinZip и WinRAR
Пароли не расшифровывают зашифрованные файлы напрямую. Вам нужно сгенерировать ключ для дешифровки из оригинального пароля, и именно об этом мы и говорили на нескольких предыдущих страницах. Вот здесь-то мы и столкнулись с “узким местом” для атак методом подбора. Генерация ключа занимает 99% от всего времени расшифровывания, поэтому использование для этого мощного аппаратного обеспечения – единственный способ сократить время на взлом.
Тогда как обе программы – WinZip и WinRAR – используют трансформации SHA-1, чтобы вывести ключи, механизмы у каждой программы немного отличаются друг от друга. WinZip основывается на PBKDF2 (Password-Based Key Derivation Function 2.0 – Функции вывода ключа на основе пароля) и использует выводы трансформации 2002 SHA-1, чтобы сгенерировать ключ. Тем не менее, это значение постоянно для паролей любой длины (до 64 символов), и именно поэтому пароль из 10 символов с шифрованием AES-256 также просто взломать, как и с AES-128.
Для сравнения: программа WinRAR использует свою собственную схему вывода ключей, которая требует (длина пароля * 2 + 11)*4096 трансформаций SHA-1. Вот почему требуется больше времени, чтобы взломать зашифрованные WinRAR-архивы методом подбора.
2 x GeForce GTX 570 SLI | ||
Прямой подбор паролей, паролей в секунду | Parallel Password Recovery | Accent Password Recovery |
Сжатие: Zip Шифрование: AES-128 |
495 133 | 513 936 |
Сжатие: Zip Шифрование: AES-256 |
496 244 | 513 880 |
Сжатие: RAR стандартное Шифрование: AES-128 |
13 904 | 14 605 |
На практике чаще бывает, что вы, вероятнее всего, забудете свой собственный пароль, нежели ваш зашифрованный файл попадёт в руки кому-то, у кого слишком много свободного времени и достаточно мощное аппаратное обеспечение, чтобы взломать ваш файл. Даже если бы у такого злоумышленника было самое лучшее аппаратное обеспечение из всех доступных вариантов, максимальное время для нахождения пароля из девяти символов для зашифрованного в AES-128 файла WinZip уже превышает 1 000 лет. Тем не менее, ваши перспективы по восстановлению пароля довольно приличные, если вы хотя бы в общих чертах представляете, каким может быть ваш пароль.
Например, если вы помните следующие сведения о своём пароле из 10 символов ASCII:
- Он начинается с “e”;
- Заканчивается на “a”;
- Не содержит прописных букв;
- В нём присутствует один знак “!”;
- Не содержит ни одной из следующих букв: B, C, D, Q, T, U, V, W, X, Y, Z.
Tо вам придётся провести поиск только среди 1 триллиона возможных паролей вместо 205 триллионов. Это вполне осуществимая задача с парой видеокарт GeForce GTX 570. Если же вы использовали архив WinRAR, то у вас почти нет надежд восстановить пароль, если только он не короткий.
Заключение
После недели попыток восстановить старый пароль к архиву WinZip мы были весьма удивлены. Все мы живём в мире, где защищённая информация не так уж и защищена, поэтому сложно не опасаться технологий GPGPU, если наши графические процессоры становятся всё более мощными.
В прошлом не было способа, при помощи которого вы бы смогли выяснить пароль длиной в 10 символов ASCII в течение любого приемлемого периода времени. Это было возможно только с аппаратным обеспечением, сделанным на заказ. Именно так и поступил Фонд электронных рубежей (Electronic Frontier Foundation), инвестировав в 1998 г. деньги в свою специализированную машину Deep Crack (“Глубокий взлом”). За конечную стоимость около $250 000 группа экспертов по безопасности собрала машину, которая могла просматривать около 90 миллиардов паролей в секунду, благодаря более чем 1 800 чипов AWT-4500, работающих в тандеме.
Мы не можем добиться такого же уровня производительности на нашей рабочей станции, но две видеокарты GeForce GTX 570 в конфигурации SLI работают со скоростью около 1,5 миллиардов паролей в секунду, если мы имеем дело с шифрованием Zip 2.0. Это составляет 1/60 от производительности при менее чем 1/100 стоимости той знаменитой машины. Очевидно, мы сравниваем абсолютно несравнимые вещи. Кроме того, шифрование Zip 2.0 устарело. Ясно одно: тяжеловесные архитектуры графических процессоров с параллельными вычислениями продолжат придерживаться увеличения “плотности производительности” при ценах, становящихся всё более доступными массовому потребителю, так что в какой-то момент мы сможем позволить себе поиск со скоростью 90 миллиардов паролей в секунду на своём настольном компьютере.
Итак, что же мы узнали? Прежде всего, будем держаться подальше от шифрования Zip 2.0. Это устаревшая схема шифрования, поддерживаемая по традиции и даже сама программа WinZip предлагает вам использовать AES, чтобы предотвратить атаки методом подбора.
Целенаправленные попытки взлома – это уже другая история. Большинство людей используют пароли, которые включают в себя слова и потому такие пароли подвержены атакам методом подбора пароля по словарю, независимо от того, какую схему шифрования вы используете. Количество слов в английском языке – менее 1 миллиона. Однако, видеокарта GeForce GTX 460 может обработать, по меньшей мере, 150 000 паролей в секунду при шифровании AES. Даже если вы добавите несколько изменений, то понадобится всего лишь день, чтобы взломать словесный замок и подобрать пароль. Почему? Да потому, что целое слово в функциональном плане является тем же самым, что и одна буква, например “a”.
В идеале вам следует избегать таких ситуаций, если вы стараетесь надёжнее защитить свои файлы:
- Не используйте слова из словаря. В “Оксфордском словаре английского языка” (The Oxford English dictionary) содержится меньше 300 000 статей, если посчитать слова, находящиеся в употреблении в настоящее время, устаревшие и производные слова. Для GeForce GTX 460 найти такой словесный пароль не составит никакого труда;
- Старайтесь не использовать слова, после которых стоят цифры. Добавив 1 в конце пароля, вы не сделаете его более защищённым. Мы всё ещё сможем взломать ваш пароль, перебрав весь словарь английского языка и все комбинации чисел, за полдня, использовав пару видеокарт GeForce GTX 570;
- Избегайте двойных слов и простой замены букв. Вариант “PasswordPassword” только удваивает количество слов, которые нам придётся просмотреть. Также пароль вида p@55w0rd не является надёжным. Взломщики паролей знают все обычные комбинации. Так что не выбирайте такой способ;
- Не используйте общий последовательный ряд на вашей клавиатуре. Добавить “qwerty” к словарю проверяемых паролей не так уж и сложно. Это второй способ, которого не следует придерживаться;
- Не используйте обычный числовой ряд. Возможно, 314159 довольно легко запомнить. Всё-таки, это число “ПИ”, но также это ещё и значение, которое довольно легко проверить;
- Избегайте использования любого рода личной информации, такой как номерной знак вашей автомашины, номер карточки социального страхования, бывший телефонный номер, дату рождения и так далее. Мы живём в мире, где много информации находится в общем доступе. Если у вас есть профиль в социальных сетях Facebook или Twitter, количество доступной третьим лица информации возрастает ещё больше.
Схема шифрования файла хороша настолько, насколько хорош пароль, защищающий этот файл. Это слабое место в симметричном пароле, где ключ шифрования такой же, как и ключ для дешифрования. Если вы упрямо продолжаете чрезмерно беспокоиться за сохранность ваших данных, то, скорее всего, вам подойдёт уровень безопасности системы PGP (Pretty Good Privacy) или сертифицированного шифрования. Для ежедневного применения этот вариант неудобен, если только вы и ваша компания не собираетесь перейти на архиватор PKZIP. Тогда длина пароля должна будет стать вашей основной проблемой.
Если вы используете полный набор символов ASCII, тогда надёжность вашего пароля составит 94 (длина пароля), поскольку каждый дополнительный символ делает пароль в 94 раза защищённее. Добавив несколько специальных символов, вы сделаете взлом своего пароля “невыполнимым из-за громадного объёма вычислений” для хакеров, которые попытаются атаковать ваш файл методом подбора. Если 7 298 831 534 994 528 возможных комбинаций (в пароле длиной от одного до девяти символов) – цифра, недостаточная для того, чтобы вас успокоить, используйте пароль из 10 символов, и тогда у хакеров будет возможность попытаться выбрать из 699 823 827 359 474 784 комбинаций.
Основываясь на проведённых нами тестах, вы, вероятно, сможете искать необходимую комбинацию со скоростью чуть больше 3 миллионов паролей в секунду для файла с шифрованием AES, используя пару видеокарт Radeon HD 6990. Это означает, что потребуется 7 397 лет, чтобы провести поиск паролей длиной от одного до 10 символов, используя ускорение AMD Stream. Даже если вы сможете удвоить эту скорость, это вам не сильно поможет. Для того, чтобы взломать файл примерно за год, вы должны будете значительно увеличить свои усилия – до 7 397 машин, работающих круглосуточно.
В будущем, вероятно, среднестатистическому пользователю будет предоставлена возможность получить доступ к такому классу компьютерных мощностей с параллельными вычислениями. Следующим шагом станут распределённые вычисления. Программа Parallel Password Recovery уже работает над способом применения ускоренной при помощи GPU обработки данных для многочисленных клиентов.
В данный момент это не та проблема, из-за которой вы не будете спать по ночам. Как гласит старая пословица, “было бы желание, а возможность найдётся”. С тех самых пор, как появились замки, появились и отмычки. Если вы хотите, чтобы ваша информация оставалась надёжно защищённой, то вам необходимо понять, насколько просто (или сложно) подобрать отмычку к вашему замку. Вот что делают утилиты восстановления паролей. Удивительно то, что разработчики WinZip согласны с нами в этом вопросе. Том Воэн (Tom Vaughan), вице-президент компании “WinZip”, заявил следующее: “Я вижу создателей утилит по восстановлению паролей как хороших парней, а не злодеев. Только ПО, о котором вы ничего не знаете, должно вас испугать (программное обеспечение, разработанное “плохими парнями”, которое работает быстрее или взламывает защиту лучше, чем вы могли бы ожидать)”.
Это может прозвучать, словно мы продаём какую-то ужасную информацию или пытаемся посеять недовольство среди читателей, но надеемся, что вы запомните из этой статьи, что нельзя купить по-настоящему впечатляющее ПО. Группы, работающие над заказным шифрованием, всегда развиваются быстрее, чем доступные в коммерческом масштабе. И потому, если вы из кожи вон лезете, чтобы обеспечить сохранность своих файлов, ваш пароль должен соответствовать таким основным критериям:
- Быть длиной, по меньшей мере, в 9 символов;
- Содержать хотя бы одну прописную букву;
- Содержать хотя бы одну строчную букву;
- Содержать хотя бы один специальный символ, такой как “@” или “!”;
- Содержать хотя бы одну цифру.
Эти правила дадут вашим файлам шанс устоять перед натиском взломщиков паролей. У хакеров есть неограниченное число попыток, чтобы взломать пароль. И потому взлом зашифрованного файла – это всего лишь вопрос времени. Именно поэтому эксперты по вопросам безопасности понимают, что настоящая цель – запретить доступ к соответствующим данным. Если у вас займёт 50 лет, чтобы взломать пароль к WinZip-архиву, в котором содержится информация о том, как мы продали свои акции на прошлой неделе, то данная информация уже не будет важной. Создавайте более длинные произвольные пароли, и тогда вы сможете наслаждаться и уровнем защиты своих данных, и душевным спокойствием.