Skip to main content

Algorithm Identifiers for Ed25519, Ed448, X25519, and X448 for Use in the Internet X.509 Public Key Infrastructure
draft-ietf-curdle-pkix-10

Revision differences

Document history

Date Rev. By Action
2018-08-06
10 (System) RFC Editor state changed to AUTH48-DONE from AUTH48
2018-06-25
10 (System) RFC Editor state changed to AUTH48 from RFC-EDITOR
2018-06-24
10 (System) RFC Editor state changed to RFC-EDITOR from EDIT
2018-05-11
10 (System) IANA Action state changed to RFC-Ed-Ack from Waiting on RFC Editor
2018-05-10
10 (System) IANA Action state changed to Waiting on RFC Editor from In Progress
2018-05-10
10 (System) IANA Action state changed to In Progress from Waiting on Authors
2018-05-10
10 (System) IANA Action state changed to Waiting on Authors from In Progress
2018-05-09
10 (System) RFC Editor state changed to EDIT
2018-05-09
10 (System) IESG state changed to RFC Ed Queue from Approved-announcement sent
2018-05-09
10 (System) Announcement was received by RFC Editor
2018-05-09
10 (System) IANA Action state changed to In Progress
2018-05-09
10 Amy Vezza IESG state changed to Approved-announcement sent from Approved-announcement to be sent
2018-05-09
10 Amy Vezza IESG has approved the document
2018-05-09
10 Amy Vezza Closed "Approve" ballot
2018-05-09
10 Amy Vezza Ballot approval text was generated
2018-05-09
10 Amy Vezza Ballot writeup was changed
2018-05-09
10 Amy Vezza Ballot writeup was changed
2018-05-08
10 Eric Rescorla IESG state changed to Approved-announcement to be sent from Approved-announcement to be sent::AD Followup
2018-05-08
10 Jim Schaad New version available: draft-ietf-curdle-pkix-10.txt
2018-05-08
10 (System) New version approved
2018-05-08
10 (System) Request for posting confirmation emailed to previous authors: Jim Schaad , Simon Josefsson
2018-05-08
10 Jim Schaad Uploaded new revision
2018-04-20
09 (System) Sub state has been changed to AD Followup from Revised ID Needed
2018-04-20
09 Jim Schaad New version available: draft-ietf-curdle-pkix-09.txt
2018-04-20
09 (System) New version approved
2018-04-20
09 (System) Request for posting confirmation emailed to previous authors: Jim Schaad , Simon Josefsson
2018-04-20
09 Jim Schaad Uploaded new revision
2018-04-19
08 Cindy Morgan IESG state changed to Approved-announcement to be sent::Revised I-D Needed from IESG Evaluation
2018-04-19
08 (System) IANA Review state changed to Version Changed - Review Needed from IANA OK - Actions Needed
2018-04-19
08 Jim Schaad New version available: draft-ietf-curdle-pkix-08.txt
2018-04-19
08 (System) New version approved
2018-04-19
08 (System) Request for posting confirmation emailed to previous authors: Jim Schaad , Simon Josefsson
2018-04-19
08 Jim Schaad Uploaded new revision
2018-04-18
07 Alissa Cooper [Ballot comment]
Please update Section 2 to reference BCP 14 rather than RFC 2119.
2018-04-18
07 Alissa Cooper Ballot comment text updated for Alissa Cooper
2018-04-18
07 Alissa Cooper [Ballot Position Update] New position, No Objection, has been recorded for Alissa Cooper
2018-04-18
07 Deborah Brungard [Ballot Position Update] New position, No Objection, has been recorded for Deborah Brungard
2018-04-18
07 Martin Vigoureux [Ballot Position Update] New position, No Objection, has been recorded for Martin Vigoureux
2018-04-18
07 Terry Manderson [Ballot Position Update] New position, No Objection, has been recorded for Terry Manderson
2018-04-17
07 Suresh Krishnan [Ballot Position Update] New position, No Objection, has been recorded for Suresh Krishnan
2018-04-17
07 Alvaro Retana [Ballot Position Update] New position, No Objection, has been recorded for Alvaro Retana
2018-04-17
07 Ignas Bagdonas [Ballot Position Update] New position, No Objection, has been recorded for Ignas Bagdonas
2018-04-16
07 Adam Roach
[Ballot comment]
Thanks to everyone who contributed to this document.

This is not as much a document comment as a flag for IANA -- the …
[Ballot comment]
Thanks to everyone who contributed to this document.

This is not as much a document comment as a flag for IANA -- the OIDs
1.3.101.114 and 1.3.101.115 show as reserved by this document at
https://www.ietf.org/assignments/smi-numbers/smi-numbers.xml#smi-numbers-1.3.101
but those codepoints no longer appear in this document. We should make sure
they get released by IANA rather than finalized to point to the RFC this will
become.

---------------------------------------------------------------------------

§3:

>    For this reason, a small
>    number of implementations may still require the field to be
>    present.

I'm surprised that there's no implementation guidance here. Presumably (based
on the text about curve25519 and curve448), the parameter is present but NULL?
Is it recommended to set this for maximum compatiblity? Or is this simply
something that users should be allowed to configure when generating these?

===========================================================================
Nits
===========================================================================

§1:

>  o  The EdDSA algorithms are the only IETF algorithms that currently
>    support the use of contexts, however there is a possibility that
>    there will be confusion between which algorithms need have
>    separate keys and which do not.  This may result in a decrease of

Nit: "...need to have..."

---------------------------------------------------------------------------
§1:

>  o  There are still on going discussions among the cryptographic

Nit: "ongoing"

---------------------------------------------------------------------------

§1:

>  o  There needs to be discussions about the correct way to identify
>    when context strings are to be used.  It is not clear if different
>    OIDs should be used for different contexts, or the OID should
>    merely not that a context string needs to be provided.

Nit: "...merely note..."

---------------------------------------------------------------------------

§2:

Consider use of RFC 8174 boiler plate - the document uses non-normative,
lowercase "should" in some locations.
2018-04-16
07 Adam Roach [Ballot Position Update] New position, No Objection, has been recorded for Adam Roach
2018-04-16
07 Warren Kumari
[Ballot comment]
I'd ballot Yes, but I'm not sufficiently schooled in the art to be able to back that up...

Instead, I offer a nit …
[Ballot comment]
I'd ballot Yes, but I'm not sufficiently schooled in the art to be able to back that up...

Instead, I offer a nit :-) :
1: "There are still on going discussions" -> ongoing.
2018-04-16
07 Warren Kumari [Ballot Position Update] New position, No Objection, has been recorded for Warren Kumari
2018-04-15
07 Alexey Melnikov [Ballot comment]
Benjamin already spotted s/not/note.
2018-04-15
07 Alexey Melnikov [Ballot Position Update] New position, Yes, has been recorded for Alexey Melnikov
2018-04-13
07 Ben Campbell [Ballot Position Update] New position, Yes, has been recorded for Ben Campbell
2018-04-13
07 Benjamin Kaduk
[Ballot comment]
It's good to see this being done.  I found several nits (and second the genart reviewer's request for the RFC 8174 boilerplate).

Section …
[Ballot comment]
It's good to see this being done.  I found several nits (and second the genart reviewer's request for the RFC 8174 boilerplate).

Section 1

  [...] This RFC defines the ASN.1 Object Identifiers
  (OIDs) for the operations X25519 and X448 along with the parameters.

"the parameters" is not scoped properly; "their parameters", maybe?

  [...] The convention used for identifying
  the algorithm/curve combinations are to use the Ed25519 and Ed448 for
  the PureEdDSA mode. [...]

"the Ed25519" is an overzealous "the"; also singular/plural mismatch
for convention/are.

      [...], or the OID should
      merely not that a context string needs to be provided.

s/not/note/


Section 3

  o  algorithm identifies the cryptographic algorithm with an object
      identifier.  This is one of the OIDs defined below.

