pkcs #10 • crl • delta crlssecurity.hsr.ch/lectures/internet_security_1/06-pki.pdf · 2011. 10....

28
1 6 Public Key Infrastructure 6.1 Certificates Structure of an X.509 certificate • X.500 Distinguished Name and X.509v3 subjectAlternativeName Certificate formats (DER, PEM, PKCS #12) 6.2 Certificate Authorities PGP web of trust vs. X.509 hierarchical trust chain Certificate registration Certificate classes Trustedroot certification authorities 6.3 Certificate Enrollment • SPKAC enrollment via browser (<KEYGEN> tag) • PKCS #10 certification request • Simple certificate enrollment protocol (SCEP) 6.4 Certificate Revocation Certificate revocation list (CRL) • CRL deployment schemes • Delta CRLs • Online certificate status protocol (OCSP) 6.5 Certificate Policies basicConstraints extension keyUsage extension extendedKeyUsage extension

Upload: others

Post on 26-Jan-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

  • 1

    6 Public Key Infrastructure

    6.1 Certificates

    • Structure of an X.509 certificate

    • X.500 Distinguished Name and X.509v3 subjectAlternativeName

    • Certificate formats (DER, PEM, PKCS #12)

    6.2 Certificate Authorities

    • PGP web of trust vs. X.509 hierarchical trust chain

    • Certificate registration

    • Certificate classes

    • Trustedroot certification authorities

    6.3 Certificate Enrollment

    • SPKAC enrollment via browser ( tag)

    • PKCS #10 certification request

    • Simple certificate enrollment protocol (SCEP)

    6.4 Certificate Revocation

    • Certificate revocation list (CRL)

    • CRL deployment schemes

    • Delta CRLs

    • Online certificate status protocol (OCSP)

    6.5 Certificate Policies

    • basicConstraints extension

    • keyUsage extension

    • extendedKeyUsage extension

  • 2

  • 3

    Structure of an X.509 Certificate

    • An X.509v3 certificate consists of three parts:

    • A certificate body containing

    • a version number (currently v3, v2 and v1 are also possible)

    • a unique serial number assigned by the responsible CA

    • a declaration of the signature algorithm to be used to sign the certificate

    • the distinguished name of the CA that issued and signed the certificate

    • the validity period (not valid before / not valid after)

    • the subject (user) distinguished name

    • the public key of the subject (user)

    • any number of optional v2 or v3 extensions, some of them being very important

    • A definition of the signature algorithm used by the CA to sign the certificate

    • The signature guaranteeing the authenticity of the certificate, consisting of the

    hashed certificate body encrypted by the CA‘s private key.

  • 4

  • 5

  • 6

  • 7

  • 8

    Web of Trust

    • One possible method of establishing trust in a user‘s public key is the web of trust

    approach employed by the popular Pretty Good Privacy (PGP) mail encryption and

    authentication package. It is typical for closely-knit communities like e.g. people

    working on a large software project or special interest groups that a personal link can

    be established between any two people in the community using a relatively small

    number of „hops“ on the basis of common friends.

    Can Carol trust Alice ?

    • Can Carol trust Alice if she has never met her before? Probably yes, because Alice

    has a good friend called Bob, who works together with Dave, who in turn is a friend of

    Carol‘s. So using three „hops“ a link between Carol and Alice can be established.

    How is the „Web of Trust“ principle applied to public key certificates?

    • In a web of trust every participant asks her friends to sign the hash of her

    user certificate containing the user ID (e.g. an e-mail address) and the public key.

    • So when Carol receives an e-mail signed by Alice, she gets Alice‘s certificate from a

    public directory and sees that it has been signed by Bob. Next she fetches Bob‘s

    certificate and sees that it has been signed by Dave. Again she asks for Dave‘s

    certificate and sees that she herself has signed Dave‘s certificate. The chain has

    now been completed and trust has been established.

    Scalability of the Web of Trust

    • As mentioned above, a web of trust approach is appropriate for relatively compact

    user communities. The method does not scale very well when millions of people must

    be authenticated. The average number of hops rises and with them the number of

    certificate look-up. Also the longer a trust chain gets, the less trustworthy it becomes.

    Don‘t trust authorities!

    • The big advantage of a web of trust among peers is that no central authority is

    required that could become corrupted,.

  • 9

    Hierarchical Trust Chains

    • At the moment it looks like if a second trust model based on certification authorities

    and hierarchical trust chains is going to establish itself for large scale certificate

    usage and deployment.

    Root Certification Authorities - Root CA

    • At the top of the hierachical trust chain are a few Root Certification Authorities which

    are well known and which intrinsically must be trusted. Each Root CA publishes a

    Certifcate Practice Statement (CPS) defining on what policies user or server

    certificates are issued, how they are managed and how they can be revoked.

    • Examples of well-known Root CAs are Verisign, RSA, Baltimore, Entrust, Thawte,

    Deutsche Telekom.

    Intermediate Certification Authorities - Intermediate CA

    • Root CAs can directly issue user certificates. This is usually done in the case of

    private individuals who apply directly for a certificate.

    • For large or medium organisations it is much more flexible to set up a certification

    authority of their own, so that they can issue and revoke certificates for their staff

    themselves. The certificate of this so called Intermediate Certification Authority

    which is used to sign staff certificates, is in turn issued and signed by a generally

    trusted Root CA.

    • In principle an arbitrary number of hierarchy levels could be implemented, but

    usually there are not more than two or three hops from a user certificate to root CA

    certificate at the top of the trust chain.

  • 10

  • 11

  • 12

  • 13

  • 14

    Netscape‘s tag

    • Netscape, Mozilla and Firefox support a tag which when placed in a form

    prompts the browser to generate a 1024 bit (medium grade) or 2048 bit (high grade)

    RSA key pair and store it in the browser‘s internal security database.

    • A „Signed Public Key and Challenge“ (SPKAC) is sent via a POST request to the

    certification authority‘s HTTP server. When the signed X.509 certificate is ready,

    it can be imported into the browser via a HTTP request.

  • 15

    Structure of PKCS #10 Certification Request

    • A PKCS #10 certification request consists of three parts:

    • A certificationRequestInfo object containing

    • a version number (currently v1)

    • the subject (user) distinguished name

    • the public key of the subject (user)

    • an optional extensionReq attribute defining any number of X509.v3 extensions

    that the requestor wants to be included in the certificate.

    • an challengePassword attribute containing a secret challenge password that can be

    used by the requestor to revoke the certificate with the CA.

    • A definition of the signature algorithm used by requestor to sign the request

    • The signature guaranteeing the authenticity of the request, consisting of the

    hashed certificationRequestInfo object encrypted by the requestor‘s private key.

  • 16

    Cisco‘s Simple Certificate Enrollment Protocol

    • http://www.ietf.org/internet-drafts/draft-nourse-scep-11.txt

    • The client (requestor) creates an RSA key pair and forms a PKCS #10 request.

    • Signed and encrypted PKCS #7 envelopes are used to transport SCEP requests

    and replies securely.

    • Authentication of the client is done automatically based on a pre-shared secrets

    or manually some other means of communication (e.g. spelling the key‘s fingerprint

    over the phone).

  • 17

  • 18

    Structure of an X.509 CRL

    • An X.509v1 or v2 CRL consists of three parts:

    • A CRL body containing

    • a version number (v1 and v2)

    • a declaration of the signature algorithm to be used to sign the CRL

    • the distinguished name of the CA that issued and signed the CRL

    • the date the CRL was created

    • the date the next CRL update will be released

    • a list of revoked certificates

    • the serial number of the revoked certificate

    • the date the certificate was revoked

    • optional crlEntryExtensions, e.g. allowing to specify a revocation reason

    • A definition of the signature algorithm used by the CA to sign the CRL

    • The signature guaranteeing the authenticity of the CRL, consisting of the

    hashed certificate body encrypted by the CA‘s private key.

  • 19

  • 20

  • 21

  • 22

    Online Certificate Status Protocol (OCSP)

    • The OCSP protocol is defined by RFC 2560.

    • OCSP is based on a request/reply scheme and uses HTTP as a transport medium.

    OCSP servers

    • OCSP servers deliver on-line certificate status information on behalf of one or several certification authorities (CAs).

    • The certificate status information on the OCSP servers must be frequently updated by the CA, usually by sending a certificate revocation list (CRL) signed by the CA or by secured access to the CA's master data base.

    Finding OCSP servers

    • A convenient means to locate OCSP servers is to put the following X.509v.3 extension into the end entity certificates:

    authorityInfoAccess = OCSP;URI:http://ocsp.strongswan.org:8880

    OCSP servers with self-signed certificates

    • As part of an public-key based authentication protocol Antje sends her certificate to Bob. After successful verification of the CA's signature Bob sends a request to the OCSP server, asking for the actual status of Antje's certificate. The certificate in question is unambiguously identfied by the name of the issuing CA and the unique serial number. In order to control the access to the OCSP server, the OCSP request can by optionally signed by the requestor.

    • The OCSP response returns the certificate status which can take on one of the following values: good, revoked or unknown.

    • The OCSP response is signed by the OCSP server. Often a self-signed OCSP signing certificate is used, that in order to establish trust must be distributed to clients in a secure way and stored locally.

  • 23

    OCSP servers with delegated trust

    • A certification authority (CA) can delegate the revocation service to an OCSP server

    by issuing a special OCSP signing certificate for this server. An OCSP signing

    certificate contains the following X.509v3 extension

    extendedKeyUsage = OCSPSigner

    Because the OCSP certificate is signed by the CA, any client accepting this CA

    will put automatically trust into the OCSP certificate. And due to the embedded

    OCSPSigner extendedKeyUsage field, a client will accept that the OCSP server

    sending this certificate is authorized to offer revocation services for the CA in question.

    • Usually an OCSP server with delegated trust automatically deploys its certificate by

    appending it to the OCSP reply.

  • 24

  • 25

  • 26

  • 27

  • 28