Lockana — это высокобезопасное решение для хранения и управления секретными данными, разработанное для обеспечения конфиденциальности и безопасности доступа к данным. Приложение использует современную аутентификацию через одноразовые пароли (TOTP) для получения доступа к данным, что гарантирует, что только авторизованные пользователи могут получить доступ к секретной информации.
- Данные хранятся в зашифрованном виде.
- Доступ к данным возможен только после успешной аутентификации с использованием одноразового пароля (TOTP).
- Каждая попытка входа (успешная или неудачная) логируется для мониторинга активности и предупреждения о возможных угрозах.
- Секреты (например, API-ключи, пароли, ключи доступа) хранятся в одном месте, что упрощает управление.
- Возможность быстро обновлять или удалять секреты без необходимости изменения
.env
файлов или другого локального хранилища.
- Запрос секретов осуществляется через API с использованием имени проекта и одноразового пароля.
- Возможность интеграции с различными сервисами и приложениями для безопасного доступа к данным.
- В случае любой попытки доступа (успешной или неуспешной) пользователю сразу отправляется уведомление, что обеспечивает дополнительный уровень безопасности.
- Lockana можно развернуть в изолированном окружении (например, в Docker), что минимизирует риски при эксплуатации.
- Логирование всех действий позволяет отслеживать, кто, когда и какие данные пытался получить.
- Гибкость: Легко интегрируется с любыми проектами и сервисами.
- Простота использования: API предоставляет простой и удобный интерфейс для запросов и управления секретами.
- Конфиденциальность: Хранение секретов в зашифрованном виде и использование TOTP для аутентификации минимизируют риски утечек данных.
- Уведомления: Мгновенные уведомления о попытках доступа дают вам контроль и видимость над активностью.
- Аутентификация: Пользователь отправляет запрос с именем проекта и одноразовым паролем (TOTP).
- Проверка данных: API проверяет данные на сервере и, если всё верно, возвращает секреты, связанные с проектом.
- Уведомления: В случае успешного или неудачного входа система отправляет уведомление пользователю.
- Логирование: Все запросы и попытки доступа логируются для анализа безопасности.
Lockana идеально подходит для проектов, которым нужна безопасная и централизованная система для хранения и управления секретами, а также для тех, кто хочет избавиться от хранения чувствительных данных в файлах на сервере.
Lockana использует MySQL для хранения данных, поэтому перед запуском убедитесь, что:
- MySQL установлен, запущен и настроен корректно.
- База данных создана и настроена, либо укажите параметры подключения в
config.yaml
. - Redis установлен и запущен, так как он используется для хранения JWT.
Клонирование репозитория:
git clone https://github.com/NullPointerGang/Lockana.git
Переход в деректорию:
cd Lockana
Создание вирутуального окружения:
python3 -m venv venv
Вход в виртуальное окружение:
source venv/bin/activate
Настройка:
-
Переменные виртуального окружения:
export DATABASE_STRING="database-connection-string"
Пример строки для подключения к БД MySQL:
mysql+pymysql://user:password@localhost:3306/lockana
-
Конфигурационный файл:
nano config.yaml
jwt: access_token_expire_minutes: 1 # Время жизни токена доступа в минутах encryption: # Возможные алгоритмы шифрования: # aes - Алгоритм AES (симметричное шифрование) # rsa - Алгоритм RSA (асимметричное шифрование) # chacha20 - Алгоритм ChaCha20 (современный потоковый шифратор) algorithm: aes # Выбранный алгоритм шифрования (по умолчанию aes) totp: totp_code_len: 6 # Длина кода TOTP totp_secret_len: 32 # Длина секрета TOTP totp_minimal_secret_len: 16 # Минимальная длина секрета TOTP auth: max_login_attempts: 5 block_duration_minutes: 15 logging: filename: lockana.log # Имя файла для логов
Установка зависимостей:
pip3 install -r requirements.txt
Запуск:
"./venv/bin/python3" "app.py"
Добавление пользователей:
Для управления пользователями и ролями есть CLI инструмент
Запустите CLI:
python3 -m scripts.user_manager
Для доступа к API используется аутентификация через одноразовые пароли (TOTP). API позволяет безопасно запрашивать и управлять секретами через защищённый интерфейс. Подробнее о маршрутах и запросах читайте в документации API.