Được rồi, sau 2 tháng nỗ lực vững chắc, tôi đang khai thác. Dự án "do Groth16 thiết lập đáng tin cậy trong TEE và nhận được chứng thực từ xa rằng chất thải độc hại đã bị phá hủy" đã không thành công. Sẽ TLDR bên dưới. Đề cập ở đây chỉ vì tôi không muốn bất kỳ ai bị ngăn cản làm việc vì họ nghĩ rằng tôi vẫn đang làm việc trong khi thực tế tôi không phải vậy.
Tóm tắt: - TEE duy nhất có thể thực hiện điều này hiện tại (theo như tôi thấy) là TDX, vì nó có các đảm bảo RAM mã hóa cần thiết. (Hãy nhớ rằng, đối với dự án này, chỉ biết rằng mã đúng đang chạy trong TEE là không đủ, bạn CŨNG cần biết rằng một kẻ tấn công vật lý tại máy không thể dump RAM trong suốt buổi lễ và học được chất thải độc hại). - Chữ ký xác thực từ xa của TDX ký lên "MRTD", đây là một hàm băm sẽ thay đổi nếu bất kỳ byte nào của hình ảnh VM thay đổi. - Do đó, để một kiểm toán viên/người dùng trong tương lai xác minh rằng TDX đang chạy mã đúng trong suốt quá trình thiết lập tin cậy (đặc biệt là theo cách tự động), họ cần có khả năng tái tạo hàm băm MRTD đó, điều này lại yêu cầu xây dựng lại hình ảnh VM từ mã nguồn có thể đọc được bằng cách tái tạo từng bit. - Tôi đã không thể tạo một hình ảnh GCP theo cách tái tạo từng bit. (Ngay cả một hình ảnh siêu tối thiểu, chỉ khởi động và mở một cổng SSH và thực sự không có gì khác).
Tôi không chắc điều này có thể thực hiện được với các công cụ có sẵn hiện có. Nó có thể yêu cầu điều chỉnh các công cụ hiện có. StageX rất hữu ích, vì vậy tôi khuyên bạn nên sử dụng nó càng nhiều càng tốt. Các vấn đề xảy ra khi bạn cần bất cứ thứ gì hiện không có sẵn thông qua lớp StageX. Khi đó, bạn cần xây dựng bất cứ thứ gì bạn cần từ nguồn (vì tải xuống tarball mà không tự xây dựng chúng là một rủi ro chuỗi cung ứng). Và tôi nhận thấy rằng việc xây dựng / biên dịch phần mềm _hầu hết_ từ nguồn theo cách có thể tái tạo từng bit cực kỳ tốn thời gian, khó khăn và giòn. Và trong nhiều trường hợp, tôi đã không thể làm điều đó *chút nào*.
Tôi khuyên bạn nên thực hiện bất kỳ bản dựng nào của phần mềm bạn cần bên trong một container Docker chỉ bao gồm các lớp StageX được gán hash. Kỹ thuật đó đã mang lại cho tôi hiệu quả tốt nhất.
3,75K