rfc-5848

Signed Syslog Messages

J. Kelsey, J. Callas, A. Clemm
date2010-05 streamIETF areasec wgsyslog statusPROPOSED STANDARD pages40 canonicalhttps://www.rfc-editor.org/rfc/rfc5848 doi10.17487/RFC5848
This document describes a mechanism to add origin authentication, message integrity, replay resistance, message sequencing, and detection of missing messages to the transmitted syslog messages. This specification is intended to be used in conjunction with the work defined in RFC 5424, "The Syslog Protocol". [STANDARDS-TRACK]

Extracted elements (28)

design-rationale §1

Signature Groups were introduced because in deployments where different messages (differentiated by PRI/Facility) are sent to different collectors, each collector must receive only the Signature Blocks covering its own messages. Grouping syslog messages by Signature Group ensures that Signature Blocks follow their corresponding messages to each collector.

syslog

design-rationale §5.1

The Payload Block is never sent directly but always fragmented into Certificate Block messages because certificates can legitimately exceed 2048 octets, which is the maximum syslog message length. Each Certificate Block carries a fragment of the Payload Block along with its own signature for authenticity.

syslog, pkix, security

interoperability-note §1

Multiple signers MAY coexist on a single host, each with its own keys and Signature Groups. Each signer must use a unique combination of APP-NAME and PROCID. The triple (HOSTNAME, APP-NAME, PROCID) uniquely identifies originators of syslog-sign messages across the network, provided signers use unique HOSTNAMEs.

syslog

normative-requirement §6 MUST

A collector MUST ignore duplicates of Signature Blocks and Certificate Blocks already received and authenticated. Collectors MUST also be able to cope with overlapping Signature Blocks.

syslog, security

normative-requirement §5.2.1 MUST

All implementations MUST support Key Blob Type 'C' (PKIX certificate per RFC 5280) to ensure at least one common Key Blob Type between sender and receiver for immediate validation.

syslog, pkix, security

normative-requirement §4.2.1 MUST

All implementations MUST support SHA1 as the hash algorithm; SHA256 SHOULD also be supported. These are identified by the hash algorithm octet in the Version field.

syslog, crypto, security

normative-requirement §5.2.2 MUST

Collectors MUST support X.509 certificate fingerprints for end-entity certificate matching, and MUST support configuring a list of HOSTNAMEs (as FQDNs or IP addresses) for each peer. Signer implementations MUST provide a means to generate a key pair and self-signed certificate.

syslog, pkix, security

normative-requirement §3 MUST

Each unique signer MUST have a unique APP-NAME and PROCID combination on each host. A Signature Block message MUST use the same HOSTNAME, APP-NAME, and PROC-ID as the corresponding Certificate Block messages containing the Payload Block.

syslog

normative-requirement §6.1.1 MUST

For TLS transport, the sender MUST send a fresh Certificate Block when a session is established, to keep sender and receiver synchronized with the most current Certificate Block.

syslog, tls, security

normative-requirement §1 MUST

Implementations of syslog-sign MUST also implement RFC 5424. Because syslog-sign uses STRUCTURED-DATA elements defined in RFC 5424, that protocol is a prerequisite.

syslog, security

normative-requirement §3 MUST

Syslog messages MUST NOT be changed in transit; any alteration or truncation renders signing invalid. Signer and collector implementations MUST support messages up to and including 2048 octets to minimize truncation.

syslog, security

normative-requirement §4.1 MUST NOT

Syslog-sign messages (Signature Block messages and Certificate Block messages) MUST NOT themselves be signed by a Signature Block. Collectors know to process these differently from normal messages.

syslog, security

normative-requirement §4.2.2 MUST

The Reboot Session ID MUST strictly monotonically increase after each reboot to allow collectors to distinguish messages across reboots. If the signer cannot guarantee monotonic increase, RSID MUST be set to 0.

syslog, security

normative-requirement §3 RECOMMENDED

UDP is NOT RECOMMENDED for use with signed syslog because its recommended payload size of 480 octets is too restrictive for Signature Block messages. TLS transport (RFC 5425) is the preferred transport.

syslog, security, udp

protocol-element §4.2.8

