RSA/MD5 KEYs and SIGs in the Domain Name System (DNS)
RFC 2537

Document Type RFC - Proposed Standard (March 1999; No errata)
Obsoleted by RFC 3110
Last updated 2013-03-02
Stream IETF
Formats plain text pdf html
Stream WG state (None)
Document shepherd No shepherd assigned
IESG IESG state RFC 2537 (Proposed Standard)
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                        D. Eastlake
Request for Comments: 2537                                           IBM
Category: Standards Track                                     March 1999

         RSA/MD5 KEYs and SIGs in the Domain Name System (DNS)

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1999).  All Rights Reserved.

Abstract

   A standard method for storing RSA keys and and RSA/MD5 based
   signatures in the Domain Name System is described which utilizes DNS
   KEY and SIG resource records.

Table of Contents

   Abstract...................................................1
   1. Introduction............................................1
   2. RSA Public KEY Resource Records.........................2
   3. RSA/MD5 SIG Resource Records............................2
   4. Performance Considerations..............................3
   5. Security Considerations.................................4
   References.................................................4
   Author's Address...........................................5
   Full Copyright Statement...................................6

1. Introduction

   The Domain Name System (DNS) is the global hierarchical replicated
   distributed database system for Internet addressing, mail proxy, and
   other information. The DNS has been extended to include digital
   signatures and cryptographic keys as described in [RFC 2535].  Thus
   the DNS can now be secured and used for secure key distribution.

Eastlake                    Standards Track                     [Page 1]
RFC 2537            RSA/MD5 KEYs and SIGs in the DNS          March 1999

   This document describes how to store RSA keys and and RSA/MD5 based
   signatures in the DNS.  Familiarity with the RSA algorithm is assumed
   [Schneier].  Implementation of the RSA algorithm in DNS is
   recommended.

   The key words "MUST", "REQUIRED", "SHOULD", "RECOMMENDED", and "MAY"
   in this document are to be interpreted as described in RFC 2119.

2. RSA Public KEY Resource Records

   RSA public keys are stored in the DNS as KEY RRs using algorithm
   number 1 [RFC 2535].  The structure of the algorithm specific portion
   of the RDATA part of such RRs is as shown below.

           Field             Size
           -----             ----
           exponent length   1 or 3 octets (see text)
           exponent          as specified by length field
           modulus           remaining space

   For interoperability, the exponent and modulus are each currently
   limited to 4096 bits in length.  The public key exponent is a
   variable length unsigned integer.  Its length in octets is
   represented as one octet if it is in the range of 1 to 255 and by a
   zero octet followed by a two octet unsigned length if it is longer
   than 255 bytes.  The public key modulus field is a multiprecision
   unsigned integer.  The length of the modulus can be determined from
   the RDLENGTH and the preceding RDATA fields including the exponent.
   Leading zero octets are prohibited in the exponent and modulus.

3. RSA/MD5 SIG Resource Records

   The signature portion of the SIG RR RDATA area, when using the
   RSA/MD5 algorithm, is calculated as shown below.  The data signed is
   determined as specified in [RFC 2535].  See [RFC 2535] for fields in
   the SIG RR RDATA which precede the signature itself.

     hash = MD5 ( data )

     signature = ( 00 | 01 | FF* | 00 | prefix | hash ) ** e (mod n)

Eastlake                    Standards Track                     [Page 2]
RFC 2537            RSA/MD5 KEYs and SIGs in the DNS          March 1999

   where MD5 is the message digest algorithm documented in [RFC 1321],
   "|" is concatenation, "e" is the private key exponent of the signer,
   and "n" is the modulus of the signer's public key.  01, FF, and 00
   are fixed octets of the corresponding hexadecimal value. "prefix" is
   the ASN.1 BER MD5 algorithm designator prefix specified in [RFC
   2437], that is,

      hex 3020300c06082a864886f70d020505000410 [NETSEC].

   This prefix is included to make it easier to use RSAREF (or similar
   packages such as EuroRef).  The FF octet MUST be repeated the maximum
   number of times such that the value of the quantity being
Show full document text