> One approach we took was that the Server Timestamp is generally > distributed with every response from the server (The "Date:" header). > The client simply recorded the difference between the server and local > clock skew, and added that difference to the TS value used in the OAuth > headers.
That's pretty much the approach Hawk takes: the timestamp range limitation approximates the circular buffer of nonces, and the clients use the server timestamp to correct their time for the purpose of authenticating to that particular server. The issue here is that we have three tiers of servers, each of which's clock might differ, the third tier of which can change (different storage servers), and a client clock that can be adjusted while we're working. Add in questionable latency and the temptation to persist skews across restarts, and things become complex -- and, I might add, complex without eliminating some non-trivial percentage of errors. The OpenSignal folks suggest using the realtime clock in combination with some kind of anchoring ping to simulate an independent monotonic clock on Android. That seems like a reasonable idea -- "fake NTP". But the fact remains that this seems like a spiderweb of complexity that doesn't really meet our needs… _______________________________________________ Sync-dev mailing list [email protected] https://mail.mozilla.org/listinfo/sync-dev

