Problem Deploy Demo Security Pricing GitHub FAQ
Security architecture

Built for the security review.
Not just the sales conversation.

Every control claim on this page maps to a specific field in the record schema and a specific test in the write-storage-seal harness, which covers the commit sequence end to end. Hand this page to your security team.

Ed25519FIPS 186-5 Signing
FIPS 140-3Level 3 HSM (production)
RFC 3161Trusted Timestamp
COMPLIANCES3 Object Lock mode
33 FieldsSchema v1.0.0
10/10OWASP ASI Mapped
Security review

OWASP Top 10 for Agentic Applications mapping.

All 10 risks mapped to specific record fields. Evidence Type distinguishes pre-execution prevention from post-execution recording. The controls exist in the architecture. This is not a marketing document.

IDOWASP RiskEvidence TypeControlsWhat the artifact proves
ASI01Agent goal hijackPrev + Recordinput_hash · substrate enforcement · AUTHORIZATION_INPUT_MISMATCHInput committed in signed token before execution. Substrate blocks if actual input differs. Artifact proves authorized vs presented input.
ASI02Tool misuse and exploitationPrev + Recordtool_call_log · authorization_token_id · action_type · BLOCK_ON_SERVICE_UNAVAILABLESigned token declares action_type pre-execution. tool_call_log records every tool invoked. Comparison proves misuse.
ASI03Identity and privilege abuseRecordingprincipal_identity · signing_key_id · HSM signingEvery artifact names the agent the substrate recorded as acting, inside the signed payload. Altering it breaks the signature.
ASI04Agentic supply chain vulnerabilitiesRecordingmodel_version_hash · registry_validation_status · sdk_binary_sha3 · rekor_log_idExact model, SDK binary hash, Sigstore transparency log entry. Complete forensic supply chain traceability.
ASI05Unexpected code executionPrev + Recordaction_type · tool_call_log · BLOCK_ON_SERVICE_UNAVAILABLETIER-A token required before code execution. action_type and tool_call_log prove authorized vs actual execution.
ASI06Memory and context poisoningRecordingfull_prompt_snapshot · rag_evidence_bundle · causality_chain_hashComplete prompt captured at call time. RAG sources recorded with provenance. Forensic examiner identifies poisoning across chain.
ASI07Insecure inter-agent communicationRecordingcausality_chain_hash · instrumentation_coverageEach hand-off commits the parent record’s hash, so an inserted or missing step is detectable afterwards. Uninstrumented agents in the chain are marked, not assumed. PlainReal does not secure the channel; it evidences the hand-off.
ASI08Cascading failuresRecordingcausality_chain_hash · instrumentation_coverage · RECORD_COMMIT_FAILEDHash-chained record of every step. Coverage records instrumented vs uninstrumented nodes. Failure patterns reconstructable.
ASI09Human-agent trust exploitationPrev + Recordpolicy_version_hash · availability_policy · CONFIGURABLE_BY_ACTION_TYPEHuman approval tokens required for high-risk actions. Policy version bound to artifact proves governance in force at decision time.
ASI10Rogue agentsRecordingdeployment_mode · evidence_tier (TIER-A/B/C) · instrumentation_coverageTrust level per artifact. Uninstrumented nodes produce TIER-B boundary records flagging potential rogue paths.
n/aInsecure output handlingOWASP LLM Top 10, not on the agentic listRecordingoutput_pre_postprocess · execution_resultRaw model output before and after filters. Delta is auditable. Insecure handling detectable from artifact.
Raw mapping on GitHub ↗ Zenodo DOI: 10.5281/zenodo.20486369 ↗
NIST SP 800-53 Rev 5

Control mapping.

records address specific NIST SP 800-53 controls. The full mapping is published on GitHub alongside the OWASP mapping.