"is" may be too restrictive, since there are other possible uses of
AlgorithmIdentifier.

  In this document we defined four new OIDs for identifying the
  different curve/algorithm pairs.  The curves being curve25519 and
  curve448.  The algorithms being ECDH and EdDSA in pure mode.

s/defined/define/, and join the latter sentence fragments into the
former sentence with commas/"and".


Section 4

The public key example immediately follows text about how the
key-exchange and EdDSA usages will produce different public key
encodings for a given private key, but does not say which encoding
it uses.  It would be nice to have that clearly indicated in the
text.


Section 7

  Asymmetric Key Packages [RFC5958] describes how encode a private key

"how to encode"
2018-04-13
07 Benjamin Kaduk [Ballot Position Update] New position, Yes, has been recorded for Benjamin Kaduk
2018-04-13
07 Mirja Kühlewind [Ballot Position Update] New position, No Objection, has been recorded for Mirja Kühlewind
2018-04-12
07 Spencer Dawkins
[Ballot comment]
Nit:

  o  The EdDSA algorithms are the only IETF algorithms that currently
      support the use of contexts, however there …
[Ballot comment]
Nit:

  o  The EdDSA algorithms are the only IETF algorithms that currently
      support the use of contexts, however there is a possibility that
      there will be confusion between which algorithms need have
                                "need" or "need to have"? ^
      separate keys and which do not.  This may result in a decrease of
      security for those other algorithms.
2018-04-12
07 Spencer Dawkins [Ballot Position Update] New position, No Objection, has been recorded for Spencer Dawkins
2018-03-02
07 (System) IANA Review state changed to IANA OK - Actions Needed from Version Changed - Review Needed
2018-02-24
07 Eric Rescorla Not sure why this showed Internet Standard
2018-02-24
07 Eric Rescorla Intended Status changed to Proposed Standard from Internet Standard
2018-02-24
07 Eric Rescorla IESG state changed to IESG Evaluation from Waiting for Writeup
2018-02-24
07 Eric Rescorla Ballot has been issued
2018-02-24
07 Eric Rescorla [Ballot Position Update] New position, Yes, has been recorded for Eric Rescorla
2018-02-24
07 Eric Rescorla Created "Approve" ballot
2018-02-24
07 Eric Rescorla Ballot writeup was changed
2018-02-24
07 Eric Rescorla Placed on agenda for telechat - 2018-04-19
2018-01-05
07 Daniel Migault
As required by RFC 4858, this is the current template for the Document
Shepherd Write-Up.

Changes are expected over time. This version is dated …
As required by RFC 4858, this is the current template for the Document
Shepherd Write-Up.

Changes are expected over time. This version is dated 24 February 2012.

(1) What type of RFC is being requested (BCP, Proposed Standard,
Internet Standard, Informational, Experimental, or Historic)?  Why
is this the proper type of RFC?  Is this type of RFC indicated in the
title page header?

The request type for draft-ietf-curdle-pkix is Standard Track. This is the appropriated type as it defined IODs for using Ed25519,  Ed448, X25519 and X448 for X509 with PKI. It is indicated in the header page.

(2) The IESG approval announcement includes a Document Announcement
Write-Up. Please provide such a Document Announcement Write-Up. Recent
examples can be found in the "Action" announcements for approved
documents. The approval announcement contains the following sections:

Technical Summary

  Relevant content can frequently be found in the abstract
  and/or introduction of the document. If not, this may be
  an indication that there are deficiencies in the abstract
  or introduction.

  This document specifies algorithm identifiers and ASN.1 encoding
  formats for Elliptic Curve constructs using the Curve25519 and
  Curve448 curves.  The signature algorithms covered are Ed25519,
  Ed448.  The key agreement algorithm covered
  are X25519 and X448.  The Encoding for Public Key, Private Key and
  EdDSA digital signature structures is provided.
 
Working Group Summary

  Was there anything in WG process that is worth noting? For
  example, was there controversy about particular points or
  were there decisions where the consensus was particularly
  rough?
Main discussions that happened regarding the draft were:
      - the use of a context or not. The current agreement was not to use any specific context as this would lead to encourage people to use the same key for different usages. The same discussion appears in IPsec, with the DNSKEY.
    - Names and designation for IOD format. We met in the IETF in Berlin (Benjamin, Jim, Russ as well as Rich and Daniel) and the next version reflected the discussion, and were adopted by the WG. 
    - Use of prehash or pure variant was raised in version 03 that mentioned "CAs MUST NOT use the pre-hash versions".  The main argument for enabling the prehash variant was to be able to sign large amount of data such as CRLs. However this can be addressed by combining CRL distribution points, combined with segmenting the certificates. For the care of simplicity, the consensus was that a single variant should be considered only and the choice was to follow the FCRG recommendations and chose the pure variant. As a result the draft has removed any mention of the purehash variant and stated clearly that only the pure variant is addressed by the draft.
    - OID identifier parameter MUST be absent and a parameter set to NULL MUST NOT be accepted.  Java implementation cannot be currently compatible with this. However, the working group consensus was to have a straight enforcement of the update specification of AlgorithmIdentifier. This is clearly mentioned in the draft so implementation can understand the motivation as well as becoming compliant with the updated spec.
"""
      When the 1997
      syntax for AlgorithmIdentifier was initially defined, it omitted
      the OPTIONAL key word.  The optionality of the parameters field
      was later recovered via a defect report, but by then many people
      thought that the field was mandatory.  For this reason, a small
      number of implementations may still require the field to be
      present.
"""

Document Quality

  Are there existing implementations of the protocol? Have a
  significant number of vendors indicated their plan to
  implement the specification? Are there any reviewers that
  merit special mention as having done a thorough review,
  e.g., one that resulted in important changes or a
  conclusion that the document had no substantive issues? If
  there was a MIB Doctor, Media Type or other expert review,
  what was its course (briefly)? In the case of a Media Type
  review, on what date was the request posted?

Given the the number of review we received,  I suspect multiple vendors
are willing to implement it, but so far I am only aware of partial implementations.

Jim has a partial implementation, but he is not aware of any other
implementation.

Ilari also mentioned a partial implementation in the context of TLS.
The information provided on the mailing list are copied here.

"""
I do not have/know full implementation, however I do have a partial implementation in context of TLS:

- Ed25519/Ed448 PKIX public keys in certificates.
- (Ed25519/Ed448 TLS exchange signatures -- covered by TLS docs)
- Ed25519/Ed448 PKIX certificate signatures.

And GnuTLS 3.6.1 supports at least:

- Ed25519 PKIX private keys (at least v1)
- Ed25519 PKIX public keys in certificates
- (Ed25519 TLS exchange signatures -- covered by TLS docs)
- Ed25519 PKIX certificate signatures.


My implementation interoperates with GnuTLS 3.6.1 on TLS handshake with both Ed25519 server signature and  certificate signature.

- Server: My implementation, all settings at defaults.
- Client: GnuTLS 3.6, all settings at defaults except trustpile
  replaced with custom one.
- Certificate 0: EE, Ed25519 key, Ed25519 signature.
- Certificate 1: CA, Ed25519 key, RSA-PSS-SHA256 signature.
- Certificate 2: CA, RSAEncryption key, RSA-PKCS1-SHA256 signature.
- Certificate 3: CA, RSAEncryption key, self-signed. [Not sent].
- Negotiated TLS versionn: TLS 1.2 + RENEGO + EMS.

(The key exchange used is ECDHE_ECDSA for technical reasons, however, there are no actual ECDSA used anywhere).


Client status at end of handshake:

- Description: (TLS1.2)-(ECDHE-X25519)-(EdDSA-Ed25519)-(CHACHA20-POLY1305)
- Session ID: (empty)
- Ephemeral EC Diffie-Hellman parameters
- Using curve: X25519
- Curve size: 256 bits
- Version: TLS1.2
- Key Exchange: ECDHE-ECDSA
- Server Signature: EdDSA-Ed25519
- Cipher: CHACHA20-POLY1305
- MAC: AEAD
- Options: extended master secret, safe renegotiation,
- Handshake was completed


Server status at end of handshake:


Handshake complete, crypto parameters:
- TLS version:              1.2
- Encryption:              Chacha20-Poly1305
- PRF:                      SHA-256
- Key Exchange:            X25519
- Server Signature:        Ed25519
- Triple Handshake attack:  Fixed
- OCSP stapling:            No
- Certificate Transparency: No
"""



