RFC 5425 PROPOSED STANDARD SYSLOG · TLS · SECURITY

Syslog over TLS: Transport Layer Security (TLS) Transport Mapping for Syslog

How to carry syslog messages over a TLS connection so they cannot be read, changed or faked in transit.

On rfc-editor.org ↗
PUBLISHED
March 2009
AUTHORS
F. Miao, Y. Ma, J. Salowey
STREAM
IETF
UPDATED BY
RFC 9662 — Secure Syslog Ciphers
DEFAULT PORT
TCP 6514 (syslog-tls)
MANDATORY TLS VERSION
TLS 1.2
MANDATORY CIPHER SUITE
TLS_RSA_WITH_AES_128_CBC_SHA
MINIMUM MESSAGE SIZE TO HANDLE
2048 octets
RECOMMENDED MESSAGE SIZE TO HANDLE
8192 octets
SHA-1 FINGERPRINT STRING
65 characters (20-byte hash)
DOI
10.17487/RFC5425
ERRATA
Reported errata

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                       F. Miao, Ed.
Request for Comments: 5425                                    Y. Ma, Ed.
Category: Standards Track                            Huawei Technologies
                                                         J. Salowey, Ed.
                                                     Cisco Systems, Inc.
                                                              March 2009


      Transport Layer Security (TLS) Transport Mapping for Syslog

Status of This Memo

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

