Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
lsPass — Локальный зашифрованный менеджер паролей для логинов, заметок и API-ключей, использующий хранилище SQLite, защищённое с помощью Argon2id и XChaCha20-Poly1305; без облака и телеметрии. | Kitploit
Инструменты/GitLabGitLab/leestripp/lspass
Инструменты шифрования/дешифрованияКриптографияКонфиденциальностьУправление идентификацией и доступом (IAM)
GitLableestripp/lspass

lsPass

Локальный зашифрованный менеджер паролей для логинов, заметок и API-ключей, использующий хранилище SQLite, защищённое с помощью Argon2id и XChaCha20-Poly1305; без облака и телеметрии.

Репозиторий
571 месяц назадЕщё не проверено

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

lsPass — локальный менеджер паролей с шифрованием

GTK4 / gtkmm-4 · C++23 · CMake · SQLite · libsodium

lsPass хранит логины, защищённые заметки и API-ключи в локальном зашифрованном хранилище. Никакой сети, никакого облака, никакой телеметрии. Никакая секретная информация никогда не записывается на диск в открытом виде.

Сборка и тестирование

sudo apt install libgtkmm-4.0-dev libsqlite3-dev libsodium-dev nlohmann-json3-dev
cmake -B build
cmake --build build -j
ctest --test-dir build --output-on-failure   # 41 unit tests
./build/lspass

Хранилище находится в ~/.local/share/lspass/vault.db (права 0600).

Пакет Debian/Ubuntu

cmake -B build-rel -DCMAKE_BUILD_TYPE=Release
cmake --build build-rel -j
cd build-rel && cpack -G DEB        # requires: dpkg-dev, file
sudo dpkg -i ../packages/deb/lspass_1.0.0_amd64.deb

Пакет .deb появляется в packages/deb/ и включает бинарный файл, запись запуска com.lspass.App.desktop и иконку приложения (packaging/com.lspass.App.svg, устанавливается в тему hicolor).

cmake --install без CPack использует префикс по умолчанию /usr/local. Зависимости времени выполнения (libgtkmm-4.0, libsodium, libsqlite3, …) определяются автоматически с помощью dpkg-shlibdeps, поэтому apt --fix-broken install или sudo apt install ./lspass_1.0.0_amd64.deb подтянет всё необходимое.

Архитектура безопасности (проверенные лучшие практики)

Основано на OWASP Password Storage Cheat Sheet, документации libsodium и шаблоне конвертного шифрования, используемом известными менеджерами паролей (обёртывание ключей в стиле Bitwarden и KeePassXC):

master password
      │  Argon2id  (memory-hard KDF, random 128-bit salt,
      ▼            opslimit/memlimit = libsodium "moderate",
    KEK (32 B)     parameters stored in vault for future upgrades)
      │  XChaCha20-Poly1305 (key wrap)
      ▼
    DEK (32 B, random)  ── wraps nothing else, RAM only, never on disk
      │  XChaCha20-Poly1305 AEAD per field
      ▼
SQLite: entries(title, username, url [plaintext metadata],
                secret, notes [sealed blobs: nonce‖ct‖poly1305 tag])

Почему такой выбор:

РешениеОбоснование
Argon2id KDFПервый выбор OWASP для ключей, выводимых из пароля; ресурсоёмкий по памяти, устойчив к подбору на GPU/ASIC. Параметры превышают минимум OWASP (m ≥ 19 МиБ, t = 2).
Конвертное шифрование (случайный DEK, обёрнутый KEK)Смена мастер-пароля лишь повторно оборачивает 32 байта вместо повторного шифрования всего хранилища; компрометация DEK невозможна без KEK.
XChaCha20-Poly1305 AEAD192-битные случайные nonce делают повторное использование nonce несущественным; Poly1305 аутентифицирует каждый шифротекст, поэтому неверный мастер-пароль обнаруживается по ошибке аутентификации — нигде не хранится ни хеш пароля, ни проверочное значение.
Привязка AAD (lspass:v1:entry:<id>:<field>)Атакующий с правом записи в файл БД не сможет перенести шифротексты между записями или полями.
Новый nonce при каждой записиКаждое сохранение заново запечатывает данные новым случайным nonce.
Гигиена памятиКлючи хранятся в SecureBytes, стираются через sodium_memzero при уничтожении; интерфейс очищает поля пароля сразу после использования; буфер обмена автоматически очищается через 30 с после копирования (и только если в нём всё ещё находится наша секретная информация).
Права на файлФайл хранилища имеет chmod 0600.
Генератор паролейCSPRNG ядра с методом отклонения (без смещения из-за взятия по модулю), гарантирует наличие всех включённых классов символов, по умолчанию исключает неоднозначные символы; ~128 бит энтропии при стандартных 20 символах.

Честный компромисс: title, username и url хранятся в открытом виде, чтобы список и поиск работали без расшифровки каждой строки. Сами секреты (пароли, заметки, API-ключи) всегда находятся в запечатанных blob. Модульный тест secrets_not_stored_in_plaintext побайтово сканирует файл хранилища (включая WAL) на наличие контрольного секрета, чтобы подтвердить это.

Тестирование

ctest запускает три набора тестов (41 случай) для независимой от GUI основной библиотеки. Весь набор также выполняется под AddressSanitizer + UBSan:

cmake -B build-san -DCMAKE_CXX_FLAGS="-fsanitize=address,undefined" \
      -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address,undefined"
cmake --build build-san -j && ctest --test-dir build-san

Релизные сборки добавляют -fstack-protector-strong, -D_FORTIFY_SOURCE=2, PIE и полный RELRO (-Wl,-z,relro,-z,now).

  • crypto — циклы AEAD, пустой открытый текст, отклонение усечённых blob, отклонение неверного ключа/модификации/несоответствия AAD, уникальность nonce, детерминированность KDF, обработка соли и паролей в Unicode, обёртывание/разворачивание ключа, граничные случаи сравнения за константное время.
  • vault — создание/повторное открытие, отклонение неверного пароля, CRUD, сохранение состояния, секреты в Unicode и размером 100 КиБ, обработка недопустимого ID, проверка на отсутствие открытых секретов (canary), поиск, сохранение настроек, смена мастер-пароля, обнаружение модифицированных записей/заголовка, отклонение повреждённых параметров KDF.
  • generator — гарантии длины/набора символов, включая граничные длины, покрытие классов, уникальность, оценка энтропии, формат/границы парольной фразы, обработка недопустимых параметров.

Структура

src/core/crypto.{hpp,cpp}     SecureBytes, Argon2id KDF, XChaCha20-Poly1305, key wrap
src/core/vault.{hpp,cpp}      SQLite vault, envelope encryption, CRUD
src/core/generator.{hpp,cpp}  CSPRNG password/passphrase generator
src/ui/                       gtkmm-4 UI (unlock screen, list, editor dialogs)
tests/                        ctest suites (no external framework needed)

Лицензия

MIT — см. LICENSE.

Скачать инструмент