4. Certificates
OpenPGP fundamentally hinges on the concept of “OpenPGP certificates,” also known as “OpenPGP public keys.” These certificates are complex data structures essential for identity verification, data encryption, and digital signatures. Understanding their structure and function is pivotal to effectively applying the OpenPGP standard.
An OpenPGP certificate, by definition, does not contain private key material.
Fundamentally, the effective management of certificates and a thorough grasp of their authentication and trust models are crucial for proficient OpenPGP usage. Although this document offers just a brief overview of these aspects, they form a fundamental part of the broader OpenPGP framework and warrant further study.
4.1. Terminology: Understanding “keys”
The term “(cryptographic) keys” is central to grasping the concept of OpenPGP certificates. However, it can refer to different entities, making it a potentially confusing term. Let’s clarify those differences.
4.1.1. Public vs. private keys
The term “key,” without additional context, can refer to either public or private asymmetric key material. Additionally, symmetric keys may be used in OpenPGP to encrypt private key material, adding a layer of security and complexity.
4.1.2. Layers of keys in OpenPGP
In OpenPGP, the term “key” may refer to three distinct layers, each serving a unique purpose:
A (bare) “cryptographic key” comprises the private and/or public parameters forming a key. For instance, in the case of an RSA private key, the key consists of the exponent d
along with the prime numbers p
and q
.
An OpenPGP component key includes either an “OpenPGP primary key” or an “OpenPGP subkey.” It is a building block of an OpenPGP certificate, consisting of a cryptographic keypair coupled with some invariant metadata, such as key creation time.
An “OpenPGP certificate” (or “OpenPGP key”) consists of several component keys, identity components, and other elements. These certificates are dynamic, evolving over time as components are added, expire, or are marked as invalid.
The following section will delve into the OpenPGP-specific layers (2 and 3) to provide a clearer understanding of their roles within OpenPGP certificates.
4.4. Identity components
Identity components in an OpenPGP certificate are used by the certificate holder to state that they are known by a certain identifier (like a name, or an email address).
4.4.3. User attributes in OpenPGP
While
user attributes are similar to User IDs, they are less commonly used.
Currently, the OpenPGP standard prescribes only one format to be stored in user attributes: an image in JPEG format. Typically, this image represents the key owner, although it is not required.
4.9. Third-party (identity) certifications
Since its inception, third-party identity certifications have been a cornerstone of the OpenPGP ecosystem. The original PGP designers, starting with Phil Zimmermann, advocated for decentralized trust models over reliance on centralized authorities. This decentralized approach in OpenPGP is known as the “Web of Trust.”
Third-party certifications are statements by OpenPGP users confirming that a user with a specific identity is the owner of a particular OpenPGP certificate.
For example, Bob’s OpenPGP software may issue a certification that Bob has checked that the User ID Alice Adams <alice@example.org>
and the certificate with the fingerprint AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B3
are legitimately linked.
Take, for instance, a scenario where Bob’s OpenPGP software issues a certification confirming as legitimate the link between the User ID Alice Adams <alice@example.org>
and the certificate bearing the fingerprint AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B3
.
This process assumes that Bob knows the person known as Alice Adams
and is confident that alice@example.org
is indeed Alice’s email address. Bob also verifies that the certificate his OpenPGP software associates with Alice matches the one Alice uses. In essence, both users must have a certificate for Alice with an identical fingerprint. In OpenPGP version 6, manual fingerprint comparison by end users is discouraged, with a replacement verification mechanism still under development. The verification process must occur over a sufficiently secure channel, such as an end-to-end encrypted video call or a face-to-face meeting.
For more on third-party certifications, see Authentication and delegation in third-party signatures.