> On Nov 17, 2016, at 8:17 AM, Brian Campbell <bcampb...@pingidentity.com> 
> wrote:
> 
> inline...
> 
> On Wed, Nov 16, 2016 at 1:47 AM, Sean Leonard <dev+i...@seantek.com 
> <mailto:dev+i...@seantek.com>> wrote:
> Hello OAuth folks:
> 
> I have some feedback about draft-campbell-oauth-tls-client-auth-00. Overall I 
> think it is a good, concise effort, and should be adopted as a WG item. Sorry 
> that it didn’t get addressed in the WG meeting.
> 
> Thanks Sean. Some things at the WG meeting ran long and it fell off the back 
> of the list. The slides that would have been presented are in the meeting 
> materials 
> https://www.ietf.org/proceedings/97/slides/slides-97-oauth-sessb-tls-client-auth-00.pdf
>  
> <https://www.ietf.org/proceedings/97/slides/slides-97-oauth-sessb-tls-client-auth-00.pdf>
>  if anyone wants to take a look (there's not a whole lot to them though). 
>  
> 
> Section 1 mentions “shared secret” as the default in OAuth 2.0, but this 
> draft provides an alternative that (implicitly) does not require a shared 
> secret between the client and server components. However, this draft does not 
> elaborate on the advantages of avoiding shared secrets: the advantages should 
> be addressed in Section 1 or in the Security Considerations. In particular, a 
> lot of enterprise scenarios seem to do intentional man-in-the-middle attacks 
> (aka endpoint termination) for “logging” and “auditing” purposes: see the 
> IETF 97 TLS WG meeting materials 
> <slides-97-tls-tls-visibility-inside-the-data-center>. These same enterprise 
> use cases are significant motivators for eliminating shared secrets on the 
> wire.
> 
> I agree that Section 1 could say more about the motivation/advantages over 
> the shared client secret. I'll look to expand on that in future revisions. 
> Specific proposed text is always welcome too. 
>  
> Section 5.2 discusses some ideas about associating/binding a certificate to a 
> client identifier (client_id). I understand that in many use cases, the 
> certificate and public key will be long-lived and issued by an authority 
> prior to the client’s contact with the AS; in a minority of use cases (such 
> as IoT devices), the AS will also issue certificates to clients.
> 
> The best and most flexible way to do this is to define an attribute, let’s 
> say “oauthClientID”, of type VisibleString, which can be multi-valued. By 
> defining it as an attribute, it can be put in at least four useful protocol 
> slots:
> 1. Subject Directory Attributes (RFC 5280 Section 4.2.1.8): this is where 
> metadata about the subject goes that is not part of the distinguished name.
> 2. Subject attributes: this is when you want the client_id to be bound more 
> authoritatively to the certificate, i.e., the utility and lifetime of the 
> certificate == the lifetime of the client/AS association.
> 3. LDAP attributes: this is where metadata about the subject is associated 
> together with the certificate, but not part of the certificate (which is 
> usually in the userCertificate attribute for the LDAP entry).
> 4. “other places” where metadata gets associated with certificates, such as 
> crypto tokens and databases (LDAP, of course, is just a type of database).
> 
> By making the attribute multi-valued, one can associate multiple client_ids 
> with one certificate, which means that the same certificate/keypair can be 
> used with multiple services.
> 
> Creating a new attribute is strongly preferable to reusing a field such as 
> “commonName”, since commonName is overused and can lead to conflicts (compare 
> with SSL’s legacy use of commonName). subjectAltName is also not preferable 
> because the client_id itself is not really a globally unique name; it’s 
> closer to a serial number or random (but not secret) string. To make it 
> globally unique it needs to be combined with an identifier for the AS, and 
> that makes such a structure more complicated. Furthermore, subjectAltName is 
> specific to being inside a certificate; it does not have semantics outside of 
> a certificate, whereas a generic directory attribute has equal semantics 
> inside and outside of certificates.
> 
> I believe that the specifics of if and how a client id is represented in a 
> certificate is well beyond the scope of this document.  But maybe some 
> considerations or guidance about using an attribute would be appropriate in 
> describing one possible way to do the binding between client and certificate, 
> if you wanted to propose some specific text.   

Sure, I can propose some specific text along those lines. I will try to supply 
something over the next few weeks.

Best regards,

Sean

> 
>  
> Editorial: there is a typo: Section 5.2: “specifc” should be “specific”.
> 
> Will fix. Thanks. 
> 
>  
> 
> Regards,
> 
> Sean
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org <mailto:OAuth@ietf.org>
> https://www.ietf.org/mailman/listinfo/oauth 
> <https://www.ietf.org/mailman/listinfo/oauth>
> 

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

Reply via email to