Re: Syslog-sign: Last minor clarifications/nits
Chris Lonvick <[email protected]> Mon, 23 Mar 2009 06:44:07 -0700 (PDT)
| Newsgroups | gmane.ietf.syslog |
|---|---|
| Message-ID | <[email protected]> |
Hi Rainer, Comments in line. On Mon, 23 Mar 2009, Rainer Gerhards wrote: > > >> -----Original Message----- >> From: [email protected] [mailto:[email protected]] On >> Behalf Of Chris Lonvick >> Sent: Sunday, March 22, 2009 11:10 PM >> To: [email protected] >> Cc: [email protected] >> Subject: Re: [Syslog] Syslog-sign: Last minor clarifications/nits >> >> Hi, >> >> There does seem to be some conflicts in the section; if it SHOULD start >> with 1 and increment by 1 then how do we get to SnmpEngineReboots? > > What if we just say "must start at 1 and be strictly monotonically > increasing"? I think this is the essence of what we need and permits any > value to be used as seed as long as it can be assured that a higher RSID will > be emitted later in time than a lower one. This would also permit any other > second-counting time base reference to be used, e.g. creation/compilation > date of the software in question. I'm OK with most of that. I wouldn't require it to start at "1" however. I'd assume that some sort of timestamp value may be used, or that if snmpEngineBoots is used then it is already past "1". > > If we refer to the POSIX timestamp, I am not sure if we refer to the 32 or > 64 Bit version of it (I even think I remember the bitness is not preciesley > defined?). In any case, we have subtle issues: if we talk about 32 bit, the > well-known 2038 problem is carried over to this draft. While 28 more years to > go sound reasonable, I'd still think it is worth pointing out. With 64 Bit, > the RSID will latch ~ 2110 when 64 bit Unix time goes beyond 9,999,999,999 - > that is probably not a real concern ;) I see your point but that's outside of our scope to solve. :-) If we have some verbiage in the document talking about using a time-based value for RSID, then at most we should have a line in the security considerations section telling the implementer to be aware. > > With any time-based counter based on seconds, there is always the subtle > issue of two or more restarts within a single second, which means the RSID > will not necessarily be strictly monotonically increasing. While the > probability is (very) low for this case, it is not 0. So we cannot outrule > it. I have not yet checked if that can lead to permanent problems (counters > related to RSID which may occur twice). Agreed. Again, an implementer would have to beware of that issue if they chose a time-based value. > > SNMP, as I understand RFC3414, seems to have solved this by requiring the > device to actually increment the counter and store it in non-volatile memory. > I think this is a good compromise and would suggest the we mandate this, too, > except that we permit any increment as long as the resulting sequence will be > strictly monotonically increasing (this is necessary to permit simply copying > over the SNMPEngineBoots counter from the SNMP subsystem, if syslogd has > access to it). This sounds good. ..I'm trying to remember if this is what was first discussed for RSID when John Kelsey first proposed a counter for this. > > Also, RFC 3414 uses 2147483647 as a special value, while we use 0. I suggest > that we use 2147483647, too. Otherwise, a naive implementation may forget to > convert 2147483647 to 0 when copying over the SNMPEngineBoots from the SNMP > engine (this sounds natural to do if the syslogd has access to a SNMP > subsystem). I disagree on that. 2147483647 is the largest 32bit unsigned integer - I'm guessing that's the reason it was chosen for 3414. If devices use a 64bit field (or larger) to store their RSID value then they will have to proactively avoid using 2147483647. Thanks, Chris > > Rainer > >> >> PROPOSED: >> === >> 4.2.2. Reboot Session ID >> >> The Reboot Session ID is a decimal value that has a length between >> 1 >> and 10 octets. The acceptable values for this are between 0 and >> 9999999999. Leading zeroes MUST be omitted. >> >> A Reboot Session ID is expected to increase whenever an originator >> reboots in order to allow collectors to distinguish messages and >> message signatures across reboots. There are several ways in which >> this may be accomplished. In one way, the Reboot Session ID may >> increase by 1, starting with a value of 1. Note that in this case, >> an >> originator is required to retain the previous Reboot Session ID >> across >> reboots. In another way, a value of the unix time (number of >> seconds >> since 1 January 1970 [reference?] may be used. In yet another way, >> implementors wish to consider using the snmpEngineBoots value as a >> source for this counter as defined in [RFC3414]. >> >> In cases where an originator is not able to guarantee that the >> Reboot >> Session ID is always increased after a reboot, the Reboot Session >> ID >> MUST always be set to a value of 0. If the value can no longer be >> increased (e.g., because it reaches 9999999999), then manual >> intervention may be required to subsequently reset it. >> >> If a reboot of an originator takes place, Signature Block messages >> MAY use a new PROCID. However, Signature Block messages of the >> same >> originator MUST continue to use the same APP-NAME and MSGID. >> === >> >> Does this work for everyone? >> >> Thanks, >> Chris >> >> On Sun, 22 Mar 2009, [email protected] wrote: >> >>> >>> Hi Alex, >>> >>> By "timestamp", at least I've meant "POSIX timestamp (seconds since >>> 1/1/1970) when the syslog daemon started". But even with the new >>> text, I'm still having trouble determining whether this would be >>> an acceptable value for RSID... >>> >>> Best regards, >>> Pasi >>> >>>> -----Original Message----- >>>> From: [email protected] >>>> [mailto:[email protected]] On Behalf Of ext Alexander >>>> Clemm (alex) >>>> Sent: 22 March, 2009 19:06 >>>> To: Martin Schütte; [email protected] >>>> Subject: Re: [Syslog] Syslog-sign: Last minor clarifications/nits >>>> >>>> Hello Martin, >>>> >>>> I have clarified in the text that what I think it is you are >>>> suggesting will be allowed. But it is not a time stamp. A time >>>> stamp would be something like 2008-10-16T20:23:03+02:00. >>>> >>>> While it still suggests that the RSID should increase by 1, it is >>>> not required. It is merely required to simply increase (no problem >>>> with an RSID reflecting a "time stamp"), unless it is set to 0. >>>> Here is what the section in question reads now: >>>> >>>> The Reboot Session ID is a decimal value that has a length >>>> between 1 and 10 octets. The acceptable values for this are >>>> between 0 and 9999999999. Leading zeroes MUST be omitted. >>>> >>>> A Reboot Session ID is expected to increase whenever an >> originator >>>> reboots in order to allow collectors to distinguish messages and >>>> message signatures across reboots. The Reboot Session ID SHOULD >>>> increase by 1, starting with a value of 1. Note that in this >> case, >>>> an originator is required to retain the previous Reboot Session >> ID >>>> across reboots. >>>> >>>> In cases where an originator is not able to guarantee that the >>>> Reboot Session ID is always increased after a reboot, the Reboot >>>> Session ID MUST always be set to a value of 0. If the value can >>>> no longer be increased (e.g., because it reaches 9999999999), >>>> then manual intervention may be required to subsequently reset >>>> it. Implementors MAY wish to consider using the snmpEngineBoots >>>> value as a source for this counter as defined in [RFC3414]. >>>> >>>> Does this accommodate your concern? >>>> --- Alex >>>> >>>> -----Original Message----- >>>> From: [email protected] >>>> [mailto:[email protected]] On Behalf Of Martin Schütte >>>> Sent: Thursday, March 19, 2009 1:15 PM >>>> To: [email protected] >>>> Subject: Re: [Syslog] Syslog-sign: Last minor clarifications/nits >>>> >>>> Alexander Clemm (alex) schrieb: >>>>> On the first item, yes, the first item (RSID) is clearly a >>>> counter; a >>>>> time stamp cannot be used, nor can a value that is arbitrarily >>>>> generated. >>>>> >>>>> To use a time stamp would require a parameter that is differently >>>>> defined than the current RSID. >>>> >>>> Excuse my persistance here, but: why? >>>> Especially if they do not have to be sequential. >>>> >>>> Is there any reason to define RSID as a counter instead of an >>>> increasing >>>> ID? When is a counter like 1-2-5-6 better than IDs like >>>> 1234400000-1234500000-1234600000-12374700000? >>>> >>>> -- >>>> Martin >>>> _______________________________________________ >>>> Syslog mailing list >>>> [email protected] >>>> https://www.ietf.org/mailman/listinfo/syslog >>>> _______________________________________________ >>>> Syslog mailing list >>>> [email protected] >>>> https://www.ietf.org/mailman/listinfo/syslog >>>> >>> >>> _______________________________________________ >>> Syslog mailing list >>> [email protected] >>> https://www.ietf.org/mailman/listinfo/syslog >>> > _______________________________________________ Syslog mailing list [email protected] https://www.ietf.org/mailman/listinfo/syslog