Copyright Notice

   Copyright (c) 2009 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 in effect on the date of
   publication of this document (http://trustee.ietf.org/license-info).
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

Abstract

   This document describes the use of Transport Layer Security (TLS) to
   provide a secure connection for the transport of syslog messages.
   This document describes the security threats to syslog and how TLS
   can be used to counter such threats.

Table of Contents

   1. Introduction ....................................................3
      1.1. Terminology ................................................3
   2. Security Requirements for Syslog ................................3
   3. Using TLS to Secure Syslog ......................................4
   4. Protocol Elements ...............................................5
      4.1. Port Assignment ............................................5
      4.2. Initiation .................................................5
           4.2.1. Certificate-Based Authentication ....................5
           4.2.2. Certificate Fingerprints ............................6
           4.2.3. Cryptographic Level .................................7
      4.3. Sending Data ...............................................7
           4.3.1. Message Length ......................................7
      4.4. Closure ....................................................8
   5. Security Policies ...............................................8
      5.1. End-Entity Certificate Based Authorization .................8
      5.2. Subject Name Authorization .................................9
      5.3. Unauthenticated Transport Sender ...........................9
      5.4. Unauthenticated Transport Receiver ........................10
      5.5. Unauthenticated Transport Receiver and Sender .............10
   6. Security Considerations ........................................10
      6.1. Authentication and Authorization Policies .................10
      6.2. Name Validation ...........................................11
      6.3. Reliability ...............................................11
   7. IANA Considerations ............................................11
      7.1. Port Number ...............................................11
   8. Acknowledgments ................................................11
   9. References .....................................................12
      9.1. Normative References ......................................12
      9.2. Informative References ....................................12

1.  Introduction

   This document describes the use of Transport Layer Security (TLS
   [RFC5246]) to provide a secure connection for the transport of syslog
   [RFC5424] messages.  This document describes the security threats to
   syslog and how TLS can be used to counter such threats.

1.1.  Terminology

   The following definitions are used in this document:

   o  An "originator" generates syslog content to be carried in a
      message.

   o  A "collector" gathers syslog content for further analysis.

   o  A "relay" forwards messages, accepting messages from originators
      or other relays, and sending them to collectors or other relays.

   o  A "transport sender" passes syslog messages to a specific
      transport protocol.

   o  A "transport receiver" takes syslog messages from a specific
      transport protocol.

   o  A "TLS client" is an application that can initiate a TLS
      connection by sending a Client Hello to a server.

   o  A "TLS server" is an application that can receive a Client Hello
      from a client and reply with a Server Hello.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

2.  Security Requirements for Syslog

   Syslog messages may transit several hops to arrive at the intended
   collector.  Some intermediary networks may not be trusted by the
   originator, relay, or receiver because the network is in a different
   security domain or at a different security level from the originator,
   relay, or collector.  Another security concern is that the
   originator, relay, or receiver itself is in an insecure network.

   There are several threats to be addressed for syslog security.  The
   primary threats are:

   o  Masquerade.  An unauthorized transport sender may send messages to
      a legitimate transport receiver, or an unauthorized transport
      receiver may try to deceive a legitimate transport sender into
      sending syslog messages to it.

   o  Modification.  An attacker between the transport sender and the
      transport receiver may modify an in-transit syslog message and
      then forward the message to the transport receiver.  Such
      modification may make the transport receiver misunderstand the
      message or cause it to behave in undesirable ways.

   o  Disclosure.  An unauthorized entity may examine the contents of
      the syslog messages, gaining unauthorized access to the
      information.  Some data in syslog messages is sensitive and may be
      useful to an attacker, such as the password of an authorized
      administrator or user.

   The secondary threat is:

   o  Message stream modification.  An attacker may delete one or more
      syslog messages from a series of messages, replay a message, or
      alter the delivery sequence.  The syslog protocol itself is not
      based on message order.  However, an event in a syslog message may
      relate semantically to events in other messages, so message
      ordering may be important to understanding a sequence of events.

   The following threats are deemed to be of lesser importance for
   syslog, and are not addressed in this document:

   o  Denial of Service

   o  Traffic Analysis

3.  Using TLS to Secure Syslog

   TLS can be used as a secure transport to counter all the primary
   threats to syslog described above:

   o  Confidentiality to counter disclosure of the message contents.

   o  Integrity-checking to counter modifications to a message on a hop-
      by-hop basis.

   o  Server or mutual authentication to counter masquerade.

   Note: This secure transport (i.e., TLS) only secures syslog transport
   in a hop-by-hop manner, and is not concerned with the contents of
   syslog messages.  In particular, the authenticated identity of the
   transport sender (e.g., subject name in the certificate) is not
   necessarily related to the HOSTNAME field of the syslog message.
   When authentication of syslog message origin is required, [SYS-SIGN]
   can be used.

4.  Protocol Elements

4.1.  Port Assignment

   A syslog transport sender is always a TLS client and a transport
   receiver is always a TLS server.

   The TCP port 6514 has been allocated as the default port for syslog
   over TLS, as defined in this document.

4.2.  Initiation

   The transport sender should initiate a connection to the transport
   receiver and then send the TLS Client Hello to begin the TLS
   handshake.  When the TLS handshake has finished, the transport sender
   MAY then send the first syslog message.

   TLS typically uses certificates [RFC5280] to authenticate peers.
   Implementations MUST support TLS 1.2 [RFC5246] and are REQUIRED to
   support the mandatory to implement cipher suite, which is
   TLS_RSA_WITH_AES_128_CBC_SHA.  This document is assumed to apply to
   future versions of TLS, in which case the mandatory to implement
   cipher suite for the implemented version MUST be supported.

4.2.1.  Certificate-Based Authentication

   Both syslog transport sender (TLS client) and syslog transport
   receiver (TLS server) MUST implement certificate-based
   authentication.  This consists of validating the certificate and
   verifying that the peer has the corresponding private key.  The
   latter part is performed by TLS.  To ensure interoperability between
   clients and servers, the following methods for certificate validation
   SHALL be implemented:

   o  Certification path validation: The TLS peer is configured with one
      or more trust anchors (typically root CA (certification authority)
      certificates), which allow it to verify a binding between the
      subject name and the public key.  Additional policy controls
      needed for authorizing the syslog transport sender and receiver
      (i.e., verifying that the subject name represents an authorized
      party) are described in Section 5.  Certification path validation
      is performed as defined in [RFC5280].  This method is useful where
      there is a Public Key Infrastructure (PKI) deployment.

   o  End-entity certificate matching: The transport sender or receiver
      is configured with information necessary to identify the valid
      end-entity certificates of its authorized peers.  The end-entity
      certificates can be self-signed, and no certification path
      validation is needed.  Implementations MUST support certificate
      fingerprints in Section 4.2.2 and MAY allow other formats for
      end-entity certificates such as a DER-encoded certificate.  This
      method provides an alternative to a PKI that is simple to deploy
      and still maintains a reasonable level of security.

   Both transport receiver and transport sender implementations MUST
   provide means to generate a key pair and self-signed certificate in
   the case that a key pair and certificate are not available through
   another mechanism.

   The transport receiver and transport sender SHOULD provide mechanisms
   to record the end-entity certificate for the purpose of correlating
   it with the sent or received data.

4.2.2.  Certificate Fingerprints

   Both client and server implementations MUST make the certificate
   fingerprints for their certificate available through a management
   interface.  The labels for the algorithms are taken from the textual
   names of the hash functions as defined in the IANA registry "Hash
   Function Textual Names" allocated in [RFC4572].

   The mechanism to generate a fingerprint is to take the hash of the
   DER-encoded certificate using a cryptographically strong algorithm,
   and convert the result into colon-separated, hexadecimal bytes, each
   represented by 2 uppercase ASCII characters.  When a fingerprint
   value is displayed or configured, the fingerprint is prepended with
   an ASCII label identifying the hash function followed by a colon.
   Implementations MUST support SHA-1 as the hash algorithm and use the
   ASCII label "sha-1" to identify the SHA-1 algorithm.  The length of a
   SHA-1 hash is 20 bytes and the length of the corresponding
   fingerprint string is 65 characters.  An example certificate
   fingerprint is:

      sha-1:E1:2D:53:2B:7C:6B:8A:29:A2:76:C8:64:36:0B:08:4B:7A:F1:9E:9D

   During validation the hash is extracted from the fingerprint and
   compared against the hash calculated over the received certificate.

4.2.3.  Cryptographic Level

   Syslog applications SHOULD be implemented in a manner that permits
   administrators, as a matter of local policy, to select the
   cryptographic level and authentication options they desire.

   TLS permits the resumption of an earlier TLS session or the use of
   another active session when a new session is requested, in order to
   save the expense of another full TLS handshake.  The security
   parameters of the resumed session are reused for the requested
   session.  The security parameters SHOULD be checked against the
   security requirements of the requested session to make sure that the
   resumed session provides proper security.

4.3.  Sending Data

   All syslog messages MUST be sent as TLS "application data".  It is
   possible for multiple syslog messages to be contained in one TLS
   record or for a single syslog message to be transferred in multiple
   TLS records.  The application data is defined with the following ABNF
   [RFC5234] expression:

   APPLICATION-DATA = 1*SYSLOG-FRAME

   SYSLOG-FRAME = MSG-LEN SP SYSLOG-MSG

   MSG-LEN = NONZERO-DIGIT *DIGIT

   SP = %d32

   NONZERO-DIGIT = %d49-57

   DIGIT = %d48 / NONZERO-DIGIT

   SYSLOG-MSG is defined in the syslog protocol [RFC5424].

4.3.1.  Message Length

   The message length is the octet count of the SYSLOG-MSG in the
   SYSLOG-FRAME.  A transport receiver MUST use the message length to
   delimit a syslog message.  There is no upper limit for a message
   length per se.  However, in order to establish a baseline for
   interoperability, this specification requires that a transport
   receiver MUST be able to process messages with a length up to and
   including 2048 octets.  Transport receivers SHOULD be able to process
   messages with lengths up to and including 8192 octets.

4.4.  Closure

   A transport sender MUST close the associated TLS connection if the
   connection is not expected to deliver any syslog messages later.  It
   MUST send a TLS close_notify alert before closing the connection.  A
   transport sender (TLS client) MAY choose to not wait for the
   transport receiver's close_notify alert and simply close the
   connection, thus generating an incomplete close on the transport
   receiver (TLS server) side.  Once the transport receiver gets a
   close_notify from the transport sender, it MUST reply with a
   close_notify unless it becomes aware that the connection has already
   been closed by the transport sender (e.g., the closure was indicated
   by TCP).

   When no data is received from a connection for a long time (where the
   application decides what "long" means), a transport receiver MAY
   close the connection.  The transport receiver (TLS server) MUST
   attempt to initiate an exchange of close_notify alerts with the
   transport sender before closing the connection.  Transport receivers
   that are unprepared to receive any more data MAY close the connection
   after sending the close_notify alert, thus generating an incomplete
   close on the transport sender side.

5.  Security Policies

   Different environments have different security requirements and
   therefore would deploy different security policies.  This section
   discusses some of the security policies that may be implemented by
   syslog transport receivers and syslog transport senders.  The
   security policies describe the requirements for authentication and
   authorization.  The list of policies in this section is not
   exhaustive and other policies MAY be implemented.

   If the peer does not meet the requirements of the security policy,
   the TLS handshake MUST be aborted with an appropriate TLS alert.

5.1.  End-Entity Certificate Based Authorization

   In the simplest case, the transport sender and receiver are
   configured with information necessary to identity the valid
   end-entity certificates of its authorized peers.

   Implementations MUST support specifying the authorized peers using
   certificate fingerprints, as described in Section 4.2.1 and
   Section 4.2.2.

5.2.  Subject Name Authorization

   Implementations MUST support certification path validation [RFC5280].
   In addition, they MUST support specifying the authorized peers using
   locally configured host names and matching the name against the
   certificate as follows.

   o  Implementations MUST support matching the locally configured host
      name against a dNSName in the subjectAltName extension field and
      SHOULD support checking the name against the common name portion
      of the subject distinguished name.

   o  The '*' (ASCII 42) wildcard character is allowed in the dNSName of
      the subjectAltName extension (and in common name, if used to store
      the host name), but only as the left-most (least significant) DNS
      label in that value.  This wildcard matches any left-most DNS
      label in the server name.  That is, the subject *.example.com
      matches the server names a.example.com and b.example.com, but does
      not match example.com or a.b.example.com.  Implementations MUST
      support wildcards in certificates as specified above, but MAY
      provide a configuration option to disable them.

   o  Locally configured names MAY contain the wildcard character to
      match a range of values.  The types of wildcards supported MAY be
      more flexible than those allowed in subject names, making it
      possible to support various policies for different environments.
      For example, a policy could allow for a trust-root-based
      authorization where all credentials issued by a particular CA
      trust root are authorized.

   o  If the locally configured name is an internationalized domain
      name, conforming implementations MUST convert it to the ASCII
      Compatible Encoding (ACE) format for performing comparisons, as
      specified in Section 7 of [RFC5280].

   o  Implementations MAY support matching a locally configured IP
      address against an iPAddress stored in the subjectAltName
      extension.  In this case, the locally configured IP address is
      converted to an octet string as specified in [RFC5280], Section
      4.2.1.6.  A match occurs if this octet string is equal to the
      value of iPAddress in the subjectAltName extension.

5.3.  Unauthenticated Transport Sender

   In some environments the authenticity of syslog data is not important
   or is verifiable by other means, so transport receivers may accept
   data from any transport sender.  To achieve this, the transport
   receiver can skip transport sender authentication (by not requesting
   client authentication in TLS or by accepting any certificate).  In
   this case, the transport receiver is authenticated and authorized,
   however this policy does not protect against the threat of transport
   sender masquerade described in Section 2.  The use of this policy is
   generally NOT RECOMMENDED for this reason.

5.4.  Unauthenticated Transport Receiver

   In some environments the confidentiality of syslog data is not
   important, so messages are sent to any transport receiver.  To
   achieve this, the transport sender can skip transport receiver
   authentication (by accepting any certificate).  While this policy
   does authenticate and authorize the transport sender, it does not
   protect against the threat of transport receiver masquerade described
   in Section 2, leaving the data sent vulnerable to disclosure and
   modification.  The use of this policy is generally NOT RECOMMENDED
   for this reason.

5.5.  Unauthenticated Transport Receiver and Sender

   In environments where security is not a concern at all, both the
   transport receiver and transport sender can skip authentication (as
   described in Sections 5.3 and 5.4).  This policy does not protect
   against any of the threats described in Section 2 and is therefore
   NOT RECOMMENDED.

6.  Security Considerations

   This section describes security considerations in addition to those
   in [RFC5246].

6.1.  Authentication and Authorization Policies

   Section 5 discusses various security policies that may be deployed.
   The threats in Section 2 are mitigated only if both the transport
   sender and transport receiver are properly authenticated and
   authorized, as described in Sections 5.1 and 5.2.  These are the
   RECOMMENDED configurations for a default policy.

   If the transport receiver does not authenticate the transport sender,
   it may accept data from an attacker.  Unless it has another way of
   authenticating the source of the data, the data should not be
   trusted.  This is especially important if the syslog data is going to
   be used to detect and react to security incidents.  The transport
   receiver may also increase its vulnerability to denial of service,
   resource consumption, and other attacks if it does not authenticate
   the transport sender.  Because of the increased vulnerability to
   attack, this type of configuration is NOT RECOMMENDED.

   If the transport sender does not authenticate the syslog transport
   receiver, then it may send data to an attacker.  This may disclose
   sensitive data within the log information that is useful to an
   attacker, resulting in further compromises within the system.  If a
   transport sender is operated in this mode, the data sent SHOULD be
   limited to data that is not valuable to an attacker.  In practice
   this is very difficult to achieve, so this type of configuration is
   NOT RECOMMENDED.

   Forgoing authentication and authorization on both sides allows for
   man-in-the-middle, masquerade, and other types of attacks that can
   completely compromise integrity and confidentiality of the data.
   This type of configuration is NOT RECOMMENDED.

6.2.  Name Validation

   The subject name authorization policy authorizes the subject in the
   certificate against a locally configured name.  It is generally not
   appropriate to obtain this name through other means, such as DNS
   lookup, since this introduces additional security vulnerabilities.

6.3.  Reliability

   It should be noted that the syslog transport specified in this
   document does not use application-layer acknowledgments.  TCP uses
   retransmissions to provide protection against some forms of data
   loss.  However, if the TCP connection (or TLS session) is broken for
   some reason (or closed by the transport receiver), the syslog
   transport sender cannot always know what messages were successfully
   delivered to the syslog application at the other end.

7.  IANA Considerations

7.1.  Port Number

   IANA assigned TCP port number 6514 in the "Registered Port Numbers"
   range with the keyword "syslog-tls".  This port will be the default
   port for syslog over TLS, as defined in this document.

8.  Acknowledgments

   Authors appreciate Eric Rescorla, Rainer Gerhards, Tom Petch, Anton
   Okmianski, Balazs Scheidler, Bert Wijnen, Martin Schuette, Chris
   Lonvick, and members of the syslog working group for their effort on
   issues resolving discussion.  Authors would also like to thank Balazs
   Scheidler, Tom Petch, and other persons for their input on security
   threats of syslog.  The authors would like to acknowledge David
   Harrington for his detailed reviews of the content and grammar of the
   document and Pasi Eronen for his contributions to certificate
   authentication and authorization sections.

9.  References

9.1.  Normative References

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

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

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

   [RFC5424]   Gerhards, R., "The Syslog Protocol", RFC 5424, March
               2009.

9.2.  Informative References

   [RFC4572]   Lennox, J., "Connection-Oriented Media Transport over the
               Transport Layer Security (TLS) Protocol in the Session
               Description Protocol (SDP)", RFC 4572, July 2006.

   [SYS-SIGN]  Kelsey, J., "Signed syslog Messages", Work in Progress,
               October 2007.

Authors' Addresses

   Fuyou Miao (editor)
   Huawei Technologies
   No. 3, Xinxi Rd
   Shangdi Information Industry Base
   Haidian District, Beijing  100085
   P. R. China

   Phone: +86 10 8288 2008
   EMail: miaofy@huawei.com
   URI:   www.huawei.com

   Yuzhi Ma (editor)
   Huawei Technologies
   No. 3, Xinxi Rd
   Shangdi Information Industry Base
   Haidian District, Beijing  100085
   P. R. China

   Phone: +86 10 8288 2008
   EMail: myz@huawei.com
   URI:   www.huawei.com


   Joseph Salowey (editor)
   Cisco Systems, Inc.
   2901 3rd. Ave
   Seattle, WA  98121
   USA

   EMail: jsalowey@cisco.com

AI ELI5

On this page
PROBLEMSyslog messages may cross several hops and untrusted networks. An attacker could impersonate a sender or receiver, modify messages or read sensitive content.
MECHANISMThe syslog sender acts as a TLS client and the receiver as a TLS server on TCP port 6514. Peers authenticate with certificates, and each message is sent as TLS application data prefixed with its length in octets.
WHY IT MATTERSTLS gives confidentiality, hop-by-hop integrity and authentication. Skipping authentication on either side is NOT RECOMMENDED. RFC 9662 updates this RFC.

§1Syslog Over TLS

RFC 5425 describes the use of Transport Layer Security (TLS, RFC 5246) to provide a secure connection for transporting syslog messages as defined in RFC 5424. It also describes the security threats to syslog and how TLS counters them.

The RFC uses these roles: an originator generates syslog content, a collector gathers it for analysis, and a relay forwards messages between originators, other relays and collectors. A transport sender passes messages to a transport protocol and a transport receiver takes them from it.

Computers write short notes about what happens to them. This RFC explains how to send those notes through a safe, locked pipe.

§2Threats to Syslog

Syslog messages may pass through several hops, and some networks on the way may not be trusted. The RFC names three primary threats.

  • Masquerade: an unauthorized sender talks to a legitimate receiver, or an unauthorized receiver tricks a sender into sending it messages.
  • Modification: an attacker between the two changes a message in transit.
  • Disclosure: an unauthorized party reads messages, which may hold sensitive data such as an administrator's password.

The secondary threat is message stream modification: deleting, replaying or reordering messages. Denial of service and traffic analysis are judged lesser threats and are not addressed.

Someone could pretend to be the mailman, scribble on the notes or read them. This RFC is about stopping that.

§3What TLS Provides

TLS counters the primary threats: confidentiality protects against disclosure, integrity checking protects against modification on a hop-by-hop basis, and server or mutual authentication protects against masquerade.

The protection is hop by hop and says nothing about message content. The authenticated identity of the sender, such as the subject name in its certificate, is not necessarily related to the HOSTNAME field of the syslog message. When authentication of the message origin is needed, the RFC points to signed syslog messages, which was a work in progress at the time.

The locked pipe keeps the note secret and unchanged between two neighbours. It does not prove who first wrote the note.

WHERE SYSLOG OVER TLS SITS
  1. Syslog messagesDefined in RFC 5424
  2. TLSConfidentiality, integrity, authentication
  3. TCPDefault port 6514

§4Opening and Closing the Connection

A transport sender is always the TLS client and a transport receiver is always the TLS server. The default is TCP port 6514. The sender opens the connection and starts the TLS handshake with a Client Hello, and may send its first syslog message once the handshake finishes.

Implementations MUST support TLS 1.2 and the mandatory-to-implement cipher suite TLS_RSA_WITH_AES_128_CBC_SHA. The RFC is assumed to apply to future TLS versions, whose own mandatory suite MUST then be supported. When a TLS session is resumed, its security parameters SHOULD be checked against the requirements of the new session.

For closing, a sender that expects no more messages MUST close the TLS connection and MUST send a close_notify alert first. A receiver that gets a close_notify MUST reply with one, unless it knows the connection is already closed. A receiver MAY close a connection that has been idle for a long time, but MUST attempt an exchange of close_notify alerts first.

The sender always knocks on the receiver's door at number 6514. When they are done, both say goodbye properly before hanging up.

§5Certificates and Fingerprints

Both sender and receiver MUST implement certificate-based authentication: validate the peer's certificate and check that the peer holds the matching private key (TLS does the second part). Two validation methods SHALL be implemented.

  • Certification path validation: the peer is configured with one or more trust anchors, typically root CA certificates, and validates the path as defined in RFC 5280. This suits a PKI deployment.
  • End-entity certificate matching: the peer is configured with what it needs to identify the valid certificates of its authorized peers, which can be self-signed. Implementations MUST support certificate fingerprints. This is a simple alternative to a PKI.

Both sides MUST be able to generate a key pair and a self-signed certificate if none is available otherwise, and MUST make their certificate fingerprints available through a management interface.

A fingerprint is the hash of the DER-encoded certificate, written as colon-separated hexadecimal bytes of 2 uppercase characters, with a label such as sha-1 in front. SHA-1 MUST be supported. A SHA-1 hash is 20 bytes, which gives a 65-character fingerprint string.

Each side shows an ID card. Either a trusted office vouches for the card, or you already wrote down the card's unique number and check it matches.

§6Sending Messages

All syslog messages MUST be sent as TLS application data. One TLS record may hold several messages, and one message may span several records, so each message is framed with its length. A frame is MSG-LEN SP SYSLOG-MSG: a decimal octet count with no leading zero, one space, then the syslog message from RFC 5424.

The receiver MUST use the length to find where a message ends. There is no upper limit on length per se, but receivers MUST handle messages up to and including 2048 octets and SHOULD handle up to and including 8192 octets.

Before each note, the sender writes how long it is. That way the receiver knows where one note stops and the next begins.

SYSLOG FRAMING ON TLS (RFC 5425, SECTION 4.3)
ABNF for the application data
APPLICATION-DATA = 1*SYSLOG-FRAME

SYSLOG-FRAME = MSG-LEN SP SYSLOG-MSG

MSG-LEN = NONZERO-DIGIT *DIGIT

SP = %d32

NONZERO-DIGIT = %d49-57

DIGIT = %d48 / NONZERO-DIGIT

§7Security Policies

The RFC lists policies and says the list is not exhaustive. If the peer does not meet the policy, the TLS handshake MUST be aborted with an appropriate TLS alert.

  • End-entity certificate authorization: authorized peers are identified by certificate fingerprints. MUST be supported.
  • Subject name authorization: certification path validation plus matching a locally configured host name against a dNSName in subjectAltName (MUST) or the common name (SHOULD). A wildcard asterisk is allowed only as the left-most DNS label, so a certificate name starting with an asterisk and then .example.com matches a.example.com but not example.com or a.b.example.com. Matching an IP address against iPAddress is a MAY.
  • Unauthenticated sender, unauthenticated receiver, or both: each skips authentication on one or both sides. All three are NOT RECOMMENDED, since they leave masquerade, disclosure and modification open.

You choose how strict to be about checking ID cards. Checking both sides is best, and skipping the check is a bad idea.

§8Security Considerations

The threats in the RFC are mitigated only if both sides are properly authenticated and authorized. That is the RECOMMENDED default policy. A receiver that does not authenticate senders may accept data from an attacker, and also raises its exposure to denial of service and resource consumption. A sender that does not authenticate the receiver may leak sensitive log data.

For name validation, it is generally not appropriate to learn the expected name through other means such as a DNS lookup, since that adds vulnerabilities. On reliability, the transport has no application-layer acknowledgments. If the TCP connection or TLS session breaks, the sender cannot always know which messages were delivered.

IANA assigned TCP port 6514 with the keyword syslog-tls.

If either side skips checking, a stranger could listen in or send fake notes. And the sender cannot always tell which notes made it before a break.

§9References