Концепции шифрования
Общий ход процесса
Вы контролируете мастер-ключ в вашем облаке, который OpenAI никогда не видит
Ваш мастер-ключ используется для шифрования ключей шифрования данных (DEK) , используемых OpenAI
OpenAI использует DEK для шифрования ваших данных при хранении. DEK шифруется вашим мастер-ключом, в результате чего создается eDEK (зашифрованный DEK), который хранится вместе с вашими данными
Чтобы прочитать данные, OpenAI получает eDEK, запрашивает у вашей KMS расшифровку eDEK в DEK, а затем расшифровывает ваши данные
Как работает шифрование EKM?
Подробнее см. в нашей статье: «Обзор корпоративного управления ключами (EKM) OpenAI»
Хранит ли OpenAI мои ключи DEK?
Нет. Мы храним зашифрованные DEK (eDEK), которые генерируются вашей KMS. Чтобы расшифровать данные, мы просим вашу KMS расшифровать eDEK обратно в DEK.
Сохраняет ли OpenAI мои DEK в кэше?
Да — только в памяти. Это нужно для повышения производительности, чтобы не обращаться к KMS при каждом запросе на шифрование или расшифровку данных. DEK никогда не записываются в хранилище.
Облачный доступ
Какие разрешения будут у OpenAI для моей KMS?
Только те разрешения, которые вы нам предоставляете в соответствии с установленной вами политикой. Нам нужен доступ как минимум к операциям шифрования и дешифрования. Также просим не использовать какие-либо существующие ключи, уже используемые в продакшене, повторно: вместо этого создайте новый ключ для OpenAI в вашей облачной KMS.
Когда OpenAI получает разрешение на доступ к моей KMS?
Должны быть выполнены все следующие действия:
Вы подтвердили субъект OpenAI (через политику доверия, идентификатор рабочей нагрузки и т.д. в зависимости от облачного провайдера).
Вы создали политику доступа к KMS.
Вы назначили субъекту OpenAI разрешение на доступ к политике.
Если вы просто создадите KMS, не выполнив все эти шаги, OpenAI не получит к ней доступ.
Обязательно ли мне хранить свой мастер-ключ в своем облаке?
Нет. Вы сами решаете, как управлять своим мастер-ключом. Вы можете использовать облачное решение с управлением или внешнее решение, в котором ваш ключ хранится отдельно. OpenAI достаточно лишь вызывать операции шифрования/дешифрования в вашей KMS — то, как именно мастер-ключ выполняет шифрование/дешифрование, является деталью реализации, скрытой от нас.
Жизненный цикл ключа
Смена DEK и eDEK (под управлением OpenAI)
Как часто обновляются DEK/eDEK?
Каждые 24 часа на пути шифрования (при запросе пары ключей DEK/eDEK)
Каждый час для пути ключа дешифрования (DEK -> eDEK)
Нужно ли мне что-то делать при смене DEK?
Нет — смена DEK/eDEK выполняется OpenAI. Пока ваш мастер-ключ остается действительным, любые eDEK, зашифрованные вашим мастер-ключом, можно по-прежнему расшифровывать в DEK, который затем используется для расшифровки ваших данных.
Смена и отзыв мастер-ключа (управляется вами)
Как часто происходит смена и отзыв ключей?
Это зависит от вас, так как OpenAI не имеет доступа к вашему мастер-ключу.
В чем разница между сменой ключа и отзывом ключа?
Отзыв ключа удаляет доступ к данным, зашифрованным с использованием старых ключей. Смена ключей шифрует данные с использованием нового ключа, но сохраняет доступ к ранее зашифрованным данным.
Что произойдет, если я отзову свой мастер-ключ?
Если ключ будет аннулирован или разрешения будут удалены, рабочая область со временем перестанет функционировать после истечения срока действия кэшированных ключей. С этого момента OpenAI больше не сможет расшифровывать хранящиеся данные или шифровать новые данные. По сути, данные будут уничтожены.
Как быстро отзыв вступает в силу?
OpenAI кэширует DEK в памяти для повышения производительности и устойчивости. Как правило, отзыв вступает в силу в течение одного часа после истечения срока действия кэшированных ключей и сбоя повторной проверки.
Можно ли безопасно протестировать отзыв?
Тестирование отзыва в рабочей области в рабочей среде не рекомендуется, так как это навсегда сделает существующие данные недоступными. Однако клиенты могут (и должны) протестировать отзыв в изолированной среде, чтобы проверить корректность поведения и подтвердить свои предположения о доверии.
Если ключ отозван безвозвратно, можно ли восстановить рабочую область, привязав новый ключ?
Нет. После утраты ключа данные по умолчанию невозможно восстановить. Единственный способ устранить проблему — создать новую рабочую область.
Что делать, если рабочая область становится недоступной из-за смены ключей?
Ожидаемое решение — создать новую рабочую область. Обновление KMS не приведет к восстановлению существующих данных.
Каков план отката, если мы решим прекратить использование CMEK?
В настоящее время плана отката нет. После создания рабочей области с CMEK все связанные данные шифруются с использованием ключей, управляемых клиентом, и без ключей доступ к данным априори невозможен. Единственный способ прекратить использование CMEK — создать новую рабочую область; существующие зашифрованные данные навсегда останутся недоступными.
Что произойдет, когда я сменю мастер-ключ?
Для шифрования будет сгенерирован новый криптографический материал, и новые запросы на шифрование будут использовать новый ключ. Однако идентификатор KMS (ARN или имя ключа) останется прежним, и старые данные по-прежнему можно будет расшифровать. Многие облачные провайдеры предлагают автоматическую смену ключей (AWS, GCP, Azure).
Перешифровывает ли OpenAI старые данные, уже зашифрованные ранее, когда я меняю мастер-ключ?
Нет. Новый криптографический материал будет использоваться только для шифрования новых данных.
Сколько времени занимает вступление в силу смены или отзыва ключа?
1 час. Это связано с тем, что DEK/eDEK кэшируются в памяти, а мы повторно проверяем эти записи с помощью вашей KMS каждый час.
Переключение идентификатора KMS
Смена идентификатора KMS — это отзыв или смена ключа?
Фактически, это отзыв ключа. Один ключ не может расшифровать данные, зашифрованные другим ключом.
Может ли OpenAI помочь мне сменить мой идентификатор KMS для рабочей области ChatGPT?
Если вы подтверждаете, что хотите отозвать ваш ключ, мы можем помочь вам сделать это для рабочей области ChatGPT. Обратите внимание: при обновлении ARN KMS старые данные останутся недоступными, поэтому в результате после изменения у вас будут как недоступные, так и доступные данные.
Может ли OpenAI помочь мне сменить идентификатор KMS для проекта API?
Если вы используете API, API позволяет легко архивировать и создавать новые проекты; вместо этого архивируйте проект, данные которого в любом случае недоступны, зарегистрируйте новую конфигурацию EKM в OpenAI и создайте новый API-проект с новым ключом KMS.
Что, если я захочу регулярно самостоятельно менять свой идентификатор KMS?
Мы не рекомендуем этого, поскольку вам, вероятно, не захочется регулярно отзывать свой ключ. Однако вы все равно можете сделать это, если используете облачного провайдера, который поддерживает псевдоним ключа KMS (пример — AWS). Вы можете зарегистрировать этот псевдоним ключа KMS в OpenAI, а затем в любой момент заменить у вашего облачного провайдера базовый идентификатор KMS, на который указывает этот псевдоним, чтобы инициировать отзыв ключа.
Бета-версия и окончательная версия
Существуют ли какие-либо известные риски или изменения на системном уровне при использовании бета-версии шифрования в рабочей среде?
Среда бета-версии функционально эквивалентна среде окончательной версии; никаких действий по миграции не требуется. Основной риск заключается в том, что некоторые функции для особых случаев могут пока не поддерживать зашифрованный контент из-за неполных путей выполнения кода. Такие проблемы встречаются редко и активно устраняются. Данные полностью зашифрованы и защищены, независимо от этих потенциальных проблем.
Будут ли предприняты какие-либо шаги по миграции с бета-версии на окончательную версию?
Нет. Рабочие области, использующие бета-версию шифрования, будут автоматически поддерживаться в окончательной версии без каких-либо действий со стороны пользователя.
Дополнительные технические подробности
Конвертное шифрование данных и разрешения
Нужно ли предоставить OpenAI разрешения GenerateDataKey для EKM?
Нет. OpenAI требуются только разрешения Encrypt и Decrypt для вашего ключа KMS. Разрешение GenerateDataKey для интеграции EKM не требуется.
Использует ли OpenAI конвертное шифрование для данных клиентов?
Да. OpenAI использует модель конвертного шифрования:
Customer KMS: Управляет ключами шифрования ключей (KEK). OpenAI не видит и не хранит KEK.
Инфраструктура OpenAI: Генерирует и управляет ключами шифрования данных (DEK). Каждый DEK шифруется (оборачивается) с помощью вашего KEK перед сохранением.
Поток данных:
Данные клиентов шифруются с помощью DEK.
Этот DEK шифруется с помощью вашего KEK, в результате чего создается eDEK.
eDEK хранится вместе с зашифрованными данными.
Чтобы расшифровать данные, OpenAI обращается к вашей KMS с запросом на расшифровку eDEK, получает DEK и расшифровывает содержимое.
Почему OpenAI выбрала эту модель вместо того, чтобы передать KMS управление ключами KEK и DEK?
Существует два распространенных подхода к конвертному шифрованию:
Все KEK и DEK под управлением KMS:
Преимущества: более простая реализация, нет необходимости поддерживать инфраструктуру шифрования.
Недостатки: каждый запрос на шифрование и дешифрование активирует обращение к KMS, что увеличивает задержку, стоимость и создает единую точку отказа.
KEK под управлением KMS и DEK под управлением OpenAI (наш подход):
Преимущества: значительно меньшая задержка и затраты, лучшая масштабируемость и надежность, а также продолжение работы при частичных сбоях KMS (вплоть до TTL-кэширования DEK).
Недостатки: Немного более сложная реализация на стороне OpenAI.
Такая архитектура позволяет OpenAI обеспечивать гарантии безопасности, одновременно сводя к минимуму операционные риски и затраты для клиентов.
Как часто обновляются DEK?
Каждый DEK обновляется примерно каждые 60 минут. Это обеспечивает временную изоляцию: даже если DEK каким-то образом был скомпрометирован, последствия будут ограничены данными, зашифрованными в пределах этого часового окна.
Объем запросов к KMS и наблюдаемость
Мы видим значительно меньше запросов к KMS, чем сообщений пользователей. Эти значения должны совпадать?
Нет, они не коррелируют напрямую.
Поскольку OpenAI по соображениям производительности кэширует DEK в памяти, обращения к KMS выполняются только тогда, когда требуется расшифровать DEK, а не при каждой операции шифрования или дешифрования. В результате следует ожидать:
Меньше запросов к KMS, чем взаимодействий с пользователями.
Периодические всплески, когда у кэшированных DEK истекает срок действия (примерно раз в час) или требуется доступ к более старым зашифрованным данным.
Дополнительные вызовы при получении более старых данных — например, когда пользователь продолжает длительный разговор и необходимо загрузить более старые DEK.
Точное количество запросов к KMS зависит от статуса кэширования, поведения пользователей, характеристик доступа к данным и длины разговора, поэтому это значение не будет напрямую коррелировать с объемом сообщений.
