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.




Miao, et al.                Standards Track                     [Page 1]

RFC 5425            TLS Transport Mapping for Syslog          March 2009


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




















Miao, et al.                Standards Track                     [Page 2]

RFC 5425            TLS Transport Mapping for Syslog          March 2009


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:





Miao, et al.                Standards Track                     [Page 3]

RFC 5425            TLS Transport Mapping for Syslog          March 2009


  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



Miao, et al.                Standards Track                     [Page 4]

RFC 5425            TLS Transport Mapping for Syslog          March 2009


  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.



Miao, et al.                Standards Track                     [Page 5]

RFC 5425            TLS Transport Mapping for Syslog          March 2009


  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.








Miao, et al.                Standards Track                     [Page 6]

RFC 5425            TLS Transport Mapping for Syslog          March 2009


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.





Miao, et al.                Standards Track                     [Page 7]

RFC 5425            TLS Transport Mapping for Syslog          March 2009


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.






Miao, et al.                Standards Track                     [Page 8]

RFC 5425            TLS Transport Mapping for Syslog          March 2009


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



Miao, et al.                Standards Track                     [Page 9]

RFC 5425            TLS Transport Mapping for Syslog          March 2009


  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.



Miao, et al.                Standards Track                    [Page 10]

RFC 5425            TLS Transport Mapping for Syslog          March 2009


  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




Miao, et al.                Standards Track                    [Page 11]

RFC 5425            TLS Transport Mapping for Syslog          March 2009


  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.


















Miao, et al.                Standards Track                    [Page 12]

RFC 5425            TLS Transport Mapping for Syslog          March 2009


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: [email protected]
  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: [email protected]
  URI:   www.huawei.com


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

  EMail: [email protected]



















Miao, et al.                Standards Track                    [Page 13]