RFC 5205

Host Identity Protocol (HIP) Domain Name System (DNS) Extensions

πŸ“… published April 2008, from ietf

Okay bestie, gather round πŸŽ€ this is RFC 5205 and it's giving "DNS but make it HIP" πŸ’… It's a huge main character moment for domain names.

This RFC comes from the Network Working Group 🌈 It was written by P. Nikander at Ericsson Research NomadicLab and J. Laganier at DoCoMo Euro-Labs 🫢 It's filed as Experimental and dated April 2008. The title block doesn't list any RFC that it obsoletes or updates, so it's standing completely on its own πŸ¦‹

The actual title is Host Identity Protocol (HIP) Domain Name System (DNS) Extension ✨

Status of This Memo πŸ“œ

This memo defines an Experimental Protocol for the Internet community, so it's not an Internet standard of any kind πŸ§ͺ The authors are literally asking for discussion and suggestions for improvement. Distribution of this memo is unlimited πŸ’–

Abstract πŸ’œ

This doc specifies a brand new resource record (RR) for the Domain Name System (DNS), plus how to use it with the Host Identity Protocol (HIP) πŸ¦‹ The RR lets a HIP node store in the DNS its Host Identity (HI, the public component of the node public-private key pair), its Host Identity Tag (HIT, a truncated hash of its public key), and the Domain Names of its rendezvous servers (RVSs) πŸ”₯

Table of Contents 🧚

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Conventions Used in This Document  . . . . . . . . . . . . . .  3
   3.  Usage Scenarios  . . . . . . . . . . . . . . . . . . . . . . .  4
     3.1.  Simple Static Singly Homed End-Host  . . . . . . . . . . .  5
     3.2.  Mobile end-host  . . . . . . . . . . . . . . . . . . . . .  6
   4.  Overview of Using the DNS with HIP . . . . . . . . . . . . . .  8
     4.1.  Storing HI, HIT, and RVS in the DNS  . . . . . . . . . . .  8
     4.2.  Initiating Connections Based on DNS Names  . . . . . . . .  8
   5.  HIP RR Storage Format  . . . . . . . . . . . . . . . . . . . .  9
     5.1.  HIT Length Format  . . . . . . . . . . . . . . . . . . . .  9
     5.2.  PK Algorithm Format  . . . . . . . . . . . . . . . . . . .  9
     5.3.  PK Length Format . . . . . . . . . . . . . . . . . . . . . 10
     5.4.  HIT Format . . . . . . . . . . . . . . . . . . . . . . . . 10
     5.5.  Public Key Format  . . . . . . . . . . . . . . . . . . . . 10
     5.6.  Rendezvous Servers Format  . . . . . . . . . . . . . . . . 10
   6.  HIP RR Presentation Format . . . . . . . . . . . . . . . . . . 10
   7.  Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
   8.  Security Considerations  . . . . . . . . . . . . . . . . . . . 12
     8.1.  Attacker Tampering with an Insecure HIP RR . . . . . . . . 12
     8.2.  Hash and HITs Collisions . . . . . . . . . . . . . . . . . 13
     8.3.  DNSSEC . . . . . . . . . . . . . . . . . . . . . . . . . . 13
   9.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 13
   10. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 14
   11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14
     11.1. Normative references . . . . . . . . . . . . . . . . . . . 14
     11.2. Informative references . . . . . . . . . . . . . . . . . . 15

1. Introduction ✨

This doc introduces a new resource record (RR) for the Domain Name System (DNS) [RFC1034] and explains how to use it with the Host Identity Protocol (HIP) [RFC5201]. This RR lets a HIP node stash its Host Identity (HI, the public component of the node public-private key pair), its Host Identity Tag (HIT, a truncated hash of its HI), and the Domain Names of its rendezvous servers (RVSs) [RFC5204] in the DNS πŸ’…

Right now, most Internet apps that need to talk to a remote host first turn a domain name (often typed in by a user) into one or more IP address(es). That happens before any communication, and it relies on a DNS lookup πŸ”

