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 privatecloudcomputed daemon 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 secureconfigd and the SecureConfigDB framework that an Apple silicon node uses to read its secure-config configuration.

  • 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:

Other projects serve both platforms:

  • The EventHorizon project provides each platform’s security event monitor: securitymonitorlited on an Apple silicon node, lsecuritymonitorlited on 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: