RFC 6546 PROPOSED STANDARD SECURITY · TRANSPORT · HTTP

RID over HTTP/TLS: Transport of Real-time Inter-network Defense (RID) Messages over HTTP/TLS

How security teams send incident messages to each other over HTTP protected by TLS.

On rfc-editor.org ↗
PUBLISHED
April 2012
AUTHORS
B. Trammell
STREAM
IETF
BUILDS ON
RFC 6046 — RID
PORT
4590/tcp
MEDIA TYPE
text/xml
REQUEST METHOD
POST, Request-URI '/'
CALLBACK TOKEN LENGTH
Up to 255 printable ASCII characters
MINIMUM TLS VERSION
1.1
RECOMMENDED TLS VERSION
1.2
DOI
10.17487/RFC6546
ERRATA
Reported errata

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                       B. Trammell
Request for Comments: 6546                                    ETH Zurich
Obsoletes: 6046                                               April 2012
Category: Standards Track
ISSN: 2070-1721


      Transport of Real-time Inter-network Defense (RID) Messages
                             over HTTP/TLS

Abstract

   The Incident Object Description Exchange Format (IODEF) defines a
   common XML format for document exchange, and Real-time Inter-network
   Defense (RID) defines extensions to IODEF intended for the
   cooperative handling of security incidents within consortia of
   network operators and enterprises.  This document specifies an
   application-layer protocol for RID based upon the passing of RID
   messages over HTTP/TLS.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc6546.

Copyright Notice

   Copyright (c) 2012 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
   described in the Simplified BSD License.

1.  Introduction

   The Incident Object Description Exchange Format (IODEF) [RFC5070]
   describes an XML document format for the purpose of exchanging data
   between Computer Security Incident Response Teams (CSIRTs) or those
   responsible for security incident handling for service providers
   (SPs).  The defined document format provides a simple way for CSIRTs
   to exchange data in a way which can be easily parsed.

   IODEF defines a message format, not a protocol, as the sharing of
   messages is assumed to be out of scope in order to allow CSIRTs to
   exchange and store messages in a way most suited to their established
   incident-handling processes.  However, Real-time Inter-network
   Defense (RID) [RFC6545] does require a specification of a protocol to
   ensure interoperability among members in a RID consortium.  This
   document specifies the transport of RID messages within HTTP
   [RFC2616] Request and Response messages over TLS [RFC5246] (herein,
   HTTP/TLS).  Note that any IODEF message may also be transported using
   this mechanism, by sending it as a RID Report message.

1.1.  Changes from RFC 6046

   This document contains the following changes with respect to its
   predecessor [RFC6046]:

   o  The status of the document is Standards Track.

   o  The document is updated to refer to the updated RID specification,
      [RFC6545], where appropriate.

   o  Language regarding the use of HTTP/1.1 and TCP ports for RID
      transport is clarified.

   o  The RID-Callback-Token entity header field is added to allow
      matching of RID replies during callback, independent of the
      content of the underlying RID message.

   o  The minimum required version of TLS is upgraded to 1.1, and the
      minimum recommended version to 1.2.

   o  Language regarding PKI for RID over HTTPS is clarified, and
      updated to refer to [RFC6125].

   This document obsoletes [RFC6046] and moves it to Historic status.

2.  Terminology and Normative Sections

   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].

   RID systems participating in a consortium are required to fully
   implement the protocol in Section 3 in order to interoperate within
   the consortium; the remainder of this document is informative and
   provides helpful background or explanatory information.