Control familyControlHow PlainReal™ addresses it
Audit and Accountability (AU)AU-2, AU-3, AU-9, AU-10Non-repudiable, tamper-evident record of every consequential AI agent action. Ed25519 signature binds the artifact to the signing key.
Access Control (AC)AC-2, AC-3, AC-6Authorization Token binds pre-execution approval to a specific action_type and principal_identity before the agent runs.
Identification and Authentication (IA)IA-2, IA-9principal_identity + signing_key_id fields provide cryptographic proof of agent identity per artifact.
System and Information Integrity (SI)SI-7SHA3-256 record_hash over the 32 signed fields. S3 Object Lock COMPLIANCE mode prevents post-commit modification.
Configuration Management (CM)CM-3, CM-5policy_version_hash and model_version_hash bind the exact policy and model in force at decision time to the artifact.
Supply Chain Risk Management (SR)SR-4, SR-11sdk_binary_sha3 and rekor_log_id provide Sigstore-anchored supply chain traceability for model and SDK.
Full SP 800-53 mapping on GitHub ↗ Zenodo DOI: 10.5281/zenodo.20486631 ↗
Citable references
OWASP Top 10 for Agentic Applications mapping  doi.org/10.5281/zenodo.20486369 ↗
NIST SP 800-53 Rev 5 mapping  doi.org/10.5281/zenodo.20486631 ↗
Both published on Zenodo. Apache 2.0. Permanent citable references for use in audit reports, regulatory submissions, and legal proceedings.
The architecture of the evidence

Four pillars.
Each tied to the architecture.

What makes a record hold up is the combination of these four properties. Each one is independently verifiable without PlainReal cooperation.

Pillar 01 · Cryptographic identity
Ed25519 signing
FIPS 186-5 algorithm · HSM-backed in production

Every record is signed inside PlainReal infrastructure. Signing today is in software, using Ed25519 (FIPS 186-5). Moving it into a FIPS 140-3 Level 3 HSM is a later phase, with the same algorithm and identical schema. The signature binds each artifact to a specific signing key and proves it could not have been produced by anyone else.

Pillar 02 · Storage integrity
S3 Object Lock COMPLIANCE
Customer-owned bucket · Per-artifact retention lock

Artifacts are written to your S3 bucket in COMPLIANCE mode, not GOVERNANCE. Once committed, the object cannot be modified or deleted by anyone, including PlainReal, the AWS account root, or your own administrators. This is what gives the record evidentiary integrity under examination.

Pillar 03 · Independent time
RFC 3161 timestamping
Neutral third-party TSA · Applied after WORM commit

After the WORM commit confirms, the artifact hash is timestamped by an independent RFC 3161 timestamp authority. Three parties hold pieces of the trust: you (the bucket), PlainReal (the signature), and the TSA (the timestamp). No single party can alter the record.

Pillar 04 · Continuous infrastructure
Evidence durability
Past artifacts independently verifiable · Continuous signing pipeline

Any past artifact is independently verifiable using only the published public key, for forensic moments and audit walkthroughs. The signing service, schema currency as regulations evolve, and the auditor reference base are the ongoing PlainReal layer that keeps producing new artifacts.

Independent verification

The examiner verifies without calling us.

Every artifact is verifiable offline using the standalone CLI and the published public key. No PlainReal infrastructure required. No vendor cooperation required.

The public key confirms that PlainReal signed the artifact and that it has not been tampered with since. It does not provide access to decision content. The underlying data stays in your S3 bucket, under your own access controls. Possession of the public key by anyone outside your organization gives them nothing they could not already see if they had access to your bucket.

Verification elementWhere it livesWhat it proves
Public key fingerprintverify.plainreal.com/samples/demo_pubkey.pemThe signing key used to produce the artifact. Verifiable against the artifact's signing_attestation field.
record_hashArtifact field, cryptographic hashCovers all non-signing fields. Any modification breaks the hash. Verifiable without PlainReal.
WORM confirmationS3 GetObjectRetention (per-artifact)lock_mode = COMPLIANCE and retain_until_date confirm the object cannot have been modified since commit.
RFC 3161 timestampseparate .tsr tokenEvidences that the artifact existed at the stated time, countersigned by a neutral timestamp authority. It is a separate file, not a field: the Ed25519 signature covers content, not time. Published sample records carry no token.
Verifier page integritysigned release tag on github.com/plainreal/verifyEach release is a signed tag whose message names the SHA-256 of public/index.html. A hash published only inside the repository it describes would be circular, since whoever can edit one can edit the other; the signature is what ties those bytes to a key. Hash the page you were served and compare it against the tag to confirm you are running the release, not something substituted for it.
Independent verifierverify.plainreal.com · sourceChecks the signature and the record hash in your browser. It makes no network request and stores nothing, so you can read what it does before running it. No PlainReal account, and no PlainReal service involved.
Security review

Questions for your security team?

Send the full OWASP mapping to your security architect. If they have questions we have not addressed here, we want to know.

Contact us ↗