Бастион V16 - Шифрование текста

Добавлена кнопка (☀) справа от кнопки "Найти" для переключения между светлой и темной темами интерфейса.

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

Вложения

  • Безымянный.webp
    Безымянный.webp
    25,7 КБ · Просмотры: 32
Проведена внутренняя оптимизация кода, отвечающего за отрисовку тем оформления.
Убран лишний код, что повышает стабильность и надёжность приложения, а также немного ускоряет переключение между светлой и тёмной темой.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Автоматическое копирование зашифрованного текста

После успешного завершения операции шифрования, зашифрованный текст автоматически копируется в буфер обмена.

Для обеспечения стабильности работы программы и предотвращения зависаний при обработке очень больших объемов данных, установлен лимит в 50 МБ.
Если зашифрованный текст превышает этот размер, программа сообщит об этом и предложит сохранить результат в файл, не копируя его в буфер.

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

Улучшенное уведомление при генерации пароля

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

Новый пароль скопирован в буфер обмена
ОБЯЗАТЕЛЬНО СОХРАНИТЕ ЕГО В НАДЁЖНОМ МЕСТЕ ПРЯМО СЕЙЧАС
Буфер обмена будет перезаписан зашифрованным текстом после шифрования или очищен при закрытии программы

Это делает поведение программы более предсказуемым и безопасным.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Полностью переработан модуль декодирования Base64

Новый декодер строго следует стандарту RFC 4648.
Он больше не будет пытаться "угадать" результат при работе с поврежденными или некорректно сформированными данными, а вместо этого сообщит об ошибке.

Программа теперь проверяет:

Наличие недопустимых символов.
Правильность структуры и расположения символов паддинга (=).
Превышение разумного лимита на размер входных данных (100 МБ), чтобы избежать зависания или сбоя программы при открытии слишком больших файлов.

В случае ошибки пользователь теперь получает четкое сообщение, объясняющее причину сбоя (например, "недопустимый символ" или "некорректная длина"), что позволяет легче диагностировать проблему.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Добавлена возможность изменять количество раундов криптографической губки в диапазоне от 24 до 80

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

Увеличение числа раундов незначительно снижает скорость шифрования и расшифровки.

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

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

Добавлена кнопка "Отправить", позволяющая передать шифротекст (в виде файла Bastion-V16-encrypted-message.txt) в почтовую программу, установленную в Windows по умолчанию.

Чтобы вы случайно не отправили свои секреты в незашифрованном виде, кнопка "Отправить" сработает только в том случае, если текст в главном окне является шифротекстом.

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

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Улучшения функции "Отправить"

Если почтовый клиент (например, The Bat!) был установлен, но некорректно зарегистрирован в системе, "Бастион" выдавал стандартную ошибку "Не удалось открыть почтовый клиент".

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

При нажатии кнопки "Отправить" окно "Бастиона" раньше "зависало" и его нельзя было передвинуть до закрытия почтового клиента.
Это происходило из-за того, что отправка почты блокировала основной поток программы.
Теперь эта операция выполняется в отдельном, фоновом потоке, и интерфейс "Бастиона" остается полностью отзывчивым.

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

Как настроить отправку почты для The Bat!

Если при нажатии на кнопку "Отправить" вы получаете сообщение о том, что "Почтовый клиент по умолчанию не настроен для работы с программами (MAPI)", это означает, что ваш почтовик не прописал себя в нужном месте системного реестра.

Откройте Редактор реестра, нажмите на клавиатуре клавиши Win + R.
В появившемся окне "Выполнить" введите regedit и нажмите Enter.

Перейдите в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail

На панели слева вы увидите несколько подразделов, найдите среди них тот, который относится к вашей почтовой программе.
Например, The Bat! Simple MAPI 32-bit или The Bat! Simple MAPI 64-bit.

Теперь посмотрите на панель справа, там будет параметр с именем (По умолчанию).
Скорее всего, в колонке "Значение" будет пусто.

Дважды щелкните по имени (По умолчанию).
В открывшемся окне в поле "Значение" введите (или вставьте из буфера) точное имя подраздела вашего почтового клиента из списка слева (например, The Bat! Simple MAPI 32-bit или The Bat! Simple MAPI 64-bit).

Нажмите "OK".

После изменения правая панель должна выглядеть так:

BEZYMYNNYI.png


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

Теперь вы можете легко отменять и возвращать свои правки с помощью стандартных горячих клавиш:

Ctrl + Z — отменить последнее действие.
Ctrl + Y — повторить отменённое действие.

Особенностью новой функции является то, что она регистрирует каждое нажатие клавиши.
Если вы случайно удалили не тот символ или допустили одну опечатку, вы можете отменить именно это микро-действие, не теряя при этом целое слово или предложение, которое вы только что набрали.

Автоматический сброс истории изменений

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

Шифрование текста.
Расшифровка текста.
Загрузка данных из файла.
Полная очистка полей с помощью кнопки "Очистить".

Это гарантирует, что история отмены всегда относится к текущему, логически целостному состоянию документа.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Реализован переход с устаревшего ANSI MAPI на современный Unicode-интерфейс

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

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Переход на Rich Edit

Стандартный элемент управления EDIT вызывал значительные задержки и "зависание" интерфейса при отображении очень длинного, непрерывного зашифрованного текста, особенно при изменении размера окна.

Элемент EDIT заменён на гораздо более мощный и производительный аналог — Rich Edit Control (MSFTEDIT_CLASS), загрузив для этого системную библиотеку Msftedit.dll.

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

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Добавлена поддержка стандартных горячих клавиш:
Ctrl+C (Копировать), Ctrl+V (Вставить) и Ctrl+X (Вырезать).

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