3.  Transmission of RID Messages over HTTP/TLS

   This section specifies the details of the transport of RID messages
   [RFC6545] over HTTP/TLS.  In this arrangement, each RID server is
   both an HTTP/TLS server and an HTTP/TLS client.  When a RID message
   is sent, the sending RID system connects to the receiving RID system
   and sends the message, optionally receiving a message in reply.  Each
   RID system MUST be prepared to accept HTTP/TLS connections from any
   RID peer with which it communicates, in order to support callback for
   delayed replies (see below).

   BCP 56 [RFC3205] contains a number of important considerations when
   using HTTP for application protocols.  These include the size of the
   payload for the application, whether the application will use a web
   browser, whether the protocol should be defined on a port other than
   80, and if the security provided through HTTP/TLS suits the needs of
   the new application.

   It is acknowledged within the scope of these concerns that HTTP/TLS
   is not ideally suited for RID transport, as the former is a client-
   server protocol and the latter a message-exchange protocol; however,
   the ease of implementation of RID systems over HTTP/TLS outweighs
   these concerns.  Consistent with BCP 56, RID systems listen for TCP
   connections on port 4590 (see Section 5).  Every RID system
   participating in a consortium SHOULD listen for HTTP/TLS connections
   on the assigned port.  RID systems MAY be configurable to listen on
   ports other than the well-known port; this configuration is out of
   scope for this specification.  RID systems SHOULD NOT use TCP port
   443 (the standard port for HTTP over TLS) for RID messages in order
   to avoid confusing standard HTTP/TLS servers for RID systems.

   RID systems MUST implement all REQUIRED functionality for HTTP/1.1
   [RFC2616].  All RID messages sent in HTTP Requests MUST be sent using
   the POST method with a Request-URI of '/'.  As RID documents are XML,
   the RID media type is 'text/xml'; i.e., the 'Content-type' Request
   and Response headers MUST be 'text/xml'.  As RID messages MUST be
   sent using the POST method, the GET and HEAD methods have no
   particular meaning on a RID system; a RID system SHOULD answer
   'GET /' or 'HEAD /' with 204 No Content.  Other Request-URIs are
   reserved for future use; any access to Request-URIs other than '/' by
   any method on a RID system SHOULD return the appropriate HTTP error
   (404 Not Found).

   Since the content of RID messages is essentially declarative, a RID
   system interrupted during transport MAY simply repeat the
   transaction; the sending of a RID message is idempotent.

   As the queries and replies in a RID message exchange may be
   significantly separated in time, RID over HTTP/TLS supports a
   callback mechanism.  In this mechanism, the receiving RID system MAY
   return a 202 Accepted response, called a RID callback, instead of a
   RID message.  The RID callback MUST contain a zero-length entity body
   and a 'RID-Callback-Token' entity header field, itself containing a
   unique token generated by the receiving RID system.

   The RID-Callback-Token is an opaque, whitespace-free string of up to
   255 printable ASCII characters that MUST uniquely identify the
   callback among all callbacks from the receiving RID system to the
   sending RID system.  Due to the amount of time that may be required
   to generate a RID Result or Report response, there is no upper bound
   on the time period for this uniqueness requirement.  The RID-
   Callback-Token in ABNF [RFC5234] form is shown below:

   callback-token = 1*255(VCHAR)

   When performing RID callback, a responding system MUST connect to the
   host at the network-layer address from which the original request was
   sent; there is no mechanism in RID for redirected callback.  This
   callback SHOULD use TCP port 4590 unless configured to use a
   different port.

   While a RID system SHOULD return the reply in an HTTP Response if it
   is available immediately or within a generally accepted HTTP client
   timeout (about thirty seconds), this is not mandatory, and as such
   RID systems MUST be prepared for a query to be met with a 202
   Accepted, an empty Response body, a connection termination, and a
   callback.  Note that all RID messages require a response from the
   receiving RID system, so a sending RID system can expect either an
   immediate response or a callback.

   Table 1 lists the allowable RID message types in an HTTP Response for
   a given RID message type in the Request.  A RID system MUST be
   prepared to handle an HTTP Response of the given type(s) when sending
   the corresponding HTTP Request.  A RID system MUST NOT send an HTTP
   Response containing any RID message other than the one corresponding
   to the one sent in the HTTP Request.

     +----------------------+----------+--------+-------------------+
     | Request RID type     | Callback | Result | Response RID type |
     +----------------------+----------+--------+-------------------+
     | InvestigationRequest |          | 200    | Acknowledgement   |
     | InvestigationRequest |          | 200    | Result            |
     | InvestigationRequest |          | 200    | Report            |
     | InvestigationRequest |          | 202    | [empty]           |
     | TraceRequest         |          | 200    | Acknowledgement   |
     | TraceRequest         |          | 200    | Result            |
     | TraceRequest         |          | 200    | Report            |
     | TraceRequest         |          | 202    | [empty]           |
     | Query                |          | 200    | Acknowledgement   |
     | Query                |          | 200    | Report            |
     | Query                |          | 202    | [empty]           |
     | Acknowledgement      |     X    | 200    | [empty]           |
     | Result               |     X    | 200    | [empty]           |
     | Report               |          | 200    | Acknowledgement   |
     | Report               |          | 200    | [empty]           |
     | Report               |     X    | 200    | [empty]           |
     +----------------------+----------+--------+-------------------+

                                  Table 1

   The use of stable DNS names to address RID systems is RECOMMENDED; in
   addition to facilitating connection to RID systems within a
   consortium, these are to be used as reference identifiers for a RID
   system's peers.  For security purposes, RID systems SHOULD NOT return
   3xx Redirection response codes, and SHOULD NOT follow any 3xx
   Redirection.  The protocol provides no in-band method for handling a
   change of address of a RID system.

   If a RID system receives an improper RID message in an HTTP Request,
   it MUST return an appropriate 4xx Client Error result code to the
   requesting RID system.  If a RID system cannot process a RID message
   received in an HTTP Request due to an error on its own side, it MUST
   return an appropriate 5xx Server Error result code to the requesting
   RID system.

   Note that HTTP provides no mechanism for signaling to a server that a
   response body is not a valid RID message.  If a RID system receives
   an improper RID message in an HTTP Response, or cannot process a RID
   message received in an HTTP Response due to an error on its own side,
   it MUST log the error and present it to the RID system administrator
   for handling; the error logging format is an implementation detail
   and is considered out of scope for this specification.

   RID systems MUST support and SHOULD use HTTP/1.1 persistent
   connections as described in [RFC2616].  RID systems MUST support
   chunked transfer encoding on the HTTP server side to allow the
   implementation of clients that do not need to pre-calculate message
   sizes before constructing HTTP headers.

   RID systems MUST use TLS version 1.1 [RFC4346] or higher for
   confidentiality, identification, and authentication, when sending RID
   messages over HTTPS.  HTTPS is specified in Section 2 of [RFC2818].
   RID systems MUST use mutual authentication; that is, both RID systems
   acting as HTTPS clients and RID systems acting as HTTPS servers MUST
   be identified by an X.509 certificate [RFC5280].  Mutual
   authentication requires full path validation on each certificate, as
   defined in [RFC5280].

   The TLS session MUST use non-NULL ciphersuites for authentication,
   integrity, and confidentiality.  Sessions MAY be renegotiated within
   these constraints.

   All RID systems SHOULD be identified by a certificate containing
   DNS-ID identifier as in Section 6.4 of [RFC6125]; the inclusion of
   Common Names (CN-IDs) in certificates identifying RID systems is NOT
   RECOMMENDED.  RID systems MUST verify the reference identifiers of
   their peers against those stored in the certificates presented using
   one of the methods in the following paragraph.  Wildcards MUST NOT
   appear in the DNS-ID or CN-ID of a certificate identifying a RID
   system.

   RID systems MUST support the verification of certificates against an
   explicit whitelist of peer certificates.  RID systems SHOULD support
   the verification of reference identifiers by matching the DNS-ID or
   CN-ID with a reverse DNS lookup of the connecting RID peer; this
   support SHOULD allow the lookup to be cached and/or done in advance
   in order to ensure verifiability during instability or compromise of
   DNS itself.

   Additional general information on the use of PKI with RID systems is
   detailed in Section 9.3 of [RFC6545].

   RID systems MUST support TLS version 1.1 and SHOULD support TLS
   version 1.2 [RFC5246]; RID systems MUST NOT request, offer, or use
   any version of SSL, or any version of TLS prior to 1.1, due to known
   security vulnerabilities in prior versions of the protocol; see
   Appendix E of [RFC5246] for more information.

