Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,12 @@
href: "https://www.rfc-editor.org/info/bcp47",
publisher: "IETF",
},
ENTRY: {
title: "Example Title",
href: "https://website.example/document",
"SD-JWT-VC": {
title: "SD-JWT-based Verifiable Credentials (SD-JWT VC)",
href: "https://datatracker.ietf.org/doc/html/draft-ietf-oauth-sd-jwt-vc",
authors: ["Oliver Terbu", "Daniel Fett", "Brian Campbell"],
status: "Internet-Draft",
publisher: "IETF",
},
},
lint: {"no-unused-dfns": false},
Expand Down Expand Up @@ -1053,8 +1056,7 @@ <h3>Output Preferences</h3>
<td>mediaType</td>
<td>
An OPTIONAL [=string=] stating a valid media type listed in the
<a href="https://www.iana.org/assignments/media-types/media-types.xhtml"
>IANA Media Types</a> preferred for rendering. This value MAY be used when
[[[IANA-MEDIA-TYPES|IANA Media Types]]] preferred for rendering. This value MAY be used when
suggesting addtional processing prior to rendering. Examples include converting
an SVG payload into a static image or an HTML document into a PDF.
</td>
Expand Down Expand Up @@ -1281,8 +1283,8 @@ <h4>Host Page</h4>

