{"id":356,"date":"2026-09-05T04:22:47","date_gmt":"2026-09-05T04:22:47","guid":{"rendered":"https:\/\/neodata.com.uy\/labs\/evidence-is-not-a-verdict\/"},"modified":"2026-09-05T04:22:47","modified_gmt":"2026-09-05T04:22:47","slug":"evidence-is-not-a-verdict","status":"publish","type":"post","link":"https:\/\/neodata.com.uy\/labs\/evidence-is-not-a-verdict\/","title":{"rendered":"Evidence is not a verdict."},"content":{"rendered":"<p><!--\nWORDPRESS CONTENT: editorial notes removed\n--><\/p>\n<p class=\"nlabs-kicker\">REMOTE ATTESTATION<\/p>\n<h2 id=\"why-authentic-device-evidence-still-needs-an-appraisal-policy\">Why authentic device evidence still needs an appraisal policy.<\/h2>\n<p>Remote attestation is often compressed into a reassuring phrase: a device proves that it is trustworthy. The actual protocol is more careful.<\/p>\n<p>An attester produces evidence about a target environment. A verifier evaluates that evidence using endorsements, reference values and an appraisal policy. A relying party then decides what to do with the resulting claims.<\/p>\n<p>A valid signature can establish where evidence came from and protect it from alteration. It cannot decide whether the measured state is acceptable for a particular action.<\/p>\n<h2 id=\"three-roles-prevent-one-word-from-carrying-three-meanings\">Three roles prevent one word from carrying three meanings<\/h2>\n<p>The RATS architecture separates Attester, Verifier and Relying Party.<\/p>\n<p>The Attester has access to measurements or claims about the target environment. The Verifier knows how to evaluate evidence. The Relying Party consumes an attestation result as one input to authorization or risk decisions.<\/p>\n<p>One deployment may combine these roles in two services, but their logical separation remains useful. It distinguishes a device statement from an expert appraisal and an appraisal from a business decision.<\/p>\n<h2 id=\"evidence-is-not-an-attestation-result\">Evidence is not an attestation result<\/h2>\n<p>Evidence can include boot measurements, software component digests, hardware identity, lifecycle state, debug configuration and security-version counters. It is generally signed or otherwise authenticated by an attestation key.<\/p>\n<p>An attestation result is the Verifier&#8217;s conclusion after comparing those claims with expected values and policy. It may say that specific claims were validated, that a profile was met or that evaluation was inconclusive.<\/p>\n<p>Passing raw evidence directly to every relying party duplicates specialized verification and encourages each application to invent its own interpretation.<\/p>\n<h2 id=\"endorsements-explain-why-an-attestation-key-matters\">Endorsements explain why an attestation key matters<\/h2>\n<p>A signed token is useful only if the verifier can establish the provenance and permitted use of its signing key. Manufacturer certificates, certification statements and device metadata can serve as endorsements.<\/p>\n<p>Endorsements do not describe the current device state. They provide information needed to interpret evidence, such as the relationship between a hardware root and a product family.<\/p>\n<p>Their lifecycle can be longer than the product&#8217;s software lifecycle. Expiration, revocation, manufacturer key rotation and acquisition of a product line all affect validation years after deployment.<\/p>\n<h2 id=\"reference-values-define-expected-state\">Reference values define expected state<\/h2>\n<p>A firmware digest in evidence has no inherent good or bad meaning. The verifier needs reference values describing recognized software, configuration and security versions.<\/p>\n<p>Reference values must be distributed with provenance, validity periods and product context. A digest approved for one model or boot stage may be unacceptable in another.<\/p>\n<p>Updates create overlapping states. During rollout, several versions may be legitimate. After a critical vulnerability, an older signed version may become unacceptable even though its measurement remains authentic.<\/p>\n<h2 id=\"freshness-prevents-replaying-an-old-good-state\">Freshness prevents replaying an old good state<\/h2>\n<p>An attacker may capture evidence while a device is in an approved state and replay it after compromise. A verifier challenge, typically represented by a nonce, can bind newly generated evidence to the current exchange.<\/p>\n<p>Timestamp-based freshness requires a trusted clock and an acceptance window. Counter-based approaches require durable state. Nonces require the verifier to remember outstanding challenges and reject reuse.<\/p>\n<p>Fresh evidence is recent evidence. It does not guarantee that the measured state remains unchanged after generation.<\/p>\n<h2 id=\"eat-is-a-claims-format-not-a-universal-policy\">EAT is a claims format, not a universal policy<\/h2>\n<p>Entity Attestation Tokens provide CWT and JWT-oriented structures for carrying attestation claims. Profiles select required claims, algorithms, encodings and validation rules for a particular ecosystem.<\/p>\n<p>A generic parser that accepts any syntactically valid EAT has not implemented an attestation policy. It must know which profile applies, which key may issue it, which claims are mandatory and how each value is interpreted.<\/p>\n<p>Unknown critical claims, duplicate fields and non-canonical encodings need explicit handling at the parser boundary.<\/p>\n<h2 id=\"measured-components-create-composition-questions\">Measured components create composition questions<\/h2>\n<p>A target environment can contain a boot ROM, secure monitor, operating system, application and isolated execution environments. Evidence may report each as a measured component.<\/p>\n<p>The verifier needs to know how those measurements relate. A trusted boot loader does not imply a trusted application. A protected enclave can process sensitive data while the surrounding host still controls availability and inputs.<\/p>\n<p>Attestation is strongest when the claimed boundary matches the boundary relevant to the relying party&#8217;s decision.<\/p>\n<h2 id=\"a-good-measurement-can-run-bad-logic\">A good measurement can run bad logic<\/h2>\n<p>A digest may match reviewed software, yet that software can process attacker-controlled configuration or stale policy. The measured binary may also contain an undiscovered vulnerability.<\/p>\n<p>Conversely, a locally rebuilt or patched component can differ from an approved reference while being operationally safer. Appraisal policy needs more nuance than an equality test against one golden hash.<\/p>\n<p>Version counters, signer identities, component manifests and vulnerability status can supplement exact measurements.<\/p>\n<h2 id=\"attestation-can-be-a-tracking-mechanism\">Attestation can be a tracking mechanism<\/h2>\n<p>Evidence frequently carries stable device identifiers or attestation keys. Repeated presentations can let verifiers correlate activity across services.<\/p>\n<p>Pairwise attestation keys, delegated attestation and selective claim release can reduce exposure. They complicate endorsement and revocation.<\/p>\n<p>A relying party should request only claims needed for its decision. Proving device state does not create a general entitlement to device identity.<\/p>\n<h2 id=\"failure-needs-more-than-pass-or-fail\">Failure needs more than pass or fail<\/h2>\n<p>Evidence can fail because a signature is invalid, a key is unknown, a measurement is stale, a reference value is unavailable or a component is explicitly disallowed. These outcomes have different operational meanings.<\/p>\n<p>A structured attestation result can preserve enough reason for policy and remediation without exposing raw device measurements to every application.<\/p>\n<p>Failing closed may protect a sensitive operation while creating fleet-wide outages during verifier or reference-value failures. Availability policy belongs in the design.<\/p>\n<h2 id=\"evidence-supports-a-decision-it-does-not-replace-one\">Evidence supports a decision; it does not replace one<\/h2>\n<p>Remote attestation can provide cryptographically protected, fresh claims about a defined target environment. This is a valuable input unavailable from ordinary network authentication.<\/p>\n<p>Trust emerges only after provenance, reference values and appraisal policy give those claims meaning. The relying party must still connect that meaning to the requested action.<\/p>\n<p>Evidence is not a verdict because cryptography can authenticate a measurement without deciding what the system should trust.<\/p>\n<hr \/>\n<h2 id=\"references\">References<\/h2>\n<ol type=\"1\">\n<li><a href=\"https:\/\/www.rfc-editor.org\/info\/rfc9334\/\">RFC 9334: Remote ATtestation procedureS Architecture<\/a><\/li>\n<li><a href=\"https:\/\/www.rfc-editor.org\/info\/rfc9711\/\">RFC 9711: The Entity Attestation Token<\/a><\/li>\n<li><a href=\"https:\/\/www.rfc-editor.org\/info\/rfc9783\/\">RFC 9783: PSA Attestation Token<\/a><\/li>\n<li><a href=\"https:\/\/www.rfc-editor.org\/info\/rfc9683\/\">RFC 9683: Remote Integrity Verification of Network Devices<\/a><\/li>\n<li><a href=\"https:\/\/neodata.com.uy\/labs\/a-blockchain-can-preserve-a-claim-it-cannot-make-it-true\/\">NEODATA Labs: A blockchain can preserve a claim. It cannot make it true.<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Remote attestation authenticates evidence about a target environment. Endorsements, reference values and appraisal policy are what turn that evidence into a decision.<\/p>\n","protected":false},"author":2,"featured_media":353,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"nlabs_article_type":[],"class_list":["post-356","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-research"],"_links":{"self":[{"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/posts\/356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/comments?post=356"}],"version-history":[{"count":0,"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/posts\/356\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/media\/353"}],"wp:attachment":[{"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/media?parent=356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/categories?post=356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/tags?post=356"},{"taxonomy":"nlabs_article_type","embeddable":true,"href":"https:\/\/neodata.com.uy\/labs\/wp-json\/wp\/v2\/nlabs_article_type?post=356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}