# README
Private Keeper V2
Private Keeper V2 — это выпускной проект Яндекс Практикума. Сервис состоит из серверной и клиентской части и предназначен для безопасного хранения данных в зашифрованном виде.
Возможности сервиса
- Хранение данных в зашифрованном виде
- Шифрование данных ключом, который генерируется индивидуально для каждого пользователя
- Поддержка mTLS (Mutual TLS) между клиентом и сервером
- Пароли пользователей хранятся в виде хешей
- Кэширование ключей шифрования пользователя с использованием Redis
- Партицирование данных по видам сохраняемых данных
- Поддержка различных типов данных (например, текстовые данные, учетные данные, бинарные файлы и т.д.)
Требования
Для запуска потребуется:
Установка и запуск
-
Сгенерируйте ключи сервера для mTLS:
make server-keys
-
Сгенерируйте ключи клиента для mTLS:
make client-keys
Запуск сервера
Выполните команду из корня проекта:
docker compose up
Запуск клиента
Выполните команды из корня проекта:
make build
make run
Базовое использование
-
Запуск клиента: Пользователь запускает клиентскую часть и может либо зарегистрироваться, либо войти в систему, если уже зарегистрирован.
-
Сохранение данных: Пользователь сохраняет необходимые данные в зашифрованном виде.
-
Запрос данных: При запросе данных можно использовать фильтры, чтобы избежать загрузки всех данных сразу.
-
Вывод данных: Пользователь может выбрать способ вывода данных — на экран терминала или сохранение в файл.
-
Рабочая директория: Пользователь может установить рабочую директорию, чтобы вводить только имя файла без полного пути.
-
Сохранение бинарных данных: Для сохранения бинарных данных необходимо установить рабочую директорию, куда будут сохраняться файлы.
Технологии
- mTLS: защищенное соединение между клиентом и сервером
- Шифрование: индивидуальный ключ для каждого пользователя
- Redis: кэширование ключей шифрования
- PostgreSQL: база данных с партицированием данных
Безопасность
- Данные на сервере хранятся в зашифрованном виде.
- Пароли пользователей защищены хешированием.
- Ключи шифрования пользователей кэшируются для оптимизации.
Контакты
Если у вас есть вопросы или предложения, обратитесь к разработчику проекта через GitHub.
Private Keeper V2 — ваш надежный помощник для безопасного хранения данных!