Personnel

  Who is the Document Shepherd? Who is the Responsible Area
  Director?

  Daniel Migault is the document shepherd.
  Eric Rescola is the AD.
 
(3) Briefly describe the review of this document that was performed by
the Document Shepherd.  If this version of the document is not ready
for publication, please explain why the document is being forwarded to
the IESG.

  I review the document, and think it is ready.
 
(4) Does the document Shepherd have any concerns about the depth or
breadth of the reviews that have been performed?

    I believe the document has been deeply reviewed, discussed, and we have multiple implementations.

(5) Do portions of the document need review from a particular or from
broader perspective, e.g., security, operational complexity, AAA, DNS,
DHCP, XML, or internationalization? If so, describe the review that
took place.

The draft concerns PKI and the people involved in the topic have either authored or reviewed the draft.

(6) Describe any specific concerns or issues that the Document Shepherd
has with this document that the Responsible Area Director and/or the
IESG should be aware of? For example, perhaps he or she is uncomfortable
with certain parts of the document, or has concerns whether there really
is a need for it. In any event, if the WG has discussed those issues and
has indicated that it still wishes to advance the document, detail those
concerns here.

Chairs added Jim Schaad to co-author the draft as an insurance for the draft to meet requirements and expectation from the X509 community.

(7) Has each author confirmed that any and all appropriate IPR
disclosures required for full conformance with the provisions of BCP 78
and BCP 79 have already been filed. If not, explain why.


Jim Schaad and Simon Josefsson mention they are not aware of any IPR raised from the draft itself. They have no statement to make on the IPR for the algorithm itself.

(8) Has an IPR disclosure been filed that references this document?
If so, summarize any WG discussion and conclusion regarding the IPR
disclosures.

(9) How solid is the WG consensus behind this document? Does it
represent the strong concurrence of a few individuals, with others
being silent, or does the WG as a whole understand and agree with it? 

The draft has been discussed by co-authors, co chairs and more than 5 participants. Comments are based on multiple implementation.

(10) Has anyone threatened an appeal or otherwise indicated extreme
discontent? If so, please summarise the areas of conflict in separate
email messages to the Responsible Area Director. (It should be in a
separate email because this questionnaire is publicly available.)

No.

(11) Identify any ID nits the Document Shepherd has found in this
document. (See https://www.ietf.org/tools/idnits/ and the Internet-Drafts
Checklist). Boilerplate checks are not enough; this check needs to be
thorough.

Running the nits provides:

Checking references for intended status: Proposed Standard
  ----------------------------------------------------------------------------

  ** Downref: Normative reference to an Informational RFC: RFC 7748

  ** Downref: Normative reference to an Informational RFC: RFC 8032

RFC8032 describes the elliptic curve signature scheme
Edwards-curve Digital Signature Algorithm (EdDSA).  The algorithm is
instantiated with recommended parameters for the edwards25519 and edwards448 curves.
RFC 7748 specifies two elliptic curves over prime fields that offer
a high level of practical security in cryptographic applications: Curve25519 and Curve448.

RFC 8032 is from the IRTF which does not define standards. The current document describes the use of this algorithm.  The draft is in the RFC Editor Queue and has been approved by the IESG.

The Downref is justified by RFC3967 as it falls into the following case:
  o  A standards track document may need to refer to a protocol or
      algorithm developed by an external body but modified, adapted, or
      profiled by an IETF informational RFC.


(12) Describe how the document meets any required formal review
criteria, such as the MIB Doctor, media type, and URI type reviews.

(13) Have all references within this document been identified as
either normative or informative?

Yes.

(14) Are there normative references to documents that are not ready for
advancement or are otherwise in an unclear state? If such normative
references exist, what is the plan for their completion?

No

(15) Are there downward normative references references (see RFC 3967)?
If so, list these downward references to support the Area Director in
the Last Call procedure.

No

(16) Will publication of this document change the status of any
existing RFCs? Are those RFCs listed on the title page header, listed
in the abstract, and discussed in the introduction? If the RFCs are not
listed in the Abstract and Introduction, explain why, and point to the
part of the document where the relationship of this document to the
other RFCs is discussed. If this information is not in the document,
explain why the WG considers it unnecessary.

No.

(17) Describe the Document Shepherd's review of the IANA considerations
section, especially with regard to its consistency with the body of the
document. Confirm that all protocol extensions that the document makes
are associated with the appropriate reservations in IANA registries.
Confirm that any referenced IANA registries have been clearly
identified. Confirm that newly created IANA registries include a
detailed specification of the initial contents for the registry, that
allocations procedures for future registrations are defined, and a
reasonable name for the new registry has been suggested (see RFC 5226).

I reviewed the draft and the document seems ready. 

(18) List any new IANA registries that require Expert Review for future
allocations. Provide any public guidance that the IESG would find
useful in selecting the IANA Experts for these new registries.

There are no IANA considerations.

(19) Describe reviews and automated checks performed by the Document
Shepherd to validate sections of the document written in a formal
language, such as XML code, BNF rules, MIB definitions, etc.

ASN1 has not been reviewed by anyone except by Jim and maybe Russ Hussley.
2018-01-02
07 Daniel Migault
As required by RFC 4858, this is the current template for the Document
Shepherd Write-Up.

Changes are expected over time. This version is dated …
As required by RFC 4858, this is the current template for the Document
Shepherd Write-Up.

Changes are expected over time. This version is dated 24 February 2012.

(1) What type of RFC is being requested (BCP, Proposed Standard,
Internet Standard, Informational, Experimental, or Historic)?  Why
is this the proper type of RFC?  Is this type of RFC indicated in the
title page header?

The request type for draft-ietf-curdle-pkix is Standard Track. This is the appropriated type as it defined IODs for using Ed25519,  Ed448, X25519 and X448 for X509 with PKI. It is indicated in the header page.

(2) The IESG approval announcement includes a Document Announcement
Write-Up. Please provide such a Document Announcement Write-Up. Recent
examples can be found in the "Action" announcements for approved
documents. The approval announcement contains the following sections:

Technical Summary

  Relevant content can frequently be found in the abstract
  and/or introduction of the document. If not, this may be
  an indication that there are deficiencies in the abstract
  or introduction.

  This document specifies algorithm identifiers and ASN.1 encoding
  formats for Elliptic Curve constructs using the Curve25519 and
  Curve448 curves.  The signature algorithms covered are Ed25519,
  Ed448.  The key agreement algorithm covered
  are X25519 and X448.  The Encoding for Public Key, Private Key and
  EdDSA digital signature structures is provided.
 
Working Group Summary

  Was there anything in WG process that is worth noting? For
  example, was there controversy about particular points or
  were there decisions where the consensus was particularly
  rough?
Main discussions that happened regarding the draft were:
      - the use of a context or not. The current agreement was not to use any specific context as this would lead to encourage people to use the same key for different usages. The same discussion appears in IPsec, with the DNSKEY.
    - Names and designation for IOD format. We met in the IETF in Berlin (Benjamin, Jim, Russ as well as Rich and Daniel) and the next version reflected the discussion, and were adopted by the WG. 
    - Use of prehash or pure variant was raised in version 03 that mentioned "CAs MUST NOT use the pre-hash versions".  The main argument for enabling the prehash variant was to be able to sign large amount of data such as CRLs. However this can be addressed by combining CRL distribution points, combined with segmenting the certificates. For the care of simplicity, the consensus was that a single variant should be considered only and the choice was to follow the FCRG recommendations and chose the pure variant. As a result the draft has removed any mention of the purehash variant and stated clearly that only the pure variant is addressed by the draft.
    - OID identifier parameter MUST be absent and a parameter set to NULL MUST NOT be accepted.  Java implementation cannot be currently compatible with this. However, the working group consensus was to have a straight enforcement of the update specification of AlgorithmIdentifier. This is clearly mentioned in the draft so implementation can understand the motivation as well as becoming compliant with the updated spec.