4.  Security Considerations

   In addition to the final paragraphs in Section 3 on the use of TLS to
   secure RID message transport, all security considerations of related
   documents apply, especially the Incident Object Description Exchange
   Format (IODEF) [RFC5070] and Real-time Inter-network Defense (RID)
   [RFC6545].  The protocol described herein is built on the foundation
   of those documents; the security considerations contained therein are
   incorporated by reference.

5.  IANA Considerations

   Consistent with BCP 56 [RFC3205], since RID over HTTP/TLS is a
   substantially new service, and should be controlled at the consortium
   member network's border differently than HTTP/TLS, it requires a new
   port number.  IANA has assigned port 4590/tcp to RID with service
   name "RID over HTTP/TLS".

6.  Acknowledgements

   The author would like to thank David Black for the review, and
   Kathleen Moriarty for work on earlier revisions of this
   specification.  This work was partially supported by the European
   Union Seventh Framework Program under grant agreement 257315
   (DEMONS).

7.  References

7.1.  Normative References

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

   [RFC2616]  Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
              Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
              Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.

   [RFC2818]  Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.

   [RFC5070]  Danyliw, R., Meijer, J., and Y. Demchenko, "The Incident
              Object Description Exchange Format", RFC 5070,
              December 2007.

   [RFC5246]  Dierks, T. and E. Rescorla, "The Transport Layer Security
              (TLS) Protocol Version 1.2", RFC 5246, August 2008.

   [RFC5280]  Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
              Housley, R., and W. Polk, "Internet X.509 Public Key
              Infrastructure Certificate and Certificate Revocation List
              (CRL) Profile", RFC 5280, May 2008.

   [RFC6125]  Saint-Andre, P. and J. Hodges, "Representation and
              Verification of Domain-Based Application Service Identity
              within Internet Public Key Infrastructure Using X.509
              (PKIX) Certificates in the Context of Transport Layer
              Security (TLS)", RFC 6125, March 2011.

   [RFC6545]  Moriarty, K., "Real-time Inter-network Defense (RID)",
              RFC 6545, April 2012.

