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

Добавлена возможность обмениваться зашифрованными аудиосообщениями через Телеграм

В настройках интеграции с Телеграм (Alt + T) установите следующие флажки:

✅
Включить интеграцию с Телеграм
✅
Автоматически расшифровывать при получении

Отправка аудиосообщения

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

Отпустите правую кнопку мыши, чтобы завершить запись.

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

Получение и прослушивание

При получении аудиосообщения в окне чата появится уведомление в следующем формате:

[Имя отправителя]
Нажми, чтобы прослушать аудиосообщение 1...

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

Сохранение аудиозаписи

Во время прослушивания аудиосообщения вы можете сохранить его на диск в виде несжатого .wav файла.
Для этого используйте сочетание клавиш Alt + S.

Если не хотите прослушивать аудиосообщения напрямую в "Бастионе", а предпочитаете сохранять их как файлы, то в настройках интеграции с Телеграм (Alt + T) снимите флажок:

🔲
Автоматически расшифровывать при получении

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

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Теперь при отправке аудиосообщения появляется кликабельная запись, позволяющая прослушать отправленный файл.
Сообщение отформатировано жирным шрифтом и имеет вид:

[Вы]
Отправлено аудиосообщение 1...

Обновлен формат для входящих аудиосообщений и также являются кликабельными для прослушивания:

[Имя отправителя]
Получено аудиосообщение 1...

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Исправление и повышение стабильности

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

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

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Улучшено перетаскивание текста

Добавлена поддержка сохранения форматирования (цвет, списки, выделение) при перетаскивании текста из таких программ, как WordPad и LibreOffice Writer.

Весь цикл работы — от импорта текста до его шифрования и последующей расшифровки — теперь сохраняет исходное форматирование.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Улучшена работа с форматированием и темами

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

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

Устранён баг, из-за которого программа некорректно предлагала сохранить простой текст как .rtf.
Логика определения форматирования стала точнее и теперь реагирует только на реальные стили (жирность, курсив и т.д.).

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Усовершенствован алгоритм потокового шифрования (без AEAD)

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

Важные изменения

Из-за того, что алгоритм стал выполнять больше вычислений на каждом шаге, нагрузка на процессор возросла.
Скорость работы KDF (генерации ключа) и скорость шифрования файлов в этом режиме теперь соответствуют показателям режима AEAD.
Это плата за гарантированную криптостойкость каждого байта данных.

Рекомендуется провести повторный тест бенчмарка для подбора комфортного количества раундов.

В связи с усилением алгоритма, формат бинарных данных изменен.
Файлы, зашифрованные в предыдущих версиях без использования AEAD, потребуют старой версии программы для расшифровки.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Горячие клавиши "Бастион V16"

Работа с текстом

Ctrl + A
— Выделить весь текст
Ctrl + C — Копировать
Ctrl + X — Вырезать
Ctrl + V — Вставить
Ctrl + Z — Отменить действие
Ctrl + Y — Вернуть действие
Delete — Удалить

Основные функции

Ctrl + Enter
— Шифровать
Ctrl + Shift + Enter — Расшифровать
Ctrl + Alt + Enter — Шифровать буфер обмена
Shift + Alt + Enter — Расшифровать буфер обмена
Ctrl + G — Сгенерировать пароль (случайный)

Alt + P — Сгенерировать пароль из кодовой фразы
Технически Alt + P не генерирует пароль мгновенно, а подготавливает поле: очищает его и вставляет приглашение "Введите кодовую фразу..."
Сама генерация происходит по нажатию кнопки "Генерировать пароль" (или Ctrl + G) после ввода фразы

Ctrl + F — Найти и заменить
Ctrl + Shift + W — Очистить всё (память и поля)
Ctrl + Shift + S — Отправить (Почта или Телеграм)

Аудио и Телеграм

Alt + R
— Запись / Стоп аудиосообщения
Alt + T — Настройки Телеграм
Alt + S — Сохранить расшифрованное аудио (.wav)

