The encrypted-communication app Signal has a sterling reputation within the security and crypto community, but its critics point to a nagging flaw: The app asks for access to your phone's contact list when you install it. Signal's creators, like the developers of so many other social apps, consider that contact-sharing request a necessary evil, designed to make the app as easy to use as your normal calling and texting features. But it's one that some of Signal's most sensitive users resent as a breach of its privacy promises.

Now Open Whisper Systems, the non-profit behind Signal, is launching an experimental new method to sew up that gap in its data protections, while still letting you flip through your existing address book to make encrypted calls and send encrypted texts. And the way they did it could serve as a model for other apps wrestling with the same address book privacy problem.

Making Contact

Using a feature in the latest generation of Intel processors, the group plans to announce Tuesday that it's testing a method that lets its servers mine your address book to find other Signal users, while provably deleting all the contact data those servers see without recording it. That means, in theory, no hacker, government agency, or even Signal developers themselves can access that sensitive data.

"When you install many apps today you get this little prompt that asks if you want to give someone access to your contacts. You get an uncomfortable feeling in that moment," says Moxie Marlinspike, the founder of Open Whisper Systems and Signal's creator. "This is an experiment in letting you not have that uncomfortable feeling."

That new experimental protection for your Signal contacts, which Open Whisper Systems is testing now and hopes to roll out to users over the next few months, takes advantage of an Intel processor feature called Software Guard Extensions, or SGX. Intel chips that integrate that SGX component have a "secure enclave" in the processor, designed to run code that the rest of the computer's operating system can't alter. Any code running in that enclave is signed with a unique key that Intel, not the computer's owner, controls. And a computer that connects to that machine running SGX can check its signature to make sure that the code in the enclave hasn't changed, even if the rest of the computer is infected with malware, seized by the FBI, reprogrammed by its owners to sell out all its users' data, or otherwise compromised.

Much of the attention to SGX has focused on how it can enable practically unbreakable "digital rights management" anti-piracy measures: If it's installed on your PC, it could prevent you from fully controlling the code of the videos or games you play on it, making it far harder to crack those files' copy protections. But Open Whisper Systems is now turning SGX's trust relationships around, and running it instead on Signal's servers. As a result, Signal users will be able to check that those servers are behaving in a way that even its administrators, or an outside party who compromises the servers, can't change.

'This is an experiment in letting you not have that uncomfortable feeling.' Signal Creator Moxie Marlinspike

When you share your contacts with Signal, those servers check your address book against all known Signal users to assemble a list of known Signal-using contacts in the app. Now, that process will be performed within the Signal server's secure enclave. Every phone with Signal installed will in theory be able to check that Signal's open-source server code, which is designed to immediately erase that address book info after processing it, hasn't been changed to somehow store the data instead.

By running the contact lookup process in that SGX-enabled enclave, "we're hiding the contacts from ourselves," says Marlinspike, "in the sense that the code is unalterable, and it’s written in an unalterable way where it doesn’t reveal the contacts to anything else outside that enclave."