"""
      When the 1997
      syntax for AlgorithmIdentifier was initially defined, it omitted
      the OPTIONAL key word.  The optionality of the parameters field
      was later recovered via a defect report, but by then many people
      thought that the field was mandatory.  For this reason, a small
      number of implementations may still require the field to be
      present.
"""

Document Quality

  Are there existing implementations of the protocol? Have a
  significant number of vendors indicated their plan to
  implement the specification? Are there any reviewers that
  merit special mention as having done a thorough review,
  e.g., one that resulted in important changes or a
  conclusion that the document had no substantive issues? If
  there was a MIB Doctor, Media Type or other expert review,
  what was its course (briefly)? In the case of a Media Type
  review, on what date was the request posted?

Jim has a partial implementation, but he is not aware of any other
implementation. Given the the number of review we received,
I suspect multiple vendors are willing to implement it, but so far
I am not aware of any.

Personnel

  Who is the Document Shepherd? Who is the Responsible Area
  Director?

  Daniel Migault is the document shepherd.
  Eric Rescola is the AD.
 
(3) Briefly describe the review of this document that was performed by
the Document Shepherd.  If this version of the document is not ready
for publication, please explain why the document is being forwarded to
the IESG.

  I review the document, and think it is ready.
 
(4) Does the document Shepherd have any concerns about the depth or
breadth of the reviews that have been performed?

    I believe the document has been deeply reviewed, discussed, and we have multiple implementations.

(5) Do portions of the document need review from a particular or from
broader perspective, e.g., security, operational complexity, AAA, DNS,
DHCP, XML, or internationalization? If so, describe the review that
took place.

The draft concerns PKI and the people involved in the topic have either authored or reviewed the draft.

(6) Describe any specific concerns or issues that the Document Shepherd
has with this document that the Responsible Area Director and/or the
IESG should be aware of? For example, perhaps he or she is uncomfortable
with certain parts of the document, or has concerns whether there really
is a need for it. In any event, if the WG has discussed those issues and
has indicated that it still wishes to advance the document, detail those
concerns here.

Chairs added Jim Schaad to co-author the draft as an insurance for the draft to meet requirements and expectation from the X509 community.

(7) Has each author confirmed that any and all appropriate IPR
disclosures required for full conformance with the provisions of BCP 78
and BCP 79 have already been filed. If not, explain why.


Jim Schaad and Simon Josefsson mention they are not aware of any IPR raised from the draft itself. They have no statement to make on the IPR for the algorithm itself.

(8) Has an IPR disclosure been filed that references this document?
If so, summarize any WG discussion and conclusion regarding the IPR
disclosures.

(9) How solid is the WG consensus behind this document? Does it
represent the strong concurrence of a few individuals, with others
being silent, or does the WG as a whole understand and agree with it? 

The draft has been discussed by co-authors, co chairs and more than 5 participants. Comments are based on multiple implementation.

(10) Has anyone threatened an appeal or otherwise indicated extreme
discontent? If so, please summarise the areas of conflict in separate
email messages to the Responsible Area Director. (It should be in a
separate email because this questionnaire is publicly available.)

No.

(11) Identify any ID nits the Document Shepherd has found in this
document. (See https://www.ietf.org/tools/idnits/ and the Internet-Drafts
Checklist). Boilerplate checks are not enough; this check needs to be
thorough.

Running the nits provides:

Checking references for intended status: Proposed Standard
  ----------------------------------------------------------------------------

  ** Downref: Normative reference to an Informational RFC: RFC 7748

  ** Downref: Normative reference to an Informational RFC: RFC 8032

RFC8032 describes the elliptic curve signature scheme
Edwards-curve Digital Signature Algorithm (EdDSA).  The algorithm is
instantiated with recommended parameters for the edwards25519 and edwards448 curves.
RFC 7748 specifies two elliptic curves over prime fields that offer
a high level of practical security in cryptographic applications: Curve25519 and Curve448.

RFC 8032 is from the IRTF which does not define standards. The current document describes the use of this algorithm.  The draft is in the RFC Editor Queue and has been approved by the IESG.

The Downref is justified by RFC3967 as it falls into the following case:
  o  A standards track document may need to refer to a protocol or
      algorithm developed by an external body but modified, adapted, or
      profiled by an IETF informational RFC.


(12) Describe how the document meets any required formal review
criteria, such as the MIB Doctor, media type, and URI type reviews.

(13) Have all references within this document been identified as
either normative or informative?

Yes.

(14) Are there normative references to documents that are not ready for
advancement or are otherwise in an unclear state? If such normative
references exist, what is the plan for their completion?

No

(15) Are there downward normative references references (see RFC 3967)?
If so, list these downward references to support the Area Director in
the Last Call procedure.

No

(16) Will publication of this document change the status of any
existing RFCs? Are those RFCs listed on the title page header, listed
in the abstract, and discussed in the introduction? If the RFCs are not
listed in the Abstract and Introduction, explain why, and point to the
part of the document where the relationship of this document to the
other RFCs is discussed. If this information is not in the document,
explain why the WG considers it unnecessary.

No.

(17) Describe the Document Shepherd's review of the IANA considerations
section, especially with regard to its consistency with the body of the
document. Confirm that all protocol extensions that the document makes
are associated with the appropriate reservations in IANA registries.
Confirm that any referenced IANA registries have been clearly
identified. Confirm that newly created IANA registries include a
detailed specification of the initial contents for the registry, that
allocations procedures for future registrations are defined, and a
reasonable name for the new registry has been suggested (see RFC 5226).

I reviewed the draft and the document seems ready. 

(18) List any new IANA registries that require Expert Review for future
allocations. Provide any public guidance that the IESG would find
useful in selecting the IANA Experts for these new registries.

There are no IANA considerations.

(19) Describe reviews and automated checks performed by the Document
Shepherd to validate sections of the document written in a formal
language, such as XML code, BNF rules, MIB definitions, etc.

ASN1 has not been reviewed by anyone except by Jim and maybe Russ Hussley.
2017-11-14
07 (System) IANA Review state changed to Version Changed - Review Needed from IANA - Not OK
2017-11-14
07 Jim Schaad New version available: draft-ietf-curdle-pkix-07.txt
2017-11-14
07 (System) New version approved
2017-11-14
07 (System) Request for posting confirmation emailed to previous authors: Jim Schaad , Simon Josefsson
2017-11-14
07 Jim Schaad Uploaded new revision
2017-11-12
06 Eric Rescorla Oops, I pushed the wrong button previously. This is waiting for me.
2017-11-12
06 Eric Rescorla IESG state changed to Waiting for Writeup from Last Call Requested
2017-11-12
06 Eric Rescorla Last call was requested
2017-11-12
06 Eric Rescorla Please issue this last call next week.
2017-11-12
06 Eric Rescorla IESG state changed to Last Call Requested from AD Evaluation
2017-11-12
06 Eric Rescorla IESG state changed to AD Evaluation from Waiting for Writeup
2017-10-23
06 Gunter Van de Velde Request for Last Call review by OPSDIR Completed: Ready. Reviewer: Scott Bradner.
2017-10-19
06 Tero Kivinen Request for Last Call review by SECDIR Completed: Has Nits. Reviewer: Shawn Emery.
2017-10-09
06 Francis Dupont Request for Last Call review by GENART Completed: Ready. Reviewer: Francis Dupont.
2017-10-09
06 (System) IESG state changed to Waiting for Writeup from In Last Call
2017-10-04
06 (System) IANA Review state changed to IANA - Not OK from IANA - Review Needed
2017-10-04
06 Sabrina Tanamal
(Via drafts-lastcall@iana.org): IESG/Authors/WG Chairs:

