diff --git a/index.html b/index.html index fa9053faf..6acc84447 100644 --- a/index.html +++ b/index.html @@ -2000,16 +2000,58 @@
+If only the credentialSubject is allowed to insert a verifiable credential +into a verifiable presentation the issuer MAY insert the "subjectOnly" property +into the verifiable credential, as defined below. + + +This feature is at risk and is likely to be removed due to lack of consensus. + +
+ ++The Subject Only property states that a verifiable credential MUST only be +encapsulated into a verifiable presentation whose proof was issued by the +credentialSubject. A verifiable presentation that contains a verifiable credential +containing the subjectOnly property whose proof creator is not +the credentialSubject is invalid. +
+ ++{ + "id": "http://dmv.example.gov/credentials/3732", + "type": ["VerifiableCredential", "ProofOfAgeCredential"], + "issuer": "https://dmv.example.gov/issuers/14", + "issued": "2010-01-01T19:73:24Z", + "claim": { + "credentialSubject": "did:example:ebfeb1f712ebc6f1c276e12ec21", + "ageOver": 21 + }, + "SubjectOnly": "True", + "proof": { .. + "creator": "did:example:ebfeb1f712ebc6f1c276e12ec21", + ... } +} ++ +
In this case, the credentialSubject
property might contain
multiple properties that each provide an aspect of the identity of the
-subject, and which together, unambiguously identifies the subject. Some
+subject, and which together, unambiguously identify the subject. Some
use cases might not require the holder to be identified at all, such as
checking to see if a doctor (the subject) is board certified. Other use
cases might require the verifier to use out-of-band knowledge to
@@ -2044,162 +2086,30 @@
-Verifiable credentials are usually presented to verifiers by the -subject. In some cases, the subject might need to pass the whole -or part of a verifiable credential to another holder. The data -model allows for both cases, as outlined below. -
- -
-If only the subject is allowed to present the
-verifiable credential to a verifier, the issuer MUST
-insert the SubjectOnly
termsOfUse
property into the
-verifiable credential, as defined below.
-This feature is at risk and is likely to be removed due to lack of consensus.
-
-
-If the issuer permits the subject to pass the whole or part of a
-verifiable credential to a holder (for example, a patient might
-pass a prescription verifiable credential to a relative for
-presentation to a pharmacist for dispensing), the subject MUST issue a
-verifiable credential to the holder containing the
-credentialSubject
properties being passed on, as described below.
-This feature is at risk and is likely to be removed and
-replaced with another solution, possibly created by another Working Group
-focusing on delegation of authority instead of delegation of attributes.
-
-
-The group is currently debating the best security model for delegation. Readers -should treat this entire section as at-risk and currently under debate. -
- -
-The SubjectOnly
termsOfUse
property states that a
-verifiable credential MUST be presented to a verifier by the
-subject only. If a verifier is presented with a
-verifiable credential containing the SubjectOnly
-termsOfUse
property by anyone other than the subject, the
-verifier MUST refuse to accept it.
-
-{
- "id": "http://example.edu/credentials/3732",
- "type": ["VerifiableCredential", "UniversityDegreeCredential"],
- "issuer": "https://example.edu/issuers/14",
- "issued": "2010-01-01T19:73:24Z",
- "credentialSubject": {
- "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
- "degree": {
- "type": "BachelorDegree",
- "name": "Bachelor of Science in Mechanical Engineering"
- }
- },
- "termsOfUse": [{
- "type": "SubjectOnly",
- }]
- },
- "proof": { ... }
-}
-
-
- -The group is currently debating the best security model for delegation. Readers -should treat this entire section as at-risk and currently under debate. -
- -
-When a subject passes a verifiable credential to a -holder, the subject SHOULD issue a new -verifiable credential to the holder in which the: - -
credentialSubject
property contains the data being passed on.
- +The data model allows for this, by the subject issuing a new verifiable +credential and giving it to the new holder, so that the holder can present +both verifiable credentials to the verifier. However, the content of this +second verifiable credential is likely to be application specific, and therefore +this specification does not standardise the contents of this second verifiable +credential. Nevertheless a non-normative example is given in Appendix A.2
- --{ - "id": "did:example:76e12ec21ebhyu1f712ebc6f1z2", - "type": ["VerifiablePresentation"], - "verifiableCredential": [{ - "id": "http://example.gov/credentials/3732", - "type": ["VerifiableCredential", "PrescriptionCredential"], - "issuer": "https://example.edu", - "issued": "2010-01-01", - "credentialSubject": { - "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", - "prescription": {....} - }, - "revocation": { - "id": "http://example.gov/revocations/738", - "type": "SimpleRevocationList2017" - }, - "proof": {....} - }, - { - "id": "https://example.com/VC/123456789", - "type": ["VerifiableCredential", "PrescriptionCredential"], - "issuer": "did:example:ebfeb1f712ebc6f1c276e12ec21", - "issued": "2010-01-03", - "credentialSubject": { - "id": "did:example:76e12ec21ebhyu1f712ebc6f1z2", - "prescription": {....} - }, - "proof": { - "type": "RsaSignature2018", - "created": "2017-06-17T10:03:48Z", - "creator": "did:example:ebfeb1f712ebc6f1c276e12ec21/keys/234", - "nonce": "d61c4599-0cc2-4479-9efc-c63add3a43b2", - "signatureValue": "pYw8XNi1..Cky6Ed = " - } - } - ], - "proof": [{ - "type": "RsaSignature2018", - "created": "2017-06-18T21:19:10Z", - "creator": "did:example:76e12ec21ebhyu1f712ebc6f1z2/keys/2", - "nonce": "c0ae1c8e-c7e7-469f-b252-86e6a0e7387e", - "signatureValue": "BavEll0/I1..W3JT24 = " - }] -} -- - +
+When the subject passes a verifiable credential to another +holder, the subject may issue a new verifiable credential to the holder in which: +the issuer is the subject, +the subject is the holder to whom the verifiable credential is being passed, +and the claim contains the properties that are being passed on. +The holder may now create a verifiable presentation that contains these two +verifiable credentials, so that the verifier can verify that the subject gave +the original verifiable credential to the holder. + +
+{ + "id": "did:example:76e12ec21ebhyu1f712ebc6f1z2", + "type": ["VerifiablePresentation"], + "credential": [{ + "id": "http://example.gov/credentials/3732", + "type": ["VerifiableCredential", "PrescriptionCredential"], + "issuer": "https://dmv.example.gov", + "issued": "2010-01-01", + "claim": { + "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", + "prescription": {....} + }, + "revocation": { + "id": "http://example.gov/revocations/738", + "type": "SimpleRevocationList2017" + }, + "proof": {....} + }, + { + "id": "https://example.com/VC/123456789", + "type": ["VerifiableCredential", "PrescriptionCredential"], + "issuer": "did:example:ebfeb1f712ebc6f1c276e12ec21", + "issued": "2010-01-03", + "claim": { + "id": "did:example:76e12ec21ebhyu1f712ebc6f1z2", + "prescription": {....} + }, + "proof": { + "type": "RsaSignature2018", + "created": "2017-06-17T10:03:48Z", + "creator": "did:example:ebfeb1f712ebc6f1c276e12ec21/keys/234", + "nonce": "d61c4599-0cc2-4479-9efc-c63add3a43b2", + "signatureValue": "pYw8XNi1..Cky6Ed = " + } + } + ], + "proof": [{ + "type": "RsaSignature2018", + "created": "2017-06-18T21:19:10Z", + "creator": "did:example:76e12ec21ebhyu1f712ebc6f1z2/keys/2", + "nonce": "c0ae1c8e-c7e7-469f-b252-86e6a0e7387e", + "signatureValue": "BavEll0/I1..W3JT24 = " + }] +} ++
+In the above example, a patient (the original subject) has passed a prescription +(the original verifiable credential) to a friend, and has issued a new verifiable +credential to the friend, in which the friend is the subject, the original subject is +the issuer, and the credential is a copy of the original prescription. +