Как писать конфиденциальные приложения / приложения SGX с помощью Golang?
Я хотел бы разработать и развернуть свои микросервисы Go как приложение SGX-/Confidential Computing. Какие требования?
1 ответ
Написание конфиденциальных вычислительных приложений с помощью Go требует двух вещей:
1. Среда выполнения Go, работающая в анклаве Confidential / SGX.
Здесь существует два подхода:
Generic LibraryOS (промежуточное звено между анклавами на основе процессов и виртуальных машин)
- Графен: https://grapheneproject.io/ (пока не поддерживает Go)
- Окклюм: https://occlum.io/
- LKL: https://github.com/lsds/sgx-lkl
Go SDK и среды выполнения: хотя, насколько мне известно, существует несколько сред выполнения для SGX, только EGo поддерживает Go.
2. SGX API для Go (для удаленной аттестации, запечатывания и т. Д. Непосредственно из Go)
У LibraryOS есть свой собственный API, и в будущем они могут поддерживать привязки Go, но при написании этого вам все равно нужно будет написать свои собственные привязки Go на C / C++.
Ertgolib, который идет вместе с ertruntime, обеспечивает полнофункциональный уровень API, который предоставляет большую часть функций OpenEnclave / SGX непосредственно для Go.