Содержание
ДомойКомпьютерные вирусы, антивирусы и хакерыХакеры и их достиженияВремя перебора паролей или почему это бесполезно
Время, необходимое для перебора паролей — каково оно?
Если Вы задались вопросом «Как можно перебрать пароли к чужому аккаунту» и получить к нему доступ, то Вы по адресу. Тут я попробую переубедить Вас от этой затеи. Почему? Да потому что нефиг пробовать делать то, что не умеешь. Захотели стать хакером, тогда не нужно искать какие-то готовые решения. Садись за книжки и форумы и читай до тех пор, пока сам не сможешь создать так называемый Broot Force. А чтобы у Вас окончательно пропало желание заниматься данной ерундой в виде перебора пароля, я приведу для Вас материалы, которые ответят на вопрос «Сколько времени занимает перебор паролей», а так же на примере покажу средства, с помощью которых можно довольно успешно отбиться от брутфорсов, либо заставить их перебирать несколько месяцев пароли, состоящие даже из парочки символов.
Время перебора различных по длине паролей
Как известно, время перебора пароля напрямую зависит от длины пароля. Точнее от длины пароля зависит количество вариантов различных паролей, которые можно будет создать используя n-ое количество символов. А вот уже от количества различных вариантов и зависит время их полного перебора. Не буду Вас долго томить и сразу представлю Вам таблицу, которая покажет время перебора паролей различной длины.
Кол-во знаков Кол-во вариантов Стойкость Время перебора 1 36 5 бит менее секунды 2 1296 10 бит менее секунды 3 46 656 15 бит менее секунды 4 1 679 616 21 бит 17 секунд 5 60 466 176 26 бит 10 минут 6 2 176 782 336 31 бит 6 часов 7 78 364 164 096 36 бит 9 дней 8 2,821 109 9x10^12 41 бит 11 месяцев 9 1,015 599 5x10^14 46 бит 32 года 10 3,656 158 4x10^15 52 бита 1 162 года 11 1,316 217 0x10^17 58 бит 41 823 года 12 4,738 381 3x10^18 62 бита 1 505 615 лет
Если Вы еще не донца шокированы и еще не ушли заниматься другими делами, например, то попробуйте вспомнить, каково минимальное количество символов просят указывать при регистрации аккаунта? Если Ваша жертва — сайт или сервер — не слишком озаботилась безопасностью, то Вам может и повезет. Но если и повезет, то Вам понадобиться 6 часов(!) времени. Я клоню к тому, что если сайт или сервер и укажет минимальное количество символов в пароле, то он запросит как минимум 6 символов. Ну, а все уважающие себя ресурсы просят пароли от 8 символов в длину. Думайте.
Ну, а пока думаете, я продолжу. Как Вы может быть и заметили, то пароль из одного символа может принять один из 36 вариантов. Так указано в таблице. Почему именно 36? А всё потому что сумма всех символов из латинского алфавита и всех цифр будет равно именно этой цифре. Какой из этого следует сделать вывод? Только тот, что пора валить. А всё потому что символов на клавиатуре куда больше. Давайте хотя бы добавить к ним символы латинского алфавита в обоих регистрах: итого уже 62 варианта. А если внимательно присмотреть к клавиатуре, то из её недр можно выловить еще и специальные символы и немыслимом количестве. Используй жертва символы из разных категорий и время перебора паролей будет только расти и расти.
Как всё-таки можно взломать аккаунт перебором паролей?
Перед тем как окончательно похоронить Ваши надежды на взлом аккаунта путем перебора паролей, я бы хотел немного подпитать Ваше стремление. Первым делом я бы хотел уточнить то, что использование символов из нескольких категорий не так сильно скажется на времени перебора пароля, как увеличение количества символов. Даже если пользователь в пароле будет использовать цифры, буквы в различных регистрах и специальные символы, но ограничиться только 6 символами, то время перебора такого пароля все равно не сильно приблизиться к времени перебора пароля из 7 символов. Но всё равно скажется довольно весомо.
Понимая, что предыдущий пункт не слишком оправдает Ваши надежды, лакомый кусочек я оставил на конец. Заключается он в том, что люди существа ленивые. Я кстати тоже. И редко какой пароль для них это результат удара головой об клавиатуру. Основной большинство всех паролей — это какие-либо предметы, которые постоянно крутятся вокруг этих самых людей: их имена, их мечты — одним словом, обычные слова из алфавита. Зная это можно сразу опустить абракадабру из всех перебираемых вариантов паролей. Для этого, если Вы еще не отказались от идеи перебора, необходимо скачать специальные словари для перебора паролей. Шансы взломать чей-то аккаунт используя такие словари резко возрастает, нежели при оригинальном Broot Force. Да и время перебора паролей с помощью таких словарей дело нескольких минут. Так что единственное что я Вам могу посоветовать, так это пытаться взломать аккаунт путем перебора паролей, используя для этого специальные словари. Если же Вас постигнет неудача, то пожалуйста, бросьте это дело. Не тратьте своё время.
Политики блокировки учетных записей Windows
Как и обещал, сразу же на примере представлю специальные решения, которые делают попытки взлома паролей путем их перебора бессмысленным занятием. Использовать для этих целей мы будем наш любимый Windows. В данной операционной системе имеются специальные политики, которые позволяют блокировать учетные записи пользователей при попытках неудачного входа. Принцип работы данной политики прост: если пользователь(или брут) введет пароль неверно некоторые количество раз, то учетная запись будет заблокирована на n-ое количество времени. Таким образом Вам необходимо к времени перебора паролей прибавить время простоя.
Как настроить блокировку учетных записей Windows?
Для того чтобы настроить политики блокировки учетных записей необходимо воспользоваться услугами Редактора локальной групповой политики. Чтобы открыть данный инструмент используйте команду gpedit.msc
. В открывшемся окне Вам необходимо перейти в узел
- Конфигурация компьютера
- Конфигурация Windows
- Параметры безопасности
- Политики учетных записей
- Политики блокировки учетной записи
Тут Вы найдете три параметра:
- Пороговое значение блокировки. Тут должно быть указано максимальное количество неудачных попыток ввода пароля. При превышении указанного значения, учетная запись блокируется.
- Продолжительность блокировки учетной записи. Если первый параметр даст команду на блокировки учетной записи, то данный параметр укажет время в минутах, на протяжении которого пользователь не сможет войти в систему.
- Время до сброса счетчика блокировки. Данный пункт по смыслу похож на второй пункт. Различие состоит в том, второй пункт только сбросит блокировку по прошествии заданного времени. Но он не сбросит счетчик блокировок. Время сброса счетчика должно быть либо равно, либо больше времени указанного во втором пункте. Если счетчик сбрасывается только через некоторое время после снятия блокировки, то у пользователя будет один единственный шанс на то чтобы ввести пароль правильно. Иначе опять блокировка.
Под конец хотел бы уточнить один момент. Снять блокировку учетной записи может администратор компьютера, если наведается в окно Управление компьютером. Там ему необходимо будет в свойствах заблокированной учетной записи снять галочку Заблокировать учетную запись.
Итоги по теме перебора паролей
- Не нужно тратить время на перебор паролей.
- Используйте пароли длиной от 8 символов.
- В пароле используйте различные символы.
- Старайтесь не составлять свои пароли из общеупотребительных слов.
- Настройте блокировку учетной записи в случае большого количества неудачных попыток входа.
- Ну если же Вы очень настырный, используйте специальные алфавиты для перебора паролей.
Пример продолжительности подбора Править
Полное время раскрытия криптофайла для частного случая (100000 паролей в секунду; 36 символов в алфавите (латинские буквы + цифры)).
Знаков | Кол-во вариантов | Время перебора |
---|---|---|
1 | 36 | менее секунды |
2 | 1296 | менее секунды |
3 | 46656 | менее секунды |
4 | 1679616 | 17 секунд |
5 | 60466176 | 10 минут, 5 секунд |
6 | 2176782336 | 6 часов, 2 минуты |
7 | 78364164096 | 9 дней, 2 часа, 16 минут, 26 секунд |
8 | 2.8211099×1012 | 10 месяцев, 23 дня, 52 минуты, 37 секунд |
9 | 1.0155995×1014 | 32 года, 3 месяца, 7 дней, 12 часов, 11 минут |
10 | 3.6561584×1015 | 1161 год, 8 месяцев, 26 дней, 18 часов, 33 минуты, 40 секунд |
11 | 1.3162170×1017 | 41822 года, 7 месяцев, 20 дней, 6 часов, 44 минуты, 22 секунды |
12 | 4.7383813×1018 | 1505614 лет, 11 месяцев, 30 дней, 1 час, 11 минут, 45 секунд |
(данные получены посредством программы Hacking Time Analizer)
Таким образом, пароли длиной менее 6 символов, в общем случае, не являются надежными.
При переборе с использованием технолигии nVidia CUDA на GeForce 9800GT скорость перебора достигает 2 000 000 000 паролей в секунду.[1]
EDPR
Наверняка ты уже сталкивался с продуктами компании Elcomsoft. Помню, еще в начале нулевых я тестировал их первые «отмычки» для документов формата Microsoft Office, разных архивов и все думал, когда они выпустят универсальную программу. Ее появление не заставило долго ждать. Поначалу Elcomsoft Distributed Password Recovery (EDPR) просто вобрала в себя прежние наработки, но уже с 2008 года получила самостоятельное развитие. Тогда в нее добавили поддержку GPGPU и постепенно интегрировали все новые плагины, оптимизированные для использования видеокарт в брутфорсе. Последняя (на момент обзора) версия 3.23.1059 содержит 36 плагинов, знает около семидесяти форматов зашифрованных файлов и работает практически в любой версии Windows.
Запустить EDPR можно как в десктопных версиях Windows (от 32-битной XP до 64-разрядной «десятки»), так и в серверных. Однако для ее самой востребованной функции — аппаратного ускорения перебора паролей на видеокартах Nvidia — требуется Windows 7, 8, 8.1 или 10 либо Windows Server 2003, 2008 или 2012.
Теоретически EDPR может использовать для перебора паролей не только ГП от Nvidia, но и другие графические чипы с универсальной шейдерной архитектурой, выпущенные за последние семь лет. Это игровые видеокарты Nvidia, начиная с GeForce GTX 4xx и новее, AMD Radeon серий HD 5000 — HD 8000, более современные AMD R9 и RX. Поддерживаются также профессиональные видеокарты (все серии Nvidia Quadro и AMD FirePro) и специализированные решения обоих производителей. Последние, кстати, обеспечивают большую скорость перебора в расчете на каждый затраченный ватт энергии. Особенно энергоэффективны для своего техпроцесса оказываются Nvidia GeForce GTX Titan, Tesla K10 и выше, а также AMD Radeon Pro Duo, R9 Nano и R9 Fury X.
Однако для многих алгоритмов восстановления паролей используется не OpenCL, а CUDA-оптимизация. Поэтому ускоренная обработка некоторых форматов в EDPR возможна только с использованием ГП Nvidia. К таким форматам относятся архивы ZIP и RAR, документы PDF, хранилища паролей в macOS, пароли учетных записей в Windows, хеши MD5 и некоторые другие.
ЦП и ГП
Вне зависимости от формата зашифрованных файлов, видеокарты всегда используются как ускорители для легко распараллеливаемых операций, в то время как основной код программы исполняется на ЦП. Поэтому всегда требуется выделять одно ядро процессора на каждую задействованную видеокарту. Лучше, если это ядро будет физическим (а не выделенным через гиперпоточность). Процессорозависимость здесь тоже наблюдается, но умеренная. Очевидно, что современные ГП в полной мере не раскрываются даже топовыми ЦП, поскольку развитие последних идет преимущественно по пути увеличения исполнительных блоков (ядер), а не частот и объема кеша на ядро. Однако за пределами 3,5 ГГц и кеша L2 в 2 Мбайт у ЦП разница в производительности одной и той же видеокарты составляет считаные проценты при непропорционально больших затратах энергии. Поэтому, на мой взгляд, разумнее соблюдать баланс между стоимостью и общей производительностью системы, чем просто гнаться за максимальным быстродействием любой ценой.
Методы оптимизации полного перебора Править
Для увеличения скорости подбора ключа используется распараллеливание вычислений. Известно два направления распараллеливания.
- Во-первых, построение конвейера. Пусть алгоритм соотношения $ E_k (x) = y $ можно представить в виде цепочки простейших действий (операций): $ {O_1 ,O_2,…,O_N} $. Возьмем $ N $ процессоров $ {A_1 ,A_2,…,A_N} $, зададим их порядок и положим, что $ i $ — ый процессор выполняет три одинаковые по времени операции:
- приём данных от $ (i — 1) $ — го процессора;
- выполнение операции $ O_i $;
- передача данных следующему $ (i + 1) $ -му процессору.
- Тогда конвейер из $ N $ последовательно соединённых, параллельно и синхронно работающих процессоров работает со скоростью $ v/3 $ , где $ v $ — скорость выполнения одной операции одним процессором.
- Второе направление распараллеливания состоит в том, что множество $ K $ всех возможных ключей разбивается на непересекающиеся подмножества $ {K_1, K_2, … , K_N} $. Система из $ Q $ машин перебирает ключи так, что $ i $ — ая машина осуществляет перебор ключей из множества $ K_i , i = 1 .. Q $. Система прекращает работу, если одна из машин нашла ключ. Самой трудное — это разделение ключевого множества. Но если каждый процессор начнёт вычисление с какого-то произвольного ключа, то время нахождения увеличится, а схема значительно упростится. Среднее число шагов в этом случае составляет $ |K|/N $, где $ |K| $ — число элементов во множестве ключей, а $ N $ — число процессоров.
Реализация распараллеливания Править
Реализовать распараллеливание можно по-разному.
- Например, создать вирус для распространения программы-взломщика в глобальной сети. Он должен использовать свободное время процессора для перебора ключей. Рано или поздно один из зараженных компьютеров обнаружит искомый ключ и оповестит об этом злоумышленника.
- Существуют также более оригинальные идеи распараллеливания вычислений:
- «Китайская лотерея», создание «криптоаналитических» водорослей и животных.
- Китайская лотерея предполагает, что в каждый радиоприемник и телевизор встроена микросхема, запрограммированная на автоматическую проверку различных множеств ключей после получения по эфиру пары открытый текст/шифртекст.
- С использованием биотехнологий можно сделать криптоанализ ещё эффективнее. Можно создать существо, состоящее из клеток, умеющих тестировать ключи. Каким-то образом в клетки передаются пары открытый текст/шифртекст. Решения переносятся к органам речи специальными клетками, путешествующими по кровеносной системе существа. В доисторические времена средний динозавр состоял примерно из 1014 клеток (без микробов). Если каждая клетка может выполнять миллион шифрований в секунду, вскрытие 56-битового ключа займёт $ 7 * 10^{-4} $ сек, а 64-битового — не более 0,2 сек.
- Ещё один способ — создание водорослей, умеющих вскрывать криптографические алгоритмы методом полного перебора. Водоросли могут покрывать большие пространства, что теоретически позволит создать что-то вроде распределённого компьютера с огромным числом процессоров.
- «Китайская лотерея», создание «криптоаналитических» водорослей и животных.
Используемые источники:
- http://about-windows.ru/virusy-i-xakery/xakery/vremya-perebora-parolej/
- https://mind-control.fandom.com/wiki/полный_перебор
- https://xakep.ru/2017/08/16/edpr-nvidia-passcrack/