- Сообщения
- 5.001
- Реакции
- 12.481
Проверяем на прочность файловую систему LUKS
Тоже довольно популярный вопрос - а можно ли взломать наши флешки. Решил проверить это на практике и поиграть в криминалиста.
Смоделированая задача:
Имеем жесткий диск SSD типа зашифрованный файловой системой LUKS. Необходимо подобрать пароль. Отрабатывалась в разных контекстах:
1. Известна длина и точно известны буквы.
2. Известна длина и набор символов (только цифры/только маленькие буквы/все знаки кроме символов типа &#$)
Атака проводилась прямо на носитель т.к. разници в скорости атак на носитель/бэкап 4G-Header'a не обнаружилось абсолтно никакой. Зато интересная закономерность обнаружилась когда я решил разогнать брутфорсера. По умолчанию он использует 1 ядро процессора. Скорострельность на одном ядре с частотой 3.2 GHz такая:
Посмотрев в правый нижний угол и собрав по закоулкам черепной коробки остатки арифметики я прикинул, что раз квадратиков восемь, то судя по всему ядер в процессоре по ходу столько же. А если на одном ядре у меня 1.6 паролей в секунду, но на восьми ядрах будет почти 14 паролей в секунду.
Приуныл. Я то был убежден что брутфорс LUKS не разгоняется из за особенностей шифрования - это же не 4-way-handshake где скорость по сути ограничена только железом и крошить их можно хоть на миллионе ключей в секунду. Однако заюзав все 8 ядер я увидел следующее:
Озадачился. Ну как так то - процессор занят а скорость почти та же. В итоге решил что заюзаю 4 ядра и паралельно буду свои дела делать. Но и тут меня ждал сюрприз:
Как оказалось я все таки не ошибался на счет разгона. Перепробовав все варики я составил вот такую таблицу:
1 thread = Tried passwords per second: 1.6
2 thread = Tried passwords per second: 2.8
3 thread = Tried passwords per second: 3.75
4 thread = Tried passwords per second: 3.4
5 thread = Tried passwords per second: 3.1
6 thread = Tried passwords per second: 2.7
7 thread = Tried passwords per second: 2.3
8 thread = Tried passwords per second: 2.2
Таким образом наибольшая скорость атаки была у меня при использовании трех из восьми ядер. Мои предположения в итоге подтвердили и сами авторы программы.
В справке нашелся вот такой абзац:
brute force attack: try all the possible passwords given a character set. It is especially useful if you know something about the password (i.e. you forgot a part of your password but still remember most of it). Finding the password of a volume without knowing anything about it would take way too much time (unless the password is really short and/or weak).
брутфорс атака: перебор всех возможных паролей составленных из заданного набора символов. особеено полезна она если вы знаете что то о пароле (например вы забыли малую его часть но все еще помните большую)ю Подбор пароля к тому без знаний хоть чего нибудь о нем занимает слишком много времени (за исключением случаев когда пароль реально слабый и/или короткий)
В синаптике же в описании пакета последний абзац написан вот так:
Because of cryptography complexity, crack the password of a LUKS volume without knowing anything about it would take way too much time (unless the password is really short and/or weak).
Because of cryptography complexity - фразу можно перевести как "из за сложной криптографии" и она подразумевает то, что в зависимости от условий то или иное действие может давать разные результаты. То есть нельзя заранее прописать что вот в случае А нужно Б,потому что в случае А может быть множество комбинаций, которые нужно просчитывать в реальном времени. Пототому то атаки на LUKS идут с такими черепашьими скоростями даже на мощнейшем оборудовании.
В итоге на подбор шестизначного пароля passwd с указанием точной длинны - 6 знаков и указанием точного набора символов (причем в той же последовательности - passwd, на максимальной скорости (3 ядра и почти 3.8 паролей в секунду) ушло 16 минут. Это мне повезло что нужный пароль был 1830 по счету из 46656 возможных. Если бы он был последним, то на атаку ушло бы 3.5 часа.
Занимательная математика:
Если бы я знал только то, что пароль состоит из цифр, то на на атаку бы ушло чуть больше трех суток:
ETA: Sat 05 May 2018 09:23:04 PM MSK
Если же предположить что я знаю только длинну, и то что пароль состоит из маленьких букв, то предположительная дата завершения атаки была бы вот такой:
ETA: Tue 19 Jan 2021 04:47:45 AM MSK
Если же пароль состоял бы из маленьких букв и цифр, но все то же длинны, то подобрать его можно вот за такой отрезок времени:
ETA: Mon 29 Apr 2041 02:42:29 AM MSK
Если же добавить еще и заглавные, то программа огорчается:
ETA: more than 200 years :(
Вы только вдумайтесь - на подбор 6 (шести!) значного пароля LUKS формата Ad9fF6 уходит более 200 лет!
п.с. Атаку на LUKS можно проводить и "котиком" - Hashcat. Но колосального прироста по скоростям не будет и там. Мой процессор показывает вот примерно такую скорость - (100 ключей с копейками.)
На форуме хэшкэта я нашел бенчмарк главного модератора - его видеокарта (GForce GTX 1080Ti если я не ошибаюсь - самая скоростная на сегодняшний день) выдает скорость около 4000 ключей в секунду. Для сравнения - вифи рукопожатия 1080ти крошит на скоростях, начинающихся от 500 000 ключей в секунду и выше.
Резюме:
Если у вас пароль от флешки или диска типа
D@rkDr01d @#$ Th3D33pD4rkN37 #.2018
то взломать его невозможно. Так что готовтесь к тому, что будут взламывать вас.
Тоже довольно популярный вопрос - а можно ли взломать наши флешки. Решил проверить это на практике и поиграть в криминалиста.
Смоделированая задача:
Имеем жесткий диск SSD типа зашифрованный файловой системой LUKS. Необходимо подобрать пароль. Отрабатывалась в разных контекстах:
1. Известна длина и точно известны буквы.
2. Известна длина и набор символов (только цифры/только маленькие буквы/все знаки кроме символов типа &#$)
Атака проводилась прямо на носитель т.к. разници в скорости атак на носитель/бэкап 4G-Header'a не обнаружилось абсолтно никакой. Зато интересная закономерность обнаружилась когда я решил разогнать брутфорсера. По умолчанию он использует 1 ядро процессора. Скорострельность на одном ядре с частотой 3.2 GHz такая:
Код:
Tried passwords per second: 1.600000
Посмотрев в правый нижний угол и собрав по закоулкам черепной коробки остатки арифметики я прикинул, что раз квадратиков восемь, то судя по всему ядер в процессоре по ходу столько же. А если на одном ядре у меня 1.6 паролей в секунду, но на восьми ядрах будет почти 14 паролей в секунду.
Приуныл. Я то был убежден что брутфорс LUKS не разгоняется из за особенностей шифрования - это же не 4-way-handshake где скорость по сути ограничена только железом и крошить их можно хоть на миллионе ключей в секунду. Однако заюзав все 8 ядер я увидел следующее:
Код:
Tried passwords per second: 2.200000
Озадачился. Ну как так то - процессор занят а скорость почти та же. В итоге решил что заюзаю 4 ядра и паралельно буду свои дела делать. Но и тут меня ждал сюрприз:
Код:
Tried passwords per second: 3.418182
Как оказалось я все таки не ошибался на счет разгона. Перепробовав все варики я составил вот такую таблицу:
1 thread = Tried passwords per second: 1.6
2 thread = Tried passwords per second: 2.8
3 thread = Tried passwords per second: 3.75
4 thread = Tried passwords per second: 3.4
5 thread = Tried passwords per second: 3.1
6 thread = Tried passwords per second: 2.7
7 thread = Tried passwords per second: 2.3
8 thread = Tried passwords per second: 2.2
Таким образом наибольшая скорость атаки была у меня при использовании трех из восьми ядер. Мои предположения в итоге подтвердили и сами авторы программы.
В справке нашелся вот такой абзац:
brute force attack: try all the possible passwords given a character set. It is especially useful if you know something about the password (i.e. you forgot a part of your password but still remember most of it). Finding the password of a volume without knowing anything about it would take way too much time (unless the password is really short and/or weak).
брутфорс атака: перебор всех возможных паролей составленных из заданного набора символов. особеено полезна она если вы знаете что то о пароле (например вы забыли малую его часть но все еще помните большую)ю Подбор пароля к тому без знаний хоть чего нибудь о нем занимает слишком много времени (за исключением случаев когда пароль реально слабый и/или короткий)
В синаптике же в описании пакета последний абзац написан вот так:
Because of cryptography complexity, crack the password of a LUKS volume without knowing anything about it would take way too much time (unless the password is really short and/or weak).
Because of cryptography complexity - фразу можно перевести как "из за сложной криптографии" и она подразумевает то, что в зависимости от условий то или иное действие может давать разные результаты. То есть нельзя заранее прописать что вот в случае А нужно Б,потому что в случае А может быть множество комбинаций, которые нужно просчитывать в реальном времени. Пототому то атаки на LUKS идут с такими черепашьими скоростями даже на мощнейшем оборудовании.
В итоге на подбор шестизначного пароля passwd с указанием точной длинны - 6 знаков и указанием точного набора символов (причем в той же последовательности - passwd, на максимальной скорости (3 ядра и почти 3.8 паролей в секунду) ушло 16 минут. Это мне повезло что нужный пароль был 1830 по счету из 46656 возможных. Если бы он был последним, то на атаку ушло бы 3.5 часа.
Занимательная математика:
Если бы я знал только то, что пароль состоит из цифр, то на на атаку бы ушло чуть больше трех суток:
ETA: Sat 05 May 2018 09:23:04 PM MSK
Если же предположить что я знаю только длинну, и то что пароль состоит из маленьких букв, то предположительная дата завершения атаки была бы вот такой:
ETA: Tue 19 Jan 2021 04:47:45 AM MSK
Если же пароль состоял бы из маленьких букв и цифр, но все то же длинны, то подобрать его можно вот за такой отрезок времени:
ETA: Mon 29 Apr 2041 02:42:29 AM MSK
Если же добавить еще и заглавные, то программа огорчается:
ETA: more than 200 years :(
Вы только вдумайтесь - на подбор 6 (шести!) значного пароля LUKS формата Ad9fF6 уходит более 200 лет!
п.с. Атаку на LUKS можно проводить и "котиком" - Hashcat. Но колосального прироста по скоростям не будет и там. Мой процессор показывает вот примерно такую скорость - (100 ключей с копейками.)
На форуме хэшкэта я нашел бенчмарк главного модератора - его видеокарта (GForce GTX 1080Ti если я не ошибаюсь - самая скоростная на сегодняшний день) выдает скорость около 4000 ключей в секунду. Для сравнения - вифи рукопожатия 1080ти крошит на скоростях, начинающихся от 500 000 ключей в секунду и выше.
Резюме:
Если у вас пароль от флешки или диска типа
D@rkDr01d @#$ Th3D33pD4rkN37 #.2018
то взломать его невозможно. Так что готовтесь к тому, что будут взламывать вас.
Последнее редактирование модератором: