How Secure Are You?

A CHERI label alone cannot describe security; protection depends on the architecture, software mode, authority design, and evidence.

“Uses CHERI” is not a complete security claim. A processor may implement CHERI instructions while an application still uses conventional pointers. A pure-capability application may have strong object bounds but run as one large component with access to every secret. A compartmentalised system may have narrow boundaries but still contain authentication or configuration flaws.

A useful security claim names what is being protected, the threats considered, and the supporting evidence. The following questions help turn a broad label into a testable description.

1. What are you protecting?

Start with assets and outcomes, not technology:

Then identify which components hold or can reach each asset. A capability system can only enforce a useful policy if authority has been divided deliberately.

2. Which attackers and failures matter?

A threat model describes the conditions the design is expected to withstand. Consider whether an attacker can:

Also consider accidental faults. CHERI can improve robustness even when no attacker is present by stopping invalid memory access closer to its source.

3. Which CHERI execution mode is used?

Ask what the relevant software actually does:

These modes describe related but distinct protections. A pure-capability application is not necessarily compartmentalised, and a hybrid application may protect only selected interfaces.

4. Which memory properties are enforced?

Check each relevant property separately:

CHERI provides architectural building blocks, but some properties require compiler, allocator, operating-system, or runtime support. Temporal safety is an important example. Record the mechanism in use rather than assuming it from the processor alone.

5. How much authority does each component receive?

A component with a capability for all application memory can remain highly dangerous even if each access is technically within bounds. Review:

Least privilege means giving each component only the authority required for its current task.

6. What evidence supports the claim?

Useful evidence may include:

A demonstration shows that one scenario worked. It is not automatically evidence for every build, platform, or attack path.

A more useful security statement

A broad statement might be:

The product is secure because it uses CHERI.

A more reviewable statement is:

The network parser runs as pure-capability code in a separate compartment. It receives a read-only capability bounded to one input buffer and a capability for one validated output queue. Tests confirm that out-of-bounds reads, writes, and unauthorised service calls fault without exposing application keys.

The second statement can be reviewed, tested, and improved. It also makes the remaining questions visible.

Key takeaways

Where next

A pointer bug becomes dangerous when changing a number changes authority.

Capabilities →