@@ -2017,16 +2017,58 @@ <h4>Subject is the Holder</h4>
2017
2017
< a > holder</ a > and all contained < a > verifiable credentials</ a > are about a
2018
2018
< a > subject</ a > that can be identified to be the same as the < a > holder</ a > .
2019
2019
</ p >
2020
+ < p >
2021
+ If only the credentialSubject is allowed to insert a verifiable credential
2022
+ into a verifiable presentation the issuer MAY insert the "subjectOnly" property
2023
+ into the verifiable credential, as defined below.
2024
+
2025
+ < span class ="issue ">
2026
+ This feature is at risk and is likely to be removed due to lack of consensus.
2027
+ </ span >
2028
+ </ p >
2029
+
2030
+ < section >
2031
+
2032
+ < h5 > 'Subject Only' Property </ h5 >
2033
+
2034
+ < p >
2035
+ The Subject Only property states that a verifiable credential MUST only be
2036
+ encapsulated into a verifiable presentation whose proof was issued by the
2037
+ credentialSubject. A verifiable presentation that contains a verifiable credential
2038
+ containing the subjectOnly property whose proof creator is not
2039
+ the credentialSubject is invalid.
2040
+ </ p >
2041
+
2042
+ < pre class ="example nohighlight " title ="Subject Only Property ">
2043
+ {
2044
+ "id": "http://dmv.example.gov/credentials/3732",
2045
+ "type": ["VerifiableCredential", "ProofOfAgeCredential"],
2046
+ "issuer": "https://dmv.example.gov/issuers/14",
2047
+ "issued": "2010-01-01T19:73:24Z",
2048
+ "claim": {
2049
+ "credentialSubject": "did:example:ebfeb1f712ebc6f1c276e12ec21",
2050
+ "ageOver": 21
2051
+ },
2052
+ "SubjectOnly": "True",
2053
+ "proof": { ..
2054
+ "creator": "did:example:ebfeb1f712ebc6f1c276e12ec21",
2055
+ ... }
2056
+ }
2057
+ </ pre >
2058
+
2059
+ </ section >
2060
+
2020
2061
2021
2062
</ section >
2022
2063
2023
2064
< section >
2065
+
2024
2066
< h4 > Credential Uniquely Identifies a Subject</ h4 >
2025
2067
2026
2068
< p >
2027
2069
In this case, the < code > credentialSubject</ code > property might contain
2028
2070
multiple properties that each provide an aspect of the identity of the
2029
- < a > subject</ a > , and which together, unambiguously identifies the subject. Some
2071
+ < a > subject</ a > , and which together, unambiguously identify the subject. Some
2030
2072
use cases might not require the < a > holder</ a > to be identified at all, such as
2031
2073
checking to see if a doctor (the < a > subject</ a > ) is board certified. Other use
2032
2074
cases might require the < a > verifier</ a > to use out-of-band knowledge to
@@ -2061,162 +2103,30 @@ <h4>Credential Uniquely Identifies a Subject</h4>
2061
2103
address, and birth date of the individual.
2062
2104
</ p >
2063
2105
2106
+
2064
2107
</ section >
2065
2108
2066
2109
< section >
2067
- < h4 > Subject Passes the Verifiable Credential to a Holder</ h4 >
2068
-
2110
+ < h4 > Subject Passes the Verifiable Credential to a Holder</ h4 >
2069
2111
< p >
2070
- < a > Verifiable credentials</ a > are usually presented to < a > verifiers</ a > by the
2071
- < a > subject</ a > . In some cases, the < a > subject</ a > might need to pass the whole
2072
- or part of a < a > verifiable credential</ a > to another < a > holder</ a > . The data
2073
- model allows for both cases, as outlined below.
2074
- </ p >
2075
-
2076
- < p >
2077
- If only the < a > subject</ a > is allowed to present the
2078
- < a > verifiable credential</ a > to a < a > verifier</ a > , the < a > issuer</ a > MUST
2079
- insert the < code > SubjectOnly</ code > < code > termsOfUse</ code > property into the
2080
- < a > verifiable credential</ a > , as defined below. < span class ="issue ">
2081
- This feature is at risk and is likely to be removed due to lack of consensus.
2082
- </ span >
2083
- </ p >
2084
-
2085
- < p >
2086
- If the < a > issuer</ a > permits the < a > subject</ a > to pass the whole or part of a
2087
- < a > verifiable credential</ a > to a < a > holder</ a > (for example, a patient might
2088
- pass a prescription < a > verifiable credential</ a > to a relative for
2089
- presentation to a pharmacist for dispensing), the < a > subject</ a > MUST issue a
2090
- < a > verifiable credential</ a > to the < a > holder</ a > containing the
2091
- < code > credentialSubject</ code > properties being passed on, as described below.
2092
- < span class ="issue "> This feature is at risk and is likely to be removed and
2093
- replaced with another solution, possibly created by another Working Group
2094
- focusing on delegation of authority instead of delegation of attributes.
2095
- </ span >
2096
- </ p >
2097
-
2098
- < section >
2099
-
2100
- < h5 > SubjectOnly Terms of Use </ h5 >
2101
-
2102
- < p class ="issue " data-number =204 >
2103
- The group is currently debating the best security model for delegation. Readers
2104
- should treat this entire section as at-risk and currently under debate.
2105
- </ p >
2106
-
2107
- < p >
2108
- The < code > SubjectOnly</ code > < code > termsOfUse</ code > property states that a
2109
- < a > verifiable credential</ a > MUST be presented to a < a > verifier</ a > by the
2110
- < a > subject</ a > only. If a < a > verifier</ a > is presented with a
2111
- < a > verifiable credential</ a > containing the < code > SubjectOnly</ code >
2112
- < code > termsOfUse</ code > property by anyone other than the < a > subject</ a > , the
2113
- < a > verifier</ a > MUST refuse to accept it.
2114
- </ p >
2115
-
2116
- < pre class ="example nohighlight " title ="Subject Only termsOfUse property by an Issuer ">
2117
- {
2118
- "id": "http://example.edu/credentials/3732",
2119
- "type": ["VerifiableCredential", "UniversityDegreeCredential"],
2120
- "issuer": "https://example.edu/issuers/14",
2121
- "issued": "2010-01-01T19:73:24Z",
2122
- "credentialSubject": {
2123
- "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
2124
- "degree": {
2125
- "type": "BachelorDegree",
2126
- "name": "Bachelor of Science in Mechanical Engineering"
2127
- }
2128
- },
2129
- < span class ="highlight "> "termsOfUse": [{
2130
- "type": "SubjectOnly",
2131
- }]
2132
- }</ span > ,
2133
- "proof": { ... }
2134
- }
2135
- </ pre >
2136
-
2137
- </ section >
2138
-
2139
- < section >
2140
- < h5 > Passing on a Verifiable Credential </ h5 >
2141
-
2142
- < p class ="issue " data-number =204 >
2143
- The group is currently debating the best security model for delegation. Readers
2144
- should treat this entire section as at-risk and currently under debate.
2145
- < p >
2146
-
2147
- < p >
2148
- When a < a > subject</ a > passes a < a > verifiable credential</ a > to a
2149
- < a > holder</ a > , the < a > subject</ a > SHOULD issue a new
2150
- < a > verifiable credential</ a > to the < a > holder</ a > in which the:
2151
-
2152
- < ul >
2153
- < li >
2154
- < a > Issuer</ a > is the < a > subject</ a > .
2155
- </ li >
2156
- < li >
2157
- < a > Subject</ a > is the < a > holder</ a > to whom the < a > verifiable credential</ a >
2158
- is being passed.
2159
- </ li >
2160
- < li >
2161
- < code > credentialSubject</ code > property contains the data being passed on.
2162
- </ li >
2163
- </ ul >
2112
+ Normally verifiable credentials will be presented to verifiers by the
2113
+ subject. However in some cases, the subject may need to pass the whole or
2114
+ part of a verifiable credential to another holder. For example, a patient
2115
+ (the subject) may be too ill to take a prescription (the verifiable credential)
2116
+ to the pharmacist (the verifier), and so may ask a friend to take the
2117
+ prescription for him/her in order to pick up the medication.
2118
+ </ p >
2164
2119
2165
- As well, the < a > holder</ a > creates a < a > verifiable presentation</ a > containing
2166
- these two < a > verifiable credentials</ a > .
2120
+ < p >
2121
+ The data model allows for this, by the subject issuing a new verifiable
2122
+ credential and giving it to the new holder, so that the holder can present
2123
+ both verifiable credentials to the verifier. However, the content of this
2124
+ second verifiable credential is likely to be application specific, and therefore
2125
+ this specification does not standardise the contents of this second verifiable
2126
+ credential. Nevertheless a non-normative example is given in Appendix A.2
2167
2127
</ p >
2168
-
2169
- < pre class ="example nohighlight " title ="An example of a holder presenting verifiable
2170
- credential properties that have been passed to it by the subject ">
2171
- {
2172
- "id": "did:example:76e12ec21ebhyu1f712ebc6f1z2",
2173
- "type": ["VerifiablePresentation"],
2174
- "verifiableCredential": [{
2175
- "id": "http://example.gov/credentials/3732",
2176
- "type": ["VerifiableCredential", "PrescriptionCredential"],
2177
- "issuer": "https://example.edu",
2178
- "issued": "2010-01-01",
2179
- "credentialSubject": {
2180
- "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
2181
- "prescription": {....}
2182
- },
2183
- "revocation": {
2184
- "id": "http://example.gov/revocations/738",
2185
- "type": "SimpleRevocationList2017"
2186
- },
2187
- "proof": {....}
2188
- },
2189
- {
2190
- "id": "https://example.com/VC/123456789",
2191
- "type": ["VerifiableCredential", "PrescriptionCredential"],
2192
- "issuer": "did:example:ebfeb1f712ebc6f1c276e12ec21",
2193
- "issued": "2010-01-03",
2194
- "credentialSubject": {
2195
- "id": "did:example:76e12ec21ebhyu1f712ebc6f1z2",
2196
- "prescription": {....}
2197
- },
2198
- "proof": {
2199
- "type": "RsaSignature2018",
2200
- "created": "2017-06-17T10:03:48Z",
2201
- "creator": "did:example:ebfeb1f712ebc6f1c276e12ec21/keys/234",
2202
- "nonce": "d61c4599-0cc2-4479-9efc-c63add3a43b2",
2203
- "signatureValue": "pYw8XNi1..Cky6Ed = "
2204
- }
2205
- }
2206
- ],
2207
- "proof": [{
2208
- "type": "RsaSignature2018",
2209
- "created": "2017-06-18T21:19:10Z",
2210
- "creator": "did:example:76e12ec21ebhyu1f712ebc6f1z2/keys/2",
2211
- "nonce": "c0ae1c8e-c7e7-469f-b252-86e6a0e7387e",
2212
- "signatureValue": "BavEll0/I1..W3JT24 = "
2213
- }]
2214
- }
2215
- </ pre >
2216
-
2217
-
2128
+
2218
2129
</ section >
2219
- </ section >
2220
2130
2221
2131
< section >
2222
2132
< h4 > Holder Acts on Behalf of the Subject</ h4 >
@@ -3961,7 +3871,75 @@ <h3>Device Theft and Impersonation</h3>
3961
3871
</ ul >
3962
3872
3963
3873
</ section >
3874
+ < section >
3875
+ < h2 > Appendix A.2 Subject passes a verifiable credential to someone else</ h2 >
3876
+
3877
+ < em > This section is non-normative.</ em >
3878
+
3879
+ < p >
3880
+ When the subject passes a verifiable credential to another
3881
+ holder, the subject may issue a new verifiable credential to the holder in which:
3882
+ the issuer is the subject,
3883
+ the subject is the holder to whom the verifiable credential is being passed,
3884
+ and the claim contains the properties that are being passed on.
3885
+ The holder may now create a verifiable presentation that contains these two
3886
+ verifiable credentials, so that the verifier can verify that the subject gave
3887
+ the original verifiable credential to the holder.
3888
+
3889
+ < pre class ="example nohighlight " title ="An example of a holder presenting
3890
+ a verifiable credential that has been passed to it by the subject ">
3891
+ {
3892
+ "id": "did:example:76e12ec21ebhyu1f712ebc6f1z2",
3893
+ "type": ["VerifiablePresentation"],
3894
+ "credential": [{
3895
+ "id": "http://example.gov/credentials/3732",
3896
+ "type": ["VerifiableCredential", "PrescriptionCredential"],
3897
+ "issuer": "https://dmv.example.gov",
3898
+ "issued": "2010-01-01",
3899
+ "claim": {
3900
+ "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
3901
+ "prescription": {....}
3902
+ },
3903
+ "revocation": {
3904
+ "id": "http://example.gov/revocations/738",
3905
+ "type": "SimpleRevocationList2017"
3906
+ },
3907
+ "proof": {....}
3908
+ },
3909
+ {
3910
+ "id": "https://example.com/VC/123456789",
3911
+ "type": ["VerifiableCredential", "PrescriptionCredential"],
3912
+ "issuer": "did:example:ebfeb1f712ebc6f1c276e12ec21",
3913
+ "issued": "2010-01-03",
3914
+ "claim": {
3915
+ "id": "did:example:76e12ec21ebhyu1f712ebc6f1z2",
3916
+ "prescription": {....}
3917
+ },
3918
+ "proof": {
3919
+ "type": "RsaSignature2018",
3920
+ "created": "2017-06-17T10:03:48Z",
3921
+ "creator": "did:example:ebfeb1f712ebc6f1c276e12ec21/keys/234",
3922
+ "nonce": "d61c4599-0cc2-4479-9efc-c63add3a43b2",
3923
+ "signatureValue": "pYw8XNi1..Cky6Ed = "
3924
+ }
3925
+ }
3926
+ ],
3927
+ "proof": [{
3928
+ "type": "RsaSignature2018",
3929
+ "created": "2017-06-18T21:19:10Z",
3930
+ "creator": "did:example:76e12ec21ebhyu1f712ebc6f1z2/keys/2",
3931
+ "nonce": "c0ae1c8e-c7e7-469f-b252-86e6a0e7387e",
3932
+ "signatureValue": "BavEll0/I1..W3JT24 = "
3933
+ }]
3934
+ }
3935
+ </ pre >
3964
3936
3937
+ < p >
3938
+ In the above example, a patient (the original subject) has passed a prescription
3939
+ (the original verifiable credential) to a friend, and has issued a new verifiable
3940
+ credential to the friend, in which the friend is the subject, the original subject is
3941
+ the issuer, and the credential is a copy of the original prescription.
3942
+ </ p >
3965
3943
</ body >
3966
3944
</ html >
3967
3945
0 commit comments