Skip to main content

Preventing Unauthorized Adult and Age-Restricted Content Rendering to Children Through Hardware-Rooted Execution Finality
draft-das-child-safe-rendering-finality-00

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Active".
Author Sangam Das
Last updated 2026-08-26
RFC stream (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-das-child-safe-rendering-finality-00
Network Working Group                                             S. Das
Internet-Draft                                      Independent Inventor
Intended status: Informational                            26 August 2026
Expires: 27 February 2027

 Preventing Unauthorized Adult and Age-Restricted Content Rendering to
          Children Through Hardware-Rooted Execution Finality
               draft-das-child-safe-rendering-finality-00

Abstract

   Online child-safety controls commonly operate before the final
   rendering boundary.  Platforms may use account-age flags, parental
   settings, content labels, recommender controls, server-side
   classification, age-assurance systems, access policies, or
   application filters to decide whether adult or age-restricted content
   should be available to a user.  Those controls are important, but an
   upstream decision does not by itself guarantee that the content
   cannot later be decrypted, decoded, composited, rendered, forwarded,
   mirrored, or otherwise materialized through another software or
   device path.

   This problem is becoming more important as content delivery becomes
   more distributed, encrypted, AI-mediated, personalized, and
   dynamically generated.  A modern device may receive content through
   applications, browsers, content-delivery networks, embedded web
   views, messaging clients, recommendation systems, generative-AI
   services, caches, cloud gaming or streaming pipelines, local AI
   models, or third-party SDKs.  The security question is therefore no
   longer only whether content was classified or whether an age check
   occurred upstream.  A later question must also be answered: is this
   specific protected content authorized to become perceptible to this
   recipient, on this device, under the current eligibility, policy, and
   revocation state, at this moment?

   This document defines a protected rendering execution-finality
   architecture for adult, pornographic, sexually explicit, violent,
   gambling-related, or otherwise age-restricted content.  A proposed
   rendering is represented as a Restricted Content Candidate Act and
   remains in a Non-Renderable State until a Protected Enforcement
   Domain validates the applicable recipient, content, device, policy,
   age-or-eligibility, freshness, revocation, and sink predicates.
   Protected validation evidence is committed before, or atomically
   with, release of scoped non-bearer Rendering Finality Authority.

Das                     Expires 27 February 2027                [Page 1]
Internet-Draft        Child-Safe Rendering Finality          August 2026

   A Protected Rendering Finality Sink independently verifies that
   authority immediately before the content becomes perceptible.
   Depending on the implementation, the sink may control content-key
   release, decryption, media-decoder enablement, GPU or compositor
   access, protected-surface creation, audio output, casting, screen
   mirroring, display enablement, or an equivalent materialization
   boundary.  Content bytes may therefore be delivered to a device while
   remaining technically non-renderable.

   The architecture deliberately does not define a universal age-
   estimation algorithm, identity system, or content-classification
   scheme.  Those mechanisms may supply inputs to the Protected
   Enforcement Domain.  This document defines the consequence-control
   step that prevents an upstream policy result from becoming merely
   advisory at the point of rendering.

   UNICEF has warned that pornographic content can harm children and
   that digital restrictions have not kept pace with technological
   shifts.  The ITU Child Online Protection programme provides global
   guidance for safer digital environments, and the United Nations
   Committee on the Rights of the Child has called for protection of
   children from harmful content and online risks in the digital
   environment.  The European Commission has likewise adopted
   protection-of-minors guidance and a privacy-preserving age-
   verification approach for adult-restricted content.  These materials
   motivate the problem addressed here; they do not endorse this
   particular technical architecture.

   The central protocol principle is: permission to deliver content is
   not permission to render it.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 27 February 2027.

Das                     Expires 27 February 2027                [Page 2]
Internet-Draft        Child-Safe Rendering Finality          August 2026

Copyright Notice

   Copyright (c) 2026 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   4
   2.  Why This Is Required Now  . . . . . . . . . . . . . . . . . .   4
   3.  International Child-Safety Motivation . . . . . . . . . . . .   5
   4.  Core Security Distinction . . . . . . . . . . . . . . . . . .   5
   5.  Threat and Failure Model  . . . . . . . . . . . . . . . . . .   6
   6.  Dual-Boundary Architecture  . . . . . . . . . . . . . . . . .   6
   7.  Restricted Content Candidate Act  . . . . . . . . . . . . . .   8
   8.  JSON Interoperability Profile . . . . . . . . . . . . . . . .   8
   9.  RestrictedContentCandidate JSON Schema  . . . . . . . . . . .   8
   10. RenderingPolicyDecision JSON Schema . . . . . . . . . . . . .  15
   11. RenderingFinalityAuthority JSON Schema  . . . . . . . . . . .  17
   12. RenderSinkVerify Request JSON Schema  . . . . . . . . . . . .  19
   13. Protected Enforcement Domain Validation . . . . . . . . . . .  21
   14. Protected Validation Evidence . . . . . . . . . . . . . . . .  21
   15. Rendering Finality Authority  . . . . . . . . . . . . . . . .  21
   16. Where Enforcement Occurs  . . . . . . . . . . . . . . . . . .  22
   17. Content-Key and Decryption Enforcement  . . . . . . . . . . .  22
   18. Decoder, GPU and Compositor Enforcement . . . . . . . . . . .  22
   19. Audio, Casting, Mirroring and Secondary Outputs . . . . . . .  23
   20. Complete Allow Transaction Example  . . . . . . . . . . . . .  23
   21. Complete Denial Transaction Example . . . . . . . . . . . . .  25
   22. Fail-Closed Requirements  . . . . . . . . . . . . . . . . . .  26
   23. Replay, Revocation and State Changes  . . . . . . . . . . . .  27
   24. Generated and AI-Transformed Content  . . . . . . . . . . . .  27
   25. Privacy Considerations  . . . . . . . . . . . . . . . . . . .  27
   26. Security Considerations . . . . . . . . . . . . . . . . . . .  28
   27. Interoperability with Existing Age-Assurance and Platform
           Systems . . . . . . . . . . . . . . . . . . . . . . . . .  28
   28. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  28
   29. Intellectual Property Considerations  . . . . . . . . . . . .  28
   30. Informative References  . . . . . . . . . . . . . . . . . . .  28
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  29

Das                     Expires 27 February 2027                [Page 3]
Internet-Draft        Child-Safe Rendering Finality          August 2026

1.  Introduction

   Child-safety systems frequently make policy decisions far from the
   point at which content becomes visible or audible.  A server may
   classify content as adult-only.  An account system may determine that
   a user is under an applicable age threshold.  A parental-control
   service may deny a content category.  A platform may enforce a
   regional policy.  Yet the media pipeline may contain many later
   components: encrypted transport, local cache, decoder, GPU,
   compositor, protected surface, display controller, speaker path,
   casting interface, or screen-mirroring function.

   The execution-finality model treats the final materialization of
   restricted content as a separate consequence.  The relevant security
   property is not merely that a policy engine produced DENY.  The
   property is that the protected content cannot become perceptible
   unless the final rendering boundary verifies current, act-specific
   authority.

   The narrow scope of this document is adult and age-restricted content
   rendering.  It does not attempt to standardize child identity,
   parental consent, age estimation, content moderation, recommender
   algorithms, or the legal definition of harmful content across
   jurisdictions.

2.  Why This Is Required Now

   The technical need has intensified because content is no longer
   delivered through a single predictable application path.  Streaming
   platforms, browsers, encrypted media pipelines, social applications,
   short-video feeds, generative AI, multimodal assistants, local
   models, cloud rendering, game engines, mixed-reality systems, and
   third-party SDKs can all participate in content selection and
   materialization.

   AI also changes the scale and dynamism of the problem.  A system can
   generate or transform sexually explicit or otherwise adult material
   on demand, select content based on inferred interests, synthesize new
   variants that were never pre-classified as static files, or route a
   user through multiple content sources.  An upstream catalogue label
   alone is therefore less reliable as the sole technical enforcement
   point.

   This document does not assert that child-safety controls were
   unnecessary in earlier Internet systems.  The narrower claim is that
   modern content stacks create more paths between upstream policy and
   final perception, increasing the value of an independently verified
   rendering boundary.

Das                     Expires 27 February 2027                [Page 4]
Internet-Draft        Child-Safe Rendering Finality          August 2026

3.  International Child-Safety Motivation

   UNICEF states that pornographic content can harm children and has
   expressed concern about the large quantity of pornography that is
   easily accessible online.  UNICEF has also stated that efforts to
   restrict children's access in digital environments have not kept pace
   with technological shifts.

   The ITU Child Online Protection initiative provides policy-maker,
   educator, industry, parent, and child-focused guidance intended to
   support safer digital environments for children.  Its current child
   online protection work emphasizes child-centred and rights-based
   protection mechanisms.

   The United Nations Committee on the Rights of the Child, in General
   Comment No. 25 (2021), treats the digital environment as encompassing
   networks, content, services, applications, connected devices,
   artificial intelligence, robotics, automated systems, algorithms, and
   data analytics.  The Committee has repeatedly recommended protecting
   children from harmful content and online risks while respecting their
   rights and privacy.

   The European Commission's protection-of-minors guidance under the
   Digital Services Act addresses harmful content and recommends
   effective age-assurance measures for adult content such as
   pornography.  The Commission's age-verification approach is designed
   to let a user prove that an applicable age threshold is met without
   unnecessarily revealing identity or exact age.

   These sources provide policy and risk context only.  They do not
   define, require, or endorse the execution-finality mechanism
   specified in this document.

4.  Core Security Distinction

   The central distinction is:

Das                     Expires 27 February 2027                [Page 5]
Internet-Draft        Child-Safe Rendering Finality          August 2026

   CONTENT DELIVERY
           !=
   CONTENT RENDERING AUTHORITY

   AGE CHECK
           !=
   DISPLAY FINALITY

   CONTENT CLASSIFICATION
           !=
   DECRYPTION AUTHORITY

   SERVER-SIDE ALLOW
           !=
   DEVICE-SIDE MATERIALIZATION AUTHORITY

                                  Figure 1

5.  Threat and Failure Model

   A restricted-content system may fail even when an upstream
   classification or eligibility decision was correct.  Examples include
   stale age state, revoked parental policy, cache replay, alternate
   application paths, direct decoder access, a compromised application,
   a malicious embedded SDK, casting or mirroring, a stale decryption
   key, sink substitution, modified content metadata, or a generated-
   content path that bypasses the original classifier.

   A conforming deployment therefore assumes that ordinary application-
   layer software may be buggy, compromised, overly permissive, or
   unable to enforce the last consequence boundary by itself.

6.  Dual-Boundary Architecture

   A deployment MAY use two execution-finality boundaries.

   The first boundary governs DELIVERY: whether protected content may be
   transported to or retained within a device or protected environment.

   The second boundary governs RENDERING: whether that content may
   become visible, audible, cast, mirrored, decrypted into a usable
   representation, or otherwise perceptible.

   The second boundary is the critical boundary defined by this draft.
   Content received after successful delivery remains non-renderable
   until a current Rendering Finality Authority is independently
   verified.

Das                     Expires 27 February 2027                [Page 6]
Internet-Draft        Child-Safe Rendering Finality          August 2026

   Restricted Content
           |
           v
   Encrypted / Protected Candidate Payload
           |
           v
   Delivery Policy / Delivery PED
           |
           v
   Delivery Finality Authority
           |
           v
   Device Receives Protected Payload
           |
           v
   STILL NON-RENDERABLE
           |
           v
   Device-Side Protected Enforcement Domain
           |
           +-- recipient / eligibility state
           +-- content class
           +-- parental / regulatory policy
           +-- device and session state
           +-- policy / revocation epoch
           +-- nonce / freshness
           +-- intended rendering sink
           |
           v
   Protected Validation Evidence
           |
           v
   Scoped Non-Bearer Rendering Finality Authority
           |
           v
   PROTECTED RENDERING FINALITY SINK
           |
           +-- PASS -> permitted rendering
           |
           `-- FAIL -> remain non-renderable

                                  Figure 2

Das                     Expires 27 February 2027                [Page 7]
Internet-Draft        Child-Safe Rendering Finality          August 2026

7.  Restricted Content Candidate Act

   A Restricted Content Candidate Act represents a proposed
   materialization of age-restricted content.  It may describe a video
   frame sequence, image, audio stream, interactive scene, generated
   media object, XR scene, game asset, webpage media object, or another
   protected representation.

   The Candidate Act MUST remain non-renderable while required
   execution-finality validation is incomplete.

8.  JSON Interoperability Profile

   This revision defines a JSON-based interoperability profile so that
   implementations can evaluate a concrete contract rather than only an
   abstract policy model.  JSON objects MUST be encoded as UTF-8.
   Implementations MUST reject unknown load-bearing fields when the
   active schema declares additionalProperties=false.

   The JSON profile does not require HTTP as the transport.  The objects
   may be carried over a local protected IPC mechanism, an operating-
   system service boundary, a trusted application-to-enclave channel, a
   platform API, or another authenticated transport.  A future revision
   may define a media type or explicit transport binding.

9.  RestrictedContentCandidate JSON Schema

   {
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "$id": "urn:ietf:params:json-schema:child-rendering-candidate:00",
     "title": "RestrictedContentCandidate",
     "type": "object",
     "additionalProperties": false,
     "required": [
       "version",
       "candidate_act_id",
       "act_type",
       "content",
       "recipient_context",
       "policy_context",
       "render_request",
       "freshness",
       "finality_sink"
     ],
     "properties": {
       "version": {
         "type": "string",
         "const": "1.0"

Das                     Expires 27 February 2027                [Page 8]
Internet-Draft        Child-Safe Rendering Finality          August 2026

       },
       "candidate_act_id": {
         "type": "string",
         "minLength": 16,
         "maxLength": 128
       },
       "act_type": {
         "type": "string",
         "enum": [
           "RENDER_VIDEO",
           "RENDER_IMAGE",
           "PLAY_AUDIO",
           "RENDER_INTERACTIVE",
           "RENDER_GENERATED_MEDIA",
           "CAST_PROTECTED_CONTENT",
           "MIRROR_PROTECTED_CONTENT"
         ]
       },
       "content": {
         "type": "object",
         "additionalProperties": false,
         "required": [
           "content_id",
           "content_digest",
           "content_class",
           "classification_source",
           "protection_state"
         ],
         "properties": {
           "content_id": {
             "type": "string",
             "maxLength": 256
           },
           "content_digest": {
             "type": "string",
             "pattern": "^sha256:[0-9a-fA-F]{64}$"
           },
           "content_class": {
             "type": "string",
             "enum": [
               "ADULT_SEXUAL_CONTENT",
               "SEXUALLY_EXPLICIT_CONTENT",
               "AGE_RESTRICTED_VIDEO",
               "AGE_RESTRICTED_AUDIO",
               "AGE_RESTRICTED_INTERACTIVE",
               "AGE_RESTRICTED_GENERATED_MEDIA",
               "OTHER_RESTRICTED"
             ]

Das                     Expires 27 February 2027                [Page 9]
Internet-Draft        Child-Safe Rendering Finality          August 2026

           },
           "classification_source": {
             "type": "string",
             "maxLength": 256
           },
           "classification_confidence": {
             "type": "number",
             "minimum": 0,
             "maximum": 1
           },
           "protection_state": {
             "type": "string",
             "enum": [
               "ENCRYPTED",
               "KEY_WITHHELD",
               "PROTECTED_SURFACE_ONLY",
               "NON_RENDERABLE_BUFFER",
               "OTHER_PROTECTED"
             ]
           },
           "origin_service": {
             "type": "string",
             "maxLength": 256
           },
           "generation_model_id": {
             "type": [
               "string",
               "null"
             ],
             "maxLength": 256
           }
         }
       },
       "recipient_context": {
         "type": "object",
         "additionalProperties": false,
         "required": [
           "recipient_context_id",
           "eligibility_state",
           "eligibility_evidence_ref"
         ],
         "properties": {
           "recipient_context_id": {
             "type": "string",
             "maxLength": 256
           },
           "eligibility_state": {
             "type": "string",

Das                     Expires 27 February 2027               [Page 10]
Internet-Draft        Child-Safe Rendering Finality          August 2026

             "enum": [
               "ELIGIBLE",
               "NOT_ELIGIBLE",
               "UNKNOWN",
               "EXPIRED",
               "REVOKED"
             ]
           },
           "eligibility_evidence_ref": {
             "type": "string",
             "maxLength": 512
           },
           "age_threshold_claim": {
             "type": [
               "string",
               "null"
             ],
             "enum": [
               "OVER_18",
               "OVER_LOCAL_THRESHOLD",
               null
             ]
           },
           "parental_policy_ref": {
             "type": [
               "string",
               "null"
             ],
             "maxLength": 512
           },
           "privacy_preserving_proof": {
             "type": "boolean"
           }
         }
       },
       "policy_context": {
         "type": "object",
         "additionalProperties": false,
         "required": [
           "jurisdiction",
           "policy_id",
           "policy_epoch",
           "revocation_epoch"
         ],
         "properties": {
           "jurisdiction": {
             "type": "string",
             "maxLength": 64

Das                     Expires 27 February 2027               [Page 11]
Internet-Draft        Child-Safe Rendering Finality          August 2026

           },
           "policy_id": {
             "type": "string",
             "maxLength": 256
           },
           "policy_epoch": {
             "type": "integer",
             "minimum": 0
           },
           "revocation_epoch": {
             "type": "integer",
             "minimum": 0
           },
           "parental_control_state": {
             "type": "string",
             "enum": [
               "ALLOW",
               "DENY",
               "NOT_APPLICABLE",
               "UNKNOWN"
             ]
           },
           "platform_policy_state": {
             "type": "string",
             "enum": [
               "ALLOW",
               "DENY",
               "REVIEW",
               "UNKNOWN"
             ]
           }
         }
       },
       "render_request": {
         "type": "object",
         "additionalProperties": false,
         "required": [
           "device_id",
           "application_id",
           "render_mode",
           "output_targets"
         ],
         "properties": {
           "device_id": {
             "type": "string",
             "maxLength": 256
           },
           "application_id": {

Das                     Expires 27 February 2027               [Page 12]
Internet-Draft        Child-Safe Rendering Finality          August 2026

             "type": "string",
             "maxLength": 256
           },
           "component_id": {
             "type": [
               "string",
               "null"
             ],
             "maxLength": 256
           },
           "render_mode": {
             "type": "string",
             "enum": [
               "LOCAL_DISPLAY",
               "LOCAL_AUDIO",
               "XR_DISPLAY",
               "CAST",
               "MIRROR",
               "REMOTE_DISPLAY"
             ]
           },
           "output_targets": {
             "type": "array",
             "minItems": 1,
             "items": {
               "type": "string",
               "enum": [
                 "DISPLAY",
                 "SPEAKER",
                 "HEADSET",
                 "XR_COMPOSITOR",
                 "CAST_SINK",
                 "MIRROR_SINK"
               ]
             }
           },
           "requested_resolution": {
             "type": [
               "string",
               "null"
             ],
             "maxLength": 64
           },
           "requested_audio": {
             "type": "boolean"
           },
           "requested_decryption": {
             "type": "boolean"

Das                     Expires 27 February 2027               [Page 13]
Internet-Draft        Child-Safe Rendering Finality          August 2026

           }
         }
       },
       "freshness": {
         "type": "object",
         "additionalProperties": false,
         "required": [
           "nonce",
           "created_at",
           "expires_at"
         ],
         "properties": {
           "nonce": {
             "type": "string",
             "minLength": 16,
             "maxLength": 256
           },
           "created_at": {
             "type": "string",
             "format": "date-time"
           },
           "expires_at": {
             "type": "string",
             "format": "date-time"
           },
           "session_id": {
             "type": [
               "string",
               "null"
             ],
             "maxLength": 256
           }
         }
       },
       "finality_sink": {
         "type": "object",
         "additionalProperties": false,
         "required": [
           "sink_id",
           "sink_type"
         ],
         "properties": {
           "sink_id": {
             "type": "string",
             "maxLength": 256
           },
           "sink_type": {
             "type": "string",

Das                     Expires 27 February 2027               [Page 14]
Internet-Draft        Child-Safe Rendering Finality          August 2026

             "enum": [
               "CONTENT_KEY_RELEASE",
               "DECRYPTION_GATE",
               "MEDIA_DECODER_GATE",
               "GPU_COMPOSITOR_GATE",
               "PROTECTED_SURFACE_GATE",
               "DISPLAY_ENABLE_GATE",
               "AUDIO_OUTPUT_GATE",
               "CAST_GATE",
               "MIRROR_GATE"
             ]
           },
           "attestation_ref": {
             "type": [
               "string",
               "null"
             ],
             "maxLength": 512
           }
         }
       }
     }
   }

                                  Figure 3

10.  RenderingPolicyDecision JSON Schema

   {
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "title": "RenderingPolicyDecision",
     "type": "object",
     "additionalProperties": false,
     "required": [
       "candidate_act_id",
       "decision",
       "decision_id",
       "validated_policy_epoch",
       "validated_revocation_epoch",
       "permitted_effects",
       "denial_reasons"
     ],
     "properties": {
       "candidate_act_id": {
         "type": "string"
       },
       "decision": {
         "type": "string",

Das                     Expires 27 February 2027               [Page 15]
Internet-Draft        Child-Safe Rendering Finality          August 2026

         "enum": [
           "ALLOW_RENDER",
           "DENY_RENDER",
           "ALLOW_RESTRICTED_MODE",
           "REQUIRE_REVALIDATION"
         ]
       },
       "decision_id": {
         "type": "string"
       },
       "validated_policy_epoch": {
         "type": "integer",
         "minimum": 0
       },
       "validated_revocation_epoch": {
         "type": "integer",
         "minimum": 0
       },
       "permitted_effects": {
         "type": "array",
         "items": {
           "type": "string",
           "enum": [
             "RELEASE_CONTENT_KEY",
             "DECRYPT",
             "DECODE",
             "CREATE_PROTECTED_SURFACE",
             "COMPOSITE",
             "DISPLAY",
             "PLAY_AUDIO",
             "CAST",
             "MIRROR"
           ]
         }
       },
       "denial_reasons": {
         "type": "array",
         "items": {
           "type": "string",
           "enum": [
             "RECIPIENT_NOT_ELIGIBLE",
             "ELIGIBILITY_UNKNOWN",
             "ELIGIBILITY_EXPIRED",
             "PARENTAL_POLICY_DENY",
             "PLATFORM_POLICY_DENY",
             "CONTENT_CLASS_MISMATCH",
             "POLICY_EPOCH_STALE",
             "REVOCATION_EPOCH_STALE",

Das                     Expires 27 February 2027               [Page 16]
Internet-Draft        Child-Safe Rendering Finality          August 2026

             "NONCE_REPLAY",
             "DEVICE_MISMATCH",
             "APPLICATION_MISMATCH",
             "SINK_MISMATCH",
             "OUTPUT_TARGET_NOT_PERMITTED",
             "ATTESTATION_FAILURE",
             "AUTHORITY_EXPIRED"
           ]
         }
       },
       "validation_evidence_ref": {
         "type": "string"
       },
       "decision_expires_at": {
         "type": "string",
         "format": "date-time"
       }
     }
   }

                                  Figure 4

11.  RenderingFinalityAuthority JSON Schema

   {
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "title": "RenderingFinalityAuthority",
     "type": "object",
     "additionalProperties": false,
     "required": [
       "authority_id",
       "candidate_act_id",
       "candidate_digest",
       "validation_evidence_ref",
       "permitted_effects",
       "sink_id",
       "policy_epoch",
       "revocation_epoch",
       "nonce",
       "issued_at",
       "expires_at",
       "consumption"
     ],
     "properties": {
       "authority_id": {
         "type": "string"
       },
       "candidate_act_id": {

Das                     Expires 27 February 2027               [Page 17]
Internet-Draft        Child-Safe Rendering Finality          August 2026

         "type": "string"
       },
       "candidate_digest": {
         "type": "string",
         "pattern": "^sha256:[0-9a-fA-F]{64}$"
       },
       "validation_evidence_ref": {
         "type": "string"
       },
       "permitted_effects": {
         "type": "array",
         "minItems": 1,
         "items": {
           "type": "string"
         }
       },
       "content_digest": {
         "type": "string",
         "pattern": "^sha256:[0-9a-fA-F]{64}$"
       },
       "recipient_context_id": {
         "type": "string"
       },
       "device_id": {
         "type": "string"
       },
       "application_id": {
         "type": "string"
       },
       "sink_id": {
         "type": "string"
       },
       "sink_type": {
         "type": "string"
       },
       "policy_epoch": {
         "type": "integer"
       },
       "revocation_epoch": {
         "type": "integer"
       },
       "nonce": {
         "type": "string"
       },
       "issued_at": {
         "type": "string",
         "format": "date-time"
       },

Das                     Expires 27 February 2027               [Page 18]
Internet-Draft        Child-Safe Rendering Finality          August 2026

       "expires_at": {
         "type": "string",
         "format": "date-time"
       },
       "consumption": {
         "type": "string",
         "enum": [
           "SINGLE_USE",
           "FRAME_WINDOW",
           "SESSION_BOUND"
         ]
       },
       "max_frame_count": {
         "type": [
           "integer",
           "null"
         ],
         "minimum": 1
       },
       "max_duration_ms": {
         "type": [
           "integer",
           "null"
         ],
         "minimum": 1
       },
       "signature_or_mac": {
         "type": "string"
       }
     }
   }

                                  Figure 5

12.  RenderSinkVerify Request JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "RenderSinkVerifyRequest",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "candidate",
    "authority",
    "sink_runtime_state"
  ],
  "properties": {
    "candidate": {

Das                     Expires 27 February 2027               [Page 19]
Internet-Draft        Child-Safe Rendering Finality          August 2026

      "$ref": "urn:ietf:params:json-schema:child-rendering-candidate:00"
    },
    "authority": {
      "type": "object"
    },
    "sink_runtime_state": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "sink_id",
        "current_policy_epoch",
        "current_revocation_epoch",
        "authority_consumed",
        "device_attestation_state",
        "output_path"
      ],
      "properties": {
        "sink_id": {
          "type": "string"
        },
        "current_policy_epoch": {
          "type": "integer"
        },
        "current_revocation_epoch": {
          "type": "integer"
        },
        "authority_consumed": {
          "type": "boolean"
        },
        "device_attestation_state": {
          "type": "string",
          "enum": [
            "VALID",
            "INVALID",
            "UNKNOWN"
          ]
        },
        "output_path": {
          "type": "string",
          "enum": [
            "DISPLAY",
            "AUDIO",
            "XR",
            "CAST",
            "MIRROR"
          ]
        },
        "screen_capture_active": {

Das                     Expires 27 February 2027               [Page 20]
Internet-Draft        Child-Safe Rendering Finality          August 2026

          "type": "boolean"
        },
        "external_display_attached": {
          "type": "boolean"
        }
      }
    }
  }
}

                               Figure 6

13.  Protected Enforcement Domain Validation

   The Protected Enforcement Domain (PED) MUST evaluate all predicates
   required by the applicable deployment before releasing Rendering
   Finality Authority.  Typical predicates include recipient
   eligibility, age-threshold evidence, parental policy, content
   classification, content digest, jurisdiction, platform policy, device
   identity, application identity, requested output mode, output target,
   current policy epoch, current revocation epoch, nonce freshness,
   device attestation, and intended Finality Sink identity.

   A successful upstream age check MUST NOT itself cause decryption or
   display.  PED validation success authorizes creation of scoped
   finality authority; it does not complete the rendering consequence.

14.  Protected Validation Evidence

   Before, or atomically with, Rendering Finality Authority issuance,
   the PED MUST commit protected validation evidence.  The evidence MAY
   be represented by a protected signed record, MAC, enclave or HSM
   assertion, sealed state, monotonic-state commitment, append-only
   protected record, or equivalent protected mechanism.

   A Boolean ALLOW value by itself is not sufficient finality authority.

15.  Rendering Finality Authority

   Rendering Finality Authority MUST be act-bound, content-bound,
   recipient-bound, device-bound, application-bound where applicable,
   policy-epoch-bound, revocation-epoch-bound, nonce/freshness-bound,
   effect-bound, and sink-bound.

   Possession alone MUST NOT be sufficient.  The authority is non-bearer
   because the Finality Sink independently verifies the protected
   bindings before enabling the permitted materialization effects.

Das                     Expires 27 February 2027               [Page 21]
Internet-Draft        Child-Safe Rendering Finality          August 2026

   An authority for DISPLAY MUST NOT automatically authorize CAST or
   MIRROR.  An authority for one device MUST NOT automatically authorize
   another device.  An authority for one content digest MUST NOT
   authorize modified or substituted content.

16.  Where Enforcement Occurs

   The most important deployment question is where the final technical
   gate is placed.  The gate SHOULD control the first boundary at which
   the protected content becomes perceptible or can be trivially
   converted into a perceptible representation.

   Possible Protected Rendering Finality Sinks include content-key
   release, decryption, media-decoder enablement, GPU command
   submission, protected-surface creation, compositor admission,
   display-plane enablement, audio-output enablement, XR compositor
   access, secure-video path enablement, casting, or screen mirroring.

   A server-side policy endpoint alone is not a Protected Rendering
   Finality Sink unless bypassing it also makes the protected rendering
   technically impossible.

17.  Content-Key and Decryption Enforcement

   Where encrypted or otherwise protected media is used, withholding the
   usable content key is a strong enforcement point.  The key-release
   component MAY act as the Finality Sink or as one element of a chained
   finality path.

   If validation fails, the usable key MUST NOT be released into an
   unprotected application context.  If a key was previously released
   under a bounded authority, its validity SHOULD be constrained by
   session, content, policy epoch, time, frame window, or equivalent
   protected state.

18.  Decoder, GPU and Compositor Enforcement

   For media that is already locally encrypted or decoded inside a
   protected pipeline, the Finality Sink MAY be placed at a decoder,
   GPU, protected-surface, or compositor boundary.  The implementation
   MUST prevent ordinary application code from converting a denied
   Candidate Act into a visible frame through an alternate unprotected
   surface.

   Protected rendering MAY therefore require that decoded frames remain
   in protected memory or protected surfaces until the compositor
   verifies current finality authority.

Das                     Expires 27 February 2027               [Page 22]
Internet-Draft        Child-Safe Rendering Finality          August 2026

19.  Audio, Casting, Mirroring and Secondary Outputs

   Adult or age-restricted content can be materialized through secondary
   paths even when a local display is controlled.  Audio, HDMI or
   external displays, wireless casting, screen mirroring, remote-display
   APIs, accessibility capture paths, and similar outputs MAY therefore
   require separate consequence classes or sink-bound authority.

   A local-display authority MUST NOT be interpreted as universal
   authority for every secondary output.

20.  Complete Allow Transaction Example

   The following example shows an adult-classified video that remains
   key-withheld until the device-side protected sink verifies current
   eligibility, policy, device, content, freshness, and output-path
   state.

{
  "candidate": {
    "version": "1.0",
    "candidate_act_id": "rca-8f3d0d0d-20260826-000001",
    "act_type": "RENDER_VIDEO",
    "content": {
      "content_id": "asset-adult-99182",
      "content_digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "content_class": "ADULT_SEXUAL_CONTENT",
      "classification_source": "platform-classifier-v7",
      "classification_confidence": 0.998,
      "protection_state": "KEY_WITHHELD",
      "origin_service": "media.example",
      "generation_model_id": null
    },
    "recipient_context": {
      "recipient_context_id": "recipient-session-771",
      "eligibility_state": "ELIGIBLE",
      "eligibility_evidence_ref": "ageproof:opaque:44e2...",
      "age_threshold_claim": "OVER_18",
      "parental_policy_ref": null,
      "privacy_preserving_proof": true
    },
    "policy_context": {
      "jurisdiction": "EU",
      "policy_id": "adult-content-policy-eu-v4",
      "policy_epoch": 412,
      "revocation_epoch": 39,
      "parental_control_state": "NOT_APPLICABLE",
      "platform_policy_state": "ALLOW"

Das                     Expires 27 February 2027               [Page 23]
Internet-Draft        Child-Safe Rendering Finality          August 2026

    },
    "render_request": {
      "device_id": "device-3dd18",
      "application_id": "app.media.client",
      "component_id": "protected-player",
      "render_mode": "LOCAL_DISPLAY",
      "output_targets": [
        "DISPLAY",
        "SPEAKER"
      ],
      "requested_resolution": "1080p",
      "requested_audio": true,
      "requested_decryption": true
    },
    "freshness": {
      "nonce": "f9014acbe771440ab5208751",
      "created_at": "2026-08-26T17:35:00Z",
      "expires_at": "2026-08-26T17:35:30Z",
      "session_id": "sess-fb211"
    },
    "finality_sink": {
      "sink_id": "render-sink-secure-compositor-01",
      "sink_type": "GPU_COMPOSITOR_GATE",
      "attestation_ref": "attest:device-3dd18:epoch-88"
    }
  },
  "authority": {
    "authority_id": "rfa-d48d7f",
    "candidate_act_id": "rca-8f3d0d0d-20260826-000001",
    "candidate_digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
    "validation_evidence_ref": "pve:9f1172",
    "permitted_effects": [
      "RELEASE_CONTENT_KEY",
      "DECRYPT",
      "DECODE",
      "CREATE_PROTECTED_SURFACE",
      "COMPOSITE",
      "DISPLAY",
      "PLAY_AUDIO"
    ],
    "content_digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "recipient_context_id": "recipient-session-771",
    "device_id": "device-3dd18",
    "application_id": "app.media.client",
    "sink_id": "render-sink-secure-compositor-01",
    "sink_type": "GPU_COMPOSITOR_GATE",
    "policy_epoch": 412,
    "revocation_epoch": 39,

Das                     Expires 27 February 2027               [Page 24]
Internet-Draft        Child-Safe Rendering Finality          August 2026

    "nonce": "f9014acbe771440ab5208751",
    "issued_at": "2026-08-26T17:35:01Z",
    "expires_at": "2026-08-26T17:35:30Z",
    "consumption": "FRAME_WINDOW",
    "max_frame_count": 900,
    "max_duration_ms": 30000,
    "signature_or_mac": "base64url:protected-authenticator"
  },
  "sink_runtime_state": {
    "sink_id": "render-sink-secure-compositor-01",
    "current_policy_epoch": 412,
    "current_revocation_epoch": 39,
    "authority_consumed": false,
    "device_attestation_state": "VALID",
    "output_path": "DISPLAY",
    "screen_capture_active": false,
    "external_display_attached": false
  }
}

                               Figure 7

21.  Complete Denial Transaction Example

   The following example shows a denial where the recipient is not
   eligible and parental policy also denies rendering.  The important
   result is not merely an error response: all materialization controls
   remain disabled.

Das                     Expires 27 February 2027               [Page 25]
Internet-Draft        Child-Safe Rendering Finality          August 2026

   {
     "candidate_act_id": "rca-minor-session-223",
     "decision": "DENY_RENDER",
     "decision_id": "decision-99831",
     "validated_policy_epoch": 412,
     "validated_revocation_epoch": 39,
     "permitted_effects": [],
     "denial_reasons": [
       "RECIPIENT_NOT_ELIGIBLE",
       "PARENTAL_POLICY_DENY"
     ],
     "validation_evidence_ref": "pve-deny:3882",
     "decision_expires_at": "2026-08-26T17:36:00Z",
     "sink_action": {
       "release_content_key": false,
       "decrypt": false,
       "decode": false,
       "create_protected_surface": false,
       "display": false,
       "play_audio": false,
       "cast": false,
       "mirror": false,
       "result": "CONTENT_REMAINS_NON_RENDERABLE"
     }
   }

                                  Figure 8

22.  Fail-Closed Requirements

   If required authority is missing, malformed, expired, stale,
   replayed, revoked, consumed, content-mismatched, recipient-
   mismatched, device-mismatched, application-mismatched, policy-
   mismatched, output-mismatched, or sink-mismatched, the content MUST
   remain non-renderable.

   Failure MUST NOT be converted into a warning followed by display.
   Implementations MUST NOT use 'best effort' rendering for content
   subject to this protected finality profile when current authority
   cannot be established.

Das                     Expires 27 February 2027               [Page 26]
Internet-Draft        Child-Safe Rendering Finality          August 2026

23.  Replay, Revocation and State Changes

   Eligibility and parental state may change after content is delivered.
   A device may also restore an old application snapshot or replay a
   previously valid rendering authority.  The Finality Sink SHOULD
   therefore verify current policy and revocation epochs immediately
   before materialization and MUST enforce nonce or equivalent anti-
   replay state.

   An old authorization MUST NOT automatically override a later
   parental-control change, account-state change, legal-policy change,
   device revocation, or recipient eligibility change.

24.  Generated and AI-Transformed Content

   Generative AI may create age-restricted media that has no stable
   catalogue identifier.  The Candidate Act therefore supports content
   digests, generation-model identifiers, classification sources, and
   protected output state.  A generated object SHOULD be bound to the
   classification and authority actually used for the attempted
   rendering.

   This draft does not define how AI-generated content is classified.
   It defines how a classification or policy decision can be made
   technically load-bearing at the rendering boundary.

25.  Privacy Considerations

   Child-safety enforcement can itself create privacy risk if systems
   unnecessarily expose a child's identity, exact age, browsing history,
   or content choices.  Implementations SHOULD minimize disclosure and
   MAY consume privacy-preserving eligibility proofs that state only
   whether the required threshold or policy condition is satisfied.

   The rendering sink generally needs the validated eligibility result
   and bindings necessary for effectuation; it does not necessarily need
   the user's civil identity or exact date of birth.

   Logs and validation evidence SHOULD avoid recording unnecessary
   content titles, URLs, identity attributes, or detailed viewing
   history where a digest, opaque identifier, or protected commitment is
   sufficient.

Das                     Expires 27 February 2027               [Page 27]
Internet-Draft        Child-Safe Rendering Finality          August 2026

26.  Security Considerations

   Threats include compromised applications, forged age state, stale
   parental policy, replayed authorities, content substitution after
   classification, sink substitution, screen-capture bypass, casting
   bypass, unprotected decoder paths, key extraction, rollback of
   revocation state, and malicious SDKs.

   Implementations SHOULD place load-bearing checks within protected
   execution, trusted operating-system, hardware-backed, or equivalently
   isolated enforcement paths when the threat model includes compromise
   of ordinary application software.

27.  Interoperability with Existing Age-Assurance and Platform Systems

   The execution-finality layer is designed to consume outcomes from
   existing systems rather than replace them.  Inputs MAY come from
   privacy-preserving age verification, platform account state,
   parental-control systems, content classifiers, regulatory policy,
   trusted identity providers, device policy, or enterprise/family
   safety services.

   Those systems answer whether a condition is satisfied.  The Finality
   Sink answers whether the specific protected rendering consequence may
   now occur.

28.  IANA Considerations

   This version requests no IANA actions.  If a future version
   standardizes an Internet media type, URI scheme, error registry, or
   globally interoperable consequence-class registry, the corresponding
   IANA considerations will be added.

29.  Intellectual Property Considerations

   Certain concepts described in this document are related to pending
   patent applications in the DAS Protocols family.  Any disclosure
   required by an applicable standards-development process should be
   made separately in accordance with that process.  This section is
   informational and does not specify licensing terms.

30.  Informative References

Das                     Expires 27 February 2027               [Page 28]
Internet-Draft        Child-Safe Rendering Finality          August 2026

   [UNICEF-PORN]
              UNICEF, "Protection of children from the harmful impacts
              of pornography",
              <https://www.unicef.org/harmful-content-online>.  UNICEF
              states that pornographic content can harm children and
              that digital restrictions have not kept pace with
              technological shifts.

   [ITU-COP]  International Telecommunication Union, "Child Online
              Protection", <https://www.itu.int/en/ITU-
              D/Cybersecurity/Pages/COP/COP.aspx>.  ITU Child Online
              Protection programme and guidelines.

   [UN-CRC-GC25]
              United Nations Committee on the Rights of the Child,
              "General Comment No. 25 (2021) on children's rights in
              relation to the digital environment",
              <https://docstore.ohchr.org/SelfServices/
              FilesHandler.ashx?enc=3ik0d0T8SX%2FpP07DX0nLHD%2Baw%2BVH0KHJ3a1Msix3LkRIphZtOKg5ykXnYtA79MjKsj%2Fql4vDUtT77VibA3Lp4g%3D%3D>.
              United Nations guidance on children's rights in the
              digital environment.

   [EU-MINORS]
              European Commission, "Guidelines on the protection of
              minors under the Digital Services Act", <https://digital-
              strategy.ec.europa.eu/en/library/commission-publishes-
              guidelines-protection-minors>.  European Commission
              protection-of-minors guidance.

   [EU-AGE]   European Commission, "The EU approach to age
              verification", <https://digital-
              strategy.ec.europa.eu/en/policies/eu-age-verification>.
              Privacy-preserving age-verification approach for adult-
              restricted online content.

Author's Address

   Sangam Das
   Independent Inventor
   Balasore 756001
   Odisha
   India
   Email: info@sangamdas.com

Das                     Expires 27 February 2027               [Page 29]