Source Code
Apple publishes source code for a subset of PCC’s security-critical components so researchers can independently verify their security and privacy.
Overview
The source code in the security-pcc repository includes components of PCC that implement security mechanisms and apply privacy policies. We provide this code under a limited-use license agreement to allow researchers and interested individuals to independently verify PCC’s security and privacy characteristics and functionality.
The projects for which source code is available cover a range of PCC areas, including:
The CloudAttestation project is responsible for constructing and validating an Apple silicon node’s attestations.
The Thimble project includes the
privatecloudcomputeddaemon that runs on a user’s device and uses CloudAttestation to enforce Verifiable Transparency.The splunkloggingd daemon filters the logs that can be emitted from a PCC node to protect against accidental data disclosure.
The libsecureconfig project contains
secureconfigdand the SecureConfigDB framework that an Apple silicon node uses to read itssecure-configconfiguration.The srd_tools project contains the Virtual Research Environment tooling, which shows how the VRE runs the PCC code.
An Apple silicon node and a Google Cloud node meet the same requirements with different software, so the repository publishes a separate project for each component that differs:
The CloudBoard-GoogleCloud project terminates and decrypts each request on a Google Cloud node.
The CloudAttestation-GoogleCloud project constructs and validates a Google Cloud node’s attestations across its three hardware roots.
The CPAgent project is the control-plane agent that mounts a node’s configuration, reports its health, and refreshes its identity certificates.
The swift-google-cloud-configuration project provides the readers that separate a node’s Measured, unmeasured, and dynamic configuration from its unmeasured and dynamic configuration.
The cloudassetdownloader-GoogleCloud project is the Google Cloud implementation of Cloud asset distribution.
The aea-stream-downloader project streams and decrypts the Apple Encrypted Archives carrying a node’s Startup assets.
Other projects serve both platforms:
The EventHorizon project provides each platform’s security event monitor:
securitymonitorlitedon an Apple silicon node,lsecuritymonitorlitedon a Google Cloud node.The EnsembleWarden project encrypts the cached conversation state that a multi-turn interaction reuses.
Several components that run on a Google Cloud node, and that a researcher uses to verify its attestation, are open source projects maintained by Apple platform partners rather than parts of the security-pcc repository:
The host-acos project provides the host environment that launches and isolates a node’s guest virtual machines.
The confidential-space project holds Google’s attestation verification and firmware measurement tooling, along with a guide to building the operating systems from source.
The key-protection-module project.
The go-tpm-tools project.