> -----Original Message-----
> From: Skylar Woodward [mailto:sky...@kiva.org]
> Sent: Tuesday, May 31, 2011 11:03 PM
> To: Eran Hammer-Lahav
> Cc: igor.faynb...@alcatel-lucent.com; OAuth WG
> Subject: Re: [OAUTH-WG] Fwd: issues with token age element - MAC token
>
> Eran, sorry, where should use cases be officially documented?

This list seems a fine enough place. I have no problem keeping track.

> I assume the use cases being more like "HTTP Auth" are not in reference to
> the ones I've been describing. For my part, I'm focused on OAuth use cases.
> Both that of a single token being used on multiple devices (or app instances)
> and that of tokens being presented for client credentials in the OAuth flow. I
> thought we had already agreed from a previous thread that the MAC token
> spec should be extensible beyond just use of access tokens and at least to
> that of client credentials.

Useful for, yes. Extensible, no. The only extensible part if the choice of 
algorithm.

> skylar
>
>
> On Jun 1, 2011, at 7:54 AM, Eran Hammer-Lahav wrote:
>
> > They are coming in 2-3 directions, the use case isn't really clear (other 
> > than
> claims of some flavors being harder than others), and overall this is more
> about general HTTP authentication than OAuth use cases. Don't get me
> wrong - if you want to put the effort in to capture these, go ahead. I just
> think this isn't worth the effort in a formal document.
> >
> > EHL
> >
> >> -----Original Message-----
> >> From: Igor Faynberg [mailto:igor.faynb...@alcatel-lucent.com]
> >> Sent: Tuesday, May 31, 2011 6:15 PM
> >> To: Eran Hammer-Lahav
> >> Cc: Phil Hunt; OAuth WG
> >> Subject: Re: [OAUTH-WG] Fwd: issues with token age element - MAC
> >> token
> >>
> >> Maybe...  But this information must be captured somewhere, right?
> >>
> >> At the moment, there seems to be no record of and consequently no
> >> reference point to the use case in question. And this is what has
> >> created all this discussion--with messages coming from all directions.
> >>
> >> Igor
> >>
> >> Eran Hammer-Lahav wrote:
> >>> I think the use case document should focus on v2, not on MAC. At
> >>> some
> >> point, it becomes impractical to keep every use case discussed on
> >> this list recorded.
> >>>
> >>> EHL
> >>>
> >>>
> >>>> -----Original Message-----
> >>>> From: oauth-boun...@ietf.org [mailto:oauth-boun...@ietf.org] On
> >>>> Behalf Of Igor Faynberg
> >>>> Sent: Tuesday, May 31, 2011 3:50 PM
> >>>> To: Phil Hunt
> >>>> Cc: OAuth WG
> >>>> Subject: Re: [OAUTH-WG] Fwd: issues with token age element - MAC
> >>>> token
> >>>>
> >>>> ...Sorry to turn the question around so as to underline my pet peeve:
> >>>> Have we *documented* all cases?  (This is what the Use Cases
> >>>> document is supposed to be all about.)
> >>>>
> >>>> Just to clarify: I am not arguing with Phil's point now. I just
> >>>> stress that as of this moment we don't have anything to check against.
> >>>>
> >>>> Igor
> >>>>
> >>>> Phil Hunt wrote:
> >>>>
> >>>>> There seems to be a demonstrated need for both age and timestamp
> >>>>>
> >>>> tokens.
> >>>>
> >>>>> The list has 2 separate cases with 2 separate proposals that do
> >>>>> not solve all
> >>>>>
> >>>> cases.
> >>>>
> >>>>> Can we at least agree that neither proposal works in all cases?
> >>>>>
> >>>>> Phil
> >>>>>
> >>>>> @independentid
> >>>>> www.independentid.com
> >>>>> phil.h...@oracle.com
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> On 2011-05-31, at 2:41 PM, Adam Barth wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>> You haven't described a problem.
> >>>>>>
> >>>>>> On Tue, May 31, 2011 at 1:46 AM, Skylar Woodward
> >>>>>> <sky...@kiva.org>
> >>>>>>
> >>>> wrote:
> >>>>
> >>>>>>> First we should agree on a common understanding of the spec. The
> >>>>>>>
> >>>> reason why age works with unsynchronized clocks is that the client
> >>>> determines issue_date based on the time when it receives the token
> >>>> over the wire. This depends on the server and client both recording
> >>>> time this way and for the transmission of the token to be be not
> >>>> longer than the margin of error for validating age. Are we agreed
> >>>> on this
> >> understanding?
> >>>>
> >>>>>> That's not correct.
> >>>>>>
> >>>>>> The age allows the server to protect against replay attacks in
> >>>>>> bounded memory.  With unbounded memory, the server can just
> >>>>>>
> >>>> remember
> >>>>
> >>>>>> every nonce it has ever seen associated with a given key and
> >>>>>> reject
> >>>>>>
> >>>> replays.
> >>>>
> >>>>>> With bounded memory, the server eventually needs to evict some
> of
> >>>>>> these nonces due to memory pressure.  The age value lets the
> >>>>>> server reject the nonces with the smallest age values first.  The
> >>>>>> server then rejects any messages with age values smaller than (or
> >>>>>> equal
> >>>>>> to) the largest age value it has ever evicted for the given key.
> >>>>>>
> >>>>>> Notice that neither clock synchronization nor transmission time
> >>>>>> plays a role in that implementation.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>> The easiest case for me to explain here is client credentials
> >>>>>>> because I
> >>>>>>>
> >>>> have to assume you've built and registered a Twitter app at some
> >>>> point (or similar OAuth 1.0a app). You registered your app on the
> >>>> site and were issued a client_id and client_secret (called
> >>>> consumer_key and consumer_secret in 1.0). You then embedded
> these
> >>>> values in your client (they were not issued programmatically to
> >>>> your app). Assuming the MAC token algorithm is used then for
> >>>> establishing client identity (originally one of the uses we, the
> >>>> working group, hoped MAC would cover) how then will your client
> determine issue date?
> >>>>
> >>>>>> I recommend the date at which the developer obtained the
> >>>>>> credential from Twitter because that is the date when the credential
> was issued.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>> After we can establish where you're at on the two above points
> >>>>>>> I'll
> >>>>>>>
> >>>> continue with the explanation. But as a preview, the next points
> >>>> would
> >> be:
> >>>>
> >>>>>>> - If issue_date comes form the server, how is it translated to
> >>>>>>> the
> >> client?
> >>>>>>>
> >>>>>>>
> >>>>>> The issue_date does not come from the server.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>> - If you use a server provided issue_date, how do you then
> >>>>>>> translate
> >>>>>>>
> >>>> that a value relative to the local unsyncronized clock?
> >>>>
> >>>>>> The server does not provide the issue_date.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>> - If your answer to that is to also provide the current server
> >>>>>>> time to the
> >>>>>>>
> >>>> client so the offset on the server provided issue_date can be
> >>>> calculated what is the difference between all of these values and
> >>>> just
> >> using timestamp?
> >>>>
> >>>>>> My answer is not to provide the current server time to the client.
> >>>>>>
> >>>>>> Kind regards,
> >>>>>> Adam
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>> So don't get wrapped up in those 3 questions until we establish
> >>>>>>> your
> >>>>>>>
> >>>> contextual understanding of the first two paragraphs. Feel free to
> >>>> also respond to me off the list so we don't trouble everyone else
> >>>> with us getting on the same page (the reason, I thought, why a
> >>>> Skype call would be more efficient and painless). I do think my
> >>>> explanations all have been very clear thus far. There must be a
> >>>> contextual confusion that is keeping us from a common understanding
> >>>> of
> >> the terminology or the use cases.
> >>>>
> >>>>>>> skylar
> >>>>>>>
> >>>>>>>
> >>>>>>> On May 31, 2011, at 10:30 AM, Adam Barth wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>> I'm not sure we need a Skype call.  Can you explain the trouble
> >>>>>>>> caused by age clearly?  I didn't understand your previous
> >>>>>>>> explanation.  The more concrete you can be, the better.
> >>>>>>>>
> >>>>>>>> Thanks,
> >>>>>>>> Adam
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On Tue, May 31, 2011 at 1:04 AM, Skylar Woodward
> >>>>>>>> <sky...@kiva.org>
> >>>>>>>>
> >>>> wrote:
> >>>>
> >>>>>>>>> It seems we're failing to communicate. Or you're not
> >>>>>>>>> understanding
> >>>>>>>>>
> >>>> my use cases. Age doesn't "just" work. It only works for a limited
> >>>> number of uses cases that must include all of yours - and it is
> >>>> brittle at that. It doesn't work for any of our uses cases (where
> >>>> the client can't know issue_date w/o the server telling it - in
> >>>> which case we have the equivalent problem as timestamp).
> >>>>
> >>>>>>>>> If you'd like to talk this out over Skype I'm happy to do
> >>>>>>>>> that, so I can
> >>>>>>>>>
> >>>> help you understand why age doesn't work.
> >>>>
> >>>>>>>>>
> >>>>>>>>> On May 31, 2011, at 9:47 AM, Adam Barth wrote:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>> Timestamps don't work when the client doesn't have a
> >>>>>>>>>> synchronized clock.  It's true that a client could
> >>>>>>>>>> synchronize its clock with the network, but our
> >>>>>>>>>> implementation experience is that many clients don't for a
> >>>>>>>>>> variety of reasons.  That means that age better because, you
> know, it works.
> >>>>>>>>>>
> >>>>>>>>>> Adam
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> On Mon, May 30, 2011 at 11:19 PM, Skylar Woodward
> >>>>>>>>>>
> >>>> <sky...@kiva.org> wrote:
> >>>>
> >>>>>>>>>>> I don't think you read my first message on the topic (or I
> >>>>>>>>>>> wrote too
> >>>>>>>>>>>
> >>>> much).
> >>>>
> >>>>>>>>>>> Age is fragile because if the clock changes between
> >>>>>>>>>>> issue_date and
> >>>>>>>>>>>
> >>>> the time of submission, it will fail. We know many people don't
> >>>> have synchronized clocks, but using age only solves this problem if
> >>>> two assumptions hold true:
> >>>>
> >>>>>>>>>>> 1) the client is able to guess the issue_date the server is
> >>>>>>>>>>> using based on the time the credential was issued
> >>>>>>>>>>> 2) the client system clock doesn't change between issue date
> >>>>>>>>>>> and
> >>>>>>>>>>>
> >>>> submission time.
> >>>>
> >>>>>>>>>>> Timestamp has neither of these issues because the client can
> >>>>>>>>>>>
> >>>> always inquire about network time and can effectively correct for
> >>>> inaccuracies in the device timekeeping system.
> >>>>
> >>>>>>>>>>> Regarding the first assumption, this fails when a token
> >>>>>>>>>>> might be re-
> >>>>>>>>>>>
> >>>> issued between devices. An example is that we use MAC token for the
> >>>> client credentials, which are issued when a developer registers an
> >>>> application. The client has no way of determining on its own when
> >>>> the value was actually issued (unless we communicate that on the
> >>>> developer website and force users to embed that with client_id,
> >>>> which adds usability issues of users copying and entering string
> >>>> date values correctly). The same is actually true for all of our
> >>>> OAuth access tokens because we reissue tokens to the same client_id
> >>>> if they were previously issued and are still valid. (The client
> >>>> would thus think the issue_date was now() when if fact it was the
> >>>> time of the first issue for client_id+scope+grantor_id). Thus, age
> >>>> is really just a
> >> convoluted way of trying to communicate the device system offset:
> >>>>
> >>>>>>>>>>>       local_offset = current_server_time - current_device_time
> >>>>>>>>>>>       age = current_device_time -
> >>>>>>>>>>> (server_issue_date-local_offset)
> >>>>>>>>>>>
> >>>>>>>>>>> Since the protocol doesn't currently allow for
> >>>>>>>>>>> server_issue_date to
> >>>>>>>>>>>
> >>>> be given with tokens, thus age currently can't have the resilience
> >>>> that timestamp does. It also forces servers to issue new tokens on
> >>>> demand just to make the convoluted age system work (rather than
> >>>> reuse existing valid tokens). Or, you have to modify the protocol
> >>>> to add server_issue_date and current_server_time into the
> >>>> token-issue
> >> exchange - eg, more complexity.
> >>>>
> >>>>>>>>>>> Timestamp is simpler, proven, it and it has a solution for
> >>>>>>>>>>> your use
> >>>>>>>>>>>
> >>>> case of unsyncronized clocks.
> >>>>
> >>>>>>>>>>> skylar
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> On May 30, 2011, at 9:08 AM, Adam Barth wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>> I can't speak for Mozilla, but I can tell you that many
> >>>>>>>>>>>> folks don't have synchronized clocks, for a wide variety of
> reasons.
> >>>>>>>>>>>> I guess I don't really understand why you view age as
> >>>>>>>>>>>> problematic.  You reference "fragility of using
> >>>>>>>>>>>> time-since-credentials-issued" but you don't say what
> >>>>>>>>>>>> exactly is fragile about it.  There's nothing particularly
> >>>>>>>>>>>> complex about age, especially when using the monotonic
> >>>>>>>>>>>> clock provided by
> >>>>>>>>>>>>
> >>>> all modern operating systems.
> >>>>
> >>>>>>>>>>>> Adam
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> On Mon, May 30, 2011 at 12:03 AM, Skylar Woodward
> >>>>>>>>>>>>
> >>>> <sky...@kiva.org> wrote:
> >>>>
> >>>>>>>>>>>>> But see, now you are specializing the use of MAC token
> >>>>>>>>>>>>> even
> >>>>>>>>>>>>>
> >>>> more - now it's becoming a service mainly for user-agents on home
> >>>> desktops? This is further for the original goal of making MAC as
> >>>> flexible is possible. In this case you should change the spec name
> >>>> to
> >>>>
> >>
> MAC_TOKEN_FOR_BROWSER_COOKIE_REPLACEMENT_IN_AGENTS_LIKE_FI
> >>>> REFOX - or MTBCRLF for short.
> >>>>
> >>>>>>>>>>>>> Sarcasm aside, my point is that timestamp is just as good
> >>>>>>>>>>>>> as your
> >>>>>>>>>>>>>
> >>>> offset technique and is more: reliable, straightforward, flexible.
> >>>>
> >>>>>>>>>>>>> User agents that care about creating robust behavior for
> >>>>>>>>>>>>> home
> >>>>>>>>>>>>>
> >>>> desktops or mobiles (presumably of users and OS not yet
> >>>> sophisticated enough to check network time on their own) should be
> >>>> advised to do clock correction on their own (by pinging a time
> >>>> service) and trusting the device clock alone.
> >>>>
> >>>>>>>>>>>>> Please change the spec back to using timestamp rather
> than
> >> age.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> I'd also like to hear a convincing argument from the
> >>>>>>>>>>>>> Mozilla
> >>>>>>>>>>>>> co-
> >>>>>>>>>>>>>
> >>>> authors about why they think that age is more resilient than the
> >>>> above (I believe it is not) and further more why they would find
> >>>> the above unattractive or difficult to implement in a modern user-
> agent.
> >>>>
> >>>>>>>>>>>>> Thanks,
> >>>>>>>>>>>>> skylar
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> ... -.- -.-- .-.. .- .-. - .-- --- --- -.. .-- .- .-. -..
> >>>>>>>>>>>>> - ... -.- -.-- .-.. .- .-. - .-
> >>>>>>>>>>>>>
> >>>> - --- --- -.. .-- .- .-. -..
> >>>>
> >>>>>>>>>>>>> skylar woodward
> >>>>>>>>>>>>> Kiva Developer Program  /  build.kiva.org  /  @buildkiva
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> On May 30, 2011, at 7:54 AM, Eran Hammer-Lahav wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> Any kind of clock sync requirement for user-agents
> >>>>>>>>>>>>>> (basically,
> >>>>>>>>>>>>>>
> >>>> home desktops) it completely impractical. The added complexity
> >>>> pales in comparison to the difficulty of trying to use timestamps
> >>>> and any kind of clock sync. No window will be big enough as
> >>>> experience shows some users have closes that are off by more than an
> hour and a half.
> >>>>
> >>>>>>>>>>>>>> The issue here is who is this being optimized for.
> >>>>>>>>>>>>>> Server-to-
> >>>>>>>>>>>>>>
> >>>> server communication should simply use TLS for privacy and MITM
> >>>> protection on top of MAC instead of using nonces to prevent replay.
> >>>> The whole point of this kind of replay protection is when TLS is
> >>>> not
> >> available.
> >>>>
> >>>>>>>>>>>>>> I think a better approach is to simply make checking the
> >>>>>>>>>>>>>> nonce
> >>>>>>>>>>>>>>
> >>>> optional when TLS is used.
> >>>>
> >>>>>>>>>>>>>> EHL
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> -----Original Message-----
> >>>>>>>>>>>>>>> From: oauth-boun...@ietf.org [mailto:oauth-
> >>>>>>>>>>>>>>>
> >>>> boun...@ietf.org]
> >>>>
> >>>>>>>>>>>>>>> On Behalf Of Peter Wolanin
> >>>>>>>>>>>>>>> Sent: Sunday, May 29, 2011 6:53 PM
> >>>>>>>>>>>>>>> To: Skylar Woodward
> >>>>>>>>>>>>>>> Cc: OAuth WG
> >>>>>>>>>>>>>>> Subject: Re: [OAUTH-WG] Fwd: issues with token age
> >>>>>>>>>>>>>>>
> >>>> element -
> >>>>
> >>>>>>>>>>>>>>> MAC token
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> I am also concerned by the fragility of using
> >>>>>>>>>>>>>>> time-since-credentials-issued, and also the added
> >>>>>>>>>>>>>>> complexity
> >>>>>>>>>>>>>>>
> >>>> of specifying this construction.
> >>>>
> >>>>>>>>>>>>>>> I think it would be preferable to always require a
> >>>>>>>>>>>>>>> timestamp as part of the authorization header, and
> maybe
> >>>>>>>>>>>>>>> even include in the spec a maximum time difference
> >> between
> >>>>>>>>>>>>>>> client and server (e.g. 900 seconds) that can be
> >>>>>>>>>>>>>>> tolerated.  This makes generating the nonce easier also,
> >>>>>>>>>>>>>>> since the value need to
> >>>>>>>>>>>>>>>
> >>>> longer be unique over all time.
> >>>>
> >>>>>>>>>>>>>>> We have such rules in place for an HMAC-based
> >>>>>>>>>>>>>>>
> >>>> authentication
> >>>>
> >>>>>>>>>>>>>>> system we use.  Once in a while a client has a local
> >>>>>>>>>>>>>>> clock so far out of sync that there is an issue, but it's 
> >>>>>>>>>>>>>>> rare.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> -Peter
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> On Mon, May 23, 2011 at 9:16 PM, Skylar Woodward
> >>>>>>>>>>>>>>> <sky...@kiva.org>
> >>>>>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Resending to the list from my subscribed account...
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>> Begin forwarded message:
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> From: Skylar Woodward <sky...@larw.com>
> >>>>>>>>>>>>>>>>> Date: May 23, 2011 6:14:00 PM PDT
> >>>>>>>>>>>>>>>>> To: Skylar Woodward <sky...@kiva.org>
> >>>>>>>>>>>>>>>>> Cc: Eran Hammer-Lahav <e...@hueniverse.com>,
> >> OAuth
> >>>>>>>>>>>>>>>>>
> >>>> WG
> >>>>
> >>>>>>>>>>>>>>>>> <oauth@ietf.org>
> >>>>>>>>>>>>>>>>> Subject: Re: [OAUTH-WG] issues with token age
> >> element -
> >>>>>>>>>>>>>>>>> MAC token
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> So after discussing this today and reflecting on it a
> >>>>>>>>>>>>>>>>> bit, I would suggest that
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> nonce simply be the "unique value" (as it is so named)
> >>>>>>>>>>>>>>> without further requirements. It might be suggested
> that
> >>>>>>>>>>>>>>> this be composed of an
> >>>>>>>>>>>>>>> random+timestamp (not age) value, but that seems
> more
> >> of a
> >>>>>>>>>>>>>>> random+MAY or
> >>>>>>>>>>>>>>> "recommended" practice. If the expectation is that very
> >>>>>>>>>>>>>>> few if any providers would actually check the timestamp
> >>>>>>>>>>>>>>> (or moreover, the nonce itself), why add terminology in
> >>>>>>>>>>>>>>> the draft that requires it? Developers are doing extra
> >>>>>>>>>>>>>>> housekeeping (and perhaps for a perceived benefit) but
> >>>>>>>>>>>>>>> with
> >>>>>>>>>>>>>>>
> >>>> no payoff or added security.
> >>>>
> >>>>>>>>>>>>>>>>> I'm sending this feedback based on having
> implemented
> >>>>>>>>>>>>>>>>>
> >>>> the
> >>>>
> >>>>>>>>>>>>>>>>> v3-5 changes
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> last night (for both client credentials and requests w/
> >>>>>>>>>>>>>>> access tokens). After the changes, the nonce creation is
> >>>>>>>>>>>>>>> now the most complicated part of the normalized
> request
> >>>>>>>>>>>>>>> string
> >>>>>>>>>>>>>>>
> >>>> and yet these changes offer the least benefit.
> >>>>
> >>>>>>>>>>>>>>> What's most important is that nonces are unique on each
> >>>>>>>>>>>>>>>
> >>>> request for an ID.
> >>>>
> >>>>>>>>>>>>>>>>> There are issues with age as well:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> - As Bill mentioned, if the client stores the issue
> >>>>>>>>>>>>>>>>> time based on receipt, then the internal clock changes
> >>>>>>>>>>>>>>>>> (presumably w/o knowledge of the software storing
> the
> >>>>>>>>>>>>>>>>> dates) then time will also fail. Assuming that a user
> >>>>>>>>>>>>>>>>> with a bad clock (of by hours or more) will never fix
> >>>>>>>>>>>>>>>>> it and actually encourages bad user behavior (don't
> >>>>>>>>>>>>>>>>> fix your clock or Twitterbot will stop working!).
> >>>>>>>>>>>>>>>>> Though we say that timezones won't bring about the
> >>>>>>>>>>>>>>>>> situation of changed clock, I'd be to differ. Many
> >>>>>>>>>>>>>>>>> users aren't savvy enough to change time zone, but
> >>>>>>>>>>>>>>>>> just adjust the time to local time anyway. Users who
> >>>>>>>>>>>>>>>>> are more likely to get it right already have auto
> >>>>>>>>>>>>>>>>> clock sync enabled (via web, mobile, etc.)
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> - What if the token wasn't originally issued
> >>>>>>>>>>>>>>>>> programmatically? In this case,
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> the issue time has to be obtained from the server and
> >>>>>>>>>>>>>>> stored on the client then you have the same problem as
> >>>>>>>>>>>>>>> with a timestamp - the client clock is not sync'd to the
> >>>>>>>>>>>>>>> server clock and there is no adjustment. You want this
> >>>>>>>>>>>>>>> to apply to uses outside of just OAuth, but now
> >>>>>>>>>>>>>>> requiring the client to be able to determine an issue
> >>>>>>>>>>>>>>> time based on when it receives
> >>>>>>>>>>>>>>>
> >>>> an HTTP request necessarily limits the types of token flows for
> >>>> which this can be used.
> >>>>
> >>>>>>>>>>>>>>>>> - It's one more detail to store. Hardly an issue for a
> >>>>>>>>>>>>>>>>> developer, but it is
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> inelegant. It's like having a double ID. Yet it's not an
> >>>>>>>>>>>>>>> ID, it is actually more of a recording of "my personal
> >>>>>>>>>>>>>>> clock offset value" but obfuscated several times over
> >>>>>>>>>>>>>>> (one for each
> >>>>>>>>>>>>>>>
> >>>> token) as issue_date.
> >>>>
> >>>>>>>>>>>>>>>>> - This implementation assumes software programs
> use
> >> the
> >>>>>>>>>>>>>>>>> computer
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> internal clock exclusively for timestamp. A robust
> >>>>>>>>>>>>>>> program that is dependent on accurate timestamps
> would
> >>>>>>>>>>>>>>> ping the origin server (or similar trusted time
> >>>>>>>>>>>>>>> authority) to ask it the current time. Then it could
> >>>>>>>>>>>>>>> store a "my device clock offset" value for the lifetime
> >>>>>>>>>>>>>>> of the program execution. All requests needing
> timestamp
> >>>>>>>>>>>>>>> would
> >> be
> >>>>>>>>>>>>>>> adjusted accordingly. For age, if the clock is changed
> >>>>>>>>>>>>>>> since the
> >>>>>>>>>>>>>>>
> >>>> stored issue_date, the problem can't be corrected in this manner.
> >>>>
> >>>>>>>>>>>>>>> Thus, a significant advantage for timestamp.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> All in all, this seems like a misguided but
> >>>>>>>>>>>>>>>>> well-intentioned attempt to get
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> around end-user issues of mis-set clocks. It feels like
> >>>>>>>>>>>>>>> a hack and it certainly isn't a foolproof solution. The
> >>>>>>>>>>>>>>> more I think about the implications of the age
> >>>>>>>>>>>>>>> parameter, the less I like it. Timestamp has been used
> >>>>>>>>>>>>>>> for many years in the industry and with reasonable
> >>>>>>>>>>>>>>> success in relevant applications. If we change to a new
> >>>>>>>>>>>>>>> way of trying to sync on
> >>>>>>>>>>>>>>>
> >>>> time I think we run a greater risk of stumbling upon unforeseen
> >>>> issues, such as those outlined above.
> >>>>
> >>>>>>>>>>>>>>>>> I recommend the requirement of an age (or
> timestamp
> >> for
> >>>>>>>>>>>>>>>>> that matter)
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> be dropped from the nonce construction. For providers
> >> that
> >>>>>>>>>>>>>>> deem it valuable, timestamp can be an optional value
> >>>>>>>>>>>>>>> (either as part of the nonce or the overall header, as
> >> before).
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> skylar
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>> On May 23, 2011, at 2:11 AM, Skylar Woodward wrote:
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> You may have noticed, on page 8 the host is listed as
> >>>>>>>>>>>>>>>>>>
> >>>> "example.net"
> >>>>
> >>>>>>>>>>>>>>>>>> - should be example.com, I believe.  (draft v5)
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> All in all, I'm in support of the changes in v2.
> >>>>>>>>>>>>>>>>>> Certainly addresses my
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> hesitations from v2.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> skylar
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>> On May 9, 2011, at 12:36 PM, Eran Hammer-Lahav
> >> wrote:
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> (Please discuss this draft on the Apps-Discuss
> >>>>>>>>>>>>>>>>>>> <apps-disc...@ietf.org> mailing list)
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> http://tools.ietf.org/html/draft-hammer-oauth-v2-
> >> mac-
> >>>>>>>>>>>>>>>>>>>
> >>>> tok
> >>>>
> >>>>>>>>>>>>>>>>>>> en
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> While this document has moved to the Apps-
> Discuss
> >>>>>>>>>>>>>>>>>>> mailing list for the
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> time being, I wanted to give a quick update to those who
> >>>>>>>>>>>>>>> have been following this draft which originated on this
> list.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> The major changes since -02 are:
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> * Removed OAuth terminology and association.
> The
> >>>>>>>>>>>>>>>>>>>
> >>>> draft
> >>>>
> >>>>>>>>>>>>>>>>>>> is now a
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> general purpose HTTP authentication scheme. It does
> >>>>>>>>>>>>>>> include an OAuth 2.0 binding which is described in less
> >>>>>>>>>>>>>>> than
> >> a page.
> >>>>>>>>>>>>>>> One suggestion would be to move section 5.1 into the
> >> OAuth
> >>>>>>>>>>>>>>> specification and drop all the OAuth 2.0 text from the
> >>>>>>>>>>>>>>> MAC
> >>>>>>>>>>>>>>>
> >>>> draft.
> >>>>
> >>>>>>>>>>>>>>>>>>> * Added 'Set-Cookie' extension for using MAC with
> >>>>>>>>>>>>>>>>>>>
> >>>> session cookies.
> >>>>
> >>>>>>>>>>>>>>>>>>> * Removed request URI query normalization. The
> new
> >>>>>>>>>>>>>>>>>>>
> >>>> draft
> >>>>
> >>>>>>>>>>>>>>>>>>> uses the
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> raw request URI unchanged.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> * Replaced timestamps with credentials age to
> >> remove
> >>>>>>>>>>>>>>>>>>>
> >>>> the
> >>>>
> >>>>>>>>>>>>>>>>>>> need for
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> clock sync.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> * Added a placeholder for extension, allowing
> random
> >>>>>>>>>>>>>>>>>>> text to be
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> included in the request and MAC.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> * Added issuer attribute for identifying the source
> >>>>>>>>>>>>>>>>>>> of the credentials as
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> an additional protection.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> Draft -04 is not compatible with previous drafts.
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>> EHL
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>> _______________________________________________
> >>>>
> >>>>>>>>>>>>>>>>>>> OAuth mailing list
> >>>>>>>>>>>>>>>>>>> OAuth@ietf.org
> >>>>>>>>>>>>>>>>>>> https://www.ietf.org/mailman/listinfo/oauth
> >>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>
> >>>> _______________________________________________
> >>>>
> >>>>>>>>>>>>>>>> OAuth mailing list
> >>>>>>>>>>>>>>>> OAuth@ietf.org
> >>>>>>>>>>>>>>>> https://www.ietf.org/mailman/listinfo/oauth
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> --
> >>>>>>>>>>>>>>> Peter M. Wolanin, Ph.D.      : Momentum Specialist,
> Acquia.
> >>>>>>>>>>>>>>>
> >>>> Inc.
> >>>>
> >>>>>>>>>>>>>>> peter.wola...@acquia.com : 978-296-5247
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> "Get a free, hosted Drupal 7 site:
> >>>>>>>>>>>>>>>
> >>>> http://www.drupalgardens.com";
> >>>>
> >>>>>>>>>>>>>>>
> >> _______________________________________________
> >>>>>>>>>>>>>>> OAuth mailing list
> >>>>>>>>>>>>>>> OAuth@ietf.org
> >>>>>>>>>>>>>>> https://www.ietf.org/mailman/listinfo/oauth
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> _______________________________________________
> >>>>>>>>>>>>> OAuth mailing list
> >>>>>>>>>>>>> OAuth@ietf.org
> >>>>>>>>>>>>> https://www.ietf.org/mailman/listinfo/oauth
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>> _______________________________________________
> >>>>>> OAuth mailing list
> >>>>>> OAuth@ietf.org
> >>>>>> https://www.ietf.org/mailman/listinfo/oauth
> >>>>>>
> >>>>>>
> >>>>> _______________________________________________
> >>>>> OAuth mailing list
> >>>>> OAuth@ietf.org
> >>>>> https://www.ietf.org/mailman/listinfo/oauth
> >>>>>
> >>>>>
> >>>> _______________________________________________
> >>>> OAuth mailing list
> >>>> OAuth@ietf.org
> >>>> https://www.ietf.org/mailman/listinfo/oauth
> >>>>
> > _______________________________________________
> > OAuth mailing list
> > OAuth@ietf.org
> > https://www.ietf.org/mailman/listinfo/oauth

_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to