4 ms·
Regarding verifying the application running server side matches the expected OSS version, Signal has an innovative approach as a part of their zero-knowledge co
by ohthehugemanate 7y ago
Regarding verifying the application running server side matches the expected OSS version, Signal has an innovative approach as a part of their zero-knowledge contact discovery system.
> Run a contact discovery service in a secure SGX enclave.
> Clients that wish to perform contact discovery negotiate a secure connection over the network all the way through the remote OS to the enclave.
> Clients perform remote attestation to ensure that the code which is running in the enclave is the same as the expected published open source code.
> Clients transmit the encrypted identifiers from their address book to the enclave.
> The enclave looks up a client’s contacts in the set of all registered users and encrypts the results back to the client.
>Since the enclave attests to the software that’s running remotely, and since the remote server and OS have no visibility into the enclave, the service learns nothing about the contents of the client request. It’s almost as if the client is executing the query locally on the client device.
It's not perfect, but it is a huge improvement over blindly trusting the software running on a third party server. There's a lot more detail, including pitfalls, work arounds, limitations, and of course source code, in their blog post on the subject :
https://signal.org/blog/private-contact-discovery/ https://signal.org/blog/private-contact-discovery/
- Boulth 7y agoThe same SGX that was on the front page a couple of days ago? https://news.ycombinator.com/item?id=21759683 https://news.ycombinator.com/item?id=21759683
- BuildTheRobots 7y agoI don't suppose there's any more information on how remote attestation works? (Ideally something an idiot like me could comprehend). I can't understand how, if the company has control of the code running there, they can't just modify it to report as the known good code. It seems like it'd be slightly different from the DRM example where the end user can't access the code running in the enclave in the first place and doesn't know what it'd be reporting back.
- BuildTheRobots 7y agoI can't edit my comment, but after reading up on Intel's secure enclave last night, I still don't get how this would work in practise. As the end user (me) needs to know what the server is going to return in order to verify that, I don't understand what's stopping the server from returning that anyway. Even if it's using public key crypto to sign a challenge I send it, I still don't understand how I can have any assurance that this key only exists inside the enclave and isn't just running in software on the server.