Безопасность
Auth token и учётные данные proxy шифруются на диске алгоритмом AES-256-GCM. Ключ шифрования выводится из переменной окружения сервера.
Что шифруется
На диске шифруются:
- X auth tokens — cookie сессии для доступа к X.
- Учётные данные proxy — строка proxy, включая логин и пароль.
Настройки модулей, отображаемые имена и прочие нечувствительные данные хранятся в открытом виде.
Как это работает
Чувствительные значения шифруются AES-256-GCM (аутентифицированное шифрование) до записи в хранилище. У каждого значения свой случайный вектор инициализации, поэтому повторное шифрование того же token даёт разный ciphertext.
Расшифровка выполняется во время работы только когда модулю нужен credential (например, чтобы вызвать API X).
Настройка ключа
Ключ шифрования выводится из переменной окружения X_TOKEN_ENC_KEY на сервере. В качестве значения подойдёт любая строка.
Если переменная не задана, шифрование отключено и credentials хранятся в открытом виде. При старте один раз пишется предупреждение в лог.
Старые данные
Если система встречает credentials в открытом виде (от периода до включения шифрования), они читаются как обычно и автоматически шифруются при следующем сохранении. Ручная миграция не нужна.
Область защиты
Что это защищает: дампы базы и случайный доступ к диску. Зашифрованные auth tokens бесполезны без ключа шифрования.
Чего это НЕ защищает: злоумышленник с выполнением кода на сервере может прочитать переменную окружения и расшифровать всё. Это стандартный базовый уровень для SaaS-приложений.
Гайд для оператора: Безопасность token и сессий для инструментов X. Никогда не вставляйте cookies или auth tokens в чаты.