<p>
This filtering MUST be done by applying the `selectJsonLd` algorithm defined in
<a href="https://www.w3.org/TR/vc-di-ecdsa/#selectjsonld">Section 3.4.13 selectJsonLd</a>
of the Data Integrity ECDSA Cryptosuites v1.0 specification [[VC-DI-ECDSA]] to
[[[VC-DI-ECDSA#selectjsonld|Section 3.4.13 selectJsonLd]]]
of the [[[VC-DI-ECDSA]]] specification to
the JSON Pointer [[RFC6901]] values present in `renderMethod.renderProperty`.
</p>

Expand Down Expand Up @@ -1541,9 +1543,8 @@ <h3>Client-Determined Rendering</h3>
<a href="threat-model/index.html#t1-uncontrolled-credential-presentation">Uncontrolled
Credential Presentation</a>. Credential
formats such as
<a href="https://www.iso.org/standard/69084.html">ISO/IEC 18013-5 mobile driving
licence (mDL)</a> and the JSON Web Tokens
(<a href="https://www.rfc-editor.org/rfc/rfc7519">RFC 7519</a>) take this
[[[ISO18013-5|ISO/IEC 18013-5 mobile driving licence (mDL)]]] and the JSON Web
Tokens [[RFC7519]] take this
approach, defining the claims a credential carries but leaving their
presentation to the consuming software. Microsoft's
<a href="https://en.wikipedia.org/wiki/Information_Card">Information Card</a>
Expand Down Expand Up @@ -1577,7 +1578,7 @@ <h3>Credential-Type-Specific Display Registries</h3>
the distributed, decentralized, and permissionless patterns otherwise
specified to be part of the ecosystem of
[[[DID|Decentralized Identifiers (DIDs)]]] and
[[[VC-DATA-MODEL|Verifiable Credentials (VCs)]]].
[[[VC-DATA-MODEL-2.1|Verifiable Credentials (VCs)]]].
</p>
</section>

Expand All @@ -1601,17 +1602,16 @@ <h3>Data Integrity and Proof Mechanisms</h3>
[[[VC-DATA-INTEGRITY#resource-integrity|digestMultibase]]] property to bind a
referenced payload to the credential. Readers can learn about these general
protection mechanisms by reading about the
<a href="https://www.w3.org/TR/vc-data-model-threat-model-2.1/#tampering-with-unprotected-external-resources">
Tampering with Unprotected External Resources</a> threat in the
<a href="https://www.w3.org/TR/vc-data-model-threat-model-2.1/">
Verifiable Credential Threat Model</a>.
[[[VC-DATA-MODEL-THREAT-MODEL-2.1#tampering-with-unprotected-external-resources|Tampering
with Unprotected External Resources]]] threat in the
[[[VC-DATA-MODEL-THREAT-MODEL-2.1|Verifiable Credential Threat Model]]].
</p>
</section>

<section class="notoc">
<h3>SD-JWT VC Type Metadata Rendering</h3>
<p>
<a href="https://www.ietf.org/archive/id/draft-ietf-oauth-sd-jwt-vc-18.html#section-4.5.1">SD-JWT VC</a>
[[[SD-JWT-VC#section-4.5.1|SD-JWT VC]]]
defines a `rendering` property to choose between a `simple` method that supports
a fixed set of styling attributes, and an `svg_templates` method that forbids
any code execution and substitutes claim values into text placeholders in an
Expand Down
14 changes: 6 additions & 8 deletions threat-model/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,7 @@
<section id="abstract">
<p>
This document describes a threat model for the
<a href="https://www.w3.org/TR/vc-render-method/">Verifiable Credentials
Render Method</a> specification. It identifies and analyzes security and
[[[VC-RENDER-METHOD|Verifiable Credentials Render Method]]] specification. It identifies and analyzes security and
privacy threats specific to the publication, retrieval, and processing of
render methods used to produce a human-readable rendering of a
[=verifiable credential=].
Expand Down Expand Up @@ -76,8 +75,7 @@ <h2>Introduction</h2>
</p>
<p>
This threat model follows the methodology described in the
<a href="https://www.w3.org/TR/threat-modeling-guide/">W3C Threat Modeling
Guide</a> and classifies threats using the STRIDE taxonomy. Threats are
[[[THREAT-MODELING-GUIDE|W3C Threat Modeling Guide]]] and classifies threats using the STRIDE taxonomy. Threats are
grouped into five categories:
</p>
<ul>
Expand Down Expand Up @@ -116,8 +114,8 @@ <h3>Description</h3>
as part of evaluating it. The elements and flows introduced by the Render
Method specification are shown in full color in the data flow diagram below;
elements reused from the
<a href="https://www.w3.org/TR/vc-data-model-threat-model-2.1/">Verifiable
Credentials Data Model threat model</a> are shown grayed as context.
[[[VC-DATA-MODEL-THREAT-MODEL-2.1|Verifiable Credentials Data Model threat
model]]] are shown grayed as context.
</p>
<p class="note" role="note">
<span class="marker">Note:</span> We do NOT model potential attackers as
Expand Down Expand Up @@ -185,8 +183,8 @@ <h3>Dictionary</h3>
<p>
The dictionary defines the data flow diagram elements introduced by the
Render Method specification. Elements reused from the
<a href="https://www.w3.org/TR/vc-data-model-threat-model-2.1/">Verifiable
Credentials Data Model threat model</a> appear grayed in the diagram for
[[[VC-DATA-MODEL-THREAT-MODEL-2.1|Verifiable Credentials Data Model threat
model]]] appear grayed in the diagram for
context and are defined in that document rather than repeated here.
</p>
<table class="dictionary">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,8 @@ response:
external resource. Because the render template is an external resource
whose content affects how the credential is presented, the integrity
considerations for it are a subset of
<a href="https://www.w3.org/TR/vc-data-model/threat-model/#t19-tampering-with-unprotected-external-resources">Tampering
with Unprotected External Resources</a> in the [[[VC-DATA-MODEL-2.0]]]
threat model; readers are referred there for the full analysis and
responses. An issuer that intends to update branding or layout over time
[[[VC-DATA-MODEL-THREAT-MODEL-2.1#tampering-with-unprotected-external-resources|Tampering
with Unprotected External Resources]]]; readers are referred there for
the full analysis and responses. An issuer that intends to update branding or layout over time
instead deliberately leaves the template mutable, accepting that
previously issued credentials render using the updated template.
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ description: >-
safe to render, so hostile content can arrive inside a well-formed, verified
credential. At the level of the data model this threat is a render-time
instance of
<a href="https://www.w3.org/TR/vc-data-model/threat-model/#t2-code-injection-via-credential-content">Code
Injection via Credential Content</a> in the [[[VC-DATA-MODEL-2.0]]] threat
model; the additional concern here is that the render method deliberately
executes template-supplied code as part of rendering.
[[[VC-DATA-MODEL-THREAT-MODEL-2.1#code-injection-via-credential-content|Code
Injection via Credential Content]]]; the additional concern here is that
the render method deliberately executes template-supplied code as part of
rendering.
response:
- id: R1
name: Confine the Render Process
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ description: >-
credential avoids the network requests entirely, at the cost of increasing
the size of the credential, which can be significant for constrained
devices. This threat is the render-time expression of
<a href="https://www.w3.org/TR/vc-data-model/threat-model/#t10-device-tracking-and-fingerprinting">Device
Tracking and Fingerprinting</a> in the [[[VC-DATA-MODEL-2.0]]] threat model,
to which readers are referred for the general analysis.
[[[VC-DATA-MODEL-THREAT-MODEL-2.1#device-tracking-and-fingerprinting|Device
Tracking and Fingerprinting]]], to which readers are referred for the
general analysis.
response:
- id: R1
name: Block Network Access During Rendering
Expand Down Expand Up @@ -52,6 +52,5 @@ response:
offline use and unlinkability embeds the template and its resources in
the credential, accepting the increase in credential size. The general
responses in
<a href="https://www.w3.org/TR/vc-data-model/threat-model/#t10-device-tracking-and-fingerprinting">Device
Tracking and Fingerprinting</a> in the [[[VC-DATA-MODEL-2.0]]] threat
model apply here as well.
[[[VC-DATA-MODEL-THREAT-MODEL-2.1#device-tracking-and-fingerprinting|Device
Tracking and Fingerprinting]]] apply here as well.
Loading