Как безопасно хранятся мои ключи
Содержание
Шифрование при хранении
Все чувствительные данные шифруются с помощью симметричного шифрования Fernet перед сохранением в базу данных. Fernet использует AES-128 в режиме CBC с HMAC-SHA256 для аутентификации. Шифрованию подлежат:
- API-ключи Gemini, OpenAI, OpenRouter
- Application Password для WordPress
- Учётные данные 1С-Битрикс, InSales и Joomla
- Ключи SerpAPI и YouTube API (уровень сайта)
- Токены соцсетей (VK, OK, Pinterest)
Как работает шифрование Fernet
- Алгоритм: AES-128 в режиме CBC с случайным вектором инициализации для каждого значения
- Аутентификация: HMAC-SHA256 для обнаружения подмены данных
- Ключ шифрования хранится как переменная окружения (
CREDENTIAL_ENCRYPTION_KEY) на сервере — полностью отдельно от базы данных
Даже если кто-то получит доступ к базе данных, расшифровать ваши ключи без серверного ключа шифрования невозможно.
Что видит команда AI SEO Writer
Сотрудники не могут видеть ваши API-ключи в открытом виде. Данные расшифровываются только в оперативной памяти во время генерации статьи и нигде не записываются в открытом виде.
Пароли от аккаунта
Пароли пользователей хранятся в виде хэша bcrypt (12 раундов) — это необратимое преобразование. Восстановить пароль невозможно — только сбросить через «Забыли пароль».
Сессионные токены (JWT)
Сессии используют подписанные JWT-токены (алгоритм: HS256):
- Access-токен — действует 15 минут
- Refresh-токен — действует 7 дней
- Токен входа от имени клиента — действует 8 часов (используется менеджерами агентства)
Короткий срок жизни access-токена ограничивает риски в случае его перехвата.
Если ключ был скомпрометирован
- Отзовите ключ у провайдера (Google Cloud Console, OpenAI и т.д.)
- Создайте новый ключ у провайдера
- Обновите его в AI SEO Writer — старое зашифрованное значение заменяется немедленно при сохранении
В этом разделе
Была ли статья полезна?