Registry Extensions Working Group Z. Zhou Internet-Draft Namefi Intended status: Standards Track 2 December 2025 Expires: 5 June 2026 Domain Transfer Authorization Using Cryptographic Signatures draft-zzn-authcodesec-02 Abstract This document specifies a mechanism to enhance domain transfer security by transitioning from a shared-secret authorization model to a asymmetric cryptographic signature-based validation system. Using asymmetric cryptographic signatures enables many benefits over a shared secret, such as non-repudiation, improved auditability through clear identification of the authorizing entity, elimination of the need for registries to store and secure shared secrets, replay protection through timestamp validation, and reduced risk of interception since only the private key needs to remain secret. This document establishes the following AuthCodeSEC extension of EPP with the following protocol elements: 1. Where to place the signature and hash data in the EPP command and 2. How is data hashed and signed, and how to verify the signature 3. How to verify the signature; 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 5 June 2026. Zhou Expires 5 June 2026 [Page 1] Internet-Draft AuthCodeSEC December 2025 Copyright Notice Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . 3 1.2. Scope of this Specification . . . . . . . . . . . . . . . 4 1.3. Current AuthCode Processes . . . . . . . . . . . . . . . 4 1.4. Requirements Language . . . . . . . . . . . . . . . . . . 6 2. Protocol Description . . . . . . . . . . . . . . . . . . . . 6 2.1. EPP Extension Data Structure . . . . . . . . . . . . . . 6 2.2. Data Canonicalization and Digest Generation . . . . . . . 7 2.3. Asymmetric Cryptographic Authentication . . . . . . . . . 8 2.4. Public Key Distribution . . . . . . . . . . . . . . . . . 8 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 4. Security Considerations . . . . . . . . . . . . . . . . . . . 9 5. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.1. Normative References . . . . . . . . . . . . . . . . . . 9 5.2. Informative References . . . . . . . . . . . . . . . . . 9 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 10 1. Introduction The current domain transfer process relies on a shared secret (authInfo) which is susceptible to interception, misuse, and lack of auditability. This document proposes a simplified, secure replacement using cryptographic signatures, building upon the Extensible Provisioning Protocol (EPP) [RFC5730]. Key features of this specification: * Mandatory use of ECDSA Curve P-256 with SHA-256 for strong security. * A flexible "Signer Payload" to clearly identify who authorized the transfer (e.g., Registrar, Regulator, Registry, or Registrant). Zhou Expires 5 June 2026 [Page 2] Internet-Draft AuthCodeSEC December 2025 * Removal of complex transition models in favor of a clean, signature-based approach. 1.1. Motivation The evolution of Internet protocols has consistently moved from trust-based, shared-secret, or unauthenticated models toward cryptographic verification to address modern security threats. Two notable precedents within the IETF serve as guiding examples for this specification: * HTTP to HTTPS (RFC 2818): The transition from plain HTTP to HTTP Over TLS addressed the inherent risks of eavesdropping, tampering, and man-in-the-middle attacks. By layering HTTP over TLS, the protocol ensured confidentiality and server authentication, eliminating the reliance on clear-text communication. * DNS to DNSSEC (RFC 4033, 4034, 4035): The original Domain Name System lacked data origin authentication and integrity. DNSSEC introduced cryptographic signatures to the DNS hierarchy, allowing resolvers to verify that data originated from the authoritative source and was not modified in transit, thus mitigating cache poisoning and spoofing attacks. AuthCodeSEC applies these same principles to the domain transfer process. The current shared-secret (AuthCode) model resembles the early, unauthenticated era of other protocols. It is susceptible to interception, unauthorized reuse, and lacks non-repudiation. By adopting asymmetric cryptographic signatures, this specification achieves: 1. Strong Authentication: Replaces a static password with a digital signature, proving possession of a private key without revealing it. 2. Elimination of Shared Secret Risks: Significantly reduces the attack surface by removing the shared secret entirely. * Transit: The private key is never transmitted, making credential eavesdropping impossible. * Storage: Registries no longer need to store and secure password databases, eliminating a major source of potential data leakage. Zhou Expires 5 June 2026 [Page 3] Internet-Draft AuthCodeSEC December 2025 3. Integrity: Ensures the transfer request data (domain, gaining registrar, timestamp) has not been tampered with. 4. Non-repudiation: Provides cryptographic proof of the authorizing entity's intent, which is critical for audit trails and dispute resolution. 5. Replay Protection: Mitigates the risk of intercepted authorization codes being reused maliciously or replayed. This transition modernizes domain transfers to meet the security standards established by other critical Internet infrastructure protocols. 1.2. Scope of this Specification This specification defines the following elements of the AuthCodeSEC protocol: 1. EPP Extension Data Structure: The definition of the XML schema and element placement within the EPP domain:transfer command to transport the signature, signer identity, and metadata. 2. Data Canonicalization and Digest Generation: The specific rules for formatting the transfer data (including domain name, gaining registrar ID, and timestamp) into a canonical string and hashing it with a specific hash algorithm. 3. Asymmetric Cryptographic Authentication: The specific rules for signing the hash of the transfer data with a specific asymmetric cryptographic algorithm. 4. Distribution of Public Keys: The specific rules for distributing the public key to the gaining registrar or other validating parties such as the registry or regulator. 1.3. Current AuthCode Processes The current [RFC5731] defines the following transfer process: ```mermaid sequenceDiagram autonumber Zhou Expires 5 June 2026 [Page 4] Internet-Draft AuthCodeSEC December 2025 participant GC as Gaining Client
(GC) participant S as EPP Server
(Registry) participant LC as Losing Client
(LC) Note over LC,S: Object is sponsored by LC %% 1. LC maintains AuthInfo LC->>S: Update object (set / refresh AuthInfo) S-->>LC: Update OK Note over LC,GC: Registrant obtains AuthInfo from LC (out-of-band)\nand provides it to GC %% 2. GC initiates transfer using AuthInfo GC->>S: Transfer Request (with AuthInfo) S-->>GC: Transfer Pending\n(AuthInfo validated, transfer created) %% 3. LC makes decision alt LC approves LC->>S: Transfer Approve S-->>LC: Transfer Approved Note over S: Sponsorship moves to GC\nTransfer completes immediately else LC rejects LC->>S: Transfer Reject S-->>LC: Transfer Rejected Note over S: Sponsorship remains with LC else LC takes no action Note over S: Pending period lapses → Auto-approve\nSponsorship moves to GC end %% 4. GC may query final status GC->>S: Transfer Query (optional) S-->>GC: Final transfer status ``` Domain Transfer Request (AuthCode) XML Example: Zhou Expires 5 June 2026 [Page 5] Internet-Draft AuthCodeSEC December 2025 example.com 1 2fooBAR ABC-12345 Key Fields: * op="request": Indicates we are initiating a transfer. * domain:period: (Optional) Extension to the registration period upon successful transfer (usually 1 year). * domain:authInfo: The authorization code provided by the registrant. * domain:pw: The actual text password (AuthCode). 1.4. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. 2. Protocol Description 2.1. EPP Extension Data Structure The EPP extension data structure is defined as follows: Zhou Expires 5 June 2026 [Page 6] Internet-Draft AuthCodeSEC December 2025 example.com 1 We are replacing the with to support custom authentication mechanisms (e.g., digital signatures or tokens). TODO: Define detailed schema for the element. 2.2. Data Canonicalization and Digest Generation The following data will be canonicalized and hashed to generate the digest for the signature: * domain name * current expiration date * period * receiver info * endorsers info (optional) * further extensions (optional) To ensure consistent signature generation and verification, the data fields MUST be canonicalized by concatenating their UTF-8 string representations in the order listed above, separated by a pipe character ("|"). If a field is empty (like the receiver info), it contributes an empty string between delimiters. The canonicalized string is then hashed using the SHA-256 algorithm to produce the digest that will be signed. Receiver Info: The identifier of receiver, can be the gaining registrar (e.g., IANA ID or other identifiers e.g. domain name of the registrar). If the authorizing party wishes to restrict the transfer to a specific receiver, this field MUST be populated. If this field Zhou Expires 5 June 2026 [Page 7] Internet-Draft AuthCodeSEC December 2025 is left empty, the authorization is valid for ANY receiver. This fits the use case like a gaining registrar is not yet determined or disclosed to the losing registrar. 2.3. Asymmetric Cryptographic Authentication To ensure interoperability and security, this specification mandates the use of specific algorithms while allowing for future extensibility. * Signing Algorithm: Implementations MUST support ECDSA Curve P-256 with SHA-256. This corresponds to: - DNSSEC: IANA DNS Security Algorithm Number 13 (ECDSAP256SHA256) [RFC6605] [IANA-DNS-SEC-ALG]. - SSL/TLS: IANA TLS 1.3 TLS SignatureScheme 0x0403 (ecdsa_secp256r1_sha256) [RFC8446] [IANA-TLS-PARAMS]. - JWT: IANA JSON Web Signature and Encryption Algorithms "ES256" (ECDSA using P-256 and SHA-256) [IANA-JOSE]. - FIDO: FIDO Registry of Predefined Values "ALG_SIGN_SECP256R1_ECDSA_SHA256_DER" (0x0002) [FIDO-REGISTRY]. * Extensibility: The protocol allows specifying other algorithms in the "alg" field for future extensibility. As described in [RFC7518], additional algorithms may be supported. 2.4. Public Key Distribution The public key is distributed to all verifying parties, such as the gaining registrar, the registry, and the regulator, via the following mechanisms: * Registrar uses their DNS to publish the public key to the registry and other verifying parties. 3. IANA Considerations The following IANA considerations are required: * New hash algorithm registry. * New signing algorithm registry. TODO: Define the IANA considerations for how to register the new hash algorithms and signing algorithms. Zhou Expires 5 June 2026 [Page 8] Internet-Draft AuthCodeSEC December 2025 4. Security Considerations TODO: Define the security considerations for the protocol. 5. References 5.1. Normative References [IANA-DNS-SEC-ALG] IANA, "Domain Name System Security (DNSSEC) Algorithm Numbers", n.d., . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009, . [RFC5731] Hollenbeck, S., "Extensible Provisioning Protocol (EPP) Domain Name Mapping", STD 69, RFC 5731, DOI 10.17487/RFC5731, August 2009, . [RFC6605] Hoffman, P. and W.C.A. Wijngaards, "Elliptic Curve Digital Signature Algorithm (DSA) for DNSSEC", RFC 6605, DOI 10.17487/RFC6605, April 2012, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, . 5.2. Informative References [FIDO-REGISTRY] FIDO Alliance, "FIDO Registry of Predefined Values", 2 July 2018, . Zhou Expires 5 June 2026 [Page 9] Internet-Draft AuthCodeSEC December 2025 [IANA-JOSE] IANA, "JSON Web Signature and Encryption Algorithms", n.d., . [IANA-TLS-PARAMS] IANA, "Transport Layer Security (TLS) Parameters", n.d., . [RFC7518] Jones, M., "JSON Web Algorithms (JWA)", RFC 7518, DOI 10.17487/RFC7518, May 2015, . Author's Address Zainan (Victor) Zhou Namefi Email: zzn@namefi.io Zhou Expires 5 June 2026 [Page 10]