With HIP, IP addresses are mostly for on-the-wire communication between end hosts, while most Upper Layer Protocols (ULP) and applications use HIs or HITs instead (ICMP might be an example of an ULP not using them) 🧚 So we need a way to translate a domain name into an HI. Using the DNS for this is pretty straightforward: we define a new HIP resource record. When an application or ULP asks for a name to IP address lookup, the resolver would additionally perform a name to HI lookup, and use it to construct the resulting HI to IP address mapping (which is internal to the HIP layer). The HIP layer then uses the HI to IP address mapping to translate HIs and HITs into IP addresses and vice versa πŸ¦‹

The HIP Rendezvous Extension [RFC5204] lets a HIP node be reached via the IP address(es) of a third party, the node's rendezvous server (RVS). An Initiator who wants a HIP association with a Responder served by an RVS would typically start the HIP exchange by sending an I1 to the RVS IP address, not the Responder IP address. So we need a way to find the name of a rendezvous server for a given host name 🌸

This document introduces the new HIP DNS resource record to store the Rendezvous Server (RVS), Host Identity (HI), and Host Identity Tag (HIT) information πŸ’–

2. Conventions Used in This Document πŸŽ€

These are the magic words of the spec, so pay attention πŸ‘‘

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 RFC 2119 [RFC2119].

3. Usage Scenarios πŸ¦‹

In this section, we briefly introduce a number of usage scenarios where the DNS is useful with the Host Identity Protocol ✨

With HIP, most applications and ULPs are unaware of the IP addresses used to carry packets on the wire. So a HIP node could take advantage of having multiple IP addresses for fail-over, redundancy, mobility, or renumbering, in a way that's transparent to most ULPs and applications (because they're bound to HIs, so they don't care when the IP addresses change) 🫢

In these situations, for a node to be reachable by its Fully Qualified Domain Name (FQDN), the following information should be stored in the DNS:

  • A set of IP address(es) via A [RFC1035] and AAAA [RFC3596] RR sets (RRSets [RFC2181]).
  • A Host Identity (HI), Host Identity Tag (HIT), and possibly a set of rendezvous servers (RVS) through HIP RRs.

When a HIP node wants to start talking to another HIP node, it first needs to perform a HIP base exchange to set up a HIP association towards its peer. An exchange can be initiated opportunistically, i.e., without prior knowledge of the Responder's HI, but by doing so both nodes knowingly risk man-in-the-middle attacks on the HIP exchange 😬 To prevent these attacks, it is recommended that the Initiator first obtain the HI of the Responder, and then initiate the exchange. This can be done, for example, through manual configuration or DNS lookups. Hence, a new HIP RR is introduced πŸ’…

When a HIP node is frequently changing its IP address(es), the natural DNS latency for propagating changes may stop it from publishing its new IP address(es) in the DNS. To solve this, the HIP Architecture [RFC4423] introduces rendezvous servers (RVSs) [RFC5204]. A HIP host uses a rendezvous server as a rendezvous point to keep reachability with possible HIP initiators while moving [RFC5206]. Such a HIP node would publish its RVS domain name(s) in the DNS in a HIP RR, while keeping its RVS up-to-date with its current set of IP addresses 🌈

When a HIP node wants to initiate a HIP exchange with a Responder, it will perform a number of DNS lookups. Depending on the type of implementation, the order of those lookups may vary. For instance, implementations using HIT in APIs may typically first query for HIP resource records at the Responder FQDN, while those using an IP address in APIs may typically first query for A and/or AAAA resource records πŸ”

In the following, we assume that the Initiator first queries for HIP resource records at the Responder FQDN.

If the query for the HIP type gets a DNS answer with RCODE=3 (Name Error), then the Responder's information is not present in the DNS, and further queries for the same owner name SHOULD NOT be made. Bestie, that's a hard stop πŸ’€

