  Sensitive computations are now routinely delegated to third-parties. In
response, Confidential Computing technologies are being introduced to
microprocessors, offering a protected processing environment, which we
generically call an isolate, providing confidentiality and integrity guarantees
to code and data hosted within -- even in the face of a privileged attacker.
Isolates, with an attestation protocol, permit remote third-parties to
establish a trusted "beachhead" containing known code and data on an otherwise
untrusted machine. Yet, the rise of these technologies introduces many new
problems, including: how to ease provisioning of computations safely into
isolates; how to develop distributed systems spanning multiple classes of
isolate; and what to do about the billions of "legacy" devices without support
for Confidential Computing?
  Tackling the problems above, we introduce Veracruz, a framework that eases
the design and implementation of complex privacy-preserving, collaborative,
delegated computations among a group of mutually mistrusting principals.
Veracruz supports multiple isolation technologies and provides a common
programming model and attestation protocol across all of them, smoothing
deployment of delegated computations over supported technologies. We
demonstrate Veracruz in operation, on private in-cloud object detection on
encrypted video streaming from a video camera. In addition to supporting
hardware-backed isolates -- like AWS Nitro Enclaves and Arm Confidential
Computing Architecture Realms -- Veracruz also provides pragmatic "software
isolates" on Armv8-A devices without hardware Confidential Computing
capability, using the high-assurance seL4 microkernel and our IceCap framework.
