Policies define the verification requirements for attested TLS connections. They control what TEE measurements and security levels are acceptable.
Policy structure
All policies must specify a type and verification rules:
const policy = {
type: "dstack_tdx" ,
allowed_tcb_status: [ "UpToDate" ],
expected_bootchain: {
mrtd: "b24d3b24..." ,
rtmr0: "24c15e08..." ,
rtmr1: "6e1afb74..." ,
rtmr2: "89e73ced..."
},
os_image_hash: "86b18137..." ,
app_compose: {
runner: "docker-compose" ,
docker_compose_file: "..."
}
}
Development policy
For testing and development, use a relaxed policy that skips bootchain verification:
import { createAtlsFetch } from "@concrete-security/atlas-node"
// WARNING: disable_runtime_verification skips bootchain/app_compose/os_image checks
// Use ONLY for development/testing, NEVER in production
const devPolicy = {
type: "dstack_tdx" ,
disable_runtime_verification: true , // DEV ONLY
allowed_tcb_status: [ "UpToDate" , "SWHardeningNeeded" , "OutOfDate" ]
}
const fetch = createAtlsFetch ({
target: "enclave.example.com" ,
policy: devPolicy
})
Never use disable_runtime_verification: true in production. This skips all bootchain, OS image, and application verification.
Production policy
Production policies require full verification with bootchain measurements:
import { createAtlsFetch , mergeWithDefaultAppCompose } from "@concrete-security/atlas-node"
import { readFileSync } from "fs"
const dockerComposeFile = readFileSync ( "vllm_docker_compose.yml" , "utf-8" )
const productionPolicy = {
type: "dstack_tdx" ,
expected_bootchain: {
mrtd: "b24d3b24e9e3c16012376b52362ca09856c4adecb709d5fac33addf1c47e193da075b125b6c364115771390a5461e217" ,
rtmr0: "24c15e08c07aa01c531cbd7e8ba28f8cb62e78f6171bf6a8e0800714a65dd5efd3a06bf0cf5433c02bbfac839434b418" ,
rtmr1: "6e1afb7464ed0b941e8f5bf5b725cf1df9425e8105e3348dca52502f27c453f3018a28b90749cf05199d5a17820101a7" ,
rtmr2: "89e73cedf48f976ffebe8ac1129790ff59a0f52d54d969cb73455b1a79793f1dc16edc3b1fccc0fd65ea5905774bbd57"
},
os_image_hash: "86b181377635db21c415f9ece8cc8505f7d4936ad3be7043969005a8c4690c1a" ,
app_compose: mergeWithDefaultAppCompose ({
docker_compose_file: dockerComposeFile ,
allowed_envs: [ "EKM_SHARED_SECRET" , "AUTH_SERVICE_TOKEN" ]
}),
allowed_tcb_status: [ "UpToDate" , "SWHardeningNeeded" ]
}
const fetch = createAtlsFetch ({
target: "vllm.concrete-security.com" ,
policy: productionPolicy
})
JSON policies
Policies can be loaded from JSON files for easier management:
Load from file
policy.json
import { readFileSync } from "fs"
const policyJson = readFileSync ( "policy.json" , "utf-8" )
const policy = JSON . parse ( policyJson )
const fetch = createAtlsFetch ({
target: "enclave.example.com" ,
policy
})
Policy fields
Required fields
Field Type Description typestringPolicy type ("dstack_tdx" for Intel TDX) allowed_tcb_statusstring[]Acceptable TCB statuses (e.g., ["UpToDate"])
Runtime verification fields
By default, all runtime fields are required for production. Missing any field will cause a configuration error unless disable_runtime_verification is set to true.
Field Type Description expected_bootchainobjectMRTD and RTMR0-2 measurements os_image_hashstringSHA256 of Dstack image’s sha256sum.txt app_composeobjectExpected application configuration
Optional fields
Field Type Default Description grace_periodnumber0Grace period (seconds) for OutOfDate TCB status disable_runtime_verificationbooleanfalseSkip runtime checks (dev only) pccs_urlstringPhala’s PCCS Intel PCCS URL for collateral cache_collateralbooleanfalseCache Intel collateral
TCB status values
TCB (Trusted Computing Base) status indicates platform security posture:
Status Meaning Production Use UpToDatePlatform is fully patched ✅ Always use SWHardeningNeededSoftware requires specific mitigations ⚠️ Use if mitigations are implemented ConfigurationNeededBIOS/hardware config needs adjustment ⚠️ Use if config risk is acceptable OutOfDatePlatform TCB level is outdated ⚠️ Use only with grace period RevokedProcessor/keys are compromised ❌ Never use
Production TCB policy
const strictPolicy = {
type: "dstack_tdx" ,
allowed_tcb_status: [ "UpToDate" ],
// ... other required fields
}
Permissive TCB policy (with grace period)
const gracefulPolicy = {
type: "dstack_tdx" ,
allowed_tcb_status: [ "UpToDate" , "OutOfDate" ],
grace_period: 30 * 24 * 60 * 60 , // 30 days
// ... other required fields
}
Bootchain verification
Bootchain measurements verify the TEE’s boot process:
const policy = {
type: "dstack_tdx" ,
expected_bootchain: {
mrtd: "b24d3b24..." , // TD measurement root
rtmr0: "24c15e08..." , // Firmware measurements
rtmr1: "6e1afb74..." , // OS loader measurements
rtmr2: "89e73ced..." // OS kernel measurements
},
// ... other required fields
}
Bootchain measurements depend on hardware configuration (CPU count, memory, GPUs). Compute measurements for your specific deployment using dstack-mr. See Bootchain Verification for details.
Application verification
Verify the application running inside the TEE:
import { mergeWithDefaultAppCompose } from "@concrete-security/atlas-node"
const policy = {
type: "dstack_tdx" ,
app_compose: mergeWithDefaultAppCompose ({
docker_compose_file: "version: '3' \n services: \n app: \n image: myapp:latest" ,
allowed_envs: [ "API_KEY" , "DATABASE_URL" ]
}),
// ... other required fields
}
The mergeWithDefaultAppCompose helper fills in default Dstack configuration:
const merged = mergeWithDefaultAppCompose ({
docker_compose_file: "..." ,
allowed_envs: [ "MY_VAR" ]
})
// Result includes:
// - runner: "docker-compose"
// - manifest_version: 2
// - features: ["kms", "docker-in-docker", "run-as-root", ...]
// - Your custom fields
OS image verification
Verify the Dstack OS image:
const policy = {
type: "dstack_tdx" ,
os_image_hash: "86b181377635db21c415f9ece8cc8505f7d4936ad3be7043969005a8c4690c1a" ,
// ... other required fields
}
The OS image hash is the SHA256 of Dstack’s sha256sum.txt file.
Grace periods
Grace periods allow temporary acceptance of OutOfDate TCB status:
const policy = {
type: "dstack_tdx" ,
allowed_tcb_status: [ "UpToDate" , "OutOfDate" ],
grace_period: 30 * 24 * 60 * 60 , // 30 days in seconds
// ... other required fields
}
Grace period behavior:
Applies only when TCB status is OutOfDate
Requires OutOfDate in allowed_tcb_status
Value of 0 means no grace window
Use for patch cycle transitions
PCCS configuration
Customize Intel PCCS (Provisioning Certification Caching Service) endpoint:
const policy = {
type: "dstack_tdx" ,
pccs_url: "https://your-pccs.example.com" ,
cache_collateral: true , // Cache collateral for faster verification
// ... other required fields
}
Default PCCS: Phala’s public PCCS endpoint.
Verification errors
Handle specific verification failures:
import { createAtlsFetch } from "@concrete-security/atlas-node"
try {
const fetch = createAtlsFetch ({
target: "enclave.example.com" ,
policy: productionPolicy
})
const response = await fetch ( "/api/data" )
if ( ! response . attestation . trusted ) {
console . error ( "Attestation failed!" )
}
} catch ( err ) {
if ( err . message . includes ( "BootchainMismatch" )) {
console . error ( "Bootchain verification failed:" , err . message )
} else if ( err . message . includes ( "TcbStatusNotAllowed" )) {
console . error ( "TCB status not allowed:" , err . message )
} else if ( err . message . includes ( "Configuration" )) {
console . error ( "Policy configuration error:" , err . message )
} else {
console . error ( "Verification error:" , err . message )
}
}
Policy reuse
Share policies across multiple connections:
const commonPolicy = {
type: "dstack_tdx" ,
allowed_tcb_status: [ "UpToDate" ],
expected_bootchain: { /* ... */ },
os_image_hash: "86b18137..." ,
app_compose: { /* ... */ }
}
// Use same policy for multiple targets
const fetch1 = createAtlsFetch ({
target: "enclave1.example.com" ,
policy: commonPolicy
})
const fetch2 = createAtlsFetch ({
target: "enclave2.example.com" ,
policy: commonPolicy
})
Rust policy example
For Rust applications using the core library:
use atlas_rs :: {atls_connect, Policy , DstackTdxPolicy , ExpectedBootchain };
use serde_json :: json;
#[tokio :: main]
async fn main () -> Result <(), Box < dyn std :: error :: Error >> {
let tcp = tokio :: net :: TcpStream :: connect ( "vllm.example.com:443" ) . await ? ;
let policy = Policy :: DstackTdx ( DstackTdxPolicy {
expected_bootchain : Some ( ExpectedBootchain {
mrtd : "b24d3b24..." . into (),
rtmr0 : "24c15e08..." . into (),
rtmr1 : "6e1afb74..." . into (),
rtmr2 : "89e73ced..." . into (),
}),
os_image_hash : Some ( "86b18137..." . into ()),
app_compose : Some ( json! ({
"runner" : "docker-compose" ,
"docker_compose_file" : "..."
})),
allowed_tcb_status : vec! [ "UpToDate" . into ()],
.. Default :: default ()
});
let ( mut tls_stream , report ) = atls_connect ( tcp , "vllm.example.com" , policy , None ) . await ? ;
println! ( "TEE verified!" );
Ok (())
}
Next steps