Re: [TICTOC] [ntpwg] security ID submitted for review

Danny Mayer <mayer@ntp.org> Sun, 10 November 2013 20:15 UTC

Return-Path: <mayer@ntp.org>
X-Original-To: tictoc@ietfa.amsl.com
Delivered-To: tictoc@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D476221E8143 for <tictoc@ietfa.amsl.com>; Sun, 10 Nov 2013 12:15:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.199
X-Spam-Level:
X-Spam-Status: No, score=-4.199 tagged_above=-999 required=5 tests=[AWL=-1.600, BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hP9Hw8CIOsU7 for <tictoc@ietfa.amsl.com>; Sun, 10 Nov 2013 12:15:55 -0800 (PST)
Received: from mail1.ntp.org (mail1.ntp.org [IPv6:2001:4f8:fff7:1::5]) by ietfa.amsl.com (Postfix) with ESMTP id D9EA821E8142 for <tictoc@ietf.org>; Sun, 10 Nov 2013 12:15:55 -0800 (PST)
Received: from pool-173-76-231-254.bstnma.fios.verizon.net ([173.76.231.254] helo=[192.168.1.4]) by mail1.ntp.org with esmtpsa (TLSv1:CAMELLIA256-SHA:256) (Exim 4.77 (FreeBSD)) (envelope-from <mayer@ntp.org>) id 1VfbQA-000GKp-0g; Sun, 10 Nov 2013 20:15:48 +0000
Message-ID: <527FE956.1050107@ntp.org>
Date: Sun, 10 Nov 2013 15:15:18 -0500
From: Danny Mayer <mayer@ntp.org>
Organization: NTP
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0
MIME-Version: 1.0
To: "David L. Mills" <mills@udel.edu>, Kurt Roeckx <kurt@roeckx.be>
References: <51FAC820.3090401@udel.edu> <20130803174008.GA17578@roeckx.be> <52019C7B.9070602@udel.edu>
In-Reply-To: <52019C7B.9070602@udel.edu>
X-Enigmail-Version: 1.6
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
X-SA-Exim-Connect-IP: 173.76.231.254
X-SA-Exim-Rcpt-To: mills@udel.edu, kurt@roeckx.be, ntpwg@lists.ntp.org, tictoc@ietf.org
X-SA-Exim-Mail-From: mayer@ntp.org
X-SA-Exim-Version: 4.2
X-SA-Exim-Scanned: Yes (on mail1.ntp.org)
Cc: NTP Working Group <ntpwg@lists.ntp.org>, "tictoc@ietf.org" <tictoc@ietf.org>
Subject: Re: [TICTOC] [ntpwg] security ID submitted for review
X-BeenThere: tictoc@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: mayer@ntp.org
List-Id: Timing over IP Connection and Transfer of Clock BOF <tictoc.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tictoc>, <mailto:tictoc-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tictoc>
List-Post: <mailto:tictoc@ietf.org>
List-Help: <mailto:tictoc-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tictoc>, <mailto:tictoc-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 10 Nov 2013 20:15:56 -0000

Dave,

I'm of the opinion that we should retire the MAC altogether and create a
MAC extension field instead. A lot of logic has been going into working
out whether or not we have an extension field or the MAC. The MAC
extension field could be REQUIRED to be the last extension field. That
way you know the length of each extension field and you could put
additional information in the MAC extension field indicating the type of
computation needed for the MAC. This makes a MAC easily extensible.

I'm not convinced that a server needs to authenticate a client except in
the context of an autokey dance. Then you only need to recognized the
key type presented and process according to that key type. I don't think
it's practical for the server to maintain state unless in the context of
an association. Drive-by NTP packets just are not worth the effort involved.

Danny

On 8/6/2013 9:01 PM, David L. Mills wrote:
> The more I think of it, the better I like a design where the existing
> MAC is replaced by a single extension field computed as the signature of
> the header.  I previously suggested this for broadcast mode, but I think
> this could be useful in other modes as well.  It would be hightly
> interesting to determine the overhead for such a signature using modern
> processors.  An experiment could be designed for the current NTP
> implementation.  It would consist of an adaptor routine that matches an
> OpenSSL signature routine to the authencrypt/authdecrypt interface
> routine.  I would do this myself, but with my current vision condition,
> it would not be practical.  For someone with knowledge of the NTP
> programming style, this would be an interesting weekend project.
> 
> In theis proposed design a busy server could be presented with thousands
> of signed client requests, each requiring  a signed server response. 
> However, the server might ignore the client request signature on the
> expectation that the  server response could be reliably determined. 
> Actually, the NTP on-wire protocol is very good for this.  As an aside,
> the protocol analysis and simulation described in the white paper at the
> NTP project page could be done for PTP as well.
> 
> Dave
> 
> Kurt Roeckx wrote:
>> On Thu, Aug 01, 2013 at 08:42:08PM +0000, David L. Mills wrote:
>>   
>>> Guys,
>>>
>>> Here are some general comments on the ID.  I apologize if they are a
>>> little rough as I have to dictate this message instead of my usual
>>> polished wordsmithing.
>>>
>>> format.
>>> The ID does not specify an extension field format.
>>>     
>>
>> The draft only seems to specify the the general idea of how it
>> should work and doesn't seem to go into detail how this should
>> work at the protocol level.  I assume he first wants to know if
>> the solution is something that can work and that others see
>> as a good solution before he works out the details.
>>
>>   
>>> In particular, the private key for the message
>>> authentication code (MAC) , if used, must be known beforehand.  This
>>> is where the "cookie snatcher" issue comes up as described in
>>> previous messages.  In particular, an important constraint for
>>> normal operation is that extension fields are not used unless
>>> required for cookie determination.
>>>     
>>
>> I'm not sure I understand your remark.  As far as I know the
>> "cookie snatcher" you talk about is the normal "man in the middle"
>> attack.  As I understand we would change the verification by
>> replacing it by the normal X.509 verification as done for instance
>> SSL/TLS.
>>
>> I assume you meant public key and note private key.
>>
>>   
>>> Glaring vulnerability exists when using extension fields, as the key
>>> value is public and must be known in advance.  This invites a
>>> cut-and-paste attack, as well as header changes, even if
>>> subsequently detected by the on-wire protocol.
>>>     
>>
>> I've seen this cut-and-paste attack mentioned before, but I've
>> never really understood it.  As I understand things, the MAC
>> is generated over the NTP + extensions.  I don't see how you
>> can take the extension from 1 packet into an other and still
>> have a valid MAC.  Or are you saying that you do something
>> with a packet even when it doesn't have a valid MAC?
>>
>>   
>>> certificate.
>>> Both RFC 5906 and the ID require the server certificate.  The server
>>> certificate can be conveyed, either off-line, or directly or
>>> indirectly via a certificate trail as described in RFC 5906 or the
>>> ID.  If obtained via the trail, there is a hazzard due to a
>>> middle-man attack and masquerade.
>>>     
>>
>> I really don't understand how such a man in the middle attack
>> can work.  Either the certificate + the chain validate, or they
>> don't.  It is of course important to you check that the CommonName
>> in the certificate matches the server you're trying to reach,
>> and that the root CA is in your list of trusted CAs.  But there
>> really isn't anything new or hard about this.
>>
>>   
>>> In broadcast mode, the protocols described in RFC 5906 and the ID
>>> are messy and with several possible vulnerabilities.  Here is a
>>> suggestion that might be useful.  Define a new broadcast packet
>>> format as the NTP header followed by one extension field
>>> representing the MAC.  The extension field represents the signature
>>> of the header computed using the private key of the server and can
>>> be verified by the client using the public key in the server
>>> certificate.  Originally, this was considered an unacceptable
>>> dilution of accuracy due to the variability of the signature
>>> computing time and the length of the signature.  However, at least
>>> in modern NTP, the interleaved broadcast mode can be used to correct
>>> for this overhead.  This assumes that the overhead for either the
>>> server or client is reduced using fast modern processors.
>>>     
>>
>> I think that in all cases where it's no problem to keep track of
>> all clients you should use the interleaved mode, and we can use
>> something like the Diffie-Hellman key agreement for those.
>>
>> But there clearly is also a need for servers that can't keep
>> the state of each client, and we need something else for that.
>> So maybe we need to define 2 ways of working.
>>
>>
>>
>> Kurt
>>
>>   
> 
> 
> 
> _______________________________________________
> ntpwg mailing list
> ntpwg@lists.ntp.org
> http://lists.ntp.org/listinfo/ntpwg
>