The IANA Services Operator has completed its review of draft-ietf-curdle-pkix-06. If any part of this review is inaccurate, please let …
(Via drafts-lastcall@iana.org): IESG/Authors/WG Chairs:

The IANA Services Operator has completed its review of draft-ietf-curdle-pkix-06. If any part of this review is inaccurate, please let us know.

The IANA Services Operator has a question about one of the actions requested in the IANA Considerations section of this document.

The IANA Services Operator understands that, upon approval of this document, there is a single action which we must complete.

In the SMI Security for PKIX Module Identifier registry located on the Structure of Management Information (SMI) Numbers (MIB Module Registrations) registry page located at:

https://www.iana.org/assignments/smi-numbers/

a single, new registration will be made as follows:

Decimal: [ TBD-at-registration ]
Description: [ see question below ]
Reference: [ RFC-to-be ]

What is the Description to be used for this module OID? In the SMI Security for PKIX Module Identifier registry, the module OID Descriptions begin with "id-mod" or "id-pkix1"

Because this registry requires Expert Review [RFC5226] for registration, we've contacted the IESG-designated expert in a separate ticket to request approval. Expert review should be completed before your document can be approved for publication as an RFC.

The IANA Services Operator understands that this is the only action required to be completed upon approval of this document.

Note:  The actions requested in this document will not be completed until the document has been approved for publication as an RFC. This message is only to confirm what actions will be performed.


Thank you,

Sabrina Tanamal
IANA Services Specialist
2017-09-28
06 Jean Mahoney Request for Last Call review by GENART is assigned to Francis Dupont
2017-09-28
06 Jean Mahoney Request for Last Call review by GENART is assigned to Francis Dupont
2017-09-28
06 Tero Kivinen Request for Last Call review by SECDIR is assigned to Shawn Emery
2017-09-28
06 Tero Kivinen Request for Last Call review by SECDIR is assigned to Shawn Emery
2017-09-26
06 Gunter Van de Velde Request for Last Call review by OPSDIR is assigned to Scott Bradner
2017-09-26
06 Gunter Van de Velde Request for Last Call review by OPSDIR is assigned to Scott Bradner
2017-09-25
06 Cindy Morgan IANA Review state changed to IANA - Review Needed
2017-09-25
06 Cindy Morgan
The following Last Call announcement was sent out (ends 2017-10-09):

From: The IESG
To: IETF-Announce
CC: ekr@rtfm.com, Daniel Migault , curdle-chairs@ietf.org, curdle@ietf.org, …
The following Last Call announcement was sent out (ends 2017-10-09):

From: The IESG
To: IETF-Announce
CC: ekr@rtfm.com, Daniel Migault , curdle-chairs@ietf.org, curdle@ietf.org, daniel.migault@ericsson.com, draft-ietf-curdle-pkix@ietf.org
Reply-To: ietf@ietf.org
Sender:
Subject: Last Call:  (Algorithm Identifiers for Ed25519, Ed448, X25519 and X448 for use in the Internet X.509 Public Key Infrastructure) to Internet Standard


The IESG has received a request from the CURves, Deprecating and a Little
more Encryption WG (curdle) to consider the following document: - 'Algorithm
Identifiers for Ed25519, Ed448, X25519 and X448 for use in
  the Internet X.509 Public Key Infrastructure'
  as Internet Standard

The IESG plans to make a decision in the next few weeks, and solicits final
comments on this action. Please send substantive comments to the
ietf@ietf.org mailing lists by 2017-10-09. Exceptionally, comments may be
sent to iesg@ietf.org instead. In either case, please retain the beginning of
the Subject line to allow automated sorting.

Abstract


  This document specifies algorithm identifiers and ASN.1 encoding
  formats for Elliptic Curve constructs using the curve25519 and
  curve448 curves.  The signature algorithms covered are Ed25519 and
  Ed448.  The key agreement algorithm covered are X25519 and X448.  The
  encoding for Public Key, Private Key and EdDSA digital signature
  structures is provided.




The file can be obtained via
https://datatracker.ietf.org/doc/draft-ietf-curdle-pkix/

IESG discussion can be tracked via
https://datatracker.ietf.org/doc/draft-ietf-curdle-pkix/ballot/


No IPR declarations have been submitted directly on this I-D.


The document contains these normative downward references.
See RFC 3967 for additional information:
    rfc5480: Elliptic Curve Cryptography Subject Public Key Information (Proposed Standard - IETF stream)



2017-09-25
06 Cindy Morgan IESG state changed to In Last Call from Last Call Requested
2017-09-25
06 Cindy Morgan Last call announcement was generated
2017-09-23
06 Eric Rescorla Last call was requested
2017-09-23
06 Eric Rescorla Last call announcement was generated
2017-09-23
06 Eric Rescorla Ballot approval text was generated
2017-09-23
06 Eric Rescorla Ballot writeup was generated
2017-09-23
06 Eric Rescorla IESG state changed to Last Call Requested from AD Evaluation::AD Followup
2017-09-12
06 (System) Sub state has been changed to AD Followup from Revised ID Needed
2017-09-12
06 Jim Schaad New version available: draft-ietf-curdle-pkix-06.txt
2017-09-12
06 (System) New version approved
2017-09-12
06 (System) Request for posting confirmation emailed to previous authors: Jim Schaad , Simon Josefsson
2017-09-12
06 Jim Schaad Uploaded new revision
2017-09-03
05 Eric Rescorla IESG state changed to AD Evaluation::Revised I-D Needed from AD Evaluation
2017-08-29
05 Eric Rescorla IESG state changed to AD Evaluation from AD is watching::External Party
2017-07-03
05 Jim Schaad New version available: draft-ietf-curdle-pkix-05.txt
2017-07-03
05 (System) New version approved
2017-07-03
05 (System) Request for posting confirmation emailed to previous authors: Jim Schaad , Simon Josefsson
2017-07-03
05 Jim Schaad Uploaded new revision
2017-05-05
04 Eric Rescorla IESG state changed to AD is watching::External Party from AD Evaluation::External Party
2017-05-05
04 Eric Rescorla IESG state changed to AD Evaluation::External Party from AD Evaluation
2017-04-21
04 Eric Rescorla IESG state changed to AD Evaluation from Publication Requested
2017-04-07
04 Daniel Migault
As required by RFC 4858, this is the current template for the Document
Shepherd Write-Up.

Changes are expected over time. This version is dated …
As required by RFC 4858, this is the current template for the Document
Shepherd Write-Up.

Changes are expected over time. This version is dated 24 February 2012.

(1) What type of RFC is being requested (BCP, Proposed Standard,
Internet Standard, Informational, Experimental, or Historic)?  Why
is this the proper type of RFC?  Is this type of RFC indicated in the
title page header?

The request type for draft-ietf-curdle-pkix is Standard Track. This is the appropriated type as it defined IODs for using Ed25519,  Ed448, X25519 and X448 for X509 with PKI. It is indicated in the header page.

(2) The IESG approval announcement includes a Document Announcement
Write-Up. Please provide such a Document Announcement Write-Up. Recent
examples can be found in the "Action" announcements for approved
documents. The approval announcement contains the following sections:

Technical Summary

  Relevant content can frequently be found in the abstract
  and/or introduction of the document. If not, this may be
  an indication that there are deficiencies in the abstract
  or introduction.

  This document specifies algorithm identifiers and ASN.1 encoding
  formats for Elliptic Curve constructs using the Curve25519 and
  Curve448 curves.  The signature algorithms covered are Ed25519,
  Ed448.  The key agreement algorithm covered
  are X25519 and X448.  The Encoding for Public Key, Private Key and
  EdDSA digital signature structures is provided.
 
Working Group Summary

  Was there anything in WG process that is worth noting? For
  example, was there controversy about particular points or
  were there decisions where the consensus was particularly
  rough?
