Skip to content

Resolve tension between Threat Model and Privacy & Security Considerations - #711

Open
eric-schuh wants to merge 2 commits into
w3c:mainfrom
eric-schuh:transform_privacy_and_security_to_threats
Open

Resolve tension between Threat Model and Privacy & Security Considerations#711
eric-schuh wants to merge 2 commits into
w3c:mainfrom
eric-schuh:transform_privacy_and_security_to_threats

Conversation

@eric-schuh

@eric-schuh eric-schuh commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

This PR is in response to: #687

Adding threats created from transforming the privacy and security consideration sections into threats. Also modifying the privacy and security consideration sections to inform readers of the transition to using the threat model approach in place of these sections.

Any sections from the security considerations that did not have threats that directly applied to this threat model but still wanted to make a recommendation were move to appendixes in the threat model.


Preview | Diff

…sideration sections into threats. Also modifying the privacy and security consideration sections to inform readers of the transition to using the threat model approach in place of these sections.
Comment thread threat-model/index.html
</section>

<section>
<h3>Other Security Considerations</h3>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can put this in the Threat Model section introduction?

Comment thread threat-model/index.html
</p>

<section>
<h3>Secure Coding Practices</h3>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe this goes in the conformance section? Or where we talk about conforming implementations?

@kezike kezike left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@eric-schuh Thanks for extracting the threats from the security and privacy considerations. Feeling better about deleting those sections.

My review feedback contained the following types of comments:

  1. Suggestion for threat tags
  2. Suggestion for different STRIDE taxonomy class
  3. Response ID conflict resolution
  4. Minor renaming/capitalization/grammar updates
  5. Clarification questions

After these updates are applied and PR #709 is merged, we will also need to add the inline references (including tags) for each of the threats to the core spec doc. Happy to help with that if needed.

