@@ -6173,72 +6173,28 @@ <h3>Content Integrity Protection</h3>
6173
6173
< p >
6174
6174
[=Verifiable credentials=] often contain URLs to data that resides outside of
6175
6175
the [=verifiable credential=] itself. Linked content that exists outside a
6176
- [=verifiable credential=], such as images, JSON-LD Contexts, JSON Schemas ,
6177
- and other machine-readable data, are often not protected against tampering
6178
- because the data resides outside of the protection of the
6176
+ [=verifiable credential=], such as images, JSON-LD extension contexts ,
6177
+ JSON Schemas, and other machine-readable data, are not protected by default
6178
+ against tampering because the data resides outside of the protection of the
6179
6179
< a href ="#securing-mechanisms "> securing mechanism</ a > on the
6180
- [=verifiable credential=]. For example, the content retrievable by
6181
- dereferencing the following highlighted links is not integrity protected, but
6182
- probably ought to be:
6180
+ [=verifiable credential=].
6183
6181
</ p >
6184
6182
6185
- < pre class ="example nohighlight "
6186
- title ="Non-content-integrity protected links ">
6187
- {
6188
- "@context": [
6189
- < span class ="highlight "> "https://www.w3.org/ns/credentials/v2"</ span > ,
6190
- < span class ="highlight "> "https://www.w3.org/ns/credentials/examples/v2"</ span >
6191
- ],
6192
- "id": "http://university.example/credentials/58473",
6193
- "type": ["VerifiableCredential", "ExampleAlumniCredential"],
6194
- "credentialSubject": {
6195
- "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
6196
- "image": < span class ="highlight "> "https://university.example/images/58473"</ span > ,
6197
- "alumniOf": {
6198
- "id": "did:example:c276e12ec21ebfeb1f712ebc6f1",
6199
- "name": "Example University"
6200
- }
6201
- }
6202
- }
6203
- </ pre >
6204
-
6205
6183
< p >
6206
- While this specification does not recommend any specific content integrity
6207
- protection, document authors who want to ensure links to content are integrity
6208
- protected are advised to use URL schemes that enforce content integrity.
6209
- </ p >
6210
-
6211
- < pre class ="example nohighlight " title ="Content-integrity protection for links to external data ">
6212
- {
6213
- "@context": [
6214
- "https://www.w3.org/ns/credentials/v2< span class ="highlight "> ?hl=z3aq31uzgnZBuWNzUB</ span > ",
6215
- "https://www.w3.org/ns/credentials/examples/v2< span class ="highlight "> ?hl=z8guWNzUBnZBu3aq31</ span > "
6216
- ],
6217
- "id": "http://university.example/credentials/58473",
6218
- "type": ["VerifiableCredential", "ExampleAlumniCredential"],
6219
- "credentialSubject": {
6220
- "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
6221
- "image": < span class ="highlight "> "https://example.com/image"</ span > ,
6222
- "alumniOf": {
6223
- "id": "did:example:c276e12ec21ebfeb1f712ebc6f1",
6224
- "name": "Example University"
6225
- }
6226
- }
6227
- }
6228
- </ pre >
6229
-
6230
- < p class ="note ">
6231
- It is debatable whether the JSON-LD Contexts above need protection because
6232
- production implementations are expected to ship with static copies of important
6233
- JSON-LD Contexts.
6184
+ This specification provides an optional mechanism, contained in Section
6185
+ [[[#integrity-of-related-resources]]], that is capable of ensuring the content
6186
+ integrity for external resources. While this mechanism need not be utilized
6187
+ for external resources that do not affect the security of the
6188
+ [=verifiable credential=], it is strongly suggested for external resources
6189
+ that could result in a security issue if the external content changes.
6234
6190
</ p >
6235
6191
6236
6192
< p >
6237
- While the example above is one way to achieve content integrity protection,
6238
- there are other solutions that might be better suited for certain applications.
6239
6193
Implementers are urged to understand how links to external machine-readable
6240
6194
content that are not content-integrity protected could result in successful
6241
- attacks against their applications.
6195
+ attacks against their applications and utilize the content integrity protection
6196
+ mechanism provided by this specification if a security issue could occur
6197
+ if the external resource is changed.
6242
6198
</ p >
6243
6199
6244
6200
</ section >
0 commit comments