Digital Certificates and Digital Signatures: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 1: | Line 1: | ||
== PKIv3 architectual model and datastructures conforming to ITU-T X.509 == |
== PKIv3 architectual model and datastructures conforming to ITU-T X.509 == |
||
Users of a public key shall be confident that the associated private |
|||
key is owned by the correct remote subject (person or system) with |
|||
which an encryption or digital signature mechanism will be used. |
|||
This confidence is obtained through the use of public key |
|||
certificates, which are data structures that bind public key values |
|||
to subjects. The binding is asserted by having a trusted CA |
|||
digitally sign each certificate. The CA may base this assertion upon |
|||
technical means (a.k.a., proof of posession through a challenge- |
|||
response protocol), presentation of the private key, or on an |
|||
assertion by the subject. A certificate has a limited valid lifetime |
|||
which is indicated in its signed contents. Because a certificate's |
|||
signature and timeliness can be independently checked by a |
|||
certificate-using client, certificates can be distributed via |
|||
untrusted communications and server systems, and can be cached in |
|||
unsecured storage in certificate-using systems. |
|||
ITU-T X.509 (formerly CCITT X.509) or ISO/IEC/ITU 9594-8, which was |
|||
first published in 1988 as part of the X.500 Directory |
|||
recommendations, defines a standard certificate format [X.509]. The |
|||
certificate format in the 1988 standard is called the version 1 (v1) |
|||
format. When X.500 was revised in 1993, two more fields were added, |
|||
resulting in the version 2 (v2) format. These two fields may be used |
|||
to support directory access control. |
|||
'''X.509v3''' |
|||
The v3 format extends the v2 format by |
|||
adding provision for additional extension fields. Particular |
|||
extension field types may be specified in standards or may be defined |
|||
and registered by any organization or community. In June 1996, |
|||
standardization of the basic v3 format was completed [X.509]. |
|||
ISO/IEC/ITU and ANSI X9 have also developed standard extensions for |
|||
use in the v3 extensions field [X.509][X9.55]. These extensions can |
|||
convey such data as additional subject identification information, |
|||
key attribute information, policy information, and certification path |
|||
constraints. |
|||
''' |
|||
Basic Certificate Fields''' |
|||
The X.509 v3 certificate basic syntax is as follows. For signature |
|||
calculation, the certificate is encoded using the ASN.1 distinguished |
|||
encoding rules (DER) [X.208]. ASN.1 DER encoding is a tag, length, |
|||
value encoding system for each element. |
|||
Certificate ::= SEQUENCE { |
|||
tbsCertificate TBSCertificate, |
|||
signatureAlgorithm AlgorithmIdentifier, |
|||
signatureValue BIT STRING } |
|||
TBSCertificate ::= SEQUENCE { |
|||
version [0] EXPLICIT Version DEFAULT v1, |
|||
serialNumber CertificateSerialNumber, |
|||
signature AlgorithmIdentifier, |
|||
issuer Name, |
|||
validity Validity, |
|||
subject Name, |
|||
subjectPublicKeyInfo SubjectPublicKeyInfo, |
|||
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, |
|||
-- If present, version shall be v2 or v3 |
|||
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, |
|||
-- If present, version shall be v2 or v3 |
|||
extensions [3] EXPLICIT Extensions OPTIONAL |
|||
-- If present, version shall be v3 |
|||
} |
|||
Version ::= INTEGER { v1(0), v2(1), v3(2) } |
|||
CertificateSerialNumber ::= INTEGER |
|||
Validity ::= SEQUENCE { |
|||
notBefore Time, |
|||
notAfter Time } |
|||
Time ::= CHOICE { |
|||
utcTime UTCTime, |
|||
generalTime GeneralizedTime } |
|||
UniqueIdentifier ::= BIT STRING |
|||
SubjectPublicKeyInfo ::= SEQUENCE { |
|||
algorithm AlgorithmIdentifier, |
|||
subjectPublicKey BIT STRING } |
|||
Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension |
|||
Extension ::= SEQUENCE { |
|||
extnID OBJECT IDENTIFIER, |
|||
critical BOOLEAN DEFAULT FALSE, |
|||
extnValue OCTET STRING } |
|||
''' |
|||
Revocation''' |
|||
X.509 defines one method of certificate revocation. This method |
|||
involves each CA periodically issuing a signed data structure called |
|||
a certificate revocation list (CRL). A CRL is a time stamped list |
|||
identifying revoked certificates which is signed by a CA and made |
|||
freely available in a public repository. Each revoked certificate is |
|||
identified in a CRL by its certificate serial number. |
|||
== Flexible and Scalable Public Key Security for SSH == |
== Flexible and Scalable Public Key Security for SSH == |
Revision as of 14:40, 16 December 2004
PKIv3 architectual model and datastructures conforming to ITU-T X.509
Users of a public key shall be confident that the associated private key is owned by the correct remote subject (person or system) with which an encryption or digital signature mechanism will be used. This confidence is obtained through the use of public key certificates, which are data structures that bind public key values to subjects. The binding is asserted by having a trusted CA digitally sign each certificate. The CA may base this assertion upon technical means (a.k.a., proof of posession through a challenge- response protocol), presentation of the private key, or on an assertion by the subject. A certificate has a limited valid lifetime which is indicated in its signed contents. Because a certificate's signature and timeliness can be independently checked by a certificate-using client, certificates can be distributed via untrusted communications and server systems, and can be cached in unsecured storage in certificate-using systems.
ITU-T X.509 (formerly CCITT X.509) or ISO/IEC/ITU 9594-8, which was first published in 1988 as part of the X.500 Directory recommendations, defines a standard certificate format [X.509]. The certificate format in the 1988 standard is called the version 1 (v1) format. When X.500 was revised in 1993, two more fields were added, resulting in the version 2 (v2) format. These two fields may be used to support directory access control.
X.509v3
The v3 format extends the v2 format by adding provision for additional extension fields. Particular extension field types may be specified in standards or may be defined and registered by any organization or community. In June 1996, standardization of the basic v3 format was completed [X.509].
ISO/IEC/ITU and ANSI X9 have also developed standard extensions for use in the v3 extensions field [X.509][X9.55]. These extensions can convey such data as additional subject identification information, key attribute information, policy information, and certification path constraints.
Basic Certificate Fields
The X.509 v3 certificate basic syntax is as follows. For signature calculation, the certificate is encoded using the ASN.1 distinguished encoding rules (DER) [X.208]. ASN.1 DER encoding is a tag, length, value encoding system for each element.
Certificate ::= SEQUENCE { tbsCertificate TBSCertificate, signatureAlgorithm AlgorithmIdentifier, signatureValue BIT STRING }
TBSCertificate ::= SEQUENCE { version [0] EXPLICIT Version DEFAULT v1, serialNumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, validity Validity, subject Name, subjectPublicKeyInfo SubjectPublicKeyInfo, issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, -- If present, version shall be v2 or v3 subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, -- If present, version shall be v2 or v3 extensions [3] EXPLICIT Extensions OPTIONAL -- If present, version shall be v3 } Version ::= INTEGER { v1(0), v2(1), v3(2) }
CertificateSerialNumber ::= INTEGER
Validity ::= SEQUENCE { notBefore Time, notAfter Time }
Time ::= CHOICE { utcTime UTCTime, generalTime GeneralizedTime }
UniqueIdentifier ::= BIT STRING
SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, subjectPublicKey BIT STRING }
Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
Extension ::= SEQUENCE { extnID OBJECT IDENTIFIER, critical BOOLEAN DEFAULT FALSE, extnValue OCTET STRING }
Revocation
X.509 defines one method of certificate revocation. This method involves each CA periodically issuing a signed data structure called a certificate revocation list (CRL). A CRL is a time stamped list identifying revoked certificates which is signed by a CA and made freely available in a public repository. Each revoked certificate is identified in a CRL by its certificate serial number.