+1


________________________________
 From: Justin Richer <jric...@mitre.org>
To: oauth@ietf.org 
Sent: Thursday, December 8, 2011 6:30 AM
Subject: Re: [OAUTH-WG] Mandatory to Implement & Interoperability
 
+1

Very well said, Hannes.

  -- Justin

On 12/08/2011 09:18 AM, Hannes Tschofenig wrote:
> Hi all,
>
> I read through this rather long mail thread again and see whether we are 
> reaching any conclusion on this discussion.
> In turns out that there are actually two types of discussions that relate to 
> each other, namely the TLS version support and the token type.
>
> Let me go back in time a little bit when I was still chairing another working 
> group (years ago), namely the KEYPROV working group. There we ran into a 
> similar issue, which looked fairly simple at the beginning. We worked on 
> Portable Symmetric Key Container (PSKC),  later published as RFC 6030. We 
> were at the stage where we thought we had to decide on a 
> mandatory-to-implement cryptographic algorithm and, similar to the OAuth 
> case, PSKC is one building block in a larger protocol suite. As you can 
> imagine, everyone had their own deployment environment in mind and did not 
> like the suggestion others made about what as mandatory to implement.
>
> Russ (now IETF chair and at that time security area director) told the group 
> not to worry - we don't need to pick an algorithm. He suggested to just 
> provide a recommendation of what is best in a specific deployment environment 
> (at the time of writing). In fact, he proposed to publish a separate document 
> instead to discussing it in that document.
>
> I was surprised because I was couldn't see how one would accomplish 
> interoperability. Russ told me that this is in practice not a problem because 
> implementations often implement a range of cryptographic algorithms anyway. 
> Then, as part of the algorithm negotiation procedure (or some discovery) they 
> will figure out what both end points support. He further argued that 
> algorithm preferences will change (as algorithms get old) and we don't want 
> to update our specifications all the time. (This was a bit motivated by the 
> MD5 clean-up that happened at that time.) [Please forgive me if I do not 
> recall the exact words he said many years ago.]
>
> I believe we are having a similar discussion here as well, both with the 
> token type but also with the TLS version. We look at individual 
> specifications because we are used to add security consideration sections to 
> each and every document. Unfortunately, the most useful statements about 
> security (for these multi-party protocols where the functionality is spread 
> over multiple documents) can really only be made at a higher level. Our 
> approach for describing security threats and for recommending countermeasures 
> isn't suitable to all the documents we produce.
>
> Let me list a few desirable results of our standardization work:
>
> 1) Everyone wants interoperability. We can do interop testing of building 
> blocks to see whether a client and a server are able to interact. For 
> example, we could write a few test cases to see how two independent bearer 
> token specifications work with each other. That approach works for some of 
> our building blocks. I do, however, believe that we are more interested of an 
> interoperable system consisting of several components rather than having 
> interop between random components. Even if we do not like it, OAuth is an 
> application level protocol that requires a number of things to be in place to 
> make sense.
>
> 2) We want libraries to be available that allow implementers to quickly 
> "OAuth-enable" their Web applications, i.e., by quickly I mean that an 
> application develop shouldn't have to write everything from scratch. Most of 
> the development time will be spent on aspects that are not subject to 
> standardization in the working group (such as the user interface and the 
> actual application semantic -- the data sharing that happens once the 
> authorization step is completed). These libraries are likely to support 
> various extensions and getting two different implementations to interwork 
> will IMHO in practice not be a problem. However, for a real deployment it 
> seems that the current direction where people are going is more in the line 
> of trust frameworks where much more than just technical interoperability is 
> needed for a working system. See the discussions around NSTIC for that matter.
>
> 3) We want the ability for algorithm negotiation/discovery, at least up to a 
> certain degree. For example, it would would nice if a client talks to a 
> server and they both implement TLS 1.2 then they actually use it. The 
> requirement for crypto-agility fits in here as well.
>
> 4) We want to separate the protocol specification from the cryptographic 
> algorithms and other faster changing components. We don't want to update our 
> protocol specification just because an algorithm becomes obsolete or the 
> protocol suddenly gets used in a different environment where other 
> constraints may be prevalent.
>
> 5) The security analysis and the solution approaches will vary based on the 
> deployment environment. During the Taipei OAuth WG meeting I tried to explain 
> what I mean with this statement with my reference to NIST SP 800-63. For some 
> reason I failed to get the story across and so I try it again here.
>
> The authors of NIST SP 800-63 (of which one is Tim Polk, former IETF security 
> AD) noticed that identity management protocols will be used for a variety of 
> different usages, each with different security properties, and varying 
> privacy requirements. For this purpose, the NIST guys had introduced the 
> famous "Level of Assurance (LoA)" concept. Different levels put different 
> requirements on different parts of the protocol suite. There is no 
> expectation that bearer assertions will be issued by an authorization server 
> for usage with a client at LoA level 4. A client implementation for the 
> health care environment may also not expect to accept LoA 1 only suitable 
> mechanisms.
>
> While it may be fine for certain environments not to care about the installed 
> code size there are certainly cases where size of code matters. I am not only 
> thinking about the Internet of Things space but also about the 
> vulnerabilities that are introduced by unnecessary code.
>
> While I understand that it would be great if anything interworks with 
> anything else out of the box I don't see how to get there.
>
> Hence, I suggest that we
>
> a) skip specifying a mandatory-to-implement token-type, TLS version, etc. in 
> the individual specifications,
> b) complete re-chartering and to get some of the other needed building blocks 
> done that get us closer to an more complete "system,
> c) develop OAuth profiles and security recommendations for different security 
> levels (in the style of what SP 800-63 outlines),
> d) capture this discussion on mandatory-to-implement security mechanisms in a 
> draft and socialize it with the rest of the IETF security community,
> e) have a broader discussion about what we envision the Web identity 
> eco-system to look like. 
> http://tools.ietf.org/html/draft-tschofenig-secure-the-web-00 tries to make a 
> first step but it is still at an early stage.
>
> Ciao
> Hannes
>
> _______________________________________________
> 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