Re: Last Call: <draft-turner-md5-seccon-update-07.txt> (Updated

<L.Wood@surrey.ac.uk> Fri, 03 December 2010 22:58 UTC

Return-Path: <L.Wood@surrey.ac.uk>
X-Original-To: ietf@core3.amsl.com
Delivered-To: ietf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id E98653A69C3; Fri, 3 Dec 2010 14:58:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.545
X-Spam-Level:
X-Spam-Status: No, score=-6.545 tagged_above=-999 required=5 tests=[AWL=0.054, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8DLkW1Dm7ujs; Fri, 3 Dec 2010 14:58:03 -0800 (PST)
Received: from mail72.messagelabs.com (mail72.messagelabs.com [193.109.255.147]) by core3.amsl.com (Postfix) with ESMTP id 5454B3A69B8; Fri, 3 Dec 2010 14:58:03 -0800 (PST)
X-VirusChecked: Checked
X-Env-Sender: L.Wood@surrey.ac.uk
X-Msg-Ref: server-3.tower-72.messagelabs.com!1291417161!28987127!1
X-StarScan-Version: 6.2.9; banners=-,-,-
X-Originating-IP: [131.227.200.39]
Received: (qmail 3384 invoked from network); 3 Dec 2010 22:59:21 -0000
Received: from unknown (HELO EXHT012P.surrey.ac.uk) (131.227.200.39) by server-3.tower-72.messagelabs.com with AES128-SHA encrypted SMTP; 3 Dec 2010 22:59:21 -0000
Received: from EXMB01CMS.surrey.ac.uk ([169.254.1.245]) by EXHT012P.surrey.ac.uk ([131.227.200.39]) with mapi; Fri, 3 Dec 2010 22:59:20 +0000
From: L.Wood@surrey.ac.uk
To: mrex@sap.com
Date: Fri, 03 Dec 2010 22:59:19 +0000
Subject: Re: Last Call: <draft-turner-md5-seccon-update-07.txt> (Updated
Thread-Topic: Last Call: <draft-turner-md5-seccon-update-07.txt> (Updated
Thread-Index: AcuTPbfkBsDf+h/RQsycP5kvyeVI2g==
Message-ID: <4FE8ED0D-70E2-41F9-A9F4-80FFE1FA870F@surrey.ac.uk>
References: <201012032140.oB3Lex75021511@fs4113.wdf.sap.corp>
In-Reply-To: <201012032140.oB3Lex75021511@fs4113.wdf.sap.corp>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US, en-GB
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailman-Approved-At: Mon, 06 Dec 2010 07:31:30 -0800
Cc: wes@mti-systems.com, iesg@ietf.org, L.Wood@surrey.ac.uk, ietf@ietf.org
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ietf>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 03 Dec 2010 22:58:05 -0000

On 3 Dec 2010, at 21:40, Martin Rex wrote:

> L.Wood@surrey.ac.uk wrote:
>> 
>> I also take issue with RFC4270's claim that:
>> 
>>   The Internet protocol community needs to
>>   migrate in an orderly manner away from SHA-1 and MD5 -- especially
>>   MD5 -- and toward more secure hash algorithms.
>> 
>> which is rather broad, and entirely without the context and qualifiers
>> we're discussing. RFC4270 was not written for a general audience,
>> but for a security audience.  The Internet _security protocol_ community
>> may well need to migrate from these for certain uses (despite there not
>> yet being obvious things to move _to_), but RFC4270 and your draft's
>> sum take-away message that MD5BADDONOTUSE overstates the case. 
> 
> I agree that the above wording of rfc-4270 is BAD.
> 
> It should have said:
> 
>  The Internet community needs to migrate in an orderly manner away from
>  SHA-1 and MD5 -- especially MD5 -- and toward more secure hash algorithms
>  for all security-related usages of hash functions in all protocols.

That wording is better, though I would also add a qualifier
on the front by saying 'away from reliance for security purposes on SHA-1
and MD-5...'. This should imo be filed as an erratum on RFC4270.


>> Despite the fact that, as you say, it's still good for five of seven uses,
>> including integrity protection (which gets a mere sentence in 4270 as the
>> last of the seven - it's imo an area that is often neglected in protocol
>> design).
> 
> IMHO there is a serious defect in rfc-4270.  The "integrity protection"
> bullet ought to be bullet three,

The list isn't explicitly ranked. But putting the reliability point last
does say something interesting about the security mindset... if it's
not a deliberate attack, it's just not interesting or worthy of note.


> and MD5 is definitely _NOT_ suitable
> for anything with the term "integrity" in it.

That depends imo on whether "integrity" is used as a term in a security
context by a security person, or by anyone else. (I am not using the
term as a security person, but have been forced to use it when talking to
security people who have little notion of protection against errors or of
reliability.)


> Integrity protection is terminology that is used in the
> security&cryptographic area and this defect of rfc-4270 is going
> to create misunderstandings.

Yes.

We've actually run into this problem previously, and had to carefully use the
terms when talking to those who focus on terminology used, rather than the
overall point that is trying to be made. This leads to verbal gyrations
and a degree of doubletalk.

'Integrity' and 'protection' do have meanings outside security, and were used
long before their specific use in a security context (cf database integrity,
system integrity, even integrity protection in chemical plants). From context
here and the rest of the sentence, it's imo clear that reliability is what
is being referred to.

I don't think this is necessarily a second erratum, but then I'm not
a security type, and think that this is an example of why mathematicians
often invent new terms, rather than overloading old ones.


> MD5 (and SHA-1) are hash functions, and as such, they exhibit probabilistic
> collisions for different inputs.  MD5 is still useful for detection of
> "accidental" errors due to noise or distortion,

or segmentation/reassembly overwriting bugs or... it can be used to support the
the end-to-end-principle.

> but it is not suited
> to protect against intentional modification of data by an attacker.

agreed.

> There are other algorithms for detecting "accidental" errors, like
> "ECC bits", or CRCs of various sizes, e.g.
>   http://en.wikipedia.org/wiki/Cyclic_redundancy_check
> 
> Think of MD5 as an alternative to CRC128.

Well, MD5 is not a cyclic code, and CRC128 wouldn't cope well with checking
across anywhere near the sizes that MD5 can support; 128-bit MD5 has
been compared in error-detection strength (nb not crypto strength!) to CRC2048++,
which would be a rather complex polynomial. But I'm not so much of a purist that
I would stall at nitpicking your terminology here. Instead, I agree that the
overall point that you're making here is expressing exactly the point about MD5
that I've been trying to make, in relatively simple language for laymen.

To come back to where we came in, MD5 is fine for detecting errors in
a non-security context - but readers of RFC4270 and draft-turner-md5-seccon-update
are not going to pick that up from a casual read, and will come away
with 'MD5 bad, do not use' (and what's the alternative?).

draft-turner-md5-seccon-update needs to be much, much clearer on this and in
setting scope for use of MD5.

regards,

L.

> 
> 
> 
> -Martin

Lloyd Wood
L.Wood@surrey.ac.uk
http://sat-net.com/L.Wood