1 unstable release
new 0.2.0 | Apr 16, 2025 |
---|
#47 in #update
53 downloads per month
25KB
355 lines
SWUC: Система проверки безопасных обновлений программного обеспечения
Обзор
SWUC (Secure Software Updates Checker) — это инструмент командной строки, предназначенный для безопасной проверки обновлений программного обеспечения. Он обменивается данными с удаленным сервером с использованием зашифрованных коммуникаций для обеспечения конфиденциальности и безопасности при проверке обновлений программных пакетов.
Установка
cargo install swuc
Или сборка из исходного кода:
git clone https://github.com/username/swuc.git
cd swuc
cargo build --release
Скомпилированный бинарный файл будет доступен по пути target/release/swuc
.
Конфигурация
Перед использованием SWUC необходимо настроить файл конфигурации по следующему пути:
- Linux:
~/.config/swuc/user_config.json
- macOS:
~/Library/Application Support/swuc/user_config.json
- Windows:
C:\Users\<имя_пользователя>\AppData\Roaming\swuc\config\user_config.json
Пример конфигурации:
{
"url": "wss://updates.example.com/api/check",
"uuid": "ваш-уникальный-идентификатор",
"secret": "ваш-секретный-ключ",
"public": "ваш-публичный-ключ"
}
Использование
SWUC требует как минимум одну подкоманду для работы. В настоящее время поддерживается подкоманда run
для запуска проверки обновлений.
Основная структура команды
swuc [ПОДКОМАНДА] [ОПЦИИ]
Доступные подкоманды
В настоящее время SWUC поддерживает следующую подкоманду:
run
- Запуск проверки обновлений
Инициирует процесс проверки обновлений. Читает список пакетов из указанного входного файла, отправляет зашифрованные запросы на сервер обновлений и генерирует отчеты.
swuc run -i <ВХОДНОЙ_ФАЙЛ> [-o <ВЫХОДНОЙ_ФАЙЛ>] [-t <ИНТЕРВАЛ>]
Опции:
-
-i, --input <ФАЙЛ>
(обязательно): Путь к файлу со списком пакетов. Этот файл должен содержать одно имя пакета на строку. -
-o, --output <ФАЙЛ>
(опционально): Путь, по которому будет сохранен отчет в читаемом виде. Если не указан, отчет будет сохранен только в местах по умолчанию (директория desktop/swuc-reports). -
-t, --interval <ЧАСЫ>
(опционально): Интервал в часах между проверками обновлений. Если указан, SWUC будет работать непрерывно, проверяя обновления через указанный интервал. Если не указан, SWUC выполнит проверку один раз и завершит работу.
Примеры
Проверка обновлений один раз:
swuc run -i ~/packages.txt -o ~/update_report.txt
Проверка обновлений каждые 24 часа:
swuc run -i ~/packages.txt -o ~/update_report.txt -t 24
Формат списка пакетов
Файл со списком пакетов должен содержать одно имя пакета на строку:
package1
package2
package3
Генерируемые отчеты
SWUC создает два типа отчетов:
- Краткий отчет: Сжатая версия, показывающая только пакеты с обновлениями.
- Полный отчет: Подробная версия, включающая источники обновлений и дополнительную информацию.
Отчеты сохраняются в:
- Указанный выходной файл (если предоставлен через опцию
-o
) - Директорию рабочего стола (
~/Desktop/swuc-reports/latest.txt
) - Директорию с отчетами с отметкой времени (
~/Desktop/swuc-reports/report_ЧЧ-ММ_ДД-ММ-ГГГГ.txt
)
Кроме того, SWUC поддерживает файл, отслеживающий текущие версии пакетов, по пути ~/Desktop/swuc_current.txt
.
Безопасность
SWUC использует ECIES (Elliptic Curve Integrated Encryption Scheme) для защиты коммуникаций с сервером обновлений. Клиент и сервер обмениваются публичными ключами, обеспечивая шифрование информации о пакетах при передаче.
Обработка ошибок
SWUC предоставляет подробные сообщения об ошибках, когда возникают проблемы, включая:
- Ошибки конфигурации
- Проблемы доступа к файлам
- Проблемы сетевого подключения
- Сбои шифрования/дешифрования
- Проблемы анализа ответа сервера
Кэш
SWUC кэширует ответы сервера в следующих местах:
- Linux:
~/.cache/swuc/
- macOS:
~/Library/Caches/swuc/
- Windows:
C:\Users\<имя_пользователя>\AppData\Local\swuc\cache\
Это позволяет проводить аудит и устранение неполадок при необходимости.
Версия
Текущая версия: 0.2.0
Dependencies
~8–35MB
~513K SLoC