xBoot: Server Code Integrity via Threshold Shares
Split server code at deploy time into K-of-N information-theoretically secure shares. On boot, shares reconstruct in memory, HMAC-verify, and load. Plaintext code never touches persistent disk — one share reveals zero information.
The Problem
Server source code sits in plaintext on disk. A single disk compromise, insider threat, or supply chain breach exposes the entire codebase. Encryption-at-rest protects against offline attacks, but the decryption key must live on the same machine — defeating the purpose.
Traditional deployment pipelines copy source code or compiled binaries directly to production servers. The code exists as readable files on persistent storage. Anyone with disk access — a compromised VPS, a stolen backup, a malicious datacenter employee — can read the entire codebase.
Full-disk encryption (LUKS, BitLocker) requires the key to be available at boot. The key either lives on the same disk (circular security) or is fetched from a network service (single point of failure). Neither approach provides information-theoretic guarantees.
The fundamental flaw: every conventional approach requires the complete plaintext code to exist somewhere — on disk, in a build artifact, in a container image. xBoot ensures the complete plaintext exists only in memory, only during execution.
The Old Way
Competitive Analysis
Existing code integrity approaches protect specific layers but leave plaintext code accessible at some point. None provides information-theoretic protection for the complete software stack.
| Approach | Scope | Hardware Req | IT Security | Disk Write | Integrity Layers |
|---|---|---|---|---|---|
| UEFI Secure Boot | Firmware only | UEFI hardware | No | Yes | 1 (signature) |
| TPM Attestation | Boot chain | TPM chip | No | Yes | 1 (PCR hash) |
| dm-verity | Filesystem | None | No | Read-only FS | 1 (Merkle tree) |
| SGX Enclave | Application | Intel SGX | No | Yes (sealed) | 1 (attestation) |
| FDE (LUKS) | Full disk | None | No (key co-located) | Yes (encrypted) | 1 (encryption) |
| xBoot | Complete stack | None | Yes | Never (tmpfs) | 3 (HMAC + Ed25519 + SHA-256) |
Why Hardware Approaches Fall Short for Software
UEFI Secure Boot verifies firmware signatures at the hardware level but does not protect application code deployed after boot. TPM attestation proves the boot chain is unmodified but cannot protect against runtime code extraction. SGX enclaves provide strong isolation but require Intel-specific hardware and have suffered multiple side-channel attacks (Spectre, Foreshadow, PLATYPUS).
xBoot takes a fundamentally different approach: instead of relying on hardware to protect software, it uses mathematics. The code is split into shares that are information-theoretically secure. No hardware vulnerability, no side-channel attack, no physical access can extract information from K-1 shares because the information literally does not exist in fewer than K shares.
The PRIVATE.ME Solution
xBoot splits server source code into K-of-N threshold shares at deploy time using XorIDA. Each share is stored on a separate disk or location. On boot, K shares are collected, HMAC-verified, reconstructed in memory, and loaded via tmpfs. The plaintext code never touches persistent storage.
Information-theoretic guarantee: Any K-1 shares reveal exactly zero bits about the original code. This is not computational security — it is mathematically proven. No quantum computer, no future algorithm, no amount of compute can extract information from fewer than K shares.
Triple integrity verification: (1) HMAC-SHA256 on the reconstructed bundle before any data is returned. (2) Ed25519 manifest signature from a trusted admin DID. (3) Per-file SHA-256 against the signed manifest. All three must pass before code executes.
The New Way
How It Works
Two operations: deploy() splits code into signed shares, boot() reconstructs and runs from shares. A 10-step pipeline with three layers of integrity verification.
Implementation Architecture
xBoot ships as two components: a TypeScript library (@private.me/xboot) for programmatic integration and an enterprise CLI server (xboot-cli) for production deployments. Both provide the same cryptographic guarantees while targeting different operational contexts.
deploy() and boot() directly into your application. Shares are distributed via your storage layer (S3, GCS, local volumes). Suitable for integrated workflows where the application controls share storage.Enterprise CLI: HTTP API server with RBAC, encrypted share storage, audit logging, and bundle lifecycle management. Shares stored in AES-256-GCM encrypted JSONL files. Production-ready with rate limiting (1000 req/min per API key), manifest signature verification, and append-only audit trail. Port 3700 by default.
The Enterprise CLI provides additional operational controls not available in library mode:
- Bundle revocation: Mark deployed bundles as revoked. Future boot attempts return
BUNDLE_REVOKEDerror. - RBAC enforcement: Three roles (admin, operator, auditor) with SHA-256 hashed API keys. Operators can boot bundles but cannot revoke. Auditors have read-only access to logs.
- Audit trail: Every upload, boot, and revocation logged with timestamp, bundle ID, and actor. Append-only JSONL format for compliance workflows.
- Air-gapped deployment: CLI commands can run entirely offline. Upload bundles via USB, distribute shares to disconnected systems, boot without network access.
Deploy Pipeline
Boot Pipeline
Double PKCS7 padding: XorIDA requires block-aligned input. Two padding rounds: once for the raw blob, once after prepending HMAC key + signature.
Product type 0x0035: xBoot shares are registered in the xFormat product registry, enabling universal detection and routing.
tmpfs mode 0o700: Owner-only access on /dev/shm. Files written with 0o600. Cleanup in finally block even if import fails.
Bundle Format Detail
// Custom deterministic binary format (no tar dependency) [fileCount: uint32 BE] [entry] x fileCount, where each entry is: [pathLen: uint32 BE] [path: utf8 bytes] [dataLen: uint32 BE] [data: raw bytes] // Files sorted alphabetically for deterministic output. // Returns: blob (Uint8Array) + BundleFileEntry[] (path, sha256, size)
Manifest Structure
const manifest = { deployId: 'uuid-here', // unique deployment ID gitSha: 'bf5dadd', // git commit being deployed deployedAt: '2026-04-05T...', // ISO 8601 timestamp totalSize: 48230, // bundle size in bytes fileCount: 12, // number of files files: [ { path: 'start.ts', sha256: 'a1b2c3...', size: 1024 }, { path: 'routes/auth.ts', sha256: 'd4e5f6...', size: 2048 }, // ... per-file SHA-256 for every file in the bundle ], split: { n: 3, k: 2 }, // threshold parameters productType: 0x0035, // xFormat product type };
HMAC-Before-Reconstruction Invariant
The critical security invariant in the boot pipeline: HMAC is verified before any reconstructed data is returned to the caller. This ensures that tampered shares are rejected at the earliest possible point. The verification sequence is:
1. XorIDA reconstruct from K shares (output is raw bytes).
2. Unpad outer PKCS7 layer.
3. Extract HMAC key (bytes 0-31) and HMAC signature (bytes 32-63) from the prefix.
4. Compute HMAC-SHA256 over the remaining padded data using the extracted key.
5. Compare computed HMAC with the extracted signature. If mismatch: error, reject, return nothing.
6. Only if HMAC passes: unpad inner PKCS7, return the original bundle blob.
Hardware Root-of-Trust Integration
While xBoot's information-theoretic security does not depend on hardware, production deployments can layer xBoot with hardware roots-of-trust for defense-in-depth. Three integration patterns address different infrastructure contexts:
// Extend PCR registers with xBoot attestation data import { attestBoot } from '@private.me/xboot'; import { extendPCR } from 'tpm2-tools'; // 1. Reconstruct bundle from shares (HMAC verified) const bootResult = await boot(config); // 2. Compute attestation (per-file SHA-256 vs. manifest) const attestation = attestBoot(manifest, reconstructedBundle); // 3. Extend TPM PCR 10 (application-specific measurements) await extendPCR(10, attestation.overallHash); // PCR 10 now contains cryptographic proof of code integrity. // Remote attestation can verify this measurement before granting access.
TPM PCR Extension Flow: Platform Configuration Registers (PCRs) store hash chains of boot-time measurements. xBoot integrates at the application layer (PCR 10-15 are reserved for OS and application use). After HMAC verification and per-file SHA-256 checks pass, xBoot extends a PCR with the overall attestation hash. This creates a cryptographic record that the code running on the system matches the signed deployment manifest. Remote attestation protocols (TPM2_Quote) can then prove to external systems that the platform booted trusted code.
UEFI Secure Boot Compatibility: xBoot operates above the UEFI layer and does not conflict with Secure Boot certificate chains. The bootloader verifies kernel signatures via UEFI Secure Boot. The kernel boots userspace. xBoot then reconstructs application code in userspace RAM. The two mechanisms provide complementary protection: UEFI protects the boot chain up to the kernel, xBoot protects application code loaded after kernel initialization. Organizations can deploy both simultaneously without modification to UEFI configurations.
Boot Measurement Chain: The complete measurement chain for a TrustZone-integrated xBoot deployment on ARM looks like:
1. ARM TrustZone Boot ROM measures first-stage bootloader (immutable).
2. First-stage bootloader measures second-stage (U-Boot or equivalent).
3. U-Boot measures kernel, extends ARM TrustZone measurement registers.
4. Kernel boots, OP-TEE Secure World initialized.
5. xBoot retrieves Share 1 from Normal World, Share 2 from OP-TEE secure storage.
6. Reconstruction and HMAC verification in OP-TEE Trusted Application.
7. Attestation hash extended to TrustZone measurement register.
8. Code loaded into Normal World for execution, Secure World holds attestation proof.
This layered approach addresses IEC 62443-4-2 requirements for embedded device security in operational technology environments. The measurement chain provides cryptographic evidence from hardware root-of-trust through application code integrity.
Benchmarks
Performance measured on Node.js 22, Apple M2. xBoot protects firmware and code bundles with sub-100ms overhead for typical deployment sizes.
| Operation | 10 KB | 100 KB | 1 MB | Notes |
|---|---|---|---|---|
| XorIDA split (2-of-2) | ~0.5ms | ~2ms | <5ms | Linear scaling with bundle size |
| XorIDA split (2-of-3) | ~0.8ms | ~3ms | ~8ms | Higher N increases share count |
| HMAC-SHA256 tag | <0.1ms | <0.1ms | <0.1ms | Constant for 32-byte key + sig |
| Boot reconstruct | ~0.5ms | ~2ms | <5ms | HMAC verify + XOR reconstruction |
| Per-file SHA-256 | <0.1ms | ~0.5ms | ~3ms | Scales with total file content |
| Ed25519 manifest verify | <0.1ms | <0.1ms | <0.1ms | Fixed cost regardless of bundle size |
| Share distribution (LAN) | ~5ms | ~10ms | ~20ms | Network-dependent, parallel delivery |
| Full deploy pipeline | ~10ms | ~25ms | ~50ms | Split + HMAC + distribute + manifest |
| Full boot pipeline | ~5ms | ~15ms | ~40ms | Collect + verify + reconstruct + load |
Memory Overhead
During reconstruction, memory usage equals approximately 2x the bundle size: one copy for the share data being reconstructed, one for the output bundle. After reconstruction completes, share data is zeroed and released. Peak memory for a 1 MB bundle is approximately 2.5 MB (bundle + overhead + tmpfs write buffer).
Comparison: Boot Overhead vs. Alternatives
| Approach | Boot Overhead (100 KB) | Hardware Required | Security Model |
|---|---|---|---|
| UEFI Secure Boot | ~500ms | UEFI firmware | Computational (RSA/ECDSA) |
| TPM PCR Extend | ~200ms | TPM 2.0 chip | Computational (SHA-256 chain) |
| dm-verity | ~50ms | None | Computational (Merkle tree) |
| FDE Decrypt | ~100ms | None | Computational (AES) |
| xBoot | ~25ms | None | Information-theoretic |
Throughput at Scale
For fleet deployments, xBoot's deploy pipeline processes approximately 20 MB/s of source code (split + HMAC + envelope + encode). A 10 MB application bundle deploys in approximately 500ms. Share distribution is parallelized: all N shares are sent simultaneously to their respective storage backends.
Boot reconstruction throughput is similar: approximately 20 MB/s. The bottleneck for large bundles is the XorIDA reconstruction, which is linear in bundle size. For bundles under 1 MB (which covers most server applications), total boot overhead is under 50ms.
ACI Surface
Six core operations covering the complete deploy-boot lifecycle. Every function returns Result<T, XbootError> and never throws.
HMAC the bundle blob, double-pad for block alignment, XorIDA split into K-of-N shares, wrap each share in an xFormat binary envelope (product type 0x0035), and Base45 encode. Returns encoded shares and a unique deployment ID.
XorIDA reconstruct from K shares, unpad, HMAC-SHA256 verify. Returns the original bundle blob only if integrity passes. Five validation checks: product type, UUID match, no duplicate indices, sufficient count, and parameter match.
Build a JSON manifest with deployment metadata (deployId, gitSha, timestamp, file hashes, split parameters), then Ed25519-sign it with the admin's private key. Returns the manifest JSON, signature, and signer DID.
Verify the Ed25519 signature against the trusted admin DID. DID mismatch or invalid signature returns an error immediately — the shares are never touched if the manifest is untrusted.
Verify per-file SHA-256 hashes of the reconstructed bundle against the signed manifest. Returns an attestation result with pass/fail per file and overall integrity status. This is the third integrity layer.
High-level pipeline: walk source directory, compute per-file SHA-256, bundle into binary format, split via XorIDA, and sign deployment manifest. Returns encoded shares, signed manifest, and deployment metadata.
High-level pipeline: verify manifest signature, decode and validate shares, reconstruct with HMAC verification, check per-file SHA-256, write to tmpfs (/dev/shm, mode 0o700), dynamically import the entrypoint, and cleanup in finally block.
Use Cases
xBoot protects any software that needs to run without ever existing as plaintext on persistent storage.
Split API server source into 2-of-3 shares across separate volumes. A single disk compromise reveals zero information about the code. Boot reconstructs in RAM. The server runs with full functionality while the code never touches persistent storage.
2-of-3CI pipeline runs deploy(), distributes shares to separate storage backends (S3, GCS, Azure Blob). VPS boot() collects K shares from different cloud providers and reconstructs in memory. No single cloud provider holds the complete code.
Multi-CloudProprietary algorithms and trade secrets never exist as readable files on production servers. Satisfies SOC 2 code-at-rest controls and SOX requirements for protecting intellectual property in production environments.
SOC 2Deploy to untrusted environments where physical server access cannot be controlled. K-1 shares reveal nothing. Seizure of a single server yields zero intelligence about the application logic or algorithms.
Zero KnowledgeSCADA HMI applications and control logic split 2-of-3 across field controllers. Compromise of a single controller at a remote substation reveals nothing about the supervisory logic. Boot overhead (less than 50ms for 100 KB bundles) is negligible in typical 5-30 second industrial boot windows. Satisfies IEC 62443-4-2 SR 3.4 (software integrity) and SR 7.3 (control system backup).
IEC 62443Distribution automation controllers run split firmware across redundant units. Meters, relays, and protection devices each hold one share. K-of-N reconstruction at the substation controller ensures fault tolerance (2-of-3 survives single device failure). NERC CIP-010 change management satisfied via Ed25519-signed deployment manifests with git SHA and per-file hashes.
NERC CIPProprietary motion control algorithms and robotics firmware split across redundant PLCs. Production line continues if one PLC fails (2-of-3 fault tolerance). Physical theft of a single PLC reveals zero information about the control algorithms. Protects manufacturing IP in hostile jurisdictions. ARM TrustZone integration isolates share reconstruction in Secure World on Cortex-A PLCs.
IP ProtectionChemical dosing algorithms and process control logic split across treatment plant zones. Zone 1 holds share 1, Zone 2 holds share 2, central SCADA holds share 3. 2-of-3 reconstruction at the operator workstation. Per IEC 62443 zone/conduit model, no single zone compromise exposes complete control logic. Manifest signatures provide cryptographic proof of authorized code deployment for EPA compliance audits.
EPA ComplianceEvery deployment produces an Ed25519-signed manifest with git SHA, per-file hashes, timestamps, and deployment ID. Cryptographic proof of exactly what code ran in production at any point in time.
Ed25519Tenant-specific modules split with per-tenant share distributions. Each tenant's code is protected independently. Compromise of one tenant's storage reveals nothing about other tenants' code.
IsolationML model weights and inference code split across storage backends. No single storage location holds the complete model. Boot reconstructs the model in memory for inference, then cleans up. Protects model IP from infrastructure providers.
Model IPRegulatory Alignment
xBoot addresses code integrity, firmware resilience, and data-at-rest requirements across multiple compliance frameworks.
| Framework | Requirement | xBoot Mechanism |
|---|---|---|
| NIST SP 800-193 | Platform Firmware Resiliency Guidelines. Protection, detection, and recovery for firmware. | XorIDA split provides protection (K-1 shares reveal nothing). HMAC + Ed25519 manifest provides detection (tampered code rejected). Multi-share distribution provides recovery (K-of-N fault tolerance). |
| IEC 62443 | Industrial automation security. Zone and conduit model. Code integrity for control systems. | Shares distributed across security zones. No single zone compromise exposes the complete control logic. Boot reconstruction verified with three integrity layers before execution in the control zone. |
| FIPS 140-3 | Cryptographic module validation. Code integrity verification. | HMAC-SHA256 integrity tags on every share. Ed25519 manifest signatures from DID-identified admins. Per-file SHA-256 verification against signed manifest. Three independent integrity mechanisms. |
| SOC 2 Type II | Trust service criteria: security, availability, confidentiality of code and data. | Code confidentiality via information-theoretic splitting. Availability via K-of-N fault tolerance (2-of-3 survives one node failure). Ed25519-signed deployment manifests for auditability. |
| CMMC Level 3 | Controlled Unclassified Information (CUI) protection. System integrity verification. | CUI-processing code never exists on persistent disk. tmpfs execution with cleanup in finally block. Manifest provides cryptographic evidence of code integrity at every boot. |
Compliance Workflow
For organizations subject to NIST SP 800-193 or IEC 62443, xBoot provides a structured compliance workflow. The Ed25519-signed deployment manifest serves as cryptographic evidence of what code was deployed, when, and by whom (identified by DID). Auditors can verify the manifest signature to confirm deployment authenticity without accessing the source code.
The per-file SHA-256 hashes in the manifest enable fine-grained audit: auditors can verify that specific files (e.g., authentication modules, encryption libraries) are exactly the approved versions. Combined with git SHA references, this creates a complete chain of custody from source repository to production execution.
Industry-Specific Requirements
| Industry | Requirement | How xBoot Helps |
|---|---|---|
| Financial Services | SEC 17a-4: immutable records. SOX 404: internal controls. | Deployment manifests are append-only with HMAC chains. Ed25519 signatures provide non-repudiation. Audit trail proves exactly what code processed financial data. |
| Healthcare | HIPAA Security Rule: technical safeguards for ePHI. | PHI-processing code never exists as plaintext on disk. tmpfs execution minimizes the window of exposure. Manifest hashes verify code integrity before processing patient data. |
| Defense / Gov | NIST 800-53: system integrity. CNSA 2.0: quantum resistance. | XorIDA provides unconditional (quantum-proof) code confidentiality. Triple integrity verification exceeds NIST SI-7 (Software, Firmware, and Information Integrity) requirements. |
| Energy / Utilities | NERC CIP-010: configuration change management. | Every deployment is tracked via signed manifest with git SHA, timestamp, and admin DID. Unauthorized code changes are detectable via manifest mismatch at boot. |
Cross-ACI Patterns
xBoot integrates with the PRIVATE.ME platform to provide code integrity within the broader security infrastructure.
xBoot + xLink: Agent-Verified Boot
xLink provides DID-authenticated agent-to-agent communication. xBoot shares can be distributed via xLink channels, ensuring that only DID-authenticated agents receive shares. The boot server authenticates the share source via xLink envelope verification before accepting shares for reconstruction.
import { Agent } from '@private.me/xlink'; import { deploy } from '@private.me/xboot'; // Deploy: split code into shares const result = await deploy(bundleConfig, { n: 3, k: 2 }); // Distribute shares via xLink authenticated channels const admin = await Agent.fromSeed(adminSeed); for (let i = 0; i < result.value.shares.length; i++) { await admin.send( shareHolderDids[i], new TextEncoder().encode(result.value.shares[i]) ); }
xBoot + xProve: Verifiable Boot Proofs
xProve chains boot events into a tamper-evident audit trail. Every deploy, boot, reconstruction, and integrity check generates HMAC-SHA256 integrity tags. xProve links these into a verifiable chain that proves exactly what code ran on which server at what time. Auditors can verify the entire boot history without accessing the code itself.
xBoot + xStore: Split-Stored Binaries
xStore provides a universal split-storage layer with pluggable backends (S3, GCS, Azure Blob, local filesystem). xBoot shares can be stored via xStore, distributing shares across multiple cloud providers automatically. On boot, xStore collects K shares from the configured backends and passes them to xBoot for reconstruction.
xBoot + xGhost: Ephemeral Execution
xGhost provides ephemeral execution with automatic memory purging. Combined with xBoot, the code is reconstructed in memory by xBoot, executed within an xGhost ephemeral context, and then both the code and the execution state are purged. The code exists in memory only for the duration of the specific operation, not the entire server lifetime.
xBoot + xID: DID-Authenticated Deployments
xID provides per-verifier ephemeral DIDs. The deployment admin's DID is embedded in the manifest signature. On boot, the manifest verifier checks the signer DID against a trusted admin registry. Ephemeral DIDs from xID can be used for one-time deployments where the deployment identity should not be linkable across different servers.
xBoot + xPass: Billing-Gated Code Distribution
xPass can enforce billing on code distribution channels. Each xBoot share distribution requires an active xPass billing connection between the deployer and the share-holding node. If billing lapses, share rotation is suspended — the node cannot receive new deployment shares. This creates a billing enforcement layer for code distribution, complementing xPass's M2M communication billing.
Integration Architecture
// Full secure boot with PRIVATE.ME platform integration // 1. xStore: collect shares from distributed backends const shares = await xstore.collectShares(deployId, k); // 2. xLink: verify share source authentication for (const share of shares) { const verified = await xlink.verifyEnvelope(share.envelope); if (!verified.ok) throw new Error('Share source unverified'); } // 3. xBoot: reconstruct and execute const result = await xboot.boot({ shares: shares.map(s => s.data), manifest: signedManifest, trustedAdminDid: adminDid, entrypoint: 'start.ts', }); // 4. xProve: log boot event to audit trail await xprove.logEvent({ type: 'BOOT_COMPLETE', deployId: manifest.deployId, gitSha: manifest.gitSha, });
Boot Measurement and Remote Attestation
xBoot integrates with platform attestation mechanisms to provide cryptographic proof of code integrity to remote verifiers. Three attestation patterns address different infrastructure requirements.
TPM 2.0 PCR-Based Attestation
Trusted Platform Modules provide hardware-backed measurement storage via Platform Configuration Registers (PCRs). xBoot extends application-layer PCRs (10-15) with attestation hashes after successful boot verification. The measurement flow:
// After xBoot completes HMAC + manifest + per-file verification const bootResult = await boot(config); const attestation = attestBoot(manifest, reconstructedBundle); // Extend PCR 10 with overall attestation hash const pcrValue = attestation.overallHash; await tpm2.pcrExtend(10, pcrValue); // PCR 10 now contains: SHA-256(previous_value || attestation_hash) // This creates an ordered hash chain of all boot events. // Remote attestation: prove platform state to external verifier const quote = await tpm2.createQuote([10], nonce); const signature = await tpm2.signQuote(quote, aikHandle); // Verifier checks: quote signature, nonce freshness, PCR values. // If PCR 10 matches expected hash chain, code integrity is proven.
PCR Selection Strategy: PCRs 0-7 are reserved for BIOS/UEFI measurements. PCRs 8-9 for bootloader and kernel. PCRs 10-15 available for OS and application use. xBoot uses PCR 10 by default to avoid conflicts with other application-layer measurements. Organizations running multiple attestation systems can assign different PCRs per application (e.g., PCR 10 for xBoot, PCR 11 for container runtime, PCR 12 for database encryption keys).
TPM Quote Protocol: Remote attestation works via TPM2_Quote operation. The verifier sends a fresh nonce. The TPM signs a structure containing current PCR values and the nonce using the Attestation Identity Key (AIK). The verifier checks the signature against the AIK public key and confirms the nonce matches. If PCR 10 contains the expected xBoot attestation hash, the verifier has cryptographic proof that the platform booted the correct code. No secrets are revealed — only the fact that integrity checks passed.
ARM TrustZone Attestation (OT/ICS Devices)
ARM-based operational technology devices (PLCs, RTUs, edge controllers) increasingly support TrustZone. xBoot integrates with OP-TEE (Open Portable Trusted Execution Environment) for secure boot attestation on ARM Cortex-A processors:
// OP-TEE Trusted Application (Secure World) struct xboot_attestation { uint8_t manifest_hash[32]; // SHA-256 of signed manifest uint8_t bundle_hash[32]; // SHA-256 of reconstructed bundle uint8_t overall_hash[32]; // Combined attestation hash uint64_t timestamp; // Boot time (monotonic counter) }; // Secure World stores attestation in protected memory TEE_Result store_boot_attestation(struct xboot_attestation *att) { // Write to Secure Storage (encrypted by TrustZone) return TEE_WriteObjectData(secure_handle, att, sizeof(*att)); } // Normal World requests attestation proof TEE_Result get_attestation_proof(uint8_t *signature_out) { // Sign attestation with device-unique key (fused in TrustZone) return TEE_AsymmetricSignDigest(att_key, &att, signature_out); }
TrustZone Boot Flow for Industrial Controllers: At power-on, the ARM Boot ROM (immutable, fused in silicon) measures and boots the first-stage bootloader. The bootloader measures U-Boot, U-Boot measures the kernel, and the kernel initializes OP-TEE. xBoot runs as a Trusted Application in OP-TEE Secure World. Share 1 comes from Normal World filesystem, Share 2 from Secure Storage. Reconstruction and HMAC verification happen in Secure World, isolated from the Normal World OS. The attestation hash is signed with a device-unique key (derived from TrustZone UID) and can be verified remotely by the SCADA master or operations center.
Why This Matters for OT/ICS: Industrial control systems face unique threats: long service life (20+ years), harsh physical environments, difficulty patching firmware, and high consequence of failure. TrustZone provides hardware-based isolation without requiring discrete TPM chips (which add cost and complexity to ruggedized enclosures). A water treatment plant deploying 50 field controllers can verify code integrity on all units via remote attestation without physical site visits. IEC 62443-4-2 SR 3.4 (software integrity) and SR 1.2 (software update authentication) are both satisfied.
UEFI Secure Boot Layering
xBoot does not replace UEFI Secure Boot — it complements it. UEFI Secure Boot verifies the bootloader and kernel signatures against certificates in the UEFI key database. xBoot operates at the application layer, protecting code loaded after the kernel is running. The combined defense:
| Boot Phase | Mechanism | What's Protected | Trust Root |
|---|---|---|---|
| UEFI Firmware | UEFI Secure Boot | Bootloader (GRUB, systemd-boot) | UEFI Platform Key (PK) |
| Kernel Boot | UEFI Secure Boot | Linux kernel, initramfs | Key Exchange Key (KEK), db certificates |
| Application Load | xBoot | Server application code | Ed25519 admin DID |
Certificate Expiry Context (2026): Microsoft's UEFI CA 2023 and KEK CA 2011 certificates expire in June 2026. Affected systems must update UEFI firmware to receive refreshed certificates. xBoot's Ed25519-based manifest signatures are independent of the UEFI certificate chain and unaffected by UEFI certificate rotation. Organizations can update UEFI certificates on their own schedule without coordinating with xBoot deployment cycles.
Defense-in-Depth Rationale: A bootkit that bypasses UEFI Secure Boot can still not reconstruct xBoot-protected application code without obtaining K shares. Conversely, an attacker with K shares but no kernel access cannot modify the boot chain to inject malicious code because UEFI Secure Boot blocks unsigned kernels. The layered approach raises the bar significantly: an attacker must compromise both the UEFI certificate chain AND the xBoot share distribution infrastructure simultaneously.
Measured Boot vs. Secure Boot
xBoot supports both paradigms, which serve different purposes:
Measured Boot (TPM): Records what booted without enforcing policy. PCRs store measurements. Remote attestation allows external systems to decide whether to trust the platform based on what actually loaded. Enables detection after the fact and policy enforcement at the network edge (e.g., deny network access if PCR values indicate unauthorized code).
xBoot's Role: Provides application-layer measured boot (attestation hash extended to PCR 10) AND secure boot (HMAC verification blocks execution if shares are tampered). Combining all three creates a comprehensive boot integrity strategy.
Remote Attestation Use Case: Cloud Confidential Computing
Cloud confidential VMs (Azure Confidential VMs, AWS Nitro Enclaves, GCP Confidential VMs) provide hardware attestation via AMD SEV-SNP or Intel TDX. xBoot integrates by extending the attestation report with application-layer code measurements:
1. Confidential VM boots with SEV-SNP attestation enabled.
2. xBoot reconstructs server code from shares, computes attestation hash.
3. Attestation hash is hashed with the SEV-SNP measurement.
4. Combined measurement sent to remote verifier (e.g., Azure Attestation Service).
5. Verifier checks: SEV-SNP report signature, firmware measurements, xBoot attestation hash.
6. If all checks pass, verifier releases secrets (database encryption keys, API tokens).
This pattern ensures that secrets are only released to VMs running the correct code, verified both at the hypervisor level (SEV-SNP) and the application level (xBoot). An attacker who gains VM access cannot decrypt databases or access APIs without also compromising the attestation chain.
Why XorIDA
XorIDA provides the mathematical foundation that makes xBoot's guarantees possible. No encryption algorithm — no matter how strong — can match the security properties of information-theoretic splitting.
K-1 shares contain literally zero bits of information about the original code. This is not "hard to break" — it is mathematically impossible. There is nothing to brute-force, nothing to factor, nothing to search.
XorIDA operates over GF(2) using bitwise XOR operations. Splitting a 1 MB binary takes less than 5ms. Reconstruction is equally fast. The security overhead is negligible compared to network latency for share distribution.
XorIDA's security does not depend on computational hardness (unlike RSA, ECC, or AES). No quantum computer, no future algorithm, no mathematical breakthrough affects the guarantee. The security is permanent.
There is no encryption key to manage, rotate, or protect. The split IS the security. Each share is a random-looking blob. Combine K shares to reconstruct. Lose K-1 shares and nothing is compromised.
Security Properties
Three integrity layers, information-theoretic confidentiality, and defense-in-depth against every realistic threat vector.
| Property | Mechanism | Guarantee |
|---|---|---|
| Code confidentiality | XorIDA K-of-N threshold split | Information-theoretic (zero leakage from K-1 shares) |
| Bundle integrity | HMAC-SHA256 (32-byte key + 32-byte signature) | Tampered shares rejected before data returned |
| Manifest authenticity | Ed25519 digital signature (DID-based) | Unsigned/forged manifests rejected |
| Per-file integrity | SHA-256 hash per file vs. manifest | Defense-in-depth against bundle corruption |
| Code at rest | tmpfs only (/dev/shm, mode 0o700) | Plaintext never touches persistent disk |
| Cleanup | rmSync in finally block | tmpfs deleted even if import fails |
Threat Model
| Threat | Mitigation | Status |
|---|---|---|
| Disk compromise (<K disks) | XorIDA information-theoretic guarantee | Mitigated |
| Share tampering | HMAC-SHA256 + per-file SHA-256 | Mitigated |
| Manifest forgery | Ed25519 signature from trusted DID | Mitigated |
| tmpfs exposure | Mode 0o700/0o600, cleanup in finally | Minimized |
| Admin key compromise | HSM/threshold signing (recommended) | Consumer responsibility |
| Replay attack | deployId + timestamp in manifest | Consumer responsibility |
| Memory dump during execution | xGhost ephemeral context (recommended) | Consumer responsibility |
Error Code Reference
| Error Code | Stage | Description |
|---|---|---|
| INVALID_SHARE:WRONG_PRODUCT | Decode | Share has incorrect product type (not 0x0035) |
| INVALID_SHARE:UUID_MISMATCH | Decode | Shares from different deployments mixed together |
| INVALID_SHARE:DUPLICATE_ID | Decode | Same share index provided twice |
| INSUFFICIENT_SHARES | Decode | Fewer than K shares provided |
| INVALID_SHARE:PARAMS_MISMATCH | Decode | Share n/k does not match manifest |
| HMAC_MISMATCH | Reconstruct | Reconstructed data fails HMAC verification |
| MANIFEST_SIGNATURE_INVALID | Verify | Ed25519 signature verification failed |
| FILE_HASH_MISMATCH | Attest | Per-file SHA-256 does not match manifest |
Ship Proofs, Not Source
xBoot generates cryptographic proofs of correct execution without exposing proprietary algorithms. Verify integrity using zero-knowledge proofs — no source code required.
- Tier 1 HMAC (~0.7KB)
- Tier 2 Commit-Reveal (~0.5KB)
- Tier 3 IT-MAC (~0.3KB)
- Tier 4 KKW ZK (~0.4KB)
Use Cases
Honest Limitations
Six known limitations documented transparently. xBoot's security model requires trade-offs in deployment flexibility.
| Limitation | Impact | Mitigation |
|---|---|---|
| Requires K shares available at boot | 2-of-2 requires both share-holding nodes to be online for reconstruction. A single node failure blocks boot. | Upgrade to 2-of-3 for fault tolerance — any 2 of 3 nodes can reconstruct. For critical systems, 3-of-5 provides resilience against 2 simultaneous failures. |
| In-memory only (no disk write) | The complete code bundle must be reconstructed in memory before execution. Memory usage equals approximately 2x the bundle size during reconstruction. | Chunk large bundles into independently-split segments. Each segment reconstructed separately. Memory usage equals the largest segment, not the total. Reconstruction is fast: less than 5ms for 1 MB. |
| Single-machine scope | xBoot protects code on a single machine. It does not coordinate boot across a cluster of machines. Each machine independently collects shares and reconstructs. | Orchestrate cluster boot via xLink-authenticated share distribution. xStore provides consistent share retrieval across machines. Rolling boot across node groups minimizes downtime. |
| No hot reload | Updating a running application requires a full stop, reconstruct, restart cycle. Live code patching is not supported. | The full restart cycle takes less than 100ms for typical bundles. Rolling deployments across node groups minimize downtime. Hot reload would compromise the security model. |
| No environment attestation | xBoot verifies the integrity of the code bundle but does not attest the execution environment. A compromised OS could intercept the reconstructed code. | Pair with TEE (SGX, TrustZone, SEV-SNP) for environment attestation. xGhost provides ephemeral execution with automatic purge for additional algorithm protection. |
| Full reconstruction required | No partial execution. The entire bundle must be reconstructed before any code can run. Cannot selectively boot individual modules. | Split the application into independently-bootable modules, each with its own xBoot share set. This trades deployment complexity for boot granularity. |
Limitation Details
On K-share availability: The most common deployment is 2-of-3, which tolerates one node failure. For mission-critical systems, 3-of-5 tolerates two simultaneous failures. The choice of K and N is a trade-off between fault tolerance (higher N-K) and security (higher K). A 2-of-2 deployment has zero fault tolerance but maximum security — both shares must be present, and a single share reveals nothing.
On memory requirements: The 2x memory overhead during reconstruction is a fundamental constraint of the XorIDA algorithm. For very large bundles (>100 MB), chunked reconstruction is recommended: split the application into independently-bootable segments, each reconstructed and loaded separately. This reduces peak memory to the size of the largest segment.
On environment attestation: xBoot verifies code integrity but not environment integrity. A compromised operating system could intercept the reconstructed code in memory. For maximum protection, pair xBoot with hardware attestation (SGX, TrustZone, SEV-SNP) or xGhost ephemeral execution. xBoot provides the code integrity layer; the environment integrity layer is a separate concern.
Enterprise CLI
xboot-cli provides a standalone HTTP server for enterprise deployments. Port 3700. Docker-ready. Air-gapped capable.
Endpoints
// Deploy operations POST /deploy // Split source into shares POST /deploy/bundle // Bundle source directory POST /deploy/split // Split an existing bundle POST /deploy/manifest // Sign deployment manifest // Boot operations POST /boot // Full boot pipeline POST /boot/verify-manifest // Verify manifest signature POST /boot/reconstruct // Reconstruct from shares POST /boot/attest // Verify per-file SHA-256 // Management GET /deployments // List deployment history GET /deployments/:id // Get deployment details // Health GET /health // Server status
Docker Deployment
services: xboot: image: private.me/xboot-cli:latest ports: - "3700:3700" environment: - XBOOT_PORT=3700 - XBOOT_TMPFS_BASE=/dev/shm - XBOOT_ADMIN_DID=did:key:z6Mk... volumes: - xboot-data:/data - type: tmpfs target: /dev/shm restart: always
Configuration
xboot-cli is configured via environment variables. All settings have sensible defaults for development. Production deployments should explicitly set the admin DID and tmpfs base path.
| Variable | Default | Description |
|---|---|---|
| XBOOT_PORT | 3700 | HTTP server port |
| XBOOT_TMPFS_BASE | /dev/shm | RAM-backed filesystem for code execution |
| XBOOT_ADMIN_DID | (required) | Trusted admin DID for manifest verification |
| XBOOT_DATA_DIR | /data | Persistent storage for deployment history |
| XBOOT_DEFAULT_N | 3 | Default total shares for split |
| XBOOT_DEFAULT_K | 2 | Default threshold for reconstruction |
| XBOOT_CLEANUP_ON_EXIT | true | Auto-cleanup tmpfs on process exit |
Air-Gapped Operation
xboot-cli is designed for air-gapped environments. All cryptographic operations (XorIDA splitting, HMAC-SHA256, Ed25519 signing, SHA-256 hashing) use the built-in Web Crypto API with no external dependencies. Shares can be transported via USB drives, optical media, or any offline channel. The CLI validates shares entirely locally without network access.
For air-gapped deployments, the workflow is: (1) deploy() on the build machine, producing Base45-encoded shares on separate media; (2) physically transport K media to the target machine; (3) boot() reads shares from the media, reconstructs in memory, and executes. The target machine never needs network connectivity.
Viral Onboarding: < 2 Minute M2M Setup
With Xlink: < 2 minutes, zero configuration
Speedup: 21-33× faster
One-Line Connection (SDK)
import { connect } from '@private.me/agent-sdk'; // Zero-config discovery const bootService = await connect('secure-boot-attestation'); // Use immediately for firmware verification const result = await bootService.send({ type: 'attest', data: { deployId: '...', measurements: [...], manifest: signedManifest } });
Network effects: When your supplier already uses Xlink, connection is instant. When they don't, you send an invite (< 10 sec), they accept (< 60 sec), and all future connections are instant.
CLI Alternative
# Initialize once xlink init # Connect to attestation service xlink connect secure-boot-attestation # Invite a supplier to join xlink invite partner-factory-boot
Zero-Downtime Migration
import { DualModeAdapter } from '@private.me/agent-sdk'; // Both Xlink AND your existing API key work const adapter = new DualModeAdapter({ xlink: bootAgent, fallback: { apiKey: process.env.FACTORY_API_KEY } }); const result = await adapter.call('attest', { deployId: '...', measurements: [...] }); // Track adoption progress console.log(adapter.getMetrics()); // { xlinkPercentage: 73, xlinkCalls: 146, fallbackCalls: 54 }
As your supplier partners adopt Xlink, your xlinkPercentage automatically increases. No code changes required.
Why Supply Chains Need Viral M2M
- Instant verification: Firmware attestation flows must complete in real-time during boot. API key setup delays create deployment bottlenecks.
- Multi-party trust: Secure boot involves OEMs, component suppliers, foundries, and auditors. Manual key exchange across 5+ parties is untenable.
- Network effects: Each manufacturer's adoption reduces friction for their entire supply chain—suppliers connect instantly to multiple customers.
Each manufacturer connects to ~3 suppliers → exponential growth. Growth projection: Month 1 (100 manufacturers) → Month 12 (74,185 manufacturers) with VC = 1.2
Verifiable Code Protection
Every operation in this ACI produces a verifiable audit trail via xProve. HMAC-chained integrity proofs let auditors confirm that data was split, stored, and reconstructed correctly — without accessing the data itself.
Read the xProve white paper →
Enhanced Identity with Xid
xBoot can optionally integrate with Xid to enable unlinkable device attestation — verifiable within each boot context, but uncorrelatable across reboots, locations, or time.
Three Identity Modes
How Ephemeral Device Attestation Works
// Initialize xBoot with Xid integration import { createBootClient } from '@private.me/xboot-cli'; import { XidClient } from '@private.me/xid'; const xid = new XidClient({ mode: 'ephemeral' }); const boot = createBootClient({ identityProvider: xid }); // Each boot derives unlinkable device DID automatically const attestation = await boot.attest(); → [xBoot] Deriving ephemeral device DID from master seed... → [xBoot] DID: did:key:z6MkG... (unique to this boot + device + epoch) → [xBoot] Generated TPM attestation with ephemeral identity (~50µs) → [xBoot] Key purged (<1ms exposure) // Boot is verified with unlinkable DID // Attestation works within context, but cross-boot correlation fails
See the Xid white paper for details on ephemeral identity primitives and K-of-N convergence.
Market Positioning
| Industry | Use Case | Compliance Driver |
|---|---|---|
| OT/ICS | Industrial control system attestation with unlinkable boot logs | NERC CIP, IEC 62443, NIST 800-82 |
| Defense | Classified hardware boot with IAL3 device identity | FISMA, DoD IL5/6, CMMC Level 3 |
| Hardware Vendors (Anti-Cloning) | TPM-bound boot prevents device cloning—unlinkable attestation per deployment blocks correlation. Ship to distributors without enabling gray-market resale. Each device self-attests, but cross-device tracking impossible. | IP protection, channel control |
| Healthcare | Medical device attestation with HIPAA-compliant boot logs | HIPAA, FDA 21 CFR 820, IEC 62304 |
Key Benefits
- Cross-boot unlinkability — Can't track devices across power cycles
- Per-boot derivation — Same device has different DIDs per restart
- Epoch rotation — DIDs automatically rotate daily/weekly/monthly
- Split-protected derivation — Master seed is XorIDA-split, never reconstructed
- TPM integration — PCR-bound attestation with ephemeral identity
- Critical infrastructure protection — NERC CIP, IEC 62443 compliance
Integration Example
Full lifecycle: deploy with manifest signing, distribute shares, boot with triple verification.
import { deploy } from '@private.me/xboot'; import { generateIdentity } from '@private.me/xlink'; // Generate admin identity for manifest signing const admin = await generateIdentity(); if (!admin.ok) throw new Error('Keygen failed'); // Deploy: bundle + split + sign manifest const result = await deploy( { sourceDir: '/path/to/server/src', gitSha: 'abc1234', adminDid: admin.value.did, adminPrivateKey: admin.value.privateKey, }, { n: 3, k: 2 } // 2-of-3 threshold ); if (result.ok) { console.log(`Deploy ID: ${result.value.deployId}`); console.log(`Shares: ${result.value.shares.length}`); // Distribute shares to separate storage locations }
import { boot } from '@private.me/xboot'; // Collect K shares from separate storage backends const result = await boot({ shares: [shareFromDisk1, shareFromDisk2], manifest: signedManifestFromSecureStorage, trustedAdminDid: 'did:key:z6Mk...', entrypoint: 'start.ts', tmpfsBase: '/dev/shm', }); if (!result.ok) { console.error(`Boot failed: ${result.error}`); process.exit(1); } // Server is running from RAM // tmpfs cleaned up in finally block
Ready to deploy xBoot?
Talk to Sol, our AI platform engineer, or book a live demo with our team.
Deployment Options
SaaS Recommended
Fully managed infrastructure. Call our REST API, we handle scaling, updates, and operations.
- Zero infrastructure setup
- Automatic updates
- 99.9% uptime SLA
- Pay per use
SDK Integration
Embed directly in your application. Runs in your codebase with full programmatic control.
npm install @private.me/xboot- TypeScript/JavaScript SDK
- Full source access
- Enterprise support available
On-Premise Enterprise
Self-hosted infrastructure for air-gapped, compliance, or data residency requirements.
- Complete data sovereignty
- Air-gap capable
- Docker + Kubernetes ready
- RBAC + audit logs included