Hi Albert,

sorry for the slow response, as I wrote I was out of office ... and the
Internet connection was so bad that it was virtually non existant.

I am trying to address all issues you raise. But first of all, by going
through the mail archives, I have noticed that you may find I had picked
on your code. Honestly, this is not the case, but the impression may be
created by not following the full sequence of my postings. My apologies
for this. I quoted your name when it came to reboot session IDs (in
-sign) because I wanted to give proper credits to the first one who
actually implemented it. Besides being the first one, I also like your
approach, as I think it fits well with -sign and solves a lot of issues.
As I pointed out both on- and off-list, I will probably follow your
approach when I am ready to implement -sign. Once again, my sincere
apologies if I somehow created the impression to "attack" your way of
doing things - this was not my intention.

> Some quotes of several messages (reformated)
>
> > Look at e.g. Albert's implementation of -sign. As suggested, he is
> > using the actual timestamp to generate the reboot session ID. I
> > intend to do it in a similar way in my code.
>
> > In the context of -sign, this is NO issue at all,[...] However, in
> > the light of -international, things are quite different.
>
> This line is important.
> It means (to me:)
>    -sign          is about security
>    -international   is about functionality, NOT about security!

I already commented on this one. While I think that -sign is on the core
of security, I think -international (and all hopefully all other
protocols) should try to do their best to secure what they are doing. So
in this way, everything needs to have security put on the agenda. I
think this is why IETF demands a "Security Considerations" section in
the newer RFCs.

But I think you did not get the spirit of my post. I can see this
because you snipped out the most important part. [...] reads as follows:


> (In the context of -sign, this is NO issue at all,) because
> the reboot session ID will be signed and thus an attacker would need
to
> be in the posession of the emitor's private key.

I am just pointing this out because I find it is important to keep in
mind that security in -sign does not come from just the reboot session
ID but it comes from the fact that it is cryptographically signed.


> > -international should run over all transports, we must assume plain
> > UDP when it comes to security issues (an attacker would always use
> > the easiest target).
>
> That is wrong. -international isn't (about) security.

I do not fully agree here, see above.

> When security is
> needed, -international should be used over a secure transport
> "layer". Like -sign, -reliable, of even a non-standard transport.

Here, I fully agree, in fact this is what I recommended in several
postings.

>
> All -international should do about security is:
>     a) make sure it can be used over a "secure syslog transport"
>     b) make sure no (new) insecure features are introduced.
>

This sounds very good ...

> So, a "counter to increase security", but not needed is useless, and
> can be counter productive.

... actually, we are very close together: this counter was not
introduced because of security, it was introduced because it was needed
for fragmentation (oversize messages). In fact, it is not always
present, only in when the message is oversized and needs to be
fragmented. Please see the ABNF posted:

http://www.mail-archive.com/syslog-sec%40employees.org/msg01262.html

It is a good thing that you remind me that the reboot ID will most
probably not be present in 99% of the -international enhanced syslog
messages (at least this is what I feel). This is because it is a purely
OPTIONAL part.

A question to the WG is if it is concensus that it should stay that way
(I would prefer this).

Then, I was thinking about replay attacks, because I eventually
misunderstood a comment from Chris

http://www.mail-archive.com/syslog-sec%40employees.org/msg01290.html

He said that the reboot session ID could also be helpful in detecting
replay attacks. That made me look deeper and deeper into this use.
However, as you (Albert) correctly point out, the reboot session ID is
not really that important for -international because it will most
probably not be present in the majority of messages.

I guess some confusion was caused because I moved over the reboot
session ID & related things from -sign to -international. The root
reason for this is that I need a unique message ID for -international -
and I thought I use those things that were actually agreed upon. Well,
wrong move, because there are obviously some little differences. I now
don't think it pays to save some coding by re-using what is already
there.

And now I think Chris, too, was more or less refering to reboot ID as in
-sign (different use) [Chris: is this right?]

I still need a message ID. This discussion - I think - shows that it
will probably best to use