Работа с файлами

Ctrl + O
— Открыть файл
Ctrl + S — Сохранить файл

Дополнительно

Alt + Q
— Показать QR-код (Двойной клик по QR-коду сохраняет его в PNG)
Alt + Стрелки (Вверх/Вниз) — Изменение размера окна (Только в окне QR-кода)
Alt + Кнопка "Свернуть" — Свернуть программу в трей (фоновый режим)
Alt + B — Тест производительности
Alt + M — Интеграция с Windows
Ctrl + Колесико — Масштаб текста

Управление мышью

Нажатие колесика (на тексте)
— Быстрая очистка текстового поля

Нажатие колесика (на поле "Подтверждение пароля") — Скопировать пароль из первого поля

Удержание правой кнопки мыши (на кнопке Записи ●) — Записать и сразу отправить аудиосообщение в Телеграм (если настроена интеграция)

Нажатие левой кнопки мыши на текст вида Получено аудиосообщение N... или Отправлено аудиосообщение N... — Воспроизводит соответствующую аудиозапись

Перетаскивание файлов

Перетаскивание без клавиш

Шифрует или расшифровывает файл/папку с сохранением результата рядом с оригиналом

Если перетащить PNG-изображение:
Сначала попытается извлечь скрытые данные
Если данных нет (и в поле программы есть текст) — предложит зашифровать текущий текст в это изображение

Alt + Перетаскивание
Шифрует или расшифровывает файл/папку с возможностью выбрать новое имя или место сохранения (диалог "Сохранить как...")

Ctrl + Перетаскивание
Безвозвратно уничтожает перетаскиваемый файл или папку (перезапись случайными данными)

Shift + Перетаскивание
Одиночный агент: Внедряет файл в одну случайную системную папку под видом системного файла

Ctrl + Shift + Перетаскивание
Сеть агентов: Открывает диалог выбора количества (от 2 до 7)
Внедряет копии файла в разные системные папки для надежности

Ctrl + Alt + Перетаскивание
Отправляет файл в Телеграм (если настроена интеграция)
 
Полностью переписана функция _permute_state_internal_sse2, которая используется программой на процессорах старых поколений (где отсутствует набор инструкций AVX2).

Вместо медленных скалярных операций теперь задействованы 128-битные векторные инструкции (SSE2 и SSSE3).
Это позволяет обрабатывать 4 числа состояния одновременно на протяжении всего цикла, удерживая данные в регистрах процессора и минимизируя медленные обращения к оперативной памяти.

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

Средний прирост производительности составил ~9%.
Скорость генерации ключа (KDF): +9.6%
Скорость шифрования данных: +8.5%


В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Полностью переписана функция _permute_state_internal_original, которая используется программой на современных процессорах (поддерживающих набор инструкций AVX2).

Вместо базовой реализации теперь задействованы 256-битные векторные инструкции AVX2.
Это позволяет обрабатывать 8 чисел состояния одновременно (вместо 4-х в SSE2 или 1-го в скалярном режиме), максимально эффективно используя широкие регистры процессора.
Для сложных операций смешивания данных между ячейками состояния применены быстрые инструкции перестановки (permutevar8x32), что исключает лишние такты вычислений.

Оптимизированный алгоритм математически полностью синхронизирован с базовой версией (корректно обработаны границы 128-битных блоков внутри 256-битного регистра).
Это гарантирует 100% успешную расшифровку файлов, созданных любыми предыдущими версиями программы.

Средний прирост производительности составил ~20%.
Скорость генерации ключа (KDF): +19.1%
Скорость шифрования данных: +20.6%


В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Количество раундов хеширования (KDF) при создании пароля из кодовой фразы (Alt + P) вынесено в файл настроек (параметр kdf_rounds_for_phrase = 50000).
По умолчанию 50 000 итераций, через которые проходит ваша фраза перед превращением в криптостойкий пароль.