7.2.  Informative References

   [RFC3205]  Moore, K., "On the use of HTTP as a Substrate", BCP 56,
              RFC 3205, February 2002.

   [RFC4346]  Dierks, T. and E. Rescorla, "The Transport Layer Security
              (TLS) Protocol Version 1.1", RFC 4346, April 2006.

   [RFC5234]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
              Specifications: ABNF", STD 68, RFC 5234, January 2008.

   [RFC6046]  Moriarty, K. and B. Trammell, "Transport of Real-time
              Inter-network Defense (RID) Messages", RFC 6046,
              November 2010.

Author's Address

   Brian Trammell
   Swiss Federal Institute of Technology Zurich
   Gloriastrasse 35
   8092 Zurich
   Switzerland

   Phone: +41 44 632 70 13
   EMail: trammell@tik.ee.ethz.ch

ISO Plain Language

On this page
PROBLEMReal-time Inter-network Defense needs a protocol, not just a message format, so that the security teams in a consortium can interoperate. The RID message format alone does not say how messages travel.
MECHANISMThe document carries RID messages inside HTTP requests and responses over TLS. Every RID system acts as both an HTTP client and an HTTP server, posts messages to the root path with a text/xml content type, and can accept a later reply through a callback with its own token.
WHAT CHANGEDThis document replaced RFC 6046, raised the minimum TLS version to 1.1 with 1.2 recommended, and added the RID-Callback-Token header. IANA assigned port 4590/tcp to RID over HTTP/TLS.

§1What RID Transport Does

The Incident Object Description Exchange Format (IODEF) of RFC 5070 describes an XML document format for exchanging data between Computer Security Incident Response Teams, or those responsible for security incident handling for service providers. The document format gives CSIRTs a simple way to exchange data that can be easily parsed.

IODEF defines a message format, not a protocol. How the messages are shared is left out of scope, so that CSIRTs can exchange and store messages in a way that suits their own incident-handling processes. Real-time Inter-network Defense (RID) of RFC 6545 does require a protocol, to ensure interoperability among the members of a RID consortium. This document specifies the transport of RID messages inside HTTP request and response messages over TLS, that is, over HTTP/TLS. Any IODEF message may also travel this way, by sending it as a RID Report message.

Security teams need to exchange details of incidents with each other. RID is the format they use for those messages. This document says how the messages travel and who may read them.

§1.1Changes from RFC 6046

The document lists its changes from its predecessor, RFC 6046:

  • The status of the document is Standards Track.
  • The document is updated to refer to the updated RID specification, RFC 6545, where appropriate.
  • The language about using HTTP/1.1 and TCP ports for RID transport is clarified.
  • The RID-Callback-Token entity header field is added, so that RID replies can be matched during a callback independently of the content of the underlying RID message.
  • The minimum required version of TLS is upgraded to 1.1, and the minimum recommended version to 1.2.
  • The language about a public key infrastructure for RID over HTTPS is clarified and updated to refer to RFC 6125.

