Re: [kitten] WGLC on draft-ietf-kitten-pkinit-freshness-01

Greg Hudson <ghudson@mit.edu> Tue, 13 October 2015 20:56 UTC

Return-Path: <ghudson@mit.edu>
X-Original-To: kitten@ietfa.amsl.com
Delivered-To: kitten@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0DEBC1A8BB6 for <kitten@ietfa.amsl.com>; Tue, 13 Oct 2015 13:56:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.211
X-Spam-Level:
X-Spam-Status: No, score=-4.211 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cvcSRWAtRJSm for <kitten@ietfa.amsl.com>; Tue, 13 Oct 2015 13:56:37 -0700 (PDT)
Received: from dmz-mailsec-scanner-1.mit.edu (dmz-mailsec-scanner-1.mit.edu [18.9.25.12]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A89171A8BB4 for <kitten@ietf.org>; Tue, 13 Oct 2015 13:56:36 -0700 (PDT)
X-AuditID: 1209190c-f79b76d000007c4e-24-561d700266cb
Received: from mailhub-auth-4.mit.edu ( [18.7.62.39]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by dmz-mailsec-scanner-1.mit.edu (Symantec Messaging Gateway) with SMTP id A5.B3.31822.2007D165; Tue, 13 Oct 2015 16:56:34 -0400 (EDT)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) by mailhub-auth-4.mit.edu (8.13.8/8.9.2) with ESMTP id t9DKuYr7018469 for <kitten@ietf.org>; Tue, 13 Oct 2015 16:56:34 -0400
Received: from [18.101.8.171] (vpn-18-101-8-171.mit.edu [18.101.8.171]) (authenticated bits=0) (User authenticated as ghudson@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.8/8.12.4) with ESMTP id t9DKuWNn012861 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT) for <kitten@ietf.org>; Tue, 13 Oct 2015 16:56:33 -0400
To: kitten@ietf.org
References: <alpine.GSO.1.10.1508161121510.22210@multics.mit.edu> <alpine.GSO.1.10.1510012326350.26829@multics.mit.edu> <BY1PR03MB1417F6EC192399445C5A2A83D0300@BY1PR03MB1417.namprd03.prod.outlook.com>
From: Greg Hudson <ghudson@mit.edu>
X-Enigmail-Draft-Status: N1110
Message-ID: <561D7000.9080605@mit.edu>
Date: Tue, 13 Oct 2015 16:56:32 -0400
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0
MIME-Version: 1.0
In-Reply-To: <BY1PR03MB1417F6EC192399445C5A2A83D0300@BY1PR03MB1417.namprd03.prod.outlook.com>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: 8bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrLIsWRmVeSWpSXmKPExsUixG6nrstUIBtm0PpGz+Lo5lUsDoweS5b8 ZApgjOKySUnNySxLLdK3S+DKePN6BlPBLsmKholdLA2M10W6GDk5JARMJK5P7WKCsMUkLtxb z9bFyMUhJLCYSeLnx0esIAkhgeOMEmfmaUHYt5gkdl9RBbGFBZwlbs88ww5iiwgIS+ze+o4Z ovkMo8TGd0vBprIJKEus37+VBWKDnERv9yQwm1dATeLIxl9ADRwcLAKqEl3z5UHCogIREqfO vmWDKBGUODnzCVg5p0CsxK4/z8FGMgvoSey4/osVwpaXaN46m3kCo+AsJC2zkJTNQlK2gJF5 FaNsSm6Vbm5iZk5xarJucXJiXl5qka6hXm5miV5qSukmRlCockry7GB8c1DpEKMAB6MSD++L SJkwIdbEsuLK3EOMkhxMSqK8nxNlw4T4kvJTKjMSizPii0pzUosPMUpwMCuJ8BqlAuV4UxIr q1KL8mFS0hwsSuK8m37whQgJpCeWpGanphakFsFkZTg4lCR4D+UBNQoWpaanVqRl5pQgpJk4 OEGG8wANjwKp4S0uSMwtzkyHyJ9iVJQS540ESQiAJDJK8+B6wakklWP1K0ZxoFeEeTVAqniA aQiu+xXQYCaQq9mlQAaXJCKkpBoY7ZirItKkLi9zr6k73Dtl6u/bnGdPNjF6rz/anvEvS3ra t6nbe1vLopx+v2I1ObFXfNumHQq/i0W27rudMb/r1lHOP4k8PuYM2//sUdMqMOi622n4cHah 8sRUv0l94UqRD2xLJsfxfN02/YDs2r18NZLHnsyotNYXN/4yWf3Ksfd+X72b93U9UGIpzkg0 1GIuKk4EAATJ9BwAAwAA
Archived-At: <http://mailarchive.ietf.org/arch/msg/kitten/ZYgiYsdmbDw6IZ3ChYENk5dqC6Y>
Subject: Re: [kitten] WGLC on draft-ietf-kitten-pkinit-freshness-01
X-BeenThere: kitten@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Common Authentication Technologies - Next Generation <kitten.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/kitten>, <mailto:kitten-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/kitten/>
List-Post: <mailto:kitten@ietf.org>
List-Help: <mailto:kitten-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/kitten>, <mailto:kitten-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 13 Oct 2015 20:56:40 -0000