The digital Signature (SIGN) in both Signature Blocks and Certificate Blocks is calculated over the entire formatted message before the SIGN parameter is added. For OpenPGP DSA, the signature contains DSA values r and s as concatenated multiprecision integers, base64 encoded.

syslog, crypto, security

protocol-element §4.2.7

The Hash Block (HB) contains base64-encoded hashes of entire syslog messages, ordered left to right, space-separated, all within a single SD-PARAM. Each hash covers the complete syslog message starting from '<' of the PRI; hash size MUST NOT be shorter than 160 bits.

syslog, crypto, security

protocol-element §5.2

The Payload Block contains key management information conveyed via Certificate Block fragments. It consists of a full local timestamp, a one-octet Key Blob Type ('C'=PKIX cert, 'P'=OpenPGP cert, 'K'=raw public key, 'N'=pre-distributed, 'U'=installation-specific), and the base64-encoded key blob. There is exactly one Payload Block per reboot session.

syslog, crypto, pkix, security

protocol-element §4.2.3

The Signature Group (SG) and Signature Priority (SPRI) fields together define how syslog messages are grouped for signing. SG=0 means one group for all messages; SG=1 means each PRI value is its own group; SG=2 means groups cover PRI ranges; SG=3 means groups assigned by an out-of-band scheme.

syslog

registry §9.4

IANA created the 'Syslog syslog-sign Key Blob Type' registry for the one-octet Key Blob Type field, with initial values: 'C' (PKIX certificate), 'P' (OpenPGP certificate), 'K' (raw public key), 'N' (pre-distributed), 'U' (installation-specific).

syslog, registry, crypto, pkix

registry §9.3

IANA created the 'Syslog syslog-sign SG Field' registry for Signature Group field values (0-3), defining the four Signature Group assignment schemes.

syslog, registry

registry §9.2

IANA created the 'Syslog syslog-sign Version' registry for the VER field, initially populated with protocol version '01', hash algorithms SHA1 ('1') and SHA256 ('2'), and signature scheme OpenPGP DSA ('1').

syslog, registry, crypto

registry §9.1

IANA registered two new SD-IDs for syslog Structured Data: 'ssign' for Signature Block messages and 'ssign-cert' for Certificate Block messages. These are registered in the Syslog Structured Data ID Values registry.

syslog, registry

security-consideration §8.3

Message authenticity is not established until the Signature Block is verified. With Signature Block checking, an attacker can only forge messages if they compromise the signer's private key. Collectors should not assume message authenticity before validation.

syslog, security

security-consideration §8.10

The online log verification process is susceptible to flooding (DoS) attacks. An attacker can flood the collector with unsigned messages, causing legitimate messages to roll off the 'Waiting for Signature' queue before their Signature Blocks arrive. Implementers must dimension queues sufficiently large.

syslog, security

security-consideration §8.8

Unless TLS is used as a transport, all event messages, Certificate Blocks, and Signature Blocks are sent in plaintext, allowing both network administrators and attackers to observe the contents. TLS transport (RFC 5425) is recommended to protect confidentiality.

syslog, security, tls, privacy

wire-format §5.3.2

The Certificate Block is encoded as an SD ELEMENT with SD-ID 'ssign-cert', containing fields in fixed order: VER (4 octets), RSID (1-10 octets), SG (1 octet), SPRI (1-3 octets), TPBL (1-8 octets), INDEX (1-8 octets), FLEN (1-4 octets), FRAG (variable, base64), SIGN (variable, base64).

syslog, security

wire-format §4.2

The Signature Block is encoded as an SD ELEMENT with SD-ID 'ssign', containing fields in fixed order: VER (4 octets), RSID (1-10 octets), SG (1 octet), SPRI (1-3 octets), GBC (1-10 octets), FMN (1-10 octets), CNT (1-2 octets), HB (variable, base64), SIGN (variable, base64). All binary values are base64 encoded per RFC 4648.

syslog, security

wire-format §4.2.1

The Version field (VER) is 4 octets: the first 2 octets encode the protocol version ('01' for this specification), the 3rd octet encodes the hash algorithm ('1'=SHA1, '2'=SHA256), and the 4th octet encodes the signature scheme ('1'=OpenPGP DSA). Full values are '0111' (SHA1) or '0121' (SHA256).

syslog, crypto