This document replaces RFC 6046 and moves it to Historic status.

This version adds a token that lets a later reply be matched to the original request, and raises the lowest version of TLS that is allowed.

§3Sending a RID Message over HTTP/TLS

Each RID server is both an HTTP/TLS server and an HTTP/TLS client. When a RID message is sent, the sending RID system connects to the receiving RID system, sends the message, and optionally receives a message in reply. Every RID system must be prepared to accept HTTP/TLS connections from any RID peer it communicates with, so that a callback for a delayed reply can reach it.

BCP 56 of RFC 3205 lists the considerations when HTTP is used for an application protocol: the size of the payload for the application, whether a web browser will be used, whether the protocol should be defined on a port other than 80, and whether the security provided by HTTP/TLS suits the application. The document acknowledges that HTTP/TLS is not ideally suited to RID transport, because HTTP is a client-server protocol while RID is a message-exchange protocol, but says the ease of implementation over HTTP/TLS outweighs those concerns. RID systems listen for TCP connections on port 4590, may be configurable to listen on other ports, and should not use TCP port 443, the standard port for HTTP over TLS, so that ordinary HTTP/TLS servers are not mistaken for RID systems.

RID systems must implement all the required functionality of HTTP/1.1. Every RID message sent in an HTTP request must use the POST method with a Request-URI of '/'. As RID documents are XML, the Content-Type request and response headers must be 'text/xml'. The GET and HEAD methods have no particular meaning on a RID system, and a RID system should answer 'GET /' or 'HEAD /' with 204 No Content. Other Request-URIs are reserved for future use, and access to them by any method should return the appropriate HTTP error, 404 Not Found.

Since the content of RID messages is essentially declarative, a RID system interrupted during transport may simply repeat the transaction. Sending a RID message is idempotent.

Each RID system is both a web server and a web client. To send a message it connects to the other system and posts the message to the root path. Sending the same message twice has the same effect as sending it once, so an interrupted transfer can simply be repeated.

§3The RID Callback Mechanism

The queries and replies in a RID message exchange may be significantly separated in time, so RID over HTTP/TLS supports a callback mechanism. The receiving RID system may return a 202 Accepted response, called a RID callback, instead of a RID message. The callback must contain a zero-length entity body and a 'RID-Callback-Token' entity header field, itself containing a unique token generated by the receiving RID system.

The RID-Callback-Token is an opaque, whitespace-free string of up to 255 printable ASCII characters that must uniquely identify the callback among all callbacks from the receiving RID system to the sending RID system. Because generating a RID Result or Report response may take a long time, there is no upper bound on the time period for that uniqueness requirement. Its ABNF form is callback-token = 1*255(VCHAR).

When performing a callback, the responding system must connect to the host at the network-layer address from which the original request was sent. There is no mechanism in RID for a redirected callback. The callback should use TCP port 4590 unless configured to use a different port.

While a RID system should return the reply in an HTTP response if it is available immediately or within a generally accepted HTTP client timeout of about thirty seconds, this is not mandatory. RID systems must be prepared for a query to be met with a 202 Accepted, an empty response body, a connection termination and a callback. All RID messages require a response from the receiving RID system, so a sending system can expect either an immediate response or a callback.

Sometimes the answer takes a long time to prepare. The receiving system can then answer straight away with an acceptance and a token, and send the real answer later on a new connection. The token tells the sender which pending request the later answer belongs to.

THE CALLBACK FLOW DESCRIBED IN SECTION 3
Sending RID systemReceiving RID system
  1. POST / WITH THE RID MESSAGE
  2. 202 ACCEPTED WITH CALLBACK TOKENZero-length entity body, with the token in a RID-Callback-Token header.
  3. CALLBACK WITH THE REPLYSent to the network-layer address the original request came from.

§3Message Types and Response Codes

The document lists the allowable RID message types in an HTTP response for each RID message type in the request. A RID system must be prepared to handle a response of the given type when it sends the corresponding request, and must not send a response containing any RID message other than the one corresponding to the request it received.

