Internet-Draft PGP fingerprints in the DNS February 2024
Kwapisiewicz Expires 31 August 2024 [Page]
Workgroup:
Network Working Group
Internet-Draft:
draft-00
Published:
Intended Status:
Informational
Expires:
Author:
W. Kwapisiewicz, Ed.
Metacode

OpenPGP fingerprints in the DNS

Abstract

This document specifies a new scheme for verifying authenticity of OpenPGP certificates through the DNS system. The certificates to be verified may be organization-wide OpenPGP Certificate Authority (CA) certificates or individual certificates of owners in the DNS zone.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 31 August 2024.

Table of Contents

1. Introduction

The OpenPGP specification [RFC4880] defines message formats and cryptographic primitives with day-to-day use but does not specify a scheme for verifying the authenticity of a certificate containing an identity claim (i.e. a User ID with an email address of a particular domain). Organizations need a centralized solution for distributing trust data to their employees and as such require a place from which the trusted information flows to the clients. DNS is a natural place used by other similar specifications such as CAA Resource Records [RFC8659] and SSHFP [RFC4255].

The method described in this document allows defining trusted OpenPGP certificates through the centralized DNS system. The system is both lightweight, as it uses existing standardized mechanisms and secure, as it depends on DNS security [RFC4033] and OpenPGP certificates.

2. Definitions

2.1. Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

2.2. Defined Terms

The following terms are used in this document:

  • OpenPGP Certificate: An OpenPGP certificate contains public key material, identity claims and third party certifications (but no private key material) as defined in [RFC4880]

  • TXT record: DNS record which allows associating human-readable data with a DNS name as defined in [RFC1034]

3. openpgp4fpr URI scheme

The following defines a unified URI format which allows to reference OpenPGP v4 certificates using the openpgp4fpr scheme outlined below.

URI format:

openpgp4fpr:<fingerprint>

Where fingerprint represents exactly 40 characters of lower and upper-case letters A, B, C, D, E, F and digits (0-9).

The same can be formally defined using Augmented Backus-Naur Form:

openpgp4fpr-uri = "openpgp4fpr:" fingerprint
fingerprint     = 40*40HEXDIG

Example of an openpgp4fpr URI:

openpgp4fpr:653909A2F0E37C106F5FAF546C8857E0D8E8F074

URIs in the openpgp4fpr scheme are used to identify an OpenPGP key by its primary key fingerprint.

Applications using this scheme may use the OpenPGP fingerprints to retrieve OpenPGP certificates by implementation-defined methods (e.g. keyserver lookup using the HTTP Keyserver Protocol).

As a fingerprint contains only characters in the unreserved set [RFC3986] there is no need to encode the scheme specific part of the URI.

4. DNS TXT records for OpenPGP fingerprints

DNS records containing OpenPGP fingerprints are regular DNS TXT records (as specified in [RFC1034]) where the text content of the record is an openpgp4fpr URI defined in the previous section. Since a DNS hostname can contain multiple TXT records, the hostname can also contain multiple openpgp4fpr URIs.

4.1. Implementation notes

To avoid DNS attacks clients MUST use DNSSEC [RFC4033] to verify records which form the basis of trust decisions.

Clients which contain a Web of Trust implementation SHOULD treat the DNS fingerprints as trust-roots in their Web of Trust algorithm. Lean clients which do not contain a Web of Trust engine SHOULD use only certificates for which a corresponding fingerprint is present in the DNS zone.

If multiple records are set, all of them should be treated as trust-roots. This allows seamless key rollover where a new key is introduced but the old one is still trusted in the migration phase. Additionally this allows using separate keys for clients using different algorithms for primary keys.

5. Implications

This document combines trust anchor provisioning through DNS with OpenPGP's append-only data structures which capture the entire lifecycle of a certificate.

6. Security Considerations

It is paramount that the clients use only authenticated DNS responses. As such DNSSEC [RFC4033] usage is REQUIRED. The client MAY use additional logic to filter-out insecure algorithms and MUST properly handle revocation and expiration mechanisms already present in OpenPGP [RFC4880].

7. IANA Considerations

Since this specification reuses already specified elements such as the DNS TXT records [RFC1035] and OpenPGP certificates [RFC4880] there are no IANA actions requested at this time.

9. Normative References

[RFC1034]
Mockapetris, P., "Domain names - concepts and facilities", STD 13, RFC 1034, DOI 10.17487/RFC1034, , <https://www.rfc-editor.org/info/rfc1034>.
[RFC1035]
Mockapetris, P., "Domain names - implementation and specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, , <https://www.rfc-editor.org/info/rfc1035>.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC4033]
Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, "DNS Security Introduction and Requirements", RFC 4033, DOI 10.17487/RFC4033, , <https://www.rfc-editor.org/info/rfc4033>.
[RFC4880]
Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R. Thayer, "OpenPGP Message Format", RFC 4880, DOI 10.17487/RFC4880, , <https://www.rfc-editor.org/info/rfc4880>.

10. Informative References

[RFC3986]
Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, DOI 10.17487/RFC3986, , <https://www.rfc-editor.org/info/rfc3986>.
[RFC4255]
Schlyter, J. and W. Griffin, "Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints", RFC 4255, DOI 10.17487/RFC4255, , <https://www.rfc-editor.org/info/rfc4255>.
[RFC8659]
Hallam-Baker, P., Stradling, R., and J. Hoffman-Andrews, "DNS Certification Authority Authorization (CAA) Resource Record", RFC 8659, DOI 10.17487/RFC8659, , <https://www.rfc-editor.org/info/rfc8659>.

Appendix A. Acknowledgements

The author wishes to thank and acknowledge all contributions of the following people: David Runge, Yarmo Mackenbach.

Author's Address

Wiktor Kwapisiewicz (editor)
Metacode