Main discussions that happened regarding the draft were:
      - the use of a context or not. The current agreement was not to use any specific context as this would lead to encourage people to use the same key for different usages. The same discussion appears in IPsec, with the DNSKEY.
    - Names and designation for IOD format. We met in the IETF in Berlin (Benjamin, Jim, Russ as well as Rich and Daniel) and the next version reflected the discussion, and were adopted by the WG. 
    - Use of prehash or pure variant was raised in version 03 that mentioned "CAs MUST NOT use the pre-hash versions".  The main argument for enabling the prehash variant was to be able to sign large amount of data such as CRLs. However this can be addressed by combining CRL distribution points, combined with segmenting the certificates. For the care of simplicity, the consensus was that a single variant should be considered only and the choice was to follow the FCRG recommendations and chose the pure variant. As a result the draft has removed any mention of the purehash variant and stated clearly that only the pure variant is addressed by the draft.
    - OID identifier parameter MUST be absent and a parameter set to NULL MUST NOT be accepted.  Java implementation cannot be currently compatible with this. However, the working group consensus was to have a straight enforcement of the update specification of AlgorithmIdentifier. This is clearly mentioned in the draft so implementation can understand the motivation as well as becoming compliant with the updated spec.
"""
      When the 1997
      syntax for AlgorithmIdentifier was initially defined, it omitted
      the OPTIONAL key word.  The optionality of the parameters field
      was later recovered via a defect report, but by then many people
      thought that the field was mandatory.  For this reason, a small
      number of implementations may still require the field to be
      present.
"""

Document Quality

  Are there existing implementations of the protocol? Have a
  significant number of vendors indicated their plan to
  implement the specification? Are there any reviewers that
  merit special mention as having done a thorough review,
  e.g., one that resulted in important changes or a
  conclusion that the document had no substantive issues? If
  there was a MIB Doctor, Media Type or other expert review,
  what was its course (briefly)? In the case of a Media Type
  review, on what date was the request posted?

Personnel

  Who is the Document Shepherd? Who is the Responsible Area
  Director?

  Daniel Migault is the document shepherd.
  Eric Rescola is the AD.
 
(3) Briefly describe the review of this document that was performed by
the Document Shepherd.  If this version of the document is not ready
for publication, please explain why the document is being forwarded to
the IESG.

  I review the document, and think it is ready.
 
(4) Does the document Shepherd have any concerns about the depth or
breadth of the reviews that have been performed?

    I believe the document has been deeply reviewed, discussed, and we have multiple implementations.

(5) Do portions of the document need review from a particular or from
broader perspective, e.g., security, operational complexity, AAA, DNS,
DHCP, XML, or internationalization? If so, describe the review that
took place.

The draft concerns PKI and the people involved in the topic have either authored or reviewed the draft.

(6) Describe any specific concerns or issues that the Document Shepherd
has with this document that the Responsible Area Director and/or the
IESG should be aware of? For example, perhaps he or she is uncomfortable
with certain parts of the document, or has concerns whether there really
is a need for it. In any event, if the WG has discussed those issues and
has indicated that it still wishes to advance the document, detail those
concerns here.

Chairs added Jim Schaad to co-author the draft as an insurance for the draft to meet requirements and expectation from the X509 community.

(7) Has each author confirmed that any and all appropriate IPR
disclosures required for full conformance with the provisions of BCP 78
and BCP 79 have already been filed. If not, explain why.


Jim Schaad and Simon Josefsson mention they are not aware of any IPR raised from the draft itself. They have no statement to make on the IPR for the algorithm itself.

(8) Has an IPR disclosure been filed that references this document?
If so, summarize any WG discussion and conclusion regarding the IPR
disclosures.

(9) How solid is the WG consensus behind this document? Does it
represent the strong concurrence of a few individuals, with others
being silent, or does the WG as a whole understand and agree with it? 

The draft has been discussed by co-authors, co chairs and more than 5 participants. Comments are based on multiple implementation.

(10) Has anyone threatened an appeal or otherwise indicated extreme
discontent? If so, please summarise the areas of conflict in separate
email messages to the Responsible Area Director. (It should be in a
separate email because this questionnaire is publicly available.)

No.

(11) Identify any ID nits the Document Shepherd has found in this
document. (See https://www.ietf.org/tools/idnits/ and the Internet-Drafts
Checklist). Boilerplate checks are not enough; this check needs to be
thorough.

Running the nits provides:

Checking references for intended status: Proposed Standard
  ----------------------------------------------------------------------------

  ** Downref: Normative reference to an Informational RFC: RFC 7748

  ** Downref: Normative reference to an Informational RFC: RFC 8032

RFC8032 describes the elliptic curve signature scheme
Edwards-curve Digital Signature Algorithm (EdDSA).  The algorithm is
instantiated with recommended parameters for the edwards25519 and edwards448 curves.
RFC 7748 specifies two elliptic curves over prime fields that offer
a high level of practical security in cryptographic applications: Curve25519 and Curve448.

RFC 8032 is from the IRTF which does not define standards. The current document describes the use of this algorithm.  The draft is in the RFC Editor Queue and has been approved by the IESG.

The Downref is justified by RFC3967 as it falls into the following case:
  o  A standards track document may need to refer to a protocol or
      algorithm developed by an external body but modified, adapted, or
      profiled by an IETF informational RFC.


(12) Describe how the document meets any required formal review
criteria, such as the MIB Doctor, media type, and URI type reviews.

(13) Have all references within this document been identified as
either normative or informative?

Yes.

(14) Are there normative references to documents that are not ready for
advancement or are otherwise in an unclear state? If such normative
references exist, what is the plan for their completion?

No

(15) Are there downward normative references references (see RFC 3967)?
If so, list these downward references to support the Area Director in
the Last Call procedure.

No

(16) Will publication of this document change the status of any
existing RFCs? Are those RFCs listed on the title page header, listed
in the abstract, and discussed in the introduction? If the RFCs are not
listed in the Abstract and Introduction, explain why, and point to the
part of the document where the relationship of this document to the
other RFCs is discussed. If this information is not in the document,
explain why the WG considers it unnecessary.

No.

(17) Describe the Document Shepherd's review of the IANA considerations
section, especially with regard to its consistency with the body of the
document. Confirm that all protocol extensions that the document makes
are associated with the appropriate reservations in IANA registries.
Confirm that any referenced IANA registries have been clearly
identified. Confirm that newly created IANA registries include a
detailed specification of the initial contents for the registry, that
allocations procedures for future registrations are defined, and a
reasonable name for the new registry has been suggested (see RFC 5226).

I reviewed the draft and the document seems ready. 

(18) List any new IANA registries that require Expert Review for future
allocations. Provide any public guidance that the IESG would find
useful in selecting the IANA Experts for these new registries.

There are no IANA considerations.

(19) Describe reviews and automated checks performed by the Document
Shepherd to validate sections of the document written in a formal
language, such as XML code, BNF rules, MIB definitions, etc.

