Processes with RA-TLS spawning child processes #1912
Replies: 1 comment 10 replies
-
Hello Tiago! Yes, your solution makes sense. One thing I'm not clear about is when do you want to invoke RA-TLS? Is it only at the start of the application? Or is RA-TLS supposed to be periodically invoked during the lifetime of the application? If it's only at the start of the application, then the traditional approach (typically called "pre-main") is to:
This is basically what a special Gramine tool does: https://gramine.readthedocs.io/en/stable/manpages/gramine-ratls.html. Maybe you can just use this tool?
Yes, both these approaches work. The shell script approach has an advantage that the proxy process doesn't "disappear" after the startup (in contrast to the approach outlined above), but has a disadvantage that you'll have three SGX enclaves now: one for the shell, one for the proxy, and one for the application. In case of
Yes, correct. You're basically having an indirect chain of trust now: SGX remote attestation proves the correctness of the proxy, and by trusting the proxy code/developers, you gain trust in that it correctly starts up the desired application.
I'm not sure what you mean exactly by "visible to the host". If you mean network connections and open ports -- yes, the application (the server) will be visible to the host. Similarly, the files on which the application (the server) operates will be visible on the host. |
Beta Was this translation helpful? Give feedback.
-
Hello Gramine team, we are currently facing some questions on what would be the best approach for our use case.
We need to include RA-TLS on several components of an existing application, our initial idea was changing/forking each component of this larger application in order to include RA-TLS and then communications between these would be attested through Remote Attestation, this implies each component would live inside it's own enclave.
The problem arised when we bumped into a specific component that relies on closed source code and can't be forked in a way to include RA-TLS.
Another problem of this approach is every time there is an update to these components we need to maintain and support our RA-TLS changes on those forks.
We thought about another potential solution for our use-case but we would really appreciate some feedback on the viability and security concerns of the approach, before moving forward.
Potential Solution would be:
Our questions and concerns:
Our concern here is that the real component shouldn't be reached from the host but instead the only way to interact with it would be through proxy component.
In case there is any other option or solution please also let us know,
Thank you!
Beta Was this translation helpful? Give feedback.
All reactions