Важно

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

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg

Я в Телеграм
@evgenyguidesoul

ВК
vk.com/guidesoul
 
Последнее редактирование:
Добавлена возможность сброса размера шрифта к значению по умолчанию клавишами Ctrl + 0 (ноль).

Увеличить шрифт: Ctrl + Колесо мыши вверх (вперед)
Уменьшить: Ctrl + Колесо мыши вниз (назад)

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Оптимизирован алгоритм управления сетевым потоком

Перезапуск процесса получения сообщений теперь происходит только при изменении критически важных настроек (Токен, ID чата, Прокси/Tor), что исключает ожидание таймаута при смене локальных опций.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Улучшена функция CleanRamAndSensitiveVariables

Добавлена принудительная очистка глобальных аудио-буферов (g_rawAudioBuffer, g_playbackBuffer) и низкоуровневых буферов драйвера.

Добавлена функция SecureZeroAVX для обнуления всех YMM-регистров процессора, где могли временно находиться части ключей шифрования после операций с памятью.
Перед выполнением проверяется поддержка AVX и XSAVE через CPUID и XGETBV, что предотвращает сбои на старых CPU без поддержки векторных инструкций.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Улучшена функция CleanRamAndSensitiveVariables

Реализована принудительная остановка потока Телеграм и жесткое завершение процесса curl.exe перед началом очистки памяти.
Это гарантирует, что стек фонового потока будет освобожден, а сетевые буферы не останутся висеть в памяти.

Добавлен вызов HeapCompact перед запуском алгоритма перезаписи ОЗУ.
Это объединяет фрагментированные участки освобожденной памяти, позволяя "вайперу" перезаписать данные, которые программа использовала ранее, но уже освободила.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Исправлена проблема, из-за которой даже короткий простой текст шифровался как тяжелый RTF-документ.
Теперь, если вы не используете форматирование (цвета, жирный шрифт), размер зашифрованного сообщения будет в 3-4 раза меньше (например, для одной цифры размер уменьшился с ~330 до ~88 символов).

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Улучшена функция CleanRamAndSensitiveVariables

Добавлен вызов EmptyWorkingSet в конце процедуры очистки.
Это принуждает систему сбросить уже «зашумленные» страницы памяти из физической RAM, окончательно заметая следы на уровне менеджера памяти Windows.

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

В режим «Паника» (Panic Button) добавлено сканирование папки %TEMP%.
Программа теперь находит и безвозвратно уничтожает зависшие временные файлы (BST*.tmp, shd*.tmp), которые могли остаться от работы сетевых модулей (curl) или аудиозаписи.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Улучшена функция CleanRamAndSensitiveVariables

Флаг режима "Паника" (g_isPanicShutdown) перенесен в самое начало функции.
Это гарантирует, что фоновые потоки остановятся немедленно, не успев создать новые данные во время очистки.

Добавлен цикл (5 проходов) с помещением пустых данных в буфер обмена.
Это помогает вытеснить старые записи из "Журнала буфера обмена" Windows.

Добавлено принудительное уничтожение окон текстовых полей в режиме паники.
Это освобождает скрытые буферы и OLE-объекты, которые Windows может держать в памяти даже после очистки текста.

Логика очистки полей ввода переведена с std::wstring на std::vector.
Это предотвращает оптимизацию малых строк (SSO) и гарантирует физическую перезапись памяти нулями.

В список шаблонов для удаления временных файлов добавлен BASTION*.tmp.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Защита поля ввода кодовой фразы (Alt + P)

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

Генерация пароля из кодовой фразы (Alt + P) позволяет превратить любое запоминаемое предложение в сложный криптографический пароль, который не нужно записывать.
Достаточно помнить только фразу.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Изменение значений числовых полей колесом мыши

Раунды KDF с шагом 10000.
Длина пароля и губки с шагом 1.
Рэйт с шагом 4 (с автоматическим выравниванием кратности).

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Мы в соцсетях:

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