ASN1 has not been reviewed by anyone except by Jim and maybe Russ Hussley.
2017-04-07
04 Daniel Migault Responsible AD changed to Eric Rescorla
2017-04-07
04 Daniel Migault IETF WG state changed to Submitted to IESG for Publication from In WG Last Call
2017-04-07
04 Daniel Migault IESG state changed to Publication Requested
2017-04-07
04 Daniel Migault IESG process started in state Publication Requested
2017-04-07
04 Daniel Migault Changed document writeup
2017-03-30
04 Daniel Migault Changed document writeup
2017-03-28
04 Jim Schaad New version available: draft-ietf-curdle-pkix-04.txt
2017-03-28
04 (System) New version approved
2017-03-28
04 (System) Request for posting confirmation emailed to previous authors: Jim Schaad , Simon Josefsson
2017-03-28
04 Jim Schaad Uploaded new revision
2016-11-23
03 Jim Schaad New version available: draft-ietf-curdle-pkix-03.txt
2016-11-23
03 (System) New version approved
2016-11-23
03 (System) Request for posting confirmation emailed to previous authors: "Simon Josefsson" , "Jim Schaad"
2016-11-23
03 Jim Schaad Uploaded new revision
2016-11-17
02 Rich Salz Has been in WGLC, just updating the tracker.
2016-11-17
02 Rich Salz IETF WG state changed to In WG Last Call from WG Document
2016-11-17
02 Rich Salz Changed consensus to Yes from Unknown
2016-11-17
02 Rich Salz Intended Status changed to Internet Standard from None
2016-11-17
02 Daniel Migault Notification list changed to "Daniel Migault" <daniel.migault@ericsson.com>
2016-11-17
02 Daniel Migault Document shepherd changed to Daniel Migault
2016-11-17
02 Daniel Migault Changed document writeup
2016-10-31
02 Jim Schaad New version available: draft-ietf-curdle-pkix-02.txt
2016-10-31
02 (System) New version approved
2016-10-31
01 (System) Request for posting confirmation emailed to previous authors: "Simon Josefsson" , "Jim Schaad"
2016-10-31
01 Jim Schaad Uploaded new revision
2016-08-19
01 Rich Salz This document now replaces draft-ietf-curdle-pkix-newcurves, draft-ietf-curdle-pkix-eddsa instead of None
2016-08-19
01 Rich Salz
Delay Tolerant Networking Research                            M. Demmer
Group            …
Delay Tolerant Networking Research                            M. Demmer
Group                                                        UC Berkeley
Internet-Draft                                                    J. Ott
Intended status: Experimental                    Helsinki University of
Expires: July 26, 2013                                        Technology
                                                            S. Perreault
                                                                Viagenie
                                                        January 22, 2013

        Delay Tolerant Networking TCP Convergence Layer Protocol
                  draft-irtf-dtnrg-tcp-clayer-05.txt

Abstract

  This document describes the protocol for the TCP-based Convergence
  Layer for Delay Tolerant Networking (DTN).

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 http://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 July 26, 2013.

