BYU logo Computer Science
CS 465 Introduction to Security and Privacy

Certificates, certification authorities, and PKI

Ungraded quiz

  • If an attacker can give you the wrong public key for a website or a person, what does this enable them to do?

  • What is a public key certificate used for?

  • What is a trust model?

  • What trust model do web browsers use?

Key Concepts

Public key certificates

  • a public key certificate associate a public key with an owner

    • combination of Subject and public key signed by a Certification Authority (CA)
    • a relying party relies on this certification authority and trusts its signature
    • see Table 8.1, page 215 for a list of fields that can appear in a certificate
    • Subject and Issuer are of type Name, which is a set of attributes and values
  • CA’s can issue certificates for humans, web servers

  • see page 216 for a list of steps that a CA takes before issuing a certificate

  • public key infrastructure (PKI) — infrastructure used for managing public keys, private keys, and their use

    • authenticate entities and establish session keys
    • allows the use of encryption, digital signatures, etc
    • see Figure 8.1, page 217
    • includes a set of standards from the International Telecommunication Union (ITU) — X.509
    • long term storage of private keys is challenging — whether for a website, a cryptocurrency wallet, or any other use

Certificate chain validation

  • Validating a certificate chain

  • Verifying public keys using an out-of-band channel

    • see the example in the book — involving a hash of a public key using a numeric or image representation
    • for example, verifying a contact’s public key in WhatsApp or Signal
  • Terms

    • self-sign certificate — signed by yourself instead of a CA
    • trusted certificate store (or root store) — trusted certificates to bootstrap a chain
    • untrusted certificates — see Figure 8.3, page 219
    • TOFU — trust on first use + key continuity — see MailPile and autocrypt for TOFU for email (note, does not seem to be in active development)
      • TOFU is also often used with SSH!
    • revocation — used whena public key has been compromised, e.g. by adding a revoked certificate to a list (CRL)

CA/PKI architectures

  • trust model — rules and processes to determine which certificates are trusted

    • will vary depending on the application
    • consider a private network among automotive suppliers vs secure email for the government vs secure communications between consumers and websites
  • Model 1: Single-CA systems

  • Model 2: Strict Hierarchy

  • Model 3: Ring-mesh of tree roots

    • like Model 1, but each single-CA is a hierarchy
  • Model 4: Forest of hierarchical trees (browser model)

  • Model 5: Decentralized CA Trust (Enterprise PKI model)

    • see Figure 8.8, page 227
    • may be disconnected — does not need universal connectivity
    • can decide which trust anchors to import to your company
  • Model 6: Web of Trust

    • no CAs
    • every person decides who to trust
    • originally envisioned key signing parties
  • two key elements

    • trust anchors
    • CA certificates (where a CA certifies another CA)

Challenge Question

  • If you had to build a PKI for certificates issued to humans, how would you do this?