Как безопасно хранятся мои ключи

📅 4 июня 2026 г.2 мин чтения
Содержание

Шифрование при хранении

Все чувствительные данные шифруются с помощью симметричного шифрования 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-токена ограничивает риски в случае его перехвата.

Если ключ был скомпрометирован

  1. Отзовите ключ у провайдера (Google Cloud Console, OpenAI и т.д.)
  2. Создайте новый ключ у провайдера
  3. Обновите его в AI SEO Writer — старое зашифрованное значение заменяется немедленно при сохранении

Была ли статья полезна?