In case the query for the HIP records returns a DNS answer with RCODE=0 (No Error) and an empty answer section, it means that no HIP information is available at the responder name. In that case, if the Initiator has been configured with a policy to fall back to opportunistic HIP (initiating without knowing the Responder's HI) or plain IP, it would send out more queries for A and AAAA types at the Responder's FQDN 🧚

Depending on the combinations of answers, the situations described in Section 3.1 and Section 3.2 can occur.

Note that storing HIP RR information in the DNS at an FQDN that is assigned to a non-HIP node might have ill effects on its reachability by HIP nodes πŸ™ˆ

3.1. Simple Static Singly Homed End-Host 🌸

A HIP node (R) with a single static network attachment, wishing to be reachable by its FQDN (www.example.com), would store in the DNS, in addition to its IP address(es) (IP-R), its Host Identity (HI-R) and Host Identity Tag (HIT-R) in a HIP resource record πŸŽ€

An Initiator willing to associate with a node would typically issue the following queries:

  • QNAME=www.example.com, QTYPE=HIP
  • (QCLASS=IN is assumed and omitted from the examples)

This returns a DNS packet with RCODE=0 and one or more HIP RRs with the HIT and HI (e.g., HIT-R and HI-R) of the Responder in the answer section, but no RVS πŸ’–

  • QNAME=www.example.com, QTYPE=A QNAME=www.example.com, QTYPE=AAAA

This returns DNS packets with RCODE=0 and one or more A or AAAA RRs containing IP address(es) of the Responder (e.g., IP-R) in the answer section πŸ¦‹

Caption: In the remainder of this document, for the sake of keeping diagrams simple and concise, several DNS queries and answers are represented as one single transaction, while in fact there are several queries and answers flowing back and forth, as described in the textual examples 🧚

               [HIP? A?        ]
               [www.example.com]            +-----+
          +-------------------------------->|     |
          |                                 | DNS |
          | +-------------------------------|     |
          | |  [HIP? A?        ]            +-----+
          | |  [www.example.com]
          | |  [HIP HIT-R HI-R ]
          | |  [A IP-R         ]
          | v
        +-----+                              +-----+
        |     |--------------I1------------->|     |
        |  I  |<-------------R1--------------|  R  |
        |     |--------------I2------------->|     |
        |     |<-------------R2--------------|     |
        +-----+                              +-----+

                         Static Singly Homed Host

The Initiator would then send an I1 to the Responder's IP addresses (IP-R) πŸš€

3.2. Mobile end-host

okay bestie, picture a mobile HIP node (R) that wants to be reachable by its FQDN (www.example.com) πŸ“±βœ¨ it stores stuff in the DNS, possibly alongside its IP address(es) (IP-R), its HI (HI-R), its HIT (HIT-R), and the domain name(s) of its rendezvous server(s) (e.g., rvs.example.com) in HIP resource record(s) πŸŽ€. and because mobile nodes keep changing networks, the node also has to tell its rendezvous servers whenever its set of IP address(es) changes πŸ¦‹

an Initiator who wants to link up with a mobile node like this would usually send these queries πŸ”

  • QNAME=www.example.com, QTYPE=HIP this gets back a DNS packet with RCODE=0 and one or more HIP RRs holding the HIT, HI, and RVS domain name(s) (e.g., HIT-R, HI-R, and rvs.example.com) of the Responder, all in the answer section πŸ’œ
  • QNAME=rvs.example.com, QTYPE=A and QNAME=www.example.com, QTYPE=AAAA these come back as DNS packets with RCODE=0 and one or more A or AAAA RRs containing the IP address(es) of the Responder's RVS (e.g., IP-RVS) in the answer section 🌸
          [HIP?           ]
          [www.example.com]

          [A?             ]
          [rvs.example.com]                     +-----+
     +----------------------------------------->|     |
     |                                          | DNS |
     | +----------------------------------------|     |
     | |  [HIP?                          ]      +-----+
     | |  [www.example.com               ]
     | |  [HIP HIT-R HI-R rvs.example.com]
     | |
     | |  [A?             ]
     | |  [rvs.example.com]
     | |  [A IP-RVS       ]
     | |
     | |                +-----+
     | | +------I1----->| RVS |-----I1------+
     | | |              +-----+             |
     | | |                                  |
     | | |                                  |
     | v |                                  v
    +-----+                              +-----+
    |     |<---------------R1------------|     |
    |  I  |----------------I2----------->|  R  |
    |     |<---------------R2------------|     |
    +-----+                              +-----+

                          Mobile End-Host

so then the Initiator sends an I1 to the RVS IP address (IP-RVS) πŸš€ and the RVS relays that I1 up to the mobile node's IP address (IP-R), and boom, the HIP exchange gets completed πŸ™Œβœ¨

4. Overview of Using the DNS with HIP 🌈

4.1. Storing HI, HIT, and RVS in the DNS

okay so for any HIP node, its Host Identity (HI), the matching Host Identity Tag (HIT), and the FQDN of its possible RVSs can all be stored in a DNS HIP RR πŸ’… any conforming implementation can store a Host Identity (HI) and its associated Host Identity Tag (HIT) in a DNS HIP RDATA format πŸŽ€ the HI and HIT are defined in Section 3 of the HIP specification [RFC5201] πŸ’–

when a host gets a HIP RR back, it MUST always calculate the HI-derivative HIT to use in the HIP exchange, as specified in Section 3 of the HIP specification [RFC5201] ✨ the HIT that might be embedded alongside it SHOULD only be used as an optimization (e.g., table lookup) 🧚 so no trusting the shortcut blindly, bestie πŸ™ˆ

the HIP resource record can also hold one or more domain name(s) of rendezvous server(s) that HIP I1 packets might get sent to, which kicks off an association with the entity named by that record [RFC5204] πŸ¦‹

the rendezvous server field of a HIP resource record stored at a given owner name MAY include the owner name itself 🫢 a semantically equivalent situation happens if there's no rendezvous server in the HIP resource record stored at that owner name πŸ’œ this shows up in two cases:

  • the host is mobile, and the A and/or AAAA resource record(s) stored at its host name contain the IP address(es) of its rendezvous server rather than its own πŸ›΅
  • the host is stationary, and it can be reached directly at the IP address(es) in the A and/or AAAA resource record(s) stored at its host name 🏠 this is a degenerate case of rendezvous service, where the host kinda acts as a rendezvous server for itself πŸ’€

an RVS that gets an I1 like this relays it to the right Responder (the owner of the I1 receiver's HIT) 🚚 and then the Responder finishes the exchange with the Initiator, typically without ongoing help from the RVS πŸ‘‘

4.2. Initiating Connections Based on DNS Names

on a HIP node, a Host Identity Protocol exchange SHOULD be initiated whenever a ULP tries to talk to an entity and the DNS lookup returns HIP resource records 🫢✨

5. HIP RR Storage Format πŸ’Ž

the RDATA for a HIP RR is made up of a public key algorithm type, the HIT length, a HIT, a public key, and optionally one or more rendezvous server(s) πŸŽ€

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  HIT length   | PK algorithm  |          PK length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
~                           HIT                                 ~
|                                                               |
+                     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     |                                         |
+-+-+-+-+-+-+-+-+-+-+-+                                         +
|                           Public Key                          |
~                                                               ~
|                                                               |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                                                               |
~                       Rendezvous Servers                      ~
|                                                               |
+             +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             |
+-+-+-+-+-+-+-+

the HIT length, PK algorithm, PK length, HIT, and Public Key fields are REQUIRED πŸ’… the Rendezvous Servers field is OPTIONAL 🌸

5.1. HIT Length Format

the HIT length tells you how many bytes long the HIT field is πŸ“ it's an 8-bit unsigned integer 🧚

5.2. PK Algorithm Format

the PK algorithm field tells you which public key cryptographic algorithm is in use, plus the public key field format that comes with it πŸ” it's an 8-bit unsigned integer πŸŽ€ this document reuses the values defined for the 'algorithm type' of the IPSECKEY RR [RFC4025] πŸ’–

the presently defined values are listed in Section 9 for reference πŸ“š

5.3. PK Length Format

the PK length tells you how many bytes long the Public key field is πŸ“ it's a 16-bit unsigned integer in network byte order 🌐

5.4. HIT Format

the HIT is stored as a binary value in network byte order 🫢

5.5. Public Key Format

both of the public key types defined in this document (RSA and DSA) reuse the public key formats defined for the IPSECKEY RR [RFC4025] πŸ”‘ the DSA key format is defined in RFC 2536 [RFC2536] πŸ’œ the RSA key format is defined in RFC 3110 [RFC3110], and the RSA key size limit (4096 bits) gets relaxed in the IPSECKEY RR [RFC4025] specification πŸ¦‹

5.6. Rendezvous Servers Format

the Rendezvous Servers field holds one or more variable length wire-encoded domain names of rendezvous server(s), as described in Section 3.3 of RFC 1035 [RFC1035] 🌈 the wire-encoded format is self-describing, so the length is implicit ✨ the domain names MUST NOT be compressed πŸ™… the rendezvous server(s) are listed in order of preference (i.e., the first rendezvous server(s) are preferred), which defines an implicit order among the rendezvous servers of a single RR πŸ‘‘ when multiple HIP RRs sit at the same owner name, this implicit order within one RR MUST NOT be used to infer a preference order between rendezvous servers stored in different RRs πŸ’…

6. HIP RR Presentation Format πŸŽ€

this section specifies how the HIP RR is represented in a zone master file πŸ“„

the HIT length field isn't represented, since it's implicitly known from the HIT field representation 🧠

the PK algorithm field is represented as unsigned integers πŸ”’

the HIT field is represented as the Base16 encoding [RFC4648] (a.k.a. hex or hexadecimal) of the HIT 🌸 the encoding MUST NOT contain whitespaces, so it can be told apart from the public key field 🫢

the Public Key field is represented as the Base64 encoding [RFC4648] of the public key πŸ” the encoding MUST NOT contain whitespace(s), so it can be told apart from the Rendezvous Servers field πŸ’–

the PK length field isn't represented either, since it's implicitly known from the Public key field representation, which has no whitespaces πŸ“

the Rendezvous Servers field is represented by one or more domain name(s) separated by whitespace(s) πŸ¦‹

the complete representation of the HPIHI record is:

IN  HIP   ( pk-algorithm
            base16-encoded-hit
            base64-encoded-public-key
            rendezvous-server[1]
                    ...
            rendezvous-server[n] )

and when no RVSs are present, the representation of the HPIHI record is:

IN  HIP   ( pk-algorithm
            base16-encoded-hit
            base64-encoded-public-key )

7. Examples 🧚

in the examples below, the public key field (which has no whitespace) is wrapped, since it doesn't fit on one line of this document πŸ“–

example of a node with HI and HIT but no RVS:

www.example.com.      IN  HIP ( 2 200100107B1A74DF365639CC39F1D578
                                AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p
9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQ
b1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D )

example of a node with a HI, HIT, and one RVS:

www.example.com.      IN  HIP ( 2 200100107B1A74DF365639CC39F1D578
                                AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p
9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQ
b1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D
                                rvs.example.com. )

example of a node with a HI, HIT, and two RVSs:

www.example.com.      IN  HIP ( 2 200100107B1A74DF365639CC39F1D578
                                AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p
9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQ
b1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D
                                rvs1.example.com.
                                rvs2.example.com. )

8. Security Considerations πŸ”₯

okay bestie, this is the spicy section πŸ’€ It covers the known threats that come with the HIP DNS Extension, so read it closely 🫢

In a similar way to the IPSECKEY RR [RFC4025], the HIP DNS Extension lets two HIP nodes get each other's public keying material (HI). Those HIs get used later in a key exchange between the peers. So the HIP DNS Extension brings the same kinds of threats that IPSECKEY does 😭, plus extra threats from the fact that a HIP node can start or accept a HIP exchange using "opportunistic" or "unpublished Initiator HI" modes. Main character drama πŸ’…

A HIP node SHOULD obtain HIP RRs from a trusted party through a secure channel that ensures the data integrity and authenticity of the RRs. DNSSEC [RFC4033] [RFC4034] [RFC4035] gives you that secure channel ✨ But real talk, DNSSEC only guarantees data integrity and authenticity on the channel between the DNS server publishing a zone and the HIP node. DNSSEC does not check that the entity publishing the zone is trusted πŸ™ˆ So the RRSIG signature of the HIP RRSet MUST NOT be misinterpreted as a certificate binding the HI and/or the HIT to the owner name.

Warning, bestie: an RRSIG on a HIP RRSet is NOT a certificate. It proves the data came through the signed channel. It does not prove who the owner really is 🚨

Without a proper secure channel, both parties are open to MitM and DoS attacks, and unrelated parties might get hit by DoS attacks too πŸ’” The next sections go through these threats.


8.1. Attacker Tampering with an Insecure HIP RR

The HIP RR holds public keying material: the named peer's public key (the HI) and its secure hash (the HIT). Neither one is sensitive if an adversary learns it πŸ¦‹ The real problem is an attacker who can actively attack the DNS, meaning they tamper with this HIP RR (for example with DNS spoofing). That attacker can then run Man-in-the-Middle attacks on the cryptographic core of the eventual HIP exchange, since the Responder's HIP RR has been rewritten by the attacker 😱

The HIP RR may also contain a rendezvous server domain name, which gets resolved into a destination IP address where the named peer can be reached by an I1, as described in the HIP Rendezvous Extension [RFC5204]. So an attacker who can tamper with this RR can redirect I1 packets meant for the named peer to an IP address of their choice, for DoS or MitM attacks πŸ₯Ί This kind of attack isn't specific to HIP. It exists whether or not HIP and the HIP RR are used at all. An attacker might tamper with A and AAAA RRs as well πŸ™ƒ

An attacker could combine these two attacks, and that's a whole mess πŸ’€ They would replace the Responder's HI and RVS IP address with their own in a spoofed DNS packet sent to the Initiator HI. Then they redirect all the exchanged packets to themselves and run a MitM on HIP. In this case, HIP won't provide confidentiality, and it won't protect the Initiator HI from eavesdroppers either 😭


8.2. Hash and HITs Collisions

As with lots of cryptographic algorithms, some secure hashes eventually become insecure πŸ₯€ For example, SHA1 is used by HIP to generate a HIT from an HI. Someone found an exploit where an attacker with reasonable computing power can break one of the hash's security features, like its supposed collision resistance. That's why a HIP end-node implementation SHOULD NOT authenticate its HIP peers based solely on a HIT retrieved from the DNS. It SHOULD rather use HI-based authentication πŸ”βœ¨


8.3. DNSSEC

Without DNSSEC, the HIP RR is exposed to the threats described in RFC 3833 [RFC3833] 🌸


9. IANA Considerations πŸŽ€

IANA has given the HIP RR one new RR type code (55) from the standard RR type space πŸ“

IANA doesn't need to open a new registry for public key algorithms for the HIP RR, because the HIP RR reuses the "algorithms types" that were defined for the IPSECKEY RR [RFC4025] πŸ’… These are the values that exist right now, shown here just for reference:

0 is reserved
1 is DSA
2 is RSA

If a new algorithm ever gets used for the HIP RR, a new algorithm type and matching public key encoding should be defined for the IPSECKEY RR. The HIP RR should reuse both the same algorithm type and the same public key format as the IPSECKEY RR 🧚


10. Acknowledgments πŸ’œ

As usual in the IETF, this document came out of a collaboration between lots of people 🫢 The authors want to thank the author (Michael Richardson), the contributors, and the reviewers of the IPSECKEY RR [RFC4025] specification, which this document was framed on. The authors also want to thank the following people, whose thoughtful discussions and suggestions helped make this document better: Jeff Ahrenholz, Rob Austein, Hannu Flinck, Olafur Gudmundsson, Tom Henderson, Peter Koch, Olaf Kolkman, Miika Komu, Andrew McGregor, Erik Nordmark, and Gabriel Montenegro πŸ‘‘ Some parts of this document come from the HIP specification [RFC5201] ✨


11. References πŸ“š

11.1. Normative references

[RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",
           STD 13, RFC 1034, November 1987.

[RFC1035]  Mockapetris, P., "Domain names - implementation and
           specification", STD 13, RFC 1035, November 1987.

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2181]  Elz, R. and R. Bush, "Clarifications to the DNS
           Specification", RFC 2181, July 1997.

[RFC3596]  Thomson, S., Huitema, C., Ksinant, V., and M. Souissi,
           "DNS Extensions to Support IP Version 6", RFC 3596,
           October 2003.

[RFC4025]  Richardson, M., "A Method for Storing IPsec Keying
           Material in DNS", RFC 4025, March 2005.

[RFC4033]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
           Rose, "DNS Security Introduction and Requirements",
           RFC 4033, March 2005.

[RFC4034]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
           Rose, "Resource Records for the DNS Security Extensions",
           RFC 4034, March 2005.

[RFC4035]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
           Rose, "Protocol Modifications for the DNS Security
           Extensions", RFC 4035, March 2005.

[RFC4648]  Josefsson, S., "The Base16, Base32, and Base64 Data
           Encodings", RFC 4648, October 2006.

[RFC5201]  Moskowitz, R., Nikander, P., Jokela, P., Ed., and T.
           Henderson, "Host Identity Protocol", RFC 5201, April 2008.

[RFC5204]  Laganier, J. and L. Eggert, "Host Identity Protocol (HIP)
           Rendezvous Extension", RFC 5204, April 2008.

11.2. Informative references

[RFC2536]  Eastlake, D., "DSA KEYs and SIGs in the Domain Name System
           (DNS)", RFC 2536, March 1999.

[RFC3110]  Eastlake, D., "RSA/SHA-1 SIGs and RSA KEYs in the Domain
           Name System (DNS)", RFC 3110, May 2001.

[RFC3833]  Atkins, D. and R. Austein, "Threat Analysis of the Domain
           Name System (DNS)", RFC 3833, August 2004.

[RFC4423]  Moskowitz, R. and P. Nikander, "Host Identity Protocol
           (HIP) Architecture", RFC 4423, May 2006.

[RFC5206]  Henderson, T., Ed., "End-Host Mobility and Multihoming
           with the Host Identity Protocol", RFC 5206, April 2008.

Authors' Addresses πŸ¦‹

Pekka Nikander
Ericsson Research NomadicLab
JORVAS  FIN-02420
FINLAND

Phone: +358 9 299 1
EMail: pekka.nikander@nomadiclab.com


Julien Laganier
DoCoMo Communications Laboratories Europe GmbH
Landsberger Strasse 312
Munich  80687
Germany

Phone: +49 89 56824 231
EMail: julien.ietf@laposte.net
URI:   http://www.docomolab-euro.com/

Copyright (C) The IETF Trust (2008).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Intellectual Property 🌈

The IETF takes no position on the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document, or on whether any license under such rights might or might not be available. It also doesn't say it has made any independent effort to identify any such rights. Information on the procedures for rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat, any assurances of licenses to be made available, or the result of an attempt to get a general license or permission for the use of such proprietary rights by implementers or users of this specification can be found in the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please send that information to the IETF at ietf-ipr@ietf.org πŸ’–

πŸ“¦ where this page comes from