Показать сообщение отдельно

  #6  
Старый 29.07.2025, 09:57
guidesoul
Новичок
Регистрация: 26.07.2025
Сообщений: 0
С нами: 423479

Репутация: 0
По умолчанию

Добавлены проверки результатов системных вызовов генератора случайных чисел (BCryptGenRandom)

В редких случаях системный генератор может дать сбой.
Ранее это могло привести к использованию небезопасных (например, нулевых) данных для соли или нонса.
Теперь программа корректно отлавливает такие сбои и прерывает операцию шифрования, предотвращая создание потенциально уязвимых файлов.

Устранено дублирование кода в функциях открытия файлов.
Теперь вся логика загрузки файлов централизована в одном месте, что повышает стабильность программы и упрощает ее дальнейшую поддержку.

Проведена общая "чистка" кода и удалены избыточные проверки для повышения читаемости и качества кодовой базы.

Почему генератор паролей по умолчанию создает именно 21 символ

Выбор длины пароля по умолчанию в 21 символ — это не случайность, а осознанное инженерное решение.
Главная цель — обеспечить, чтобы сгенерированный пароль был как минимум таким же криптографически стойким, как и сам алгоритм шифрования, который он защищает.

В "Бастионе" для генерации паролей используется набор из 93 символов (латиница в обоих регистрах, цифры и все основные спецсимволы).
При длине в 21 символ, количество возможных комбинаций составляет 93²¹, что примерно равно 6.2 x 10⁴¹ (это шестёрка с 41 нулём).

В криптографии такая сложность измеряется в "битах энтропии".
Пароль из 21 случайного символа в "Бастионе" обеспечивает примерно 139 бит энтропии.

Это астрономически огромное число.
Чтобы понять его масштаб, давайте сравним с общепринятым стандартом:

"Золотым стандартом" современного симметричного шифрования является AES-128, который обеспечивает 128-битную безопасность.
Это означает, что пароль, сгенерированный "Бастионом", сложнее подобрать методом прямого перебора, чем взломать сам шифр AES-128.

Иными словами, пароль не является самым слабым звеном в системе.
Даже гипотетический квантовый компьютер, способный взламывать некоторые типы шифров, был бы бессилен против такого пароля при атаке методом перебора.

Какую роль тогда играет KDF (раунды)

Функция выработки ключа (KDF) с 20 000 раундов служит дополнительным и очень важным уровнем защиты.
Она не может спасти от подбора очень слабого пароля (вроде "12345"), но она делает процесс перебора даже для паролей средней сложности чрезвычайно медленным и дорогим.

А для 21-символьного случайного пароля, подбор которого и так невозможен, KDF превращает атаку из "невозможной" в "абсолютно немыслимую".

Значение в 20 000 раундов выбрано как разумный компромисс между безопасностью и скоростью работы на среднестатистическом компьютере.
Однако, если ваше устройство достаточно мощное, вы можете значительно увеличить это число в поле "Раунды".

Установка значения в 200 000 или даже 1 000 000 раундов сделает каждую попытку подбора пароля для злоумышленника в 10 или 50 раз более затратной, при этом задержка при шифровании/расшифровании для вас может остаться вполне приемлемой.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Ответить с цитированием