Copyright Notice

  Copyright (c) 2013 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
  (http://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 Simplified BSD License text as described in Section 4.e of
  the Trust Legal Provisions and are provided without warranty as

Demmer, et al.            Expires July 26, 2013                [Page 1]
Internet-Draft          DTN TCP Convergence Layer          January 2013

  described in the Simplified BSD License.

Table of Contents

  1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
  2.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . .  4
    2.1.  Definitions Relating to the Bundle Protocol  . . . . . . .  4
    2.2.  Definitions specific to the TCPCL Protocol . . . . . . . .  5
  3.  General Protocol Description . . . . . . . . . . . . . . . . .  6
    3.1.  Bidirectional Use of TCP Connection  . . . . . . . . . . .  7
    3.2.  Example message exchange . . . . . . . . . . . . . . . . .  7
  4.  Connection Establishment . . . . . . . . . . . . . . . . . . .  8
    4.1.  Contact Header . . . . . . . . . . . . . . . . . . . . . .  9
    4.2.  Validation and parameter negotiation . . . . . . . . . . . 11
  5.  Established Connection Operation . . . . . . . . . . . . . . . 12
    5.1.  Message Type Codes . . . . . . . . . . . . . . . . . . . . 12
    5.2.  Bundle Data Transmission . . . . . . . . . . . . . . . . . 13
    5.3.  Bundle Acknowledgments . . . . . . . . . . . . . . . . . . 14
    5.4.  Bundle Refusal . . . . . . . . . . . . . . . . . . . . . . 15
    5.5.  Bundle Length  . . . . . . . . . . . . . . . . . . . . . . 16
    5.6.  Keepalive Messages . . . . . . . . . . . . . . . . . . . . 17
  6.  Connection Termination . . . . . . . . . . . . . . . . . . . . 18
    6.1.  Shutdown Message . . . . . . . . . . . . . . . . . . . . . 18
    6.2.  Idle Connection Shutdown . . . . . . . . . . . . . . . . . 19
  7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 20
  8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 20
    8.1.  Port Number  . . . . . . . . . . . . . . . . . . . . . . . 20
    8.2.  Protocol Versions  . . . . . . . . . . . . . . . . . . . . 21
    8.3.  Message Types  . . . . . . . . . . . . . . . . . . . . . . 21
    8.4.  REFUSE Reason Codes  . . . . . . . . . . . . . . . . . . . 21
    8.5.  SHUTDOWN Reason Codes  . . . . . . . . . . . . . . . . . . 21
  9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 21
    9.1.  Normative References . . . . . . . . . . . . . . . . . . . 21
    9.2.  Informative References . . . . . . . . . . . . . . . . . . 22
  Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 22

Demmer, et al.            Expires July 26, 2013                [Page 2]
Internet-Draft          DTN TCP Convergence Layer          January 2013

1.  Introduction

  This document describes the TCP-based convergence layer protocol for
  Delay Tolerant Networking (TCPCL).  Delay Tolerant Networking is an
  end-to-end architecture providing communications in and/or through
  highly stressed environments, including those with intermittent
  connectivity, long and/or variable delays, and high bit error rates.
  More detailed descriptions of the rationale and capabilities of these
  networks can be found in the Delay-Tolerant Network Architecture
  [refs.dtnarch] RFC.

  An important goal of the DTN architecture is to accommodate a wide
  range of networking technologies and environments.  The protocol used
  for DTN communications is the Bundling Protocol (BP)
  [refs.bundleproto], an application-layer protocol that is used to
  construct a store-and-forward overlay network.  As described in the
  bundle protocol specification, it requires the services of a
  "convergence layer adapter" (CLA) to send and receive bundles using
  the service of some "native" link, network, or internet protocol.
  This document describes one such convergence layer adapter that uses
  the well-known Transmission Control Protocol (TCP).  This convergence
  layer is referred to as TCPCL.

  The locations of the TCPCL and the BP in the Internet model protocol
  stack are shown in Figure 1.  In particular, when BP is using TCP as
  its bearer with TCPCL as its convergence layer, both BP and TCPCL
  reside at the application layer of the Internet model.

      +-------------------------+
      |    DTN Application    | -\
      +-------------------------|  |
      |  Bundle Protocol (BP)  |  -> Application Layer
      +-------------------------+  |
      | TCP Conv. Layer (TCPCL) | -/
      +-------------------------+
      |          TCP            | ---> Transport Layer
      +-------------------------+
      |          IP            | ---> Network Layer
      +-------------------------+
      |  Link-Layer Protocol  | ---> Link Layer
      +-------------------------+
      |    Physical Medium      | ---> Physical Layer
      +-------------------------+

        Figure 1: The locations of the bundle protocol and the TCP
        convergence layer protocol in the Internet protocol stack

  This document describes the format of the protocol data units passed

Demmer, et al.            Expires July 26, 2013                [Page 3]
Internet-Draft          DTN TCP Convergence Layer          January 2013

  between entities participating in TCPCL communications.  This
  document does not address:

        The format of protocol data units of the bundling protocol, as
        those are defined elsewhere [refs.bundleproto].

        Mechanisms for locating or identifying other bundle nodes within
        an internet.

  Note that this document describes version 3 of the protocol.
  Versions 0, 1, and 2 were never specified in any Internet Draft, RFC,
  or any other public document.  These prior versions of the protocol
  were, however, implemented in the DTN reference implementation
  [refs.dtnimpl], in prior releases, hence the current version number
  reflects the existence of those prior versions.

2.  Definitions

  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.1.  Definitions Relating to the Bundle Protocol

  The following set of definitions are abbreviated versions of those
  which appear in the Bundle Protocol Specification [refs.bundleproto].
  To the extent in which terms appear in both documents, they are
  intended to have the same meaning.

  Bundle --  A bundle is a protocol data unit of the DTN bundle
        protocol.

  Bundle payload --  A bundle payload (or simply "payload") is the
        application data whose conveyance to the bundle's destination is
        the purpose for the transmission of a given bundle.

  Fragment --  A fragment is a bundle whose payload contains a
        contiguous subset of bytes from another bundle's payload.

  Bundle node --  A bundle node (or simply a "node") is any entity that
        can send and/or receive bundles.  The particular instantiation
        of this entity is deliberately unconstrained, allowing for
        implementations in software libraries, long-running processes,
        or even hardware.  One component of the bundle node is the
        implementation of a convergence layer adapter.

Demmer, et al.            Expires July 26, 2013                [Page 4]
Internet-Draft          DTN TCP Convergence Layer          January 2013

  Convergence layer adapter --  A convergence layer adapter (CLA) sends
        and receives bundles utilizing the services of some 'native'
        link, network, or internet protocol.  This document describes
        the manner in which a CLA sends and receives bundles when using
        the TCP protocol for inter-node communication.

  Self Describing Numeric Value --  A self describing numeric value
        (SDNV) is a variable length encoding for integer values, defined
        in [refs.bundleproto] and further explained in [RFC6256].

2.2.  Definitions specific to the TCPCL Protocol

  This section contains definitions that are interpreted to be specific
  to the operation of the TCPCL protocol, as described below.

  TCP Connection --  A TCP connection refers to a transport connection
        using TCP as the transport protocol.

  TCPCL Connection --  A TCPCL connection (as opposed to a TCP
        connection) is a TCPCL communication relationship between two
        bundle nodes.  The lifetime of a TCPCL connection is one-to-one
        with the lifetime of an underlying TCP connection.  Therefore a
        TCPCL connection is initiated when a bundle node initiates a TCP
        connection to be established for the purposes of bundle
        communication.  A TCPCL connection is terminated when the TCP
        connection ends, due either to one or both nodes actively
        terminating the TCP connection or due to network errors causing
        a failure of the TCP connection.  For the remainder of this
        document, the term "connection" without the prefix "TCPCL" shall
        refer to a TCPCL connection.

  Connection parameters --  The connection parameters are a set of
        values used to affect the operation of the TCPCL for a given
        connection.  The manner in which these parameters are conveyed
        to the bundle node and thereby to the TCPCL is implementation-
        dependent.  However, the mechanism by which two bundle nodes
        exchange and negotiate the values to be used for a given session
        is described in Section Section 4.2.

  Transmission --  Transmission refers to the procedures and mechanisms
        (described below) for conveyance of a bundle from one node to
        another.

Demmer, et al.            Expires July 26, 2013                [Page 5]
Internet-Draft          DTN TCP Convergence Layer          January 2013

3.  General Protocol Description

  This protocol provides bundle conveyance over a TCP connection and
  specifies the encapsulation of bundles as well as procedures for TCP
  connection setup and teardown.  The general operation of the protocol
  is as follows:

  First one node establishes a TCPCL connection to the other by
  initiating a TCP connection.  After setup of the TCP connection is
  complete, an initial contact header is exchanged in both directions
  to set parameters of the TCPCL connection and exchange a singleton
  endpoint identifier for each node (not the singleton EID of any
  application running on the node), to denote the bundle-layer identity
  of each DTN node.  This is used to assist in routing and forwarding
  messages, e.g., to prevent loops.

  Once the TCPCL connection is established and configured in this way,
  bundles can be transmitted in either direction.  Each bundle is
  transmitted in one or more logical segments of formatted bundle data.
  Each logical data segment consists of a DATA_SEGMENT message header,
  an SDNV containing the length of the segment, and finally the byte
  range of the bundle data.  The choice of the length to use for
  segments is an implementation matter.  The first segment for a bundle
  must set the 'start' flag and the last one must set the 'end' flag in
  the DATA_SEGMENT message header.

  An optional feature of the protocol is for the receiving node to send
  acknowledgments as bundle data segments arrive (ACK_SEGMENT).  The
  rationale behind these acknowledgments is to enable the sender node
  to determine how much of the bundle has been received, so that in
  case the connection is interrupted, it can perform reactive
  fragmentation to avoid re-sending the already transmitted part of the
  bundle.

  When acknowledgments are enabled, then for each data segment that is
  received, the receiving node sends an ACK_SEGMENT code followed by an
  SDNV containing the cumulative length of the bundle that has been
  received.

  Another optional feature is that a receiver may interrupt the
  transmission of a bundle at any point in time by replying with a
  REFUSE_BUNDLE message which causes the sender to stop transmission of
  the current bundle, after completing transmission of a partially sent
  data segment.  Note: This enables a cross-layer optimization in that

Demmer, et al.            Expires July 26, 2013                [Page 6]
Internet-Draft          DTN TCP Convergence Layer          January 2013

  it allows a receiver that detects that it already has received a
  certain bundle to interrupt transmission as early as possible and
  thus save transmission capacity for other bundles.

  For connections that are idle, a KEEPALIVE message may optionally be
  sent at a negotiated interval.  This is used to convey liveness
  information.

  Finally, before connections close, a SHUTDOWN message is sent on the
  channel.  After sending a SHUTDOWN message, the sender of this
  message may send further acknowledgments (ACK_SEGMENT or
  REFUSE_BUNDLE) but no further data messages (DATA_SEGMENT).  A
  SHUTDOWN message may also be used to refuse a connection setup by a
  peer.

3.1.  Bidirectional Use of TCP Connection

  Since each message type used in the TCPCL protocol in association
  with sending a bundle is only sent in a specific direction
  (DATA_SEGMENT and LENGTH from bundle sender to receiver, ACK_SEGMENT
  and REFUSE_BUNDLE from receiver to sender) with the remaining
  messages (KEEPALIVE and SHUTDOWN) being associated with the
  connection rather than a particular bundle, a single TCP connection
  can be used bidirectionally to send bundles concurrently from either
  end to the other.

  Note that in the case of concurrent bidirectional transmission, ack
  segments may be interleaved with data segments.

3.2.  Example message exchange

  The following figure visually depicts the protocol exchange for a
  simple session, showing the connection establishment, and the
  transmission of a single bundle split into three data segments (of
  lengths L1, L2, and L3) from Node A to Node B.

  Note that the sending node may transmit multiple DATA_SEGMENT
  messages without necessarily waiting for the corresponding
  ACK_SEGMENT responses.  This enables pipelining of messages on a
  channel.  Although this example only demonstrates a single bundle
  transmission, it is also possible to pipeline multiple DATA_SEGMENT
  messages for different bundles without necessarily waiting for
  ACK_SEGMENT messages to be returned for each one.  However,
  interleaving data segments from different bundles is not allowed.

  No errors or rejections are shown in this example.

Demmer, et al.            Expires July 26, 2013                [Page 7]
Internet-Draft          DTN TCP Convergence Layer          January 2013

                Node A                              Node B
                ======                              ======

      +-------------------------+        +-------------------------+
      |    Contact Header      | ->  <- |    Contact Header      |
      +-------------------------+        +-------------------------+

      +-------------------------+
      |  DATA_SEGMENT (start)  | ->
      |    SDNV length [L1]    | ->
      |    Bundle Data 0..L1    | ->
      +-------------------------+
      +-------------------------+        +-------------------------+
      |    DATA_SEGMENT        | ->  <- |      ACK_SEGMENT      |
      |    SDNV length [L2]    | ->  <- |    SDNV length [L1]    |
      |    Bundle Data L1..L2  | ->      +-------------------------+
      +-------------------------+
      +-------------------------+        +-------------------------+
      |    DATA_SEGMENT (end)  | ->  <- |      ACK_SEGMENT      |
      |    SDNV length [L3]    | ->  <- |  SDNV length [L1+L2]  |
      |    Bundle Data L2..L3  | -&Reviewed suggested replacement relationships: draft-ietf-curdle-pkix-newcurves, draft-ietf-curdle-pkix-eddsa
2016-08-19
01 (System) Added suggested replacement relationships: draft-ietf-curdle-pkix-eddsa, draft-ietf-curdle-pkix-newcurves
2016-08-19
01 (System) This document now replaces None instead of None
2016-08-19
01 Jim Schaad New version available: draft-ietf-curdle-pkix-01.txt
2016-07-22
00 Russ Housley Added to session: IETF-96: lamps  Fri-1220
2016-04-08
00 Simon Josefsson New version available: draft-ietf-curdle-pkix-00.txt