Các khái niệm về mã hóa
Luồng tổng quan
Bạn kiểm soát một khóa chính trong đám mây của mình mà OpenAI không bao giờ nhìn thấy
Khóa chính của bạn được dùng để mã hóa khóa mã hóa dữ liệu (DEK) mà OpenAI sử dụng
OpenAI dùng DEK để mã hóa dữ liệu của bạn khi lưu trữ. Một DEK được khóa chính của bạn mã hóa, tạo ra eDEK (DEK đã mã hóa), và được lưu trữ cùng với dữ liệu của bạn
Để đọc dữ liệu, OpenAI lấy eDEK, yêu cầu KMS của bạn giải mã eDEK thành DEK, rồi giải mã dữ liệu của bạn
Mã hóa EKM hoạt động như thế nào?
Vui lòng tham khảo bài viết của chúng tôi để biết thông tin chi tiết: Tổng quan về Quản lý khóa doanh nghiệp (EKM) của OpenAI
OpenAI có lưu trữ DEK của tôi không?
Không — chúng tôi lưu trữ các DEK đã mã hóa (eDEK), do KMS của bạn tạo ra. Để giải mã dữ liệu, chúng tôi yêu cầu KMS của bạn giải mã eDEK trở lại thành DEK.
OpenAI có lưu DEK của tôi trong bộ nhớ đệm không?
Có — chỉ trong RAM. Việc này nhằm tăng hiệu năng, tránh phải gọi KMS của bạn trong mọi yêu cầu mã hóa/giải mã dữ liệu. DEK không bao giờ được ghi vào bộ nhớ lưu trữ.
Quyền trên đám mây
OpenAI sẽ có những quyền nào trên KMS của tôi?
Chỉ những quyền bạn cấp cho chúng tôi thông qua chính sách bạn thiết lập. Chúng tôi chỉ cần tối thiểu các thao tác Encrypt/Decrypt. Vui lòng cũng tạo một khóa mới trong KMS đám mây của bạn cho OpenAI, thay vì dùng lại bất kỳ khóa hiện có nào đang phục vụ mục đích sản xuất.
Khi nào OpenAI nhận được quyền truy cập KMS của tôi?
Tất cả các bước sau phải đã được thực hiện:
Bạn đã nhận diện danh tính của OpenAI (thông qua chính sách tin cậy, danh tính workload, v.v., tùy thuộc vào nhà cung cấp đám mây).
Bạn đã tạo một chính sách để truy cập KMS.
Bạn đã gán cho danh tính của OpenAI quyền truy cập chính sách đó.
Nếu bạn chỉ tạo KMS mà không thực hiện tất cả các bước này, OpenAI sẽ không có quyền truy cập.
Tôi có bắt buộc phải lưu khóa chính trong đám mây của mình không?
Không — bạn có toàn quyền quyết định cách quản lý khóa chính của mình. Bạn có thể dùng giải pháp do đám mây quản lý hoặc một giải pháp bên ngoài, nơi khóa của bạn được lưu trữ riêng. OpenAI chỉ cần gọi các thao tác mã hóa/giải mã trên KMS của bạn — cách khóa chính thực sự thực hiện mã hóa/giải mã là chi tiết triển khai mà chúng tôi không nhìn thấy.
Vòng đời khóa
Xoay vòng DEK/eDEK (do OpenAI kiểm soát)
DEK/eDEK được xoay vòng bao lâu một lần?
Mỗi 24 giờ trên đường dẫn mã hóa (yêu cầu một cặp khóa DEK/eDEK)
Mỗi 1 giờ trên đường dẫn khóa giải mã (DEK -> eDEK)
Tôi có phải làm gì khi DEK thay đổi không?
Không — việc xoay vòng DEK/eDEK được thực hiện trong OpenAI. Miễn là khóa chính của bạn vẫn hợp lệ, mọi eDEK được mã hóa bằng khóa chính của bạn vẫn có thể tiếp tục được giải mã thành DEK, rồi DEK đó được dùng để giải mã dữ liệu của bạn.
Xoay vòng và thu hồi khóa chính (do bạn kiểm soát)
Xoay vòng khóa và thu hồi khóa diễn ra bao lâu một lần?
Điều này do bạn quyết định vì OpenAI không có khả năng nhìn thấy khóa chính của bạn.
Sự khác biệt giữa xoay vòng khóa và thu hồi khóa là gì?
Thu hồi khóa loại bỏ quyền truy cập vào dữ liệu được mã hóa bằng các khóa cũ hơn. Xoay vòng khóa mã hóa dữ liệu bằng khóa mới, nhưng vẫn duy trì quyền đọc dữ liệu cũ hơn.
Điều gì xảy ra nếu tôi thu hồi khóa chính của mình?
Nếu một khóa bị thu hồi hoặc quyền bị gỡ bỏ, không gian làm việc cuối cùng sẽ ngừng hoạt động khi các khóa được lưu trong bộ nhớ đệm hết hạn. Khi đó, OpenAI không còn có thể giải mã dữ liệu đã lưu trữ hoặc mã hóa dữ liệu mới. Trên thực tế, dữ liệu bị “hủy vụn”.
Việc thu hồi có hiệu lực nhanh đến mức nào?
OpenAI lưu DEK trong bộ nhớ đệm trong RAM để tăng hiệu năng và khả năng chống chịu. Việc thu hồi thường có hiệu lực trong vòng một giờ, sau khi các khóa trong bộ nhớ đệm hết hạn và quá trình xác thực lại thất bại.
Có thể kiểm thử việc thu hồi một cách an toàn không?
Việc kiểm thử thu hồi trong không gian làm việc sản xuất không được khuyến nghị vì thao tác này sẽ khiến dữ liệu hiện có vĩnh viễn không thể truy cập. Tuy nhiên, khách hàng có thể (và nên) kiểm thử việc thu hồi trong môi trường sandbox để xác minh hành vi đúng và kiểm chứng các giả định về độ tin cậy.
Nếu một khóa bị thu hồi vĩnh viễn, có thể khôi phục không gian làm việc bằng cách gắn khóa mới không?
Không. Khi khóa bị mất, dữ liệu theo thiết kế sẽ không thể khôi phục. Cách khắc phục duy nhất là tạo một không gian làm việc mới.
Chúng tôi nên làm gì nếu không gian làm việc không thể truy cập do thay đổi khóa?
Cách khắc phục dự kiến là tạo một không gian làm việc mới. Việc cập nhật KMS sẽ không khôi phục dữ liệu hiện có.
Kế hoạch quay lui là gì nếu chúng tôi quyết định ngừng sử dụng CMEK?
Hiện tại chưa có kế hoạch quay lui. Sau khi một không gian làm việc được tạo với CMEK, toàn bộ dữ liệu liên quan sẽ được mã hóa bằng khóa do khách hàng quản lý và không thể truy cập nếu không có các khóa đó. Cách duy nhất để ngừng sử dụng CMEK là tạo một không gian làm việc mới — dữ liệu đã mã hóa hiện có sẽ vĩnh viễn không thể truy cập.
Điều gì xảy ra khi tôi xoay vòng khóa chính của mình?
Vật liệu mật mã mới sẽ được tạo để mã hóa, vì vậy các yêu cầu mã hóa mới sẽ dùng khóa mới. Tuy nhiên, mã định danh KMS (ARN hoặc tên khóa) vẫn giữ nguyên và dữ liệu cũ vẫn có thể giải mã. Nhiều nhà cung cấp đám mây hỗ trợ xoay vòng khóa tự động (AWS, GCP, Azure).
OpenAI có mã hóa lại dữ liệu cũ khi tôi xoay vòng khóa chính không?
Không. Vật liệu mật mã mới sẽ chỉ được dùng để mã hóa dữ liệu mới.
Mất bao lâu để một lần xoay vòng khóa hoặc thu hồi khóa có hiệu lực?
1 giờ. Điều này là do DEK/eDEK được lưu trong bộ nhớ đệm trong RAM và chúng tôi xác thực lại các mục này với KMS của bạn hằng giờ.
Đổi mã định danh KMS
Việc đổi mã định danh KMS là thu hồi khóa hay xoay vòng khóa?
Thu hồi khóa. Một khóa không thể giải mã dữ liệu đã được mã hóa bằng khóa khác.
OpenAI có thể giúp tôi đổi mã định danh KMS cho một không gian làm việc ChatGPT không?
Nếu bạn xác nhận rằng mục đích là thu hồi khóa của mình, chúng tôi có thể giúp bạn thực hiện việc này cho một không gian làm việc ChatGPT. Lưu ý rằng khi KMS ARN được cập nhật, dữ liệu cũ hơn sẽ vẫn không thể truy cập, nên sau thay đổi bạn sẽ có cả dữ liệu không thể truy cập lẫn dữ liệu có thể truy cập.
OpenAI có thể giúp tôi đổi mã định danh KMS cho một dự án API không?
Nếu bạn đang dùng API, API giúp việc lưu trữ và tạo dự án mới trở nên dễ dàng. Vì vậy, thay vào đó, vui lòng lưu trữ dự án có dữ liệu vốn không thể truy cập, đăng ký cấu hình EKM mới với OpenAI, rồi tạo một dự án API mới bằng khóa KMS mới.
Nếu tôi muốn tự mình thường xuyên đổi mã định danh KMS thì sao?
Điều này không được khuyến nghị vì có lẽ bạn không muốn thường xuyên thu hồi khóa của mình. Tuy nhiên, bạn vẫn có thể làm việc này nếu dùng nhà cung cấp đám mây hỗ trợ bí danh khóa KMS (ví dụ về AWS). Bạn có thể đăng ký bí danh khóa KMS đó với OpenAI, rồi trên nhà cung cấp đám mây của mình, bạn có thể thay đổi mã định danh KMS bên dưới mà bí danh trỏ tới bất cứ lúc nào để thực hiện thu hồi khóa.
Hành vi ở Beta so với GA
Có rủi ro đã biết hoặc thay đổi ở cấp hệ thống nào khi dùng bản beta mã hóa trong môi trường sản xuất không?
Môi trường beta tương đương về mặt chức năng với GA và dự kiến không cần bước di chuyển nào. Rủi ro chính là một số tính năng trường hợp biên có thể chưa hỗ trợ nội dung đã mã hóa do các đường dẫn mã chưa hoàn chỉnh. Những trường hợp này hiếm gặp và đang được tích cực xử lý. Dữ liệu được mã hóa và bảo vệ đầy đủ bất kể các vấn đề tiềm ẩn này.
Có cần bước di chuyển nào từ beta sang GA không?
Không. Các không gian làm việc dùng bản beta mã hóa sẽ tự động được hỗ trợ trong GA mà không cần người dùng thực hiện thao tác nào.
Chi tiết kỹ thuật bổ sung
Mã hóa phong bì và quyền
Chúng tôi có cần cấp quyền GenerateDataKey cho OpenAI để dùng EKM không?
Không. OpenAI chỉ yêu cầu quyền Encrypt và Decrypt trên khóa KMS của bạn. Quyền GenerateDataKey không cần thiết cho việc tích hợp EKM.
OpenAI có sử dụng mã hóa phong bì cho dữ liệu khách hàng không?
Có. OpenAI sử dụng mô hình mã hóa phong bì:
KMS của khách hàng: Quản lý Khóa mã hóa khóa (KEK). OpenAI không bao giờ nhìn thấy hoặc lưu trữ KEK.
Hạ tầng OpenAI: Tạo và quản lý Khóa mã hóa dữ liệu (DEK). Mỗi DEK được mã hóa (bọc) bằng KEK của bạn trước khi lưu trữ.
Luồng dữ liệu:
Dữ liệu khách hàng được mã hóa bằng một DEK.
DEK đó được mã hóa bằng KEK của bạn, tạo ra một eDEK.
eDEK được lưu trữ cùng với dữ liệu đã mã hóa.
Để giải mã dữ liệu, OpenAI yêu cầu KMS của bạn giải mã eDEK, lấy DEK rồi giải mã nội dung.
Vì sao OpenAI chọn mô hình này thay vì để KMS quản lý cả KEK lẫn DEK?
Có hai cách tiếp cận mã hóa phong bì phổ biến:
KEK và DEK do KMS quản lý:
Ưu điểm: Triển khai đơn giản hơn, không cần duy trì hạ tầng mã hóa.
Nhược điểm: Mọi yêu cầu mã hóa/giải mã đều đi qua KMS, làm tăng độ trễ, chi phí và tạo ra một điểm lỗi duy nhất.
KEK do KMS quản lý / DEK do OpenAI quản lý (cách tiếp cận của chúng tôi):
Ưu điểm: Độ trễ và chi phí thấp hơn đáng kể, khả năng mở rộng và độ tin cậy tốt hơn, đồng thời vẫn tiếp tục vận hành khi KMS gián đoạn một phần (trong giới hạn TTL của bộ nhớ đệm DEK).
Nhược điểm: Triển khai phía OpenAI phức tạp hơn đôi chút.
Thiết kế này cho phép OpenAI cung cấp các đảm bảo bảo mật mạnh mẽ, đồng thời giảm thiểu rủi ro vận hành và chi phí cho khách hàng.
DEK được xoay vòng bao lâu một lần?
Mỗi DEK được xoay vòng khoảng 60 phút một lần. Điều này mang lại sự cô lập theo thời gian — ngay cả khi một DEK bằng cách nào đó bị xâm phạm, tác động cũng chỉ giới hạn ở dữ liệu được mã hóa trong khoảng thời gian một giờ đó.
Lượng yêu cầu KMS và khả năng quan sát
Chúng tôi thấy số lượng yêu cầu KMS ít hơn nhiều so với số lượng tin nhắn của người dùng. Các con số này có cần khớp nhau không?
Không, chúng sẽ không tương quan trực tiếp.
Vì OpenAI lưu DEK trong bộ nhớ đệm trong RAM vì lý do hiệu năng, các lệnh gọi KMS chỉ được thực hiện khi cần giải mã một DEK — không phải trong mọi thao tác mã hóa hoặc giải mã. Do đó, bạn nên dự kiến:
Số yêu cầu KMS ít hơn số lượt tương tác của người dùng.
Các đợt tăng đột biến thỉnh thoảng xảy ra khi DEK trong bộ nhớ đệm hết hạn (khoảng mỗi giờ) hoặc khi cần truy cập dữ liệu đã mã hóa cũ hơn.
Các lệnh gọi bổ sung khi truy xuất dữ liệu lịch sử, chẳng hạn khi người dùng tiếp tục một cuộc trò chuyện kéo dài và các DEK cũ hơn phải được tải.
Số lượng yêu cầu KMS chính xác phụ thuộc vào trạng thái bộ nhớ đệm, hành vi người dùng, mẫu truy cập dữ liệu và độ dài cuộc trò chuyện; vì vậy, nó sẽ không tương quan trực tiếp với lượng tin nhắn.
