draft-ietf-cbor-network-addresses-03.txt | draft-ietf-cbor-network-addresses-04.txt | |||
---|---|---|---|---|
CBOR Working Group M. Richardson | CBOR Working Group M. Richardson | |||
Internet-Draft Sandelman Software Works | Internet-Draft Sandelman Software Works | |||
Intended status: Standards Track 25 March 2021 | Intended status: Standards Track 21 April 2021 | |||
Expires: 26 September 2021 | Expires: 23 October 2021 | |||
CBOR tags for IPv4 and IPv6 addresses and prefixes | CBOR tags for IPv4 and IPv6 addresses and prefixes | |||
draft-ietf-cbor-network-addresses-03 | draft-ietf-cbor-network-addresses-04 | |||
Abstract | Abstract | |||
This document describes two CBOR Tags to be used with IPv4 and IPv6 | This document describes two CBOR Tags to be used with IPv4 and IPv6 | |||
addresses and prefixes. | addresses and prefixes. | |||
RFC-EDITOR-please remove: This work is tracked at | RFC-EDITOR-please remove: This work is tracked at https://github.com/ | |||
https://github.com/mcr/cbor-network-address.git | cbor-wg/cbor-network-address | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on 26 September 2021. | This Internet-Draft will expire on 23 October 2021. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
skipping to change at page 2, line 18 ¶ | skipping to change at page 2, line 18 ¶ | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
3. Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 3. Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
3.1. IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 3.1. IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
3.2. IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 3.2. IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
4. Encoder Consideration for prefixes . . . . . . . . . . . . . 3 | 4. Encoder Consideration for prefixes . . . . . . . . . . . . . 3 | |||
5. Decoder Considerations for prefixes . . . . . . . . . . . . . 4 | 5. Decoder Considerations for prefixes . . . . . . . . . . . . . 4 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 4 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 4 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | |||
7.1. Tag 54 - IPv6 . . . . . . . . . . . . . . . . . . . . . . 5 | 7.1. Tag 54 - IPv6 . . . . . . . . . . . . . . . . . . . . . . 5 | |||
7.2. Tag 52 - IPv4 . . . . . . . . . . . . . . . . . . . . . . 5 | 7.2. Tag 52 - IPv4 . . . . . . . . . . . . . . . . . . . . . . 5 | |||
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5 | 8. Normative References . . . . . . . . . . . . . . . . . . . . 5 | |||
9. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | Appendix A. Changelog . . . . . . . . . . . . . . . . . . . . . 5 | |||
10. Normative References . . . . . . . . . . . . . . . . . . . . 5 | Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 6 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
1. Introduction | 1. Introduction | |||
[RFC8949] defines a number of CBOR Tags for common items. | [RFC8949] defines a number of CBOR Tags for common items. | |||
Not included are ones to indicate if the item is an IPv4 or IPv6 | Not included are ones to indicate if the item is an IPv4 or IPv6 | |||
address, or if it is an address plus prefix length. This document | address, or if it is an address plus prefix length. This document | |||
defines them. | defines them. | |||
skipping to change at page 2, line 51 ¶ | skipping to change at page 2, line 51 ¶ | |||
These tags can applied to byte strings to represent a single address. | These tags can applied to byte strings to represent a single address. | |||
When applied to an array, the represent a CIDR-style prefix. When a | When applied to an array, the represent a CIDR-style prefix. When a | |||
byte string (without prefix) appears in a context where a prefix is | byte string (without prefix) appears in a context where a prefix is | |||
expected, then it is to be assumed that all bits are relevant. That | expected, then it is to be assumed that all bits are relevant. That | |||
is, for IPv4, a /32 is implied, and for IPv6, a /128 is implied. | is, for IPv4, a /32 is implied, and for IPv6, a /128 is implied. | |||
3.1. IPv6 | 3.1. IPv6 | |||
IANA has allocated tag 54 for IPv6 uses. (Note that this is the | IANA has allocated tag 54 for IPv6 uses. (Note that this is the | |||
ASCII code for '6') | ASCII code for '6'.) | |||
An IPv6 address is to be encoded as a sixteen-byte byte string | An IPv6 address is to be encoded as a sixteen-byte byte string | |||
([RFC8949] section, 3.1, major type 2), prefixed with Tag(54). | ([RFC8949] section, 3.1, major type 2), prefixed with Tag(54). | |||
An IPv6 prefix, such as 2001:db8:1234::/48 is to be encoded as a two | An IPv6 prefix, such as 2001:db8:1234::/48 is to be encoded as a two | |||
element array, with the length of the prefix first. Trailing zero | element array, with the length of the prefix first. Trailing zero | |||
octets MUST be omitted. | bytes MUST be omitted. | |||
For example: | For example: | |||
54([ 48, h'20010db81234']) | 54([ 48, h'20010db81234']) | |||
3.2. IPv4 | 3.2. IPv4 | |||
IANA has allocated tag 54 for IPv4 uses. (Note that this is the | IANA has allocated tag 54 for IPv4 uses. (Note that this is the | |||
ASCII code for '4') | ASCII code for '4'.) | |||
An IPv4 address is to be encoded as a four-byte byte string | An IPv4 address is to be encoded as a four-byte byte string | |||
([RFC8949] section, 3.1, major type 2), prefixed with Tag(52). | ([RFC8949] section, 3.1, major type 2), prefixed with Tag(52). | |||
An IPv4 prefix, such as 192.0.2.1/24 is to be encoded as a two | An IPv4 prefix, such as 192.0.2.1/24 is to be encoded as a two | |||
element array, with the length of the prefix first. Trailing zero | element array, with the length of the prefix first. Trailing zero | |||
octets MUST be omitted. | bytes MUST be omitted. | |||
For example: | For example: | |||
52([ 24, h'C00002']) | 52([ 24, h'C00002']) | |||
4. Encoder Consideration for prefixes | 4. Encoder Consideration for prefixes | |||
An encoder may omit as many right-hand (trailing) bytes which are all | An encoder may omit as many right-hand (trailing) bytes which are all | |||
zero as it wishes. | zero as it wishes. | |||
skipping to change at page 5, line 10 ¶ | skipping to change at page 5, line 10 ¶ | |||
The right-hand bits of the prefix, after the prefix-length, are | The right-hand bits of the prefix, after the prefix-length, are | |||
ignored by this protocol. A malicious party could use them to | ignored by this protocol. A malicious party could use them to | |||
transmit covert data in a way that would not affect the primary use | transmit covert data in a way that would not affect the primary use | |||
of this encoding. Such abuse would be detected by examination of the | of this encoding. Such abuse would be detected by examination of the | |||
raw protocol bytes. Users of this encoding should be aware of this | raw protocol bytes. Users of this encoding should be aware of this | |||
possibility. | possibility. | |||
7. IANA Considerations | 7. IANA Considerations | |||
IANA is asked to allocate two tags from the Specification Required | IANA has allocated two tags from the Specification Required area of | |||
area of the Concise Binary Object Representation (CBOR) Tags, in the | the Concise Binary Object Representation (CBOR) Tags: | |||
("1+1") area. | ||||
7.1. Tag 54 - IPv6 | 7.1. Tag 54 - IPv6 | |||
Data Item: byte string and array | Data Item: byte string or array | |||
Semantics: IPv6 or [prefixlen,IPv6] | Semantics: IPv6 or [prefixlen,IPv6] | |||
7.2. Tag 52 - IPv4 | 7.2. Tag 52 - IPv4 | |||
Data Item: byte string and array | Data Item: byte string or array | |||
Semantics: IPv4 or [prefixlen,IPv4] | Semantics: IPv4 or [prefixlen,IPv4] | |||
8. Acknowledgements | 8. Normative References | |||
none yet | ||||
9. Changelog | ||||
* 01 added security considerations about covert channel | ||||
10. Normative References | ||||
[BCP14] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC8949] Bormann, C. and P. Hoffman, "Concise Binary Object | [RFC8949] Bormann, C. and P. Hoffman, "Concise Binary Object | |||
Representation (CBOR)", STD 94, RFC 8949, | Representation (CBOR)", STD 94, RFC 8949, | |||
DOI 10.17487/RFC8949, December 2020, | DOI 10.17487/RFC8949, December 2020, | |||
<https://www.rfc-editor.org/info/rfc8949>. | <https://www.rfc-editor.org/info/rfc8949>. | |||
Appendix A. Changelog | ||||
This section is to be removed before publishing as an RFC. | ||||
* 03 | ||||
* 02 | ||||
* 01 added security considerations about covert channel | ||||
Acknowledgements | ||||
none yet | ||||
Author's Address | Author's Address | |||
Michael Richardson | Michael Richardson | |||
Sandelman Software Works | Sandelman Software Works | |||
Email: mcr+ietf@sandelman.ca | Email: mcr+ietf@sandelman.ca | |||
End of changes. 14 change blocks. | ||||
31 lines changed or deleted | 32 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |