You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/source/identity/identity.md
+66-66Lines changed: 66 additions & 66 deletions
Original file line number
Diff line number
Diff line change
@@ -16,8 +16,8 @@ actor's specific identity.
16
16
17
17
Most importantly, **an identity** must be **verifiable** (a real
18
18
identity, in other words), and for this reason it must come from an
19
-
authority **trusted** by the system. A membership service provider (MSP) is
20
-
the means to achieve this in Hyperledger Fabric. More specifically,
19
+
authority **trusted** by the system. A [membership service provider](../membership/membership.html)
20
+
(MSP) is the means to achieve this in Hyperledger Fabric. More specifically,
21
21
an MSP is a component that represents the membership rules of an organization,
22
22
and as such, it that defines the rules that govern a valid identity
23
23
of a member of this organization. The default MSP implementation in Fabric
@@ -59,16 +59,16 @@ sure it comes from a verified source.
59
59

60
60
61
61
*The elements of Public Key Infrastructure (PKI). A PKI is comprised of Certificate
62
-
Authorities who issue digital certificates to parties (e.g., users of a service, service
62
+
Authorities who issue digital certificates to parties (e.g., users of a service, service
63
63
provider), who then use them to authenticate themselves in the messages they exchange
64
64
with their environment. A CA's Certificate Revocation List (CRL) constitutes a reference
65
-
for the certificates that are no longer valid. Revocation of a certificate can happen fora number of reasons. For example, a certificate may be revoked because the cryptographic
65
+
for the certificates that are no longer valid. Revocation of a certificate can happen fora number of reasons. For example, a certificate may be revoked because the cryptographic
66
66
private material associated to the certificate has been exposed.
67
67
68
-
Although a blockchain network is more than a communications network, it relies on the
69
-
PKI standard to ensure secure communication between various network participants, and to
70
-
ensure that messages posted on the blockchain are properly authenticated.
71
-
It's therefore really important to understand the basics of PKI and then why MSPs are
68
+
Although a blockchain network is more than a communications network, it relies on the
69
+
PKI standard to ensure secure communication between various network participants, and to
70
+
ensure that messages posted on the blockchain are properly authenticated.
71
+
It's therefore really important to understand the basics of PKI and then why MSPs are
72
72
so important.
73
73
74
74
There are four key elements to PKI:
@@ -79,25 +79,25 @@ There are four key elements to PKI:
79
79
***Certificate Revocation Lists**
80
80
81
81
Let's quickly describe these PKI basics, and if you want to know more details,
82
-
[Wikipedia](./https://en.wikipedia.org/wiki/Public_key_infrastructure) is a good place to start.
82
+
[Wikipedia](https://en.wikipedia.org/wiki/Public_key_infrastructure) is a good place to start.
83
83
84
84
## Digital Certificates
85
85
86
86
A digital certificate is a document which holds a set of attributes relating to a
87
87
party. The most common type of certificate is the one compliant with the [X.509 standard](https://en.wikipedia.org/wiki/X.509),
88
-
which allows the encoding of a party's identifying details in its structure.
89
-
For example, John Doe of Accounting division in
90
-
FOO Corporation in Detroit, Michigan might have a digital certificate with a
91
-
`SUBJECT` attribute of `C=US, ST=Michigan, L=Detroit, O=FOO Corporation, OU=Accounting,
92
-
CN=John Doe /UID=123456`. John's certificate is similar to his government identity
88
+
which allows the encoding of a party's identifying details in its structure.
89
+
For example, John Doe of Accounting division in
90
+
FOO Corporation in Detroit, Michigan might have a digital certificate with a
91
+
`SUBJECT` attribute of `C=US, ST=Michigan, L=Detroit, O=FOO Corporation, OU=Accounting,
92
+
CN=John Doe /UID=123456`. John's certificate is similar to his government identity
93
93
card -- it provides information about John which he can use to prove key facts about him.
94
-
There are many other attributes in an X.509 certificate, but let's concentrate
94
+
There are many other attributes in an X.509 certificate, but let's concentrate
95
95
on just these for now.
96
96
97
97

98
98
99
-
*A digital certificate describing a party called John Doe. John is the `SUBJECT` of the
100
-
certificate, and the highlighted `SUBJECT` text shows key facts about John. The
99
+
*A digital certificate describing a party called John Doe. John is the `SUBJECT` of the
100
+
certificate, and the highlighted `SUBJECT` text shows key facts about John. The
101
101
certificate also holds many more pieces of information, as you can see. Most importantly,
102
102
John's public key is distributed within his certificate, whereas his private signing key
103
103
is not. This signing key must be kept private.*
@@ -107,52 +107,52 @@ technique called cryptography (literally, "*secret writing*") so that tampering
107
107
invalidate the certificate. Cryptography allows John to present his certificate to others
108
108
to prove his identity so long as the other party trusts the certificate issuer, known
109
109
as a **Certificate Authority** (CA). As long as the CA keeps certain cryptographic
110
-
information securely (meaning, its own **private signing key**), anyone reading the
111
-
certificate can be sure that the information about John has not been tampered with --
112
-
it will always have those particular attributes for John Doe. Think of Mary's X.509
110
+
information securely (meaning, its own **private signing key**), anyone reading the
111
+
certificate can be sure that the information about John has not been tampered with --
112
+
it will always have those particular attributes for John Doe. Think of Mary's X.509
113
113
certificate as a digital identity card that is impossible to change.
114
114
115
115
## Authentication \& Public keys and Private Keys
116
116
117
-
Authentication and message integrity are important concepts of secure
118
-
communication. Authentication requires that parties who exchange messages
119
-
can be assured of the identity that created a specific message. Integrity
120
-
requires that the message was not modified during its transmission.
121
-
For example, you might want to be sure you're communicating with the real John
122
-
Doe than an impersonator. Or if John has sent you a message, you might want to be sure
117
+
Authentication and message integrity are important concepts of secure
118
+
communication. Authentication requires that parties who exchange messages
119
+
can be assured of the identity that created a specific message. Integrity
120
+
requires that the message was not modified during its transmission.
121
+
For example, you might want to be sure you're communicating with the real John
122
+
Doe than an impersonator. Or if John has sent you a message, you might want to be sure
123
123
that it hasn't been tampered with by anyone else during transmission.
124
124
125
125
Traditional authentication mechanisms rely on **digital signature mechanisms**, that
126
126
as the name suggests, allow a party to digitally **sign** its messages. Digital
127
127
signatures also provide guarantees on the integrity of the signed message.
128
128
129
-
Technically speaking, digital signature mechanisms require require for each party to
130
-
hold two cryptographically connected keys: a public key that is made widely available,
131
-
and acts as authentication anchor, and a private key that is used to produce
132
-
**digital signatures** on messages. Recipients of digitally signed messages can verify
133
-
the origin and integrity of a received message by checking that the
134
-
attached signature is valid under the public key of the expected sender.
129
+
Technically speaking, digital signature mechanisms require require for each party to
130
+
hold two cryptographically connected keys: a public key that is made widely available,
131
+
and acts as authentication anchor, and a private key that is used to produce
132
+
**digital signatures** on messages. Recipients of digitally signed messages can verify
133
+
the origin and integrity of a received message by checking that the
134
+
attached signature is valid under the public key of the expected sender.
135
135
136
136
**The unique relationship between a private key and the respective public key is the
137
-
cryptographic magic that makes secure communications possible**. The unique
138
-
mathematical relationship between the keys is such that the private key can be used to
139
-
produce a signature on a message that only the corresponding public key can match, and
140
-
only on the same message.
137
+
cryptographic magic that makes secure communications possible**. The unique
138
+
mathematical relationship between the keys is such that the private key can be used to
139
+
produce a signature on a message that only the corresponding public key can match, and
140
+
only on the same message.
141
141
142
142

143
143
144
-
In the example above, to authenticate his message Joe uses his private key to produce a
144
+
In the example above, to authenticate his message Joe uses his private key to produce a
145
145
signature on the message, which he then attaches to the message. The signature
146
-
can be verified by anyone who sees the signed message, using John's public key.
146
+
can be verified by anyone who sees the signed message, using John's public key.
147
147
148
148
149
149
150
150
## Certificate Authorities
151
151
152
-
As you've seen, an actor or a node is able to participate in the blockchain network,
152
+
As you've seen, an actor or a node is able to participate in the blockchain network,
153
153
via the means of a **digital identity** issued for it by an authority trusted by the
154
154
system. In the most common case, digital identities (or simply **identities**) have
155
-
the form of cryptographically validated digital certificates that comply with X.509
155
+
the form of cryptographically validated digital certificates that comply with X.509
156
156
standard, and are issued by a Certificate Authority (CA).
157
157
158
158
CAs are a common part of internet security protocols, and you've probably heard of
@@ -162,24 +162,24 @@ GoDaddy, and Comodo, among others.
*A Certificate Authority dispenses certificates to different actors. These certificates
165
-
are digitally signed by the CA (i.e, using the CA's private key), and
165
+
are digitally signed by the CA (i.e, using the CA's private key), and
166
166
bind together the actual actor with the actor's public key, and optionally with a
167
167
comprehensive list of properties. Clearly, if one trust the CA (and
168
-
knows its public key), it can (by validating the CA's signature on the actor's
168
+
knows its public key), it can (by validating the CA's signature on the actor's
169
169
certificate) trust that the specific actor is bound to the public key included in the
170
170
certificate, and owns the included attributes.
171
171
172
-
Crucially certificates can be widely disseminated, as they do not include neither the
173
-
actors' nor the actual CA's private keys. As such they can be used as anchor of
172
+
Crucially certificates can be widely disseminated, as they do not include neither the
173
+
actors' nor the actual CA's private keys. As such they can be used as anchor of
174
174
trusts for authenticating messages coming from different actors.
175
175
176
176
In reality, CAs themselves also have a certificate, which they make widely
177
177
available. This allows the consumers of identities issued by a given CA to
178
178
verify them by checking that the certificate could only have been generated
179
-
by the holder of the corresponding private key (the CA).
179
+
by the holder of the corresponding private key (the CA).
180
180
181
-
In the Blockchain setting, every actor who wishes to interact with the network
182
-
needs an identity. In this setting, you might say that **one or more CAs** can be used
181
+
In the Blockchain setting, every actor who wishes to interact with the network
182
+
needs an identity. In this setting, you might say that **one or more CAs** can be used
183
183
to **define the members of an organization's from a
184
184
digital perspective**. It's the CA that provides the basis for an
185
185
organization's actors to have a verifiable digital identity.
@@ -189,8 +189,8 @@ organization's actors to have a verifiable digital identity.
189
189
CAs come in two flavors: **Root CAs** and **Intermediate CAs**. Because Root CAs
190
190
(Symantec, Geotrust, etc) have to **securely distribute** hundreds of millions
191
191
of certificates to internet users, it makes sense to spread this process out
192
-
across what are called *Intermediate CAs*. These Intermediate CAs
193
-
have their certificates issued by the root CA or another intermediate authority,
192
+
across what are called *Intermediate CAs*. These Intermediate CAs
193
+
have their certificates issued by the root CA or another intermediate authority,
194
194
allowing the establishment of a "chain of trust" for any certificate
195
195
that is issued by any CA in the chain. This ability to track back to the Root
196
196
CA not only allows the function of CAs to scale while still providing security
@@ -202,7 +202,7 @@ other hand, there is a much smaller exposure.
202
202

203
203
204
204
*A chain of trust is established between a Root CA and a set of Intermediate CAs
205
-
as long as the issuing CA for the certificate of each of these Intermediate CAs is
205
+
as long as the issuing CA for the certificate of each of these Intermediate CAs is
206
206
either the Root CA itself or has a chain of trust to the Root CA.*
207
207
208
208
Intermediate CAs provide a huge amount of flexibility when it comes to the issuance
@@ -216,7 +216,7 @@ it really does depend on the needs of the network.
216
216
It's because CAs are so important that Fabric provides a built-in CA component to
217
217
allow you to create CAs in the blockchain networks you form. This component -- known
218
218
as **fabric-ca** is a private root CA provider capable of managing digital identities of
219
-
Fabric participants that have the form of X.509 certificates.
219
+
Fabric participants that have the form of X.509 certificates.
220
220
Because Fabric-CA is a custom CA targetting the Root CA needs of Fabric,
221
221
it is inherently not capable of providing SSL certificates for general/automatic use
222
222
in browsers. However, because **some** CA must be used to manage identity
@@ -225,36 +225,36 @@ certificates. It is also possible -- and fully appropriate -- to use a
225
225
public/commerical root or intermediate CA to provide identification.
226
226
227
227
If you're interested, you can read a lot more about fabric-ca
228
-
[in the CA documentation section](./http://hyperledger-fabric-ca.readthedocs.io/en/latest/).
228
+
[in the CA documentation section](http://hyperledger-fabric-ca.readthedocs.io/).
229
229
230
230
## Certificate Revocation Lists
231
231
232
-
A Certificate Revocation List (CRL) is easy to understand -- it's just a list of
233
-
references to certificates that a CA knows to be revoked for one reason or another. If you recall
232
+
A Certificate Revocation List (CRL) is easy to understand -- it's just a list of
233
+
references to certificates that a CA knows to be revoked for one reason or another. If you recall
234
234
the store scenario, a CRL would be like a list of stolen credit cards.
235
235
236
-
When a third party wants to verify another party's identity, it first checks the
237
-
issuing CA's CRL to make sure that the certificate has not been revoked.
238
-
A verifier doesn't have to check the CRL, but if they don't they run the risk of
236
+
When a third party wants to verify another party's identity, it first checks the
237
+
issuing CA's CRL to make sure that the certificate has not been revoked.
238
+
A verifier doesn't have to check the CRL, but if they don't they run the risk of
239
239
accepting a compromised identity.
240
240
241
241

242
242
243
-
*Using a CRL to check that a certificate is still valid. If an impersonator tries to
244
-
pass a compromised digital certificate to a validating party, it can be first
243
+
*Using a CRL to check that a certificate is still valid. If an impersonator tries to
244
+
pass a compromised digital certificate to a validating party, it can be first
245
245
checked against the issuing CA's CRL to make sure it's not listed as no longer valid.*
246
246
247
-
Note that a certificate being revoked is very different from a certificate expiring.
248
-
Revoked certificates have not expired -- they are, by every other measure, a fully
247
+
Note that a certificate being revoked is very different from a certificate expiring.
248
+
Revoked certificates have not expired -- they are, by every other measure, a fully
249
249
valid certificate. This is similar to the difference between an expired driver's license
250
-
and a revoked driver's license. For more in depth information into CRLs, click [here](./https://hyperledger-fabric-ca.readthedocs.io/en/latest/users-guide.html#generating-a-crl-certificate-revocation-list).
250
+
and a revoked driver's license. For more in depth information into CRLs, click [here](https://hyperledger-fabric-ca.readthedocs.io/en/latest/users-guide.html#generating-a-crl-certificate-revocation-list).
251
251
252
-
Now that you've seen how a PKI can provide verifiable identities through a chain of
253
-
trust, the next step is to see how these identities can be used to represent the
254
-
trusted members of a blockchain network. That's where a Membership Service Provider
252
+
Now that you've seen how a PKI can provide verifiable identities through a chain of
253
+
trust, the next step is to see how these identities can be used to represent the
254
+
trusted members of a blockchain network. That's where a Membership Service Provider
255
255
(MSP) comes into play -- **it identifies the parties who are the members of a given organization in the blockchain network**.
256
256
257
-
To learn more about membership, check out the conceptual documentation on [MSPs](./http://hyperledger-fabric.readthedocs.io/en/latest/membership/membership.html).
257
+
To learn more about membership, check out the conceptual documentation on [MSPs](../membership/membership.html).
258
258
259
259
<!---
260
260
Licensed under Creative Commons Attribution 4.0 International License https://creativecommons.org/licenses/by/4.0/
0 commit comments