Internet DRAFT - draft-dskoll-reputation-reporting
draft-dskoll-reputation-reporting
Network Working Group D. Skoll
Internet-Draft Roaring Penguin Software Inc.
Intended status: Informational December 16, 2011
Expires: June 18, 2012
Reputation Reporting Protocol
draft-dskoll-reputation-reporting-04
Abstract
This draft specifies a protocol for reporting various events
associated with IP addresses. These events can be collected and
aggregated to form a database containing information about the
reputation of IP addresses.
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 18, 2012.
Copyright Notice
Copyright (c) 2011 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.
Skoll Expires June 18, 2012 [Page 1]
Internet-Draft Reputation Reporting Protocol December 2011
Table of Contents
1. Requirements notation . . . . . . . . . . . . . . . . . . . . 3
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. Report Format . . . . . . . . . . . . . . . . . . . . . . . . 4
4.1. Subreports . . . . . . . . . . . . . . . . . . . . . . . . 5
4.2. Subreport Formats . . . . . . . . . . . . . . . . . . . . 5
5. Subreport Format Definitions . . . . . . . . . . . . . . . . . 6
5.1. IP Address Subreports . . . . . . . . . . . . . . . . . . 6
5.1.1. IP Address Event Types . . . . . . . . . . . . . . . . 6
5.2. Repeated IP Address Subreports . . . . . . . . . . . . . . 7
5.3. Vendor Number Subreport . . . . . . . . . . . . . . . . . 7
5.4. Software Name Subreport . . . . . . . . . . . . . . . . . 7
5.5. Software Version Subreport . . . . . . . . . . . . . . . . 8
5.6. End-User Subreport . . . . . . . . . . . . . . . . . . . . 8
5.7. Vendor-Specific Subreport . . . . . . . . . . . . . . . . 8
6. Hierarchical Aggregation . . . . . . . . . . . . . . . . . . . 8
6.1. Collector Level Subreport . . . . . . . . . . . . . . . . 9
7. Report Restrictions . . . . . . . . . . . . . . . . . . . . . 9
8. Report Layout . . . . . . . . . . . . . . . . . . . . . . . . 10
8.1. Sample Report . . . . . . . . . . . . . . . . . . . . . . 11
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
10. Security Considerations . . . . . . . . . . . . . . . . . . . 12
11. Normative References . . . . . . . . . . . . . . . . . . . . . 13
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 14
Skoll Expires June 18, 2012 [Page 2]
Internet-Draft Reputation Reporting Protocol December 2011
1. Requirements notation
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
2. Introduction
Several organizations (Project Honeypot, Spamhaus, RepuScore, etc.)
maintain databases detailing the reputation of various IP address.
These organizations use various ad hoc methods to collect the
reputation data. There is no standard for reporting events to
reputation-collectors; this makes it hard to instrument a large
number of systems to be data gatherers in a standard way.
This draft proposes a standard for reporting events back to a
reputation-collecting system. A standard way to report events will
make it easy to instrument systems to collect data and report it to
one or more reputation-collection systems.
This standard has the following goals:
1. To be bandwidth-efficient. The overhead for event-reporting
should be as small as possible.
2. To include security mechanisms such as authentication and anti-
replay mechanisms.
3. To handle both IPv4 and IPv6.
4. To be open to extension in future.
5. To be scalable. Sending reports should be as quick and easy as
possible. The hosts receiving reports should be able to receive
and process a large volume of reports with as little CPU and
network overhead as possible.
This protocol is currently in use by Roaring Penguin Software Inc's
CanIt anti-spam products. A web page devoted to the protocol is
found at http://www.mimedefang.org/reputation; this page includes a
link to a mailing list for discussions of the protocol.
3. Definitions
An EVENT is the basic unit of reputation reporting. An event
consists of an IPv4 or IPv6 address and an associated event TYPE.
Examples of event types are "SMTP client at IP address issued an SMTP
RCPT command for a nonexistent recipient" or "SMTP client at IP
address delivered an email message considered by a human to be spam."
Skoll Expires June 18, 2012 [Page 3]
Internet-Draft Reputation Reporting Protocol December 2011
A SUBREPORT is usually a list of one or more events. However, a
subreport may contain other types of information such as software
name, version, etc.
A SENSOR is a system that reports events.
An AGGREGATOR is a system that receives events and builds a
reputation database.
A REPORT is a series of subreports sent from a sensor to an
aggregator.
A USER NAME is included in each report. The user name is a key used
by the aggregator to look up a shared secret.
A SHARED SECRET is used by the sensor and aggregator to authenticate
reports.
A REPUTATION DATABASE is a dictionary indexed by IPv4 or IPv6 address
that contains reputation information about a particular IP address.
Note that the exact format of the reputation database as well as what
constitutes "reputation" are beyond the scope of this document. We
are concerned only with a standard for reporting events.
4. Report Format
Reports are transported via UDP. The aggregator SHOULD listen for
UDP packets on port 6568, the IANA-assigned port number for this
protocol [PORTS].
A report consists of the following items:
o A one-byte protocol version number. The version number is 2. An
aggregator MUST ignore a report with a version number other than
2.
o A one-byte number indicating the length of a user name. A
username MUST range from 0 to 63 bytes in length. An aggregator
MUST reject a report with an over-long user name.
o A sequence of bytes indicating a user name. This name is not
terminated with a zero byte. While this document does not specify
the form of a user name, it SHOULD be a valid UTF-8 string.
o Eight randomly-generated bytes. These bytes SHOULD be generated
with a cryptographically-secure random number generator.
o A four-byte timestamp in network byte order. This is constructed
by computing the current time in seconds since midnight, January 1
1970 UTC (ignoring leap-seconds) as an unsigned integer, and
taking the low-order 32 bits of the result.
Skoll Expires June 18, 2012 [Page 4]
Internet-Draft Reputation Reporting Protocol December 2011
o One or more SUBREPORTS.
o EOR (End of Reports). This is a single byte with value 0 used to
mark the end of the SUBREPORTS section.
o Finally, ten bytes consisting of the ten most-significant bytes
(in network byte order) of the SHA1 HMAC digest [RFC2104] of all
data from the version number up to and including the EOR byte.
The password used to calculate the HMAC is a shared secret known
by the sensor; the aggregator MUST look up the secret based on the
user name in the report. An aggregator MUST reject a report that
fails to validate. It SHOULD log information about invalid
reports.
4.1. Subreports
A subreport consists of a three-byte preamble followed by the
subreport contents. The three-byte preamble consists of:
o One FORMAT byte.
o A two-byte LENGTH field. This is a 16-bit unsigned integer in
network byte order indicating the length of the subreport
contents, not including the three-byte preamble.
4.2. Subreport Formats
The following subreport formats are defined. The value of the FORMAT
byte is given in decimal.
o 0. RESERVED. A sensor MUST NOT create a subreport with a FORMAT
value of 0 because that value is used as the EOR byte in the
message specification.
o 1. IPv4-EVENTS. The LENGTH must be a multiple of 5.
o 2. IPv6-EVENTS. The LENGTH must be a multiple of 17.
o 3. REPEATED-IPv4-EVENTS. The LENGTH must be a multiple of 6.
o 4. REPEATED-IPv6-EVENTS. The LENGTH must be a multiple of 18.
o 5. VENDOR-NUMBER. The LENGTH MUST be 3.
o 6. SOFTWARE-NAME. The LENGTH can range from 1 to 63.
o 7. SOFTWARE-VERSION. The LENGTH can range from 1 to 31.
o 8. END-USER. The LENGTH can range from 1 to 31.
o 9 through 126. RESERVED. A sensor MUST NOT create a subreport
with a RESERVED FORMAT value. An aggregator MUST ignore such a
subreport.
o 127. COLLECTOR-LEVEL. The LENGTH MUST be 2. See the section
"Hierarchical Aggregation".
o 128 through 254. VENDOR-SPECIFIC. The report MUST contain a
VENDOR-NUMBER subreport before any VENDOR-SPECIFIC subreport.
o 255. RESERVED.
An aggregator MUST skip over subreports with format values it does
Skoll Expires June 18, 2012 [Page 5]
Internet-Draft Reputation Reporting Protocol December 2011
not understand. (It can do this by skipping ahead LENGTH bytes.)
An aggregator MUST ignore the entire report if any subreports have
invalid LENGTHs. For example, it MUST reject a subreport of IPv4-
EVENTS if the LENGTH is not a multiple of 5. The aggregator SHOULD
log information about invalid reports.
5. Subreport Format Definitions
The following sections define exactly how various subreports are
formatted.
5.1. IP Address Subreports
FORMAT values 1 and 2 specify IPv4 and IPv6 subreports, respectively.
Each IPv4 and IPv6 subreport contains one or more events. The length
of each IPv4 event is 5, and the length of each IPv6 event is 17.
The events themselves consist of:
o The 4-byte IPv4 address or the 16-byte IPv6 address in network
byte order.
o A one-byte EVENT TYPE.
5.1.1. IP Address Event Types
The following event types are defined for IPv4 and IPv6 events:
o 0. RESERVED: Event type 0 is reserved. A sensor MUST NOT report
events of type 0.
o 1. GREYLISTED: An SMTP client at the specified IP address was
greylisted. Greylisting is described in [GREY].
o 2. UNGREYLISTED: An SMTP client at the specified IP address was
previously greylisted, but has now passed the greylisting test.
o 3. AUTO-SPAM: An SMTP client at the specified IP address sent a
message that was considered to be spam by automatic filtering
software.
o 4. HAND-SPAM: An SMTP client at the specified IP address sent a
message that was considered to be spam by a human being.
o 5. AUTO-HAM: An SMTP client at the specified IP address sent a
message that was considered to be non-spam by automatic filtering
software.
o 6. HAND-HAM: An SMTP client at the specified IP address sent a
message that was considered to be non-spam by a human being.
o 7. VALID-RECIPIENT: An SMTP client at the specified IP address
issued an SMTP RCPT command that specified a valid recipient
address.
Skoll Expires June 18, 2012 [Page 6]
Internet-Draft Reputation Reporting Protocol December 2011
o 8. INVALID-RECIPIENT: An SMTP client at the specified IP address
issued an SMTP RCPT command that specified an invalid recipient
address.
o 9. VIRUS: An SMTP client at the specified IP address transmitted
a message considered to be a virus by virus-scanning software.
o 10 - 255. FUTURE: Event types ranging from 10 to 255 are reserved
for future use.
5.2. Repeated IP Address Subreports
FORMAT values 3 and 4 specify REPEATED-IPv4 and REPEATED-IPv6
subreports, respectively. Each REPEATED-IPv4 and REPEATED-IPv6
subreport contains one or more events. The length of each REPEATED-
IPv4 event is 6, and the length of each REPEATED-IPv6 event is 18.
The events themselves consist of:
o The 4-byte IPv4 address or the 16-byte IPv6 address in network
byte order.
o A one-byte EVENT TYPE.
o A one-byte REPEAT. This byte is interpreted as an unsigned
number. It MUST be greater than or equal to two. A REPEATED
event MUST be interpreted exactly as if REPEAT non-repeated events
were received.
The EVENT TYPE field for a REPEATED-IPv4 or REPEATED-IPv6 event is
exactly the same as for IPv4 or IPv6 events. The extra REPEAT byte
allows a sensor to compress up to 255 identical IP address events
into a single REPEATED event.
5.3. Vendor Number Subreport
FORMAT value 5 specifies the VENDOR-NUMBER subreport. This subreport
MUST have a LENGTH of 3. The 3-byte content of the subreport is a
24-bit unsigned integer in network byte order specifying an IANA-
assigned Private Enterprise Number [PEN]. The VENDOR-NUMBER
subreport is only required if there are subsequent VENDOR-SPECIFIC
subreports.
5.4. Software Name Subreport
FORMAT value 6 specifies the SOFTWARE-NAME subreport. The LENGTH can
range from 1 to 63. The contents MUST be a valid UTF-8 string
specifying the name of the software running on the aggregator. The
string MUST NOT be zero-terminated. An aggregator MAY include a
SOFTWARE-NAME subreport in each report, but MUST NOT include more
than one SOFTWARE-NAME subreport.
Skoll Expires June 18, 2012 [Page 7]
Internet-Draft Reputation Reporting Protocol December 2011
5.5. Software Version Subreport
FORMAT value 7 specifies the SOFTWARE-VERSION subreport. The LENGTH
can range from 1 to 31. The contents MUST be a valid UTF-8 string
(and SHOULD be a valid ASCII string) specifying the version of the
software running on the aggregator. The string MUST NOT be zero-
terminated.
An aggregator MAY include a SOFTWARE-VERSION subreport in each
report, but MUST NOT include more than one SOFTWARE-VERSION
subreport. If an aggregator includes a SOFTWARE-VERSION subreport,
it MUST also include a SOFTWARE-NAME subreport.
5.6. End-User Subreport
FORMAT value 8 specifies an END-USER subreport. This report, if
present, provides additional information about the specific user who
generated subsequent subreports. For example, if an ISP is reporting
events, the END-USER subreport may contain enough information for the
ISP to determine which of its subscribers reported the events. The
contents of the END-USER subreport are a sequence of bytes ranging in
length from 1 to 31 bytes. The contents are opaque and have meaning
only to the organization running the sensor.
5.7. Vendor-Specific Subreport
FORMAT values 128 through 254 specify a VENDOR-SPECIFIC subreport. A
VENDOR-SPECIFIC subreport MUST be preceded by a VENDOR-NUMBER
subreport. A given report MAY contain more than one VENDOR-NUMBER
subreport; the interpretation of a VENDOR-SPECIFIC subreport MUST be
made according to the VENDOR-NUMBER subreport that most closely
preceded the VENDOR-SPECIFIC subreport.
The contents of the subreport are vendor-specific and not defined
here. An aggregator that does not understand a VENDOR-SPECIFIC
subreport for a given VENDOR-NUMBER MUST ignore the subreport.
6. Hierarchical Aggregation
Normally, a sensor detects events directly (for example, it
communicates with an MTA to detect events) and reports them to an
aggregator, which builds the event database. However, it may be
desirable to have an aggregator take all of the events from its
sensors and report them to a higher-level "upstream" aggregator.
Allowing aggregators to report events to other aggregators introduces
the possibility of reporting loops. To break these loops,
Skoll Expires June 18, 2012 [Page 8]
Internet-Draft Reputation Reporting Protocol December 2011
aggregators MUST include a COLLECTOR-LEVEL subreport. It MUST be the
first subreport in the report.
A sensor that detects events directly SHOULD NOT include a COLLECTOR-
LEVEL subreport. However, if it does include one, it MUST specify a
level of zero.
An aggregator that will forward reports to another aggregator MUST be
configured to have an "intrinsic level" greater than zero. The
aggregator MUST reject reports with a COLLECTOR-LEVEL greater than or
equal to its intrinsic level. When the aggregator forwards reports,
it MUST include a COLLECTOR-LEVEL subreport containing its intrinsic
level. (If the original report included a COLLECTOR-LEVEL subreport,
the aggregator MUST NOT include the original COLLECTOR-LEVEL report,
but MUST replace it with its own COLLECTOR-LEVEL.) Note that
assignment and management of intrinsic levels is beyond the scope of
this document; such assignment must be agreed upon by aggregator
managers based on the hierarchy of sensors and aggregators.
6.1. Collector Level Subreport
FORMAT value 127 specifies the COLLECTOR-LEVEL subreport. The LENGTH
MUST be 2, and the contents are an unsigned 16-bit integer in network
byte order specifying the intrinsic level of the agent sending the
report. If the COLLECTOR-LEVEL subreport is present, it MUST be the
first subreport. If it is missing, the aggregator MUST assume a
COLLECTOR-LEVEL of zero.
7. Report Restrictions
A sensor MUST NOT report GREYLISTED or UNGREYLISTED events unless it
implements greylisting. A sensor MUST NOT report HAND-SPAM or HAND-
HAM events unless it has a reliable system for accepting a human's
decision about a message and can show beyond a reasonable doubt that
a human in fact made the decision about the reported message. A
sensor MUST NOT report VALID-RECIPIENT or INVALID-RECIPIENT events
unless it is capable of validating recipient addresses.
A sensor MUST NOT report events for an IPv4 address that is not a
globally-routable unicast address. In particular, no IPv4 address in
the Private Address Space of [RFC1918] should appear in a report, nor
should any address in 127/8 nor 224/4. An aggregator MUST ignore
such addresses and SHOULD log the fact that they were received.
A sensor MUST NOT report events for an IPv6 address that is not an
Aggregatable Global Unicast Address as defined in [RFC4291]. An
IPv4-compatible IPv6 address or an IPv4-mapped IPv6 address MUST be
Skoll Expires June 18, 2012 [Page 9]
Internet-Draft Reputation Reporting Protocol December 2011
reported as an IPv4 event and not an IPv6 event. An aggregator MUST
ignore events that violate this requirement and SHOULD log the fact
that they were received.
A sensor MUST NOT report a VIRUS event unless a virus was detected
using a signature-based virus scanner.
A sensor SHOULD include as many events in its report as necessary to
make the report size at least 400 bytes. A sensor MAY send out a
shorter report, but MUST NOT do so unless failing to do so would
result in loss of data OR unless it has not sent a report within the
last hour. For example, if a sensor process is about to exit and has
buffered events in memory, it SHOULD report the buffered events
before exiting, even if the report size would be less than 400 bytes
and even if a report has been sent within the last hour.
A sensor SHOULD NOT send a report that would exceed 492 bytes unless
it has a priori knowledge that such a large UDP datagram will be
received intact by the aggregator. An aggregator MUST be prepared to
handle a report as large as the largest possible UDP datagram (65507
bytes of actual data.)
A sensor MUST NOT send an empty report (that is, a report with no
subreports.)
When an aggregator logs information about a report, it MUST log the
originating IP address of the report. If the report is well-formed,
it MUST log the user name associated with the report. It SHOULD log
additional information concerning the disposition of the report and
the reason for the disposition.
If Hierarchical Aggregation is being used, a sensor MUST NOT report
events to more than one aggregator. A lower-level aggregator MUST
NOT forward events to more than one higher-level aggregator. These
restrictions are required to avoid the possibility of counting the
same event more than once.
8. Report Layout
The following diagram illustrates the layout of a report. The
version byte starts immediately after the UDP header.
Skoll Expires June 18, 2012 [Page 10]
Internet-Draft Reputation Reporting Protocol December 2011
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VERSION (=2) | USERNAME LEN | USERNAME ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| USERNAME continued |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| EIGHT RANDOM BYTES |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
| EIGHT RANDOM BYTES continued |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TIMESTAMP |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| FORMAT 1 | LENGTH 1 | DATA 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DATA 1 CONTINUED ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| FORMAT 2 | LENGTH 2 | DATA 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DATA 2 CONTINUED ... | EOR (=0) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| HMAC DIGEST |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| HMAC DIGEST continued |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| HMAC DIGEST continued |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Note that there are no alignment requirements or padding bytes. The
preceding figure shows some fields aligned to a four-byte boundary
purely for ease of drawing.
8.1. Sample Report
The following figure shows a sample report. The report is from the
user "dfs" with password "foo". It contains two IPv4 events:
192.0.2.2 sent mail automatically classified as spam, and 192.0.2.3
was greylisted. There is a repeated IPv4 event: 192.0.2.4 sent to an
invalid recipient 3 times. Finally, There is one IPv6 event: 2001:
db8:1d:e4:2e0:18ff:feab:147f sent mail to a valid recipient. The
bytes are shown in hexadecimal.
Skoll Expires June 18, 2012 [Page 11]
Internet-Draft Reputation Reporting Protocol December 2011
02 -- Version 2 of the protocol
03 -- Length of user name is 3 bytes
64 66 73 -- "dfs" in UTF-8
2a 9a 82 d6 51 29 64 f7 -- 8 random bytes
4b d9 da eb -- 32-bit timestamp
01 00 0a -- Two IPv4 events (Fmt 1, Len 10)
c0 00 02 02 03 -- 192.0.2.2 sent auto-spam (event type 3)
c0 00 02 03 01 -- 192.0.2.3 was greylisted (event type 1)
03 00 06 -- One Repeated-IPv4 event (Fmt 3, Len 6)
c0 00 02 04 08 03 -- 192.0.2.4 sent to invalid recip 3 times.
02 00 11 -- One IPv6 event (Fmt 2, Len 17 decimal)
20 01 0d b8 00 1d 00 e4 -- IPv6 address (first 8 bytes)
02 e0 18 ff fe ab 14 7f -- IPv6 address (last 8 bytes)
07 -- Event type 7 (Valid Recipient)
00 -- EOR (End of Reports) byte
0c 10 51 0f 5d -- 10-byte truncated SHA1 HMAC
7e a1 e0 aa 20 -- 10-byte truncated SHA1 HMAC cont'd
9. IANA Considerations
This document defines a one-byte SUBREPORT FORMAT. Formats 0 through
8 and 127 are defined in Section 4.2 of this document. The IANA
should set up the "IP Reputation Reporting Format Numbers" registry
for registering formats 9 through 126. Formats 128 through 254 are
available for private use without requiring IANA registration.
Format 255 should not be used.
This document defines a one-bye EVENT TYPE. Event types 1 through 9
are described in Section 5.1.1 of this document. Event type 0 is
reserved. The IANA should set up the "IP Reputation Reporting Event
Types" registry for registering event types 10 through 255.
10. Security Considerations
Because reports are transmitted via UDP, aggregators are vulnerable
to IP address spoofing. An aggregator MAY use techniques other than
HMAC verification to reject reports. For example, if it knows that a
particular user always sends reports from a restricted set of IP
addresses, it MAY discard reports claiming to be from that user if
they originate from outside the restricted set of addresses. The
aggregator SHOULD log information about discarded reports.
Reports are transmitted in the clear. An eavesdropper can easily
sniff user names from the reports. The eavesdropper can also gain
information about SMTP traffic as seen by sensors. If this is
undesirable, the sensor SHOULD arrange to transmit data to the
Skoll Expires June 18, 2012 [Page 12]
Internet-Draft Reputation Reporting Protocol December 2011
aggregator over a secure channel using IPSec or some other VPN
solution.
The shared secret SHOULD be at least 8 bytes long and SHOULD be
generated by a cryptographically-secure random number generator. The
shared secret SHOULD NOT be chosen by a human being because of the
risk of picking a weak secret or a secret guessable from the user
name.
An aggregator SHOULD use the time stamp and random-number fields to
detect duplicate reports and fend off replay attacks. An aggregator
SHOULD NOT accept a report whose timestamp is more than two minutes
away from the current time. (For this reason, both aggregators and
sensors SHOULD synchronize their clocks to a standard time source
using NTP [RFC1305].)
Aggregators implicitly trust sensors. Therefore, aggregator
administrators SHOULD ensure that sensor administrators follow
security best-practices. Both aggregator and sensor administrators
MUST take the utmost care to keep their shared secret from leaking
out.
11. Normative References
[GREY] Harris, E., "The Next Step in the Spam Control War:
Greylisting", August 2003.
[PEN] IANA, "Private Enterprise Numbers", 2010.
[PORTS] IANA, "Port Numbers", 2010.
[RFC1305] Mills, D., "Network Time Protocol (Version 3)
Specification, Implementation", RFC 1305, March 1992.
[RFC1918] Rekhter, Y., Moskowitz, R., Karrenberg, D., Groot, G., and
E. Lear, "Address Allocation for Private Internets",
BCP 5, RFC 1918, February 1996.
[RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-
Hashing for Message Authentication", RFC 2104,
February 1997.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
Architecture", RFC 4291, February 2006.
Skoll Expires June 18, 2012 [Page 13]
Internet-Draft Reputation Reporting Protocol December 2011
Author's Address
David F. Skoll
Roaring Penguin Software Inc.
17 Grenfell Crescent, Suite 209C
Ottawa, ON K2G 0G3
CA
Phone: +1 613 231-6599
Email: dfs@roaringpenguin.com
Skoll Expires June 18, 2012 [Page 14]