Comment thread threat-model/threats/t30-issuance-request-and-or-delivery-made-by-third-party.js Outdated
var threat = {
id: "T30",
name: "Issuance request and/or delivery made by third party",
desc: "Verifiable credentials issuance has a request phase and a delivery phase. The request might be made by the subject or another role, and delivery can be to a client that might or might not be controlled by the subject.",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This threat is a bit confusing. For one, the terms “request phase” and “delivery phase” are a bit confusing. Secondly the notion of the subject requesting issuance is not common, unless you’re referring to the credential refresh flow. Could you reword this threat or explain the intention behind it in a comment?

Comment thread threat-model/threats/t30-issuance-request-and-or-delivery-made-by-third-party.js Outdated
Comment thread threat-model/threats/t31-unintended-data-leak-due-to-third-party-processing.js Outdated
(function () {
var threat = {
id: "T40",
name: "Improper credential validation leads to security vulnerabilities",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
name: "Improper credential validation leads to security vulnerabilities",
name: "Improper Credential Validation Leads to Security Vulnerabilities",

name: "Improper credential validation leads to security vulnerabilities",
desc: "In most cases, simply verifying the proof might not be sufficient to properly handle the received data. Improper validation will often lead to security vulnerabilities.",
response: [
{ id: "R44", name: "Additional validation", type: "Reduce", desc: "Verifier services are expected to configure additional validation steps based on their use cases. To define such additional validations, implementers can refer to specifications such as Section 2.3: Resource Integrity and Section 2.4: Contexts and Vocabularies in the Verifiable Credential Data Integrity 1.0 specification where further information can be found about context handling and integrity verification. Additional validation steps can be accounted for when returning a verification response object, through the problem details." }

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
{ id: "R44", name: "Additional validation", type: "Reduce", desc: "Verifier services are expected to configure additional validation steps based on their use cases. To define such additional validations, implementers can refer to specifications such as Section 2.3: Resource Integrity and Section 2.4: Contexts and Vocabularies in the Verifiable Credential Data Integrity 1.0 specification where further information can be found about context handling and integrity verification. Additional validation steps can be accounted for when returning a verification response object, through the problem details." }
{ id: "R44", name: "Additional Credential Validation", type: "Reduce", desc: "Verifier services are expected to configure additional validation steps based on their use cases. To define such additional validations, implementers can refer to resources such as the <a data-cite="?VC-DATA-INTEGRITY#resource-integrity">Resource Integrity</a> and <a data-cite="?VC-DATA-INTEGRITY#contexts-and-vocabularies">Contexts and Vocabularies</a> sections in [[[?VC-DATA-INTEGRITY]]], where further information can be found about context handling and integrity verification. Additional validation steps can be reported when returning a verification response object, through the <a href=“#error-handling”>problem details</a>." }

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please confirm the following before applying this suggestion:

  1. The data-cite anchor tag attributes properly link to the appropriate sections in the Data Integrity spec
  2. [[[?VC-DATA-INTEGRITY]]] properly renders the named link to the Data Integrity spec
  3. The #error-handling anchor properly links to the Error Handling section of the VCALM spec (may need to use <a data-cite="VCALM#error-handling">problem details</a> instead)

response: [
{ id: "R44", name: "Additional validation", type: "Reduce", desc: "Verifier services are expected to configure additional validation steps based on their use cases. To define such additional validations, implementers can refer to specifications such as Section 2.3: Resource Integrity and Section 2.4: Contexts and Vocabularies in the Verifiable Credential Data Integrity 1.0 specification where further information can be found about context handling and integrity verification. Additional validation steps can be accounted for when returning a verification response object, through the problem details." }
],
elements: ["E1", "P5", "P4"],

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
elements: ["E1", "P5", "P4"],
elements: ["E1", "P5", "P4"],
tags: ["security"],

],
elements: ["E1", "P5", "P4"],
taxonomyName: "STRIDE",
taxonomyClass: "Denial of Service"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
taxonomyClass: "Denial of Service"
taxonomyClass: "Tampering"

Comment thread threat-model/index.html
</section>


<section class="appendix">

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don’t know if it makes sense to have traditional security and privacy consideration sections in the threat model, but I agree with Manu about finding strategic places to place this information in the core spec (e.g., conformance, threat model, or some other appendix) or the new threat model document.

@kezike kezike left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@eric-schuh Thanks for extracting the threats from the security and privacy considerations. Feeling better about deleting those sections.

My review feedback contained the following types of comments:

  1. Suggestion for threat tags
  2. Suggestion for different STRIDE taxonomy class
  3. Response ID conflict resolution
  4. Minor renaming/capitalization/grammar updates
  5. Clarification questions

After these updates are applied and PR #709 is merged, we will also need to add the inline references (including tags) for each of the threats to the core spec doc. Happy to help with that if needed.

@eric-schuh

eric-schuh commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator Author

@eric-schuh Thanks for extracting the threats from the security and privacy considerations. Feeling better about deleting those sections.

My review feedback contained the following types of comments:

  1. Suggestion for threat tags
  2. Suggestion for different STRIDE taxonomy class
  3. Response ID conflict resolution
  4. Minor renaming/capitalization/grammar updates
  5. Clarification questions

After these updates are applied and PR #709 is merged, we will also need to add the inline references (including tags) for each of the threats to the core spec doc. Happy to help with that if needed.

Thanks for the review, I will go through the changes before the call tomorrow. I think the best path forward is to get #709 merged and then update this PR to handle any conflicts, include the new inline references for the new threats, and handle the suggestions made on the last call about the two security consideration sections I left as appendixes.

@kezike

kezike commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Thanks for the review, I will go through the changes before the call tomorrow. I think the best path forward is to get #709 merged and then update this PR to handle any conflicts, include the new inline references for the new threats, and handle the suggestions made on the last call about the two security consideration sections I left as appendixes.

@eric-schuh I have merged PR #709 into main, so feel free to merge this PR when it is ready.

Co-authored-by: Kayode Ezike <kezike13@gmail.com>
@eric-schuh

Copy link
Copy Markdown
Collaborator Author

Thanks for the review, I will go through the changes before the call tomorrow. I think the best path forward is to get #709 merged and then update this PR to handle any conflicts, include the new inline references for the new threats, and handle the suggestions made on the last call about the two security consideration sections I left as appendixes.

@eric-schuh I have merged PR #709 into main, so feel free to merge this PR when it is ready.

Will do, I am having some issues with Github not responding this morning so will return to this tomorrow and finish up resolving your non-editorial comments/suggestions. As long as there is no push back from the group on the call today I will plan on merging once those are complete.

name: "Malicious entity acts on behalf of incapable party",
desc: "Some subjects such as a new born baby, a pet, or a person with dementia, are incapable of acting on their own behalf. In these cases requests may be made on behalf of a subject with no cryptographic delegation possible.",
name: "Malicious Entity Acts on Behalf of Incapable Party",
desc: "Some subjects such as a new born baby, a pet, or a person with dementia, are incapable of acting on their own behalf. In these cases requests may be made on behalf of a subject with no cryptographic delegation possible. This can be problematic for guardians with malicious intent.",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
desc: "Some subjects such as a new born baby, a pet, or a person with dementia, are incapable of acting on their own behalf. In these cases requests may be made on behalf of a subject with no cryptographic delegation possible. This can be problematic for guardians with malicious intent.",
desc: "Some subjects such as a new born baby, a pet, or a person with dementia, are incapable of acting on their own behalf. In these cases requests may be made on behalf of a subject with no cryptographic delegation possible. This can be problematic when guardians have malicious intent.",

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants