3 ms·
> How can anyone verify that all the code paths append to the log? davidczech has already explained it quite well, but I'll try explaining it a different way.
by kfreds 2y ago
> How can anyone verify that all the code paths append to the log?
davidczech has already explained it quite well, but I'll try explaining it a different way.
Consider the verification of a signed software update. The verifier, e.g. apt-get, rpm, macOS Update, Microsoft Update or whatever OS you're running. They all have some trust policy that contains a public key. The verifier only trusts software signed by the public key.
Now imagine a verifier with a trust policy that mandates that all signed software must also be discoverable in a transparency log. Such a trust policy would need to include:
- a pubkey trusted to make the claim "I am your trusted software publisher and this software is authentic", i.e. it is from Debian / Apple / Microsoft or whomever is the software publisher.
- a pubkey trusted to make the claim "I am your trusted transparency log and this software, or rather the publisher's signature, has been included in my log and is therefore discoverable"
The verifier would therefore require the following in order to trust a software update:
- the software (and its hash)
- a signature over the software's hash, done by the software publisher's key
- an inclusion proof from the transparency log
There is another layer that could be added called witness cosigning, which reduces the amount of trust you need to place in the transparency log. For more on that see my other comments in this thread.
- gigel82 2y agoGot it, that all makes sense. My concern is not someone maliciously attempting to infect the software / hardware. My concern is that Apple themselves will include code in their officially signed builds that extracts customer data. All of these security measures cannot protect against that because Apple is a "trusted software publisher" in the chain. All of this is great stuff, Apple makes sure someone else doesn't get the customer data and they remain the only ones to monetize it.
- davidczech 2y ago> cannot protect against that because Apple is a "trusted software publisher" in the chain. That's the whole point of the transparency log. Anything published, and thus to be trusted by client devices, is publicly inspectable.
- gigel82 2y agoPublicly inspectable how? Are you saying their entire server stack will be open source and have reproducible builds?
- kfreds 2y agoMy understanding is that Apple PCC will not open source the entire server stack. I might be wrong. So far I haven't seen them mention reproducible builds anywhere, but I haven't read much of what they just published. One of the projects I'm working on however intends to enable just that. See system-transparency.org for more. There's also glasklarteknik.se.
- davidczech 2y agoNo, but the binaries executed will be available for download.
- gigel82 2y agoThen shouldn't they allow us to self-host the entire stack? That would surely put me at ease; if I can self-host my own "Apple private cloud" on my own hardware and firewall the heck out of it (inspect all its traffic), that's the only way any privacy claims have merit.
- kfreds 2y agoNo, gigel82 is right. Transparency logging provides discoverability. That does not mean the transparency logged software is auditable in practice. As gigel82 correctly points out, the build hash is not sufficient, nor is the source hash sufficient. The remote attestation quote contains measurements of the boot chain, i.e. hashes of compiled artifacts. Those hashes need to be linked to source hashes by reproducible builds.
- davidczech 2y agoThe OS build and cryptex binaries aligning to the hashes found in the transparency log will be made available for download. These are reconcilable with attestations signed by the SEP. The source code provided is for reference to help with disassembly. Edit link: https://security.apple.com/documentation/private-cloud-compute/verifiabletransparency https://security.apple.com/documentation/private-cloud-compu...