Повышена стабильность отображения интерфейса за счет явной инициализации стандартных компонентов Windows.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Кликабельные ссылки в текстовом поле

Ссылки, начинающиеся с http://, https://, ., а также адреса электронной почты в формате mailto:user@example.com или просто user@example.com, будут автоматически выделены синим цветом и подчеркнуты.

При нажатии левой кнопкой мыши на ссылку она будет открыта в браузере или почтовом клиенте, установленном в системе по умолчанию.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Устранена ошибка, из-за которой горячие клавиши для работы с буфером обмена (например, Ctrl+V) всегда вставляли текст в основное текстовое поле, даже если курсор находился в поле для ввода пароля.

Расширена поддержка горячих клавиш (Ctrl+C, Ctrl+V, Ctrl+X и др.) на все поля ввода, включая поля для указания длины пароля и количества раундов.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Усиление генератора случайных чисел

Надежность любого шифрования начинается с качественных случайных чисел.
Они используются для создания "соли", "нонса" и при генерации паролей.
Чем более непредсказуемы и хаотичны эти числа, тем надежнее шифр.

В этой версии "Бастион" научился собирать дополнительную "энтропию" (случайность) из уникального состояния вашего компьютера в момент запуска.

При каждом запуске программа в фоновом режиме собирает данные из нескольких источников, отражающих уникальное состояние системы:

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

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

У нее есть два основных этапа

Фаза впитывания:

Берется порция входных данных (сначала от системного генератора, потом — собранная энтропия).
Эта порция смешивается с частью внутреннего состояния губки с помощью математической операции (XOR).

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

Процесс повторяется для всех порций входных данных.
В итоге внутреннее состояние губки становится уникальным "слепком", который нелинейно зависит от каждого бита всей информации, что была впитана.

Фаза отжимания:

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

Какие преимущества это дает

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

Обновление полностью обратно совместимо

Новый механизм усиления случайности применяется только при создании новых зашифрованных сообщений (при нажатии кнопок "Шифровать" или "Генерировать пароль").
Логика расшифровки осталась без изменений, что гарантирует доступ ко всем вашим старым данным.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Заменена устаревшая и небезопасная функция обработки текста на современный, защищённый аналог из библиотеки strsafe.h от Microsoft.

Устранена ошибка, появившаяся после перехода на компонент RichEdit.
Поиск находил правильные символы, но выделял совершенно другие участки текста.

Добавлена стандартная горячая клавиша Delete.
Как и ожидается от любого текстового редактора, теперь вы можете просто выделить текст и нажать клавишу Delete для его удаления в любом поле ввода.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Добавлена разблокировка и очистка поля с зашифрованным текстом

Нажмите колесом мыши на заблокированное поле, чтобы очистить его для ввода нового текста с тем же паролем.
Это позволяет приступить к шифрованию нового текста, сохраняя уже введенный пароль, без необходимости использовать кнопку "Очистить" или "Расшифровать".

Улучшена навигация

Можно ввести пароль в первом поле, нажать Tab для перехода в поле подтверждения, и ещё раз Tab для перемещения курсора в основное поле для шифруемого текста.
Это делает процесс ввода данных значительно быстрее и удобнее.

Удобство диалоговых окон

Все окна подтверждения (например, при очистке полей или повторном шифровании) были обновлены.
Теперь они содержат только две кнопки ("ОК" и "Отмена") и корректно закрываются по нажатию клавиши Esc.

Исправлен поиск на русском языке

Устранена ошибка, из-за которой поиск текста на кириллице был чувствителен к регистру.
Теперь поиск работает корректно и находит слова независимо от того, заглавными или строчными буквами они написаны (например, поиск "яблоко" найдет и "Яблоко").

Добавлена поддержка горячих клавиш

Ctrl + Enter — Шифровать текст.
Ctrl + Shift + Enter — Расшифровать текст.
Ctrl + S — Сохранить текущее содержимое в файл.
Ctrl + O — Открыть файл.
Ctrl + F — Вызвать диалог поиска по тексту.
Ctrl + G — Сгенерировать новый надёжный пароль.
Ctrl + Shift + S — Отправить зашифрованный текст как вложение по электронной почте.
Ctrl + Shift + W — Полностью очистить все поля (текст, пароли).

Быстрое дублирование пароля

Добавлена возможность мгновенно скопировать пароль из первого поля во второе (поле подтверждения).
Наведите курсор на второе поле и кликните колесом мыши (средней кнопкой).

Содержимое из первого поля полностью заменит любые символы, которые уже были введены в поле подтверждения.

Скачать можно в облаке
 
Добавлена функция сохранения сгенерированного пароля в текстовый файл.

Заменен старый метод получения текста ссылки, который использовал статический массив фиксированного размера (wchar_t linkTextRaw[4096]), на современный подход с использованием динамического контейнера std::wstring.
Предыдущая реализация могла теоретически привести к переполнению стека и аварийному завершению программы, если пользователь кликнул бы на очень длинную гиперссылку (более 4096 символов).
Новый метод полностью устраняет этот риск, так как память выделяется динамически и ровно под размер конкретной ссылки.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Внедрена новая политика безопасности, которая запрещает операционной системе (начиная с Windows 8) создавать дампы памяти процесса "Бастион".

Теперь, даже если программа аварийно завершится, извлечь из памяти остатки ключей шифрования или фрагменты вашего открытого текста становится практически невозможным.
Это важный шаг для защиты ваших данных от "холодного" анализа (cold boot attacks) и анализа дампов памяти.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Исправлена ошибка, появившаяся после перехода на компонент RichEdit, которая препятствовала сохранению настроек размера шрифта.
Теперь при изменении масштаба текста (Ctrl + Колесо мыши) его размер корректно записывается в файл настроек и восстанавливается при следующем запуске.

Скачать можно в облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab