ВЕРОЯТНОСТЬ ПОДБОРА ПАРОЛЯ: BRUTE FORCE И АТАКИ НА ХЭШ
Журнал: Научный журнал «Студенческий форум» выпуск №19(370)
Рубрика: Технические науки

Научный журнал «Студенческий форум» выпуск №19(370)
ВЕРОЯТНОСТЬ ПОДБОРА ПАРОЛЯ: BRUTE FORCE И АТАКИ НА ХЭШ
Аннотация. Данная статья посвящена разработке программного средства для подбора паролей, реализованного в среде Microsoft Visual Studio с использованием языка программирования C# [1]. В работе рассматриваются особенности проектирования и реализации алгоритмов перебора паролей, структура программного обеспечения, а также функциональные возможности разработанного приложения. Особое внимание уделено вопросам эффективности работы программы, обработке пользовательских данных и практическому применению методов автоматизированного подбора паролей в рамках исследования информационной безопасности.
Ключевые слова: Brute Force, пароль, хэширование, оценка сложности, генерация паролей, кибербезопасность.
Пароли продолжают оставаться одним из наиболее распространенных механизмов защиты учетных записей и персональных данных. Однако использование коротких, простых и предсказуемых комбинаций существенно снижает уровень информационной безопасности, поскольку такие пароли могут быть подобраны автоматизированными средствами за относительно короткое время [2, 3]. В современных условиях особую актуальность приобретают методы автоматизированного сбора и перебора паролей, основанные на применении алгоритмов типа Brute Force, позволяющих последовательно генерировать и проверять большое количество возможных комбинаций символов[4].
Стойкость пароля определяется не только его длиной, но и мощностью используемого символьного множества, включающего буквы различных регистров, цифры и специальные символы [4]. Увеличение количества допустимых символов и длины пароля приводит к экспоненциальному росту числа возможных комбинаций, что существенно усложняет процесс автоматизированного подбора. В связи с этим возникает необходимость количественной оценки сложности паролей и времени, требуемого для их перебора.
Цель работы заключается в разработке программного средства для проверки надежности паролей и автоматизированной генерации новых устойчивых комбинаций.
Программа реализована в среде Microsoft Visual Studio на языке программирования C# [1]. Программное обеспечение предназначено для генерации безопасных символьных последовательностей и прогнозирования времени их компрометации методом полного перебора. Вычислительное ядро системы представлено тремя взаимосвязанными методами: GenerateStrongPassword(), EvaluatePassword() и CalculateCrackTime().
Для математического прогнозирования временных затрат на компрометацию аутентификационных данных методом полного перебора (brute-force) применяется алгоритм, реализованный в методе CalculateCrackTime(). На первом этапе функция динамически определяет мощность используемого алфавита – m, на основе анализа фактически присутствующих в строке классов символов, где для строчного регистра латиницы шаг приращения составляет 26, для прописного – 26, для цифрового подмножества – 10, а для специальных знаков – 32. Мощность пространства возможных ключевых комбинаций рассчитывается по экспоненциальной зависимости:

где L обозначает фактическую длину исследуемой последовательности. Расчетное время подбора (T) детерминируется как отношение общего числа комбинаций к фиксированной производительности условной атакующей системы (V), принятой в рамках данной модели за (109) операций в секунду [4].
В зависимости от полученного значения переменной T вычислительное ядро осуществляет автоматическое масштабирование единиц измерения, переводя результат в минуты, часы, дни или годы, либо генерирует маркерное сообщение «менее секунды» при субсекундных показателях (рис. 1).

Рисунок 1. Демонстрация результата работы разработанной программы
Данный математический аппарат наглядно иллюстрирует фундаментальный принцип криптоанализа, согласно которому при фиксированной длине строки экспоненциальный рост энтропии и итоговой стойкости системы достигается именно за счет расширения алфавита и увеличения разнообразия используемых символьных классов.
Таблица 1 показывает, как меняется время подбора пароля длиной 8 символов при разном составе символов [4].
Таблица 1.
Время взлома пароля длиной 8 символов при 12 видеокартах RTX 5090
|
Тип пароля (8 символов) |
Время взлома (12× RTX 5090) |
|
Только цифры |
15 минут |
|
Только строчные буквы |
3 недели |
|
Строчные и заглавные |
15 лет |
|
Буквы, цифры и спецсимволы |
164 года |
Таким образом, разработанная программа наглядно показывает, как на C# можно создать простую и рабочую модель для проверки паролей. Вся логика приложения строится на трех понятных блоках: генерации безопасных комбинаций, начислении баллов за сложность и расчете времени взлома. И хотя программа не претендует на максимальную криптографическую точность, она отлично справляется со своей главной задачей — объясняет, как длина пароля и разнообразие символов влияют на его устойчивость к взлому. Проект наглядно доказывает: безопасность зависит не только от количества знаков в строке, но и от ее качества. Чтобы пароль был надежным, в него обязательно нужно включать разные классы символов, цифры, заглавные буквы и спецзнаки, так как именно они усложняют структуру и защищают данные от быстрого перебора.