An InvestigationRequest may be answered with an Acknowledgement, a Result or a Report, all with status code 200, or with an empty 202 Accepted. A TraceRequest may be answered the same way. A Query may be answered with an Acknowledgement or a Report, both with status code 200, or with an empty 202. An Acknowledgement, a Result and a Report may each be sent as a callback, and each is answered with status code 200 and an empty response. A Report may also be answered with an Acknowledgement.

If a RID system receives an improper RID message in an HTTP request, it must return an appropriate 4xx Client Error result code to the requesting system. If it cannot process a RID message received in a request because of an error on its own side, it must return an appropriate 5xx Server Error result code. HTTP provides no mechanism for signalling to a server that a response body is not a valid RID message, so a RID system that receives an improper RID message in a response, or cannot process one because of an error on its own side, must log the error and present it to the RID system administrator for handling. The error logging format is an implementation detail and is out of scope for this specification.

RID systems must support and should use HTTP/1.1 persistent connections. They must support chunked transfer encoding on the HTTP server side, so that clients that do not need to pre-calculate message sizes before constructing HTTP headers can be served.

The document lists which answer each kind of request may get, and which status code carries it. A request can be answered with an acknowledgement, a result or a report, or with an empty acceptance when the answer will follow later.

ALLOWED REPLIES TO EACH REQUEST, FROM TABLE 1
Request RID typeHTTP statusResponse RID type
InvestigationRequest200Acknowledgement
InvestigationRequest200Result
InvestigationRequest200Report
InvestigationRequest202[empty]
TraceRequest200Acknowledgement, Result or Report
TraceRequest202[empty]
Query200Acknowledgement
Query200Report
Query202[empty]
Acknowledgement, Result or Report200[empty]
Report200Acknowledgement

§3TLS, Certificates and Peer Verification

RID systems must use TLS version 1.1 or higher for confidentiality, identification and authentication when sending RID messages over HTTPS. They must use mutual authentication: both RID systems acting as HTTPS clients and RID systems acting as HTTPS servers must be identified by an X.509 certificate, and mutual authentication requires full path validation on each certificate.

The TLS session must use non-NULL ciphersuites for authentication, integrity and confidentiality. Sessions may be renegotiated within those constraints.

All RID systems should be identified by a certificate containing a DNS-ID identifier as in Section 6.4 of RFC 6125. Including Common Names (CN-IDs) in certificates identifying RID systems is not recommended. RID systems must verify the reference identifiers of their peers against those stored in the certificates presented. Wildcards must not appear in the DNS-ID or CN-ID of a certificate identifying a RID system.

RID systems must support verification of certificates against an explicit whitelist of peer certificates. They should support verification of reference identifiers by matching the DNS-ID or CN-ID with a reverse DNS lookup of the connecting RID peer, and that lookup should be allowed to be cached or done in advance, so that verification still works during instability or compromise of DNS itself.

The use of stable DNS names to address RID systems is recommended. Besides making it easier to connect within a consortium, these names are used as reference identifiers for a RID system's peers. For security purposes, RID systems should not return 3xx Redirection response codes and should not follow any 3xx redirection. The protocol provides no in-band method for handling a change of address of a RID system.

RID systems must support TLS version 1.1 and should support TLS version 1.2. They must not request, offer or use any version of SSL, or any version of TLS prior to 1.1, because of known security vulnerabilities in earlier versions of the protocol.

Connections are protected with TLS, and each side presents a certificate so the other can check who it is. Certificates are checked against a list of known peers or against a reverse lookup of the address, and the TLS version must be 1.1 or later.

THE TRANSPORT SECURITY RULES
  • Minimum TLSVersion 1.1; version 1.2 is recommended.
  • AuthenticationMutual, with an X.509 certificate on each side.
  • Peer namesDNS-ID identifiers; Common Names are not recommended.
  • WildcardsNot allowed in the DNS-ID or CN-ID of a RID certificate.
  • VerificationAn explicit whitelist of peer certificates, or a reverse DNS lookup.

§4Security Considerations

In addition to the paragraphs in Section 3 on the use of TLS to secure RID message transport, all the security considerations of related documents apply, especially the Incident Object Description Exchange Format of RFC 5070 and Real-time Inter-network Defense of RFC 6545. The protocol described here is built on the foundation of those documents, and the security considerations they contain are incorporated by reference.

The security rules of the RID and IODEF documents apply here too, because this document only adds the transport underneath them.

§8References