Концепции

Шифрование

Публикуйте чувствительные файлы шифртекстом и расшифровывайте их в своём сервисе.

Файлы на CDN доступны любому, кто знает ссылку. Если файл не должен читать каждый, кто нашёл URL, пометьте его как зашифрованный.

Как это работает

  1. Включите флаг шифрования для файла в Project settings → Encryption.
  2. При публикации содержимое шифруется ключом проекта (после удаления ключей $note).
  3. Ваш сервис расшифровывает его тем же ключом.

Где взять ключ

Админы проекта открывают Project settings → Encryption → Show key. Относитесь к ключу как к паролю: храните в переменной окружения или менеджере секретов, не в репозитории.

const veresk = new Veresk({
  cdnUrls: ['<CDN URL>'],
  version: 'default',
  consumer: 'backend',
  encryptSecret: process.env.VERESK_SECRET,
});

Кто может расшифровать

SDKРасшифровывает
Node.jsДа, с encryptSecret
UnityНет: зашифрованные файлы приходят шифртекстом
Ключ, зашитый в сборку игры, можно извлечь из сборки. Используйте шифрование для серверных потребителей. Для игровых клиентов не рассчитывайте на него как на способ спрятать секреты.

Перевыпуск ключа

Regenerate создаёт новый ключ и перешифровывает им все зашифрованные файлы. Клиенты, которые всё ещё используют старый ключ, больше не смогут расшифровать, поэтому сначала обновите encryptSecret везде.