APNIC Home APNIC Home
Info & FAQ |  Resource services |  Training |  Meetings |  Membership |  Documents |  Whois & Search |  Internet community

You're here:  Home  Mailing Lists rescert 


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Rescert] Another attempt to round off the IR-ISP protocol



On Tue, 05 Jun 2007 17:10:05 +1000
Geoff Huston <gih@apnic.net> wrote:

> Rob Austein wrote:
> > So, at this point I think we have two real issues, and some trivial
> > stuff.  I'm going to ignore the trivial stuff for now.
> > > 1) On the replay protection thing: Randy and I have been talking
> > > to
> >    Steve Bellovin, and while we haven't quite converged yet it looks
> >    like the simplest answer is to follow RobK's earlier suggestion:
> >    just make the msg_ref a monotonically increasing integer, no CMS
> >    timestamp required, no reset mechanism required, done, full stop.
> >    The likely implementation would be to generate the msg_ref value
> >    from a clock on the sender side, eg, nanoseconds since epoch, but
> >    it really doesn't matter so long as it's monotonically
> > increasing. The CMS timestamp doesn't isn't fine enough for this,
> > and combining CMS timestamp with an additional value has timing
> > screws, so let's just keep this simple and go with the counter.
> > >    Steve Bellovin doesn't quite believe this yet but I think that
> >    Randy and I can convince him.  We'll keep you posted.
> > We've talked about this approach as well, and there are a few nits
> > that continue to be bothersome when thinking about this:
> 
> 1. How old (in terms of CMS signing time) a message are you as a
> server prepared to accept? Should be be a limit, or are we happy
> processing messages that purportedly were signed years ago?

I think that that's a separate issue.  I agree that some limit is
needed.
> 
> 
> 2. What happens as a client when you are using a simple incremented
> counter for msg_ref and you reboot? How do you resume msg_ref?

That's the reason not to use msg_ref.
> 
> 3. If the answer to q2 is the clock (as per your note above) what
> happens as a client if NTP sets your clock backwards in time? Or just
> freezes the clock?
> 
We're already assuming time that's correct +/- 60 seconds; there's no
difference in my proposed scheme.

The whole point of something that's purely clock-driven is to avoid the
need for non-volatile client state.  We're talking about secured
objects, rather than secured transmission, which means that things like
nonces are very much harder to use.  (Exception: we probably could use
hash chains, though I haven't worked this out in detail.  Apart from
complexity, see your local IPR lawyer.)

The point where I currently disagree with Rob and Randy is on the
granularity of the timer.  Whatever granularity is chosen bounds the
maximum signing rate.  Thus, if you use a 1-second clock, you can't
sign more than 1 object/sec.  (Well, you can cheat and "borrow" from
future seconds, up to the actual clock skew, but that does cut your
margin.)  If we go with a nanosecond timer, we're limited to 10^9
objects/sec, ever.  I'm not convinced we can predict the future well
enough to know that that's reasonable, so I've suggested that the spec
support fractional seconds -- we can always extend the number of
significant digits to the right of the radix point without a protocol
change.

That said, I think that a fixed-granularity timer is fine if someone
will do the quantitative analysis to show what the bound should be.  I
don't know the subject area quite well enough to do that, I suspect.
(Aside: back in 1979, I predicted that Netnews would grow to 50-100
computers and 1-2 messages/day.  We designed A-news accordingly.  Ever
since then, I've been been leary of making traffic forecasts.  As either
Yogi Berra or Niels Bohr said -- see Wikipedia -- "It is very difficult
to make an accurate prediction, especially about the future.")

		--Steve Bellovin, http://www.cs.columbia.edu/~smb