> - TIMESTAMP (should be at least in millisecond resolution)
> - TAG (should include process id)
> - HOSTNAME

together to form the ID and drop the reboot session ID. If nobody comes
up with another opinion, I will change the fragmentation description I
posted to reflect this as well as some other changes that Anton
suggested and that I posted  messages on.

>
> As I understand -international it needs a kind of "super messages
> (longer that fit in a transport syslog message). I'm not aware of
> details, but ...
>
> Please just specify how to fit "long messages" in serveral transport
> packages. (That is done before: "fragmenting", maybe reuse that
> knowledge:-)

well... I tried to reuse what was done in -sign in this regard. Now, it
doesn't look like a real clever idea ;-)

> And asume the tarnsport layer works (most of the time).
>
> Then, it will be simple and working. even for UDP-syslog. Make sure
> the algorithm doens't break when a UDP message is lost, but live with
> the lost-data! If a system(admin) can't live with it, he will use
> syslog-reliable as transport anyhow!
> When the system/network is small, and logging not top-priority UDP
> syslog will be fine.
>
> For small networks, UDP is fine: Just set-up a centrall (UDP)
> collector, and add host (physically) at will. As long they use a UDP
> syslog (traditional, rfc3164, -sign, -international, -fragmented, ...)
> all log can be read. And "complex" fragmented messages are still
> reasble, without tools!
> (<<See this as ... (1/2)>> <<... an example(2/2)>>)

Yes, this *is* the spirit of the ABNFs (see above and archive) I posted.
I am glad to hear it is a workable approach - as I said, I will update
the ABNF. There is still a lot of work sitting on my desk, but I hope to
post a message some time later this week.

>  > The important thing is that I think the reboot ID - as you
> describe it -
>  > works for -sign. I was arguing that it does NOT provide
> reply attack for
>  > -international
>
> You correct, it will NEVER work for -international, I think. And It
> should!#
>
>  > So these are the two issues:
>
> There are a lot more, if -international doesn't use -sign or -reliable
> as "transport" Just don't fix them:-)

Sure - but that was a little out of context. I was just talking about
the reboot session ID ;-). In fact, there are tons of things that need
to go into the security considerations. And on top of this, add the
transport security considerations (see 3164 for a good picture... ;)).

>
> Note:
> Maybe we should make a syslog-fragment (or syslog-long) RFC, which
> describes how to send "long (MSG/CONTENT)", by fragmenting. And
> provides ("to above") the functionality to send unlimmited long
> messages over another syslog-transport.
>
> Then -international can use that one to add localization, i18n, or
> whatever.
> However, then it shoud be possible to use those long messages for
> other features to?
>
> Just an idea.

Well, in my point of view this would be the best idea. I, too, suggested
this in August:

http://www.mail-archive.com/syslog-sec%40employees.org/msg01204.html

As it turned out, there was not much support for it. I hold back work on
-international for a while and resumed after I felt that concensus was
that -international should re-specify the format (as does -sign).
Actually, it would not be a big deal to move the general format
specification to a separate ID, but on the other hand it does not really
hurt if -international contains it.

So far, I have tried to keep the overhead of -international very low and
most things optional. In fact, the ABNFs I am posting to the list do not
even demand an -international cookie to be present. So it will be
possible to follow the message format layed out in -international
without supporting any -international features. The only drawback is
that if you want to support fragmentation, you must also support the
rest of the international header (THIS IS part of the -international
cookie). Again, I think this is not a big deal, as it doesn't hurt to
add this. Especially, as I assume that you must be writing new code if
you intend to support fragmentation...

I am happy that your kind of digest message helped me to go back to the
big picture and not be lost in not-so-important details. I would also
appreciate any additional comments form the WG, especially on the unique
message ID and the idea of having its own ID/RFC for the message format.

If I don't hear otherwise,  I will continue with -international as
discussed and will change the fragmentation as outlined above.

Rainer


Reply via email to