On 10/13/2015 02:49 PM, Michiko Short wrote:
> 	1. RFC 4120 Section 1.5.2 specifies that the KDC should only use new extensions if the padata element is present in the AS-REQ.

I'm not asking to get rid of the request, but I want to reiterate that I
don't think this is a correct reading of RFC 4120 section 1.5.2.  We
know exactly what an old client will do with a PA-AS-FRESHNESS value in
METHOD-DATA: ignore it.  We have relied on this client behavior numerous
times in the past, such as when we added PA-ETYPE-INFO and PA-ETYPE-INFO2.

> 	2. KDC performance impact. The KDC cannot tell the difference between an AS ping for a password-based client vs certificate if the client does not explicitly ask for the token. Many (maybe most) realms are a mix of password-based and certificates.    

There are other ways to address any performance impact such as reusing
freshness tokens, but I understand the desire for simplicity.

> 	3. In Windows Active Directory, accounts configured with AltSecID can receive a principal not found error and fail logon when the normal password AS ping is sent since the cname is not in the global catalog. By requesting the freshness token, the KDC can choose to return the preauth failure with the token when the account cannot be found.  

I don't understand this.  What is the message sequence?  Do you want to
return a freshness token in a KDC_ERR_C_PRINCIPAL_UNKNOWN error?

> KDC_ERR_PREAUTH_FAILED vs KDC_ERR_PREAUTH_EXPIRED 
> The first thing I can think of is that currently the draft only requires RFC 4120 & 4556 and FAST is just an informative reference (not to mention that the error is MAY and not in all implementations of FAST). Not sure what the precedence is for pulling just the error behavior from an RFC.

I don't think there is any problem with making RFC 6113 a normative
reference just to use the error code.  We would not be requiring KDCs or
clients to implement FAST; RFC 6113 describes a general framework for
pre-authentication, with FAST as one component.

> We choose KDC_ERR_PREAUTH_FAILED because it was supported already and "Pre-authentication information was invalid" seemed accurate for the situation. 

In MIT krb5, would be rather difficult for us to perform a retry of the
same preauth mechanism after KDC_ERR_PREAUTH_FAILED without creating
unfortunate edge cases.  (For example, we definitely don't want to retry
encrypted timestamp after KDC_ERR_PREAUTH_FAILED, because of password
lockout.)  Most likely we would wind up ignoring that part of the spec
and fail out when a freshness token expired due to prompting delay.

In contrast, we already (in 1.14) perform a retry from scratch on
KDC_ERR_PREAUTH_EXPIRED, so we would not need to make any changes to the
core preauth code.

> 7.  Security Considerations

This looks mostly okay aside from editorial concerns, except:

> 2.  The KDC can determine authenticity and prevent tampering.

Discussing FAST here seems confusing than helpful.  FAST protects
against some kinds of tampering by a network attacker, but wouldn't even
begin to protect against a rogue client tampering with the contents of
the freshness token (e.g. changing a timestamp to make an old token look
new).