Subject: [secdir] Secdir review of draft-ietf-scim-core-schema-18

From: "Brian Weis (bew)" <[email-masked]>
Date: Mon, 4 May 2015 17:39:48 +0000

I have reviewed this document as part of the security directorate's ongoing effort to review all IETF documents being processed by the IESG. These comments were written primarily for the benefit of the security area directors. Document editors and WG chairs should treat these comments just like any other last call comments.

For the security area directions, I consider this document to be "Ready with nits”.

This document documents resources a JSON scheme for Cross-Domain Identity Management, a standard definition of attributes representing users and groups, and a set of named schemas incorporating these attributes. The goal of the document  is to make identity management in cloud based applications and services easier. This is used when identity information needs to be shared between services.

The Security Considerations (Section 9) in version 18 is reasonably clear in the first two sub-sections that there are risks to sensitive information defined in the schema, these sub-sections point to helpful text in draft-ietf-scim. It is much improved over version 17. I have a couple of comments suggesting clarification be added to the document.

Section 9.3 begins by stating the schema “defines attributes that MAY contain personally identifiable information as well as other sensitive data”. I don’t understand the “MAY”. Just about every attribute described in this document is arguably personally identifiable information (PII), since transporting PII between services seems to be the actual need for development of the schema. It seems more accurate to say “defines attributes that contain personally identifiable information as well as other sensitive data”. (Also “MAY” is intended to declare a part of the standard that is optional for an implementation, and I don’t see how that could apply here.)

Section 4.1.1 defines the “password” attribute as a “clear text password”. It is much safer to store and pass a salted and hashed password. Do none of the services using this schema support a method of hashing a user password to see if it matches a given hashed value ? Or could this be an option in the scheme definition? If so, it would be worth describing that here and in the Security Considerations section.

 Brian

---

From: "Brian Weis (bew)" <[email-masked]>
Date: Mon, 4 May 2015 19:26:55 +0000

Hi Phil,

On May 4, 2015, at 11:45 AM, Phil Hunt <[email-masked]> wrote:

> Brian,
> 
> Thanks for taking time to review both the recent documents. My proposed corrections inline…
> 
> Phil
> 
> [email-masked]
> 
>> On May 4, 2015, at 10:39 AM, Brian Weis (bew) <[email-masked]> wrote:
>> 
> You are right. The 2119 MAY is probably not appropriate. How about 
> “defines attributes that are sensitive and may be considered personally identifiable information(PII).”
> 
> I think that inverts the emphasis getting people to realize that almost all data is likely at least sensitive. 

That’s a fine way to state it, thanks.

> This may be a question of document structure.  We could copy/move the salting/hashing requirements to the schema definition. However, my thinking was the salting/hashing is not part of the protocol - thus should not be in the core spec sections. My thinking was that salting/hashing is really a security consideration for the implementer since it is a practical consideration of “using" the protocol.
> 
> I’m not sure what you mean by “pass a salted and hashed password” (may be I am mis-reading your intent). That would seem to be something to say must not be done since it implies multiple servers having a common salt/hash.  In LDAP, even replication passes the clear text but the servers only store replica unique salted hashes.

The distinction I’m making is the difference between a  clear text password (e.g., "t1meMa$heen”) and a hashed version of the password, which although still sensitive is considered to be safer. My hope would be for the schema to represent  both forms of passwords, because it would be a significant improvement in security. If this is the case, then it would be good to describe the use of the hashed password wherever you feel makes the most sense. If this is not the case, it would be worth mentioning in Security Considerations that hashed passwords are not supported, because the omission is likely to be surprising to some readers.

Thanks,
Brian 

-- 
Brian Weis
Security, CSG, Cisco Systems
Telephone: +1 408 526 4796
Email: [email-masked]

---

From: "Brian Weis (bew)" <[email-masked]>
Date: Tue, 5 May 2015 06:57:05 +0000

Hi Phil,

On May 4, 2015, at 11:35 PM, Phil Hunt <[email-masked]> wrote:

> Brian,
> 
> I think we may be talking about different things. Maybe there is some confusion on the role of provisioning vs. authentication or maybe protocol vs. storage?
> 
> If a client were to pre salt/hash a password (supposedly to protect it in transit) then the service provider and client would have to agree on a salt and hash.  This decreases security dramatically since multiple domain now have the same hashed values.  
> 
> The intent is that every service provider endpoint that gets a clear-text password, generates its own unique salted hash and stores that value.

Ah. I actually wasn’t suggesting doing a salt/hash just for protecting it in transit — I was expecting that the endpoints would use the same method and so could send the salted hash. So this explanation of each provider generating their own unique salted hash is a key point. It would definitely be helpful to add this rationale to the security considerations section, as it explains why the password attribute needs to be clear text.

Thanks,
Brian

> 
> Phil
> 
> [email-masked]
> 
>> On May 4, 2015, at 12:26 PM, Brian Weis (bew) <[email-masked]> wrote:
>> 
>> Hi Phil,
>>

---

From: Kathleen Moriarty <[email-masked]>
Date: Tue, 5 May 2015 08:21:35 +0100

Thanks for your review, Brian.  Inline.

Sent from my iPhone

> On May 4, 2015, at 8:26 PM, "Brian Weis (bew)" <[email-masked]> wrote:
> 
> Hi Phil,
> 

Thanks for this change.  I haven't gotten to this draft yet and agree this was needed.
> The distinction I’m making is the difference between a  clear text password (e.g., "t1meMa$heen”) and a hashed version of the password, which although still sensitive is considered to be safer. My…

Yes, please do update this in this draft or include the warning.

Thanks,
Kathleen

---

From: Tina TSOU <[email-masked]>
Date: Wed, 13 May 2015 02:13:18 +0000

Dear all,  

In the intro, you refer to a number of attacks against TLS. Please provide references.

Section 1 and 2:
>    In order to avoid the confusion that would occur in attempting to 
>    describe an X.509 extension describing the use of TLS extensions, in 
>    this document the term 'extension' is reserved to refer to X.509v3 
>    extensions and the term 'feature' is used to refer to a TLS 
>    extension.
> 
> 2. Purpose
> 
>    The purpose of the TLS feature extension is to prevent downgrade 
>    attacks that are not otherwise prevented by the TLS protocol.

You should probably clarify in the terminology section what you mean by "TLS feature extension".

Section 3.3.1:

>    A CA SHOULD NOT issue certs with a TLS feature extension unless there
>    is an affirma

Please expand the acronym.

Thank you,
Tina

---

From: Phil Hunt <[email-masked]>
Date: Mon, 4 May 2015 11:45:01 -0700

Brian,

Phil

[email-masked]

---

From: Phil Hunt <[email-masked]>
Date: Mon, 4 May 2015 23:35:54 -0700

Brian,

Phil

[email-masked]