Re: [kitten] RFC2743 errata 4251
Nico Williams <nico@cryptonector.com> Mon, 15 December 2014 18:25 UTC
Return-Path: <nico@cryptonector.com>
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 BC88B1A8725 for <kitten@ietfa.amsl.com>; Mon, 15 Dec 2014 10:25:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.666
X-Spam-Level:
X-Spam-Status: No, score=-1.666 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, IP_NOT_FRIENDLY=0.334, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=no
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 2TB836uMmBnb for <kitten@ietfa.amsl.com>; Mon, 15 Dec 2014 10:25:08 -0800 (PST)
Received: from homiemail-a63.g.dreamhost.com (sub4.mail.dreamhost.com [69.163.253.135]) by ietfa.amsl.com (Postfix) with ESMTP id BD9141A8722 for <kitten@ietf.org>; Mon, 15 Dec 2014 10:25:08 -0800 (PST)
Received: from homiemail-a63.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a63.g.dreamhost.com (Postfix) with ESMTP id 6A76B2F4075; Mon, 15 Dec 2014 10:25:08 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=cryptonector.com; h=date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=cryptonector.com; bh=5YJ2eUOghFp6ZL /9zbeAaxfNqmc=; b=cQh0hMaLvm9NOQBavoRP29BLei6scYXjqZliVh1q2BZvel ReUavDKqoV+40FKci7GHa5oYFLaWGup6+g07A02txtEHAxsJ3HHxBU08Z4U8qXnf q85qTQridNfHyechY/Eo44AG5GEdzo7LovCgkK9coNG29doNK0t/ppH/1Ncl0=
Received: from localhost (108-207-244-174.lightspeed.austtx.sbcglobal.net [108.207.244.174]) (Authenticated sender: nico@cryptonector.com) by homiemail-a63.g.dreamhost.com (Postfix) with ESMTPA id 164032F406D; Mon, 15 Dec 2014 10:25:08 -0800 (PST)
Date: Mon, 15 Dec 2014 12:25:07 -0600
From: Nico Williams <nico@cryptonector.com>
To: Greg Hudson <ghudson@mit.edu>
Message-ID: <20141215182502.GI3241@localhost>
References: <alpine.GSO.1.10.1411241330400.19231@multics.mit.edu> <20141124185114.GM3200@localhost> <alpine.GSO.1.10.1412091618550.23489@multics.mit.edu> <20141209215519.GI12979@localhost> <alpine.GSO.1.10.1412091856160.23489@multics.mit.edu> <20141210002441.GP12979@localhost> <alpine.GSO.1.10.1412101349030.23489@multics.mit.edu> <548F185E.70701@mit.edu> <20141215175033.GF3241@localhost> <548F23E5.1020401@mit.edu>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <548F23E5.1020401@mit.edu>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: http://mailarchive.ietf.org/arch/msg/kitten/2qfHS9zYgm30aC8hr7XP2YU2-bM
Cc: kitten@ietf.org
Subject: Re: [kitten] RFC2743 errata 4251
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: <http://www.ietf.org/mail-archive/web/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: Mon, 15 Dec 2014 18:25:10 -0000
On Mon, Dec 15, 2014 at 01:09:41PM -0500, Greg Hudson wrote: > On 12/15/2014 12:50 PM, Nico Williams wrote: > >> (To be clear: saying that applications must eventually call > >> GSS_Delete_sec_context() is fine; saying that they should do so > >> immediately after a GSS_S_COMPLETE from GSS_Process_context_token() is > >> not fine.) > [...] > > Therefore the caller of GSS_Process_context_token(), while they can > > continue to process per-msg tokens from the peer, has to get around to > > calling GSS_Delete_sec_context(). > > I think I acknowledged above that it must do so eventually (that is, it > must not assume that calling GSS_Process_context token discharged its > responsibility to release the context, despite the lack of a > GSS_Delete_sec_context call by the client in the RFC 2743 section 1 > narrative). All apps must do so eventually, async context tokens or not. "Eventually" could mean "at the end of time". But here it has a more specific meaning: the "connection" state must be "cleanup", whatever that means to the app. > > In v2u1, the peer has indicated that it can't continue, so > > calling GSS_Wrap() and GSS_GetMIC() does the app no good[**]. > > I don't think that is really specified in RFC 2743. Section 2.2.4 says > "one use..." and then "another use..." but doesn't say that's a > comprehensive list of context token types. If the authors had intended > for these two uses to be a comprehensive list, I would have expected > more specific language than "impact on context-level state information" > in the preceding sentence. By elimination we know that no other outcomes are possible in the v2u1 API. > > Thus also the very specific reference to a GSS-API version (v2u1): it's > > quite true that a GSS-APIv2u1 application could not properly handle a v3 > > extension that uses async context tokens. What could a v2u1 application > > possibly do to properly handle such an extension? How could it interpret > > the major/minor status codes (other than GSS_S_DEFECTIVE_TOKEN) from > > GSS_Process_context_token() to determine whether the app should > > continue? If it can't, then how could it decide whether to keep going > > instead of getting around to calling GSS_Delete_sec_context()? > > It can try to keep going, and terminate the context when it runs into an > error or a transport-level or application-level closure. I think this > is the right behavior to encourage given the text in RFC 2743. But why bother with async context tokens then? I do see an argument for continuing: that an error token might have no integrity protection and the app can't tell, therefore the app should continue just in case. (Indeed, KRB-ERRORs today don't have integrity protection. The krb5 mech could just always return GSS_S_DEFECTIVE_TOKEN when processing unprotected KRB-ERRORs, with the peer-side error captured in the minor status. This could either be required behavior for the mechanism, or locally configurable.) But then, neither would a TCP FIN/RST... unless IPsec or some TCPINC protocol are in use, in which case the possible lack of integrity protection for a GSS error token is irrelevant. There's also no integrity protection for a non-responsive peer. I.e., active attackers can DoS a security context. That's not news though... > > A GSS-APIv2u1 app just has to end up calling GSS_Delete_sec_context() > > when GSS_Process_context_token() returns either GSS_S_COMPLETE or > > GSS_S_FAILURE -- and "soon" after, too. > > I don't see a compelling reason to encourage doing so "soon" after a > GSS_S_COMPLETE. I don't see a compelling reason not to. Again, this is tied to a very specific GSS-API version: v2u1 and all versions until there is an enhancement to the API that uses async context tokens. I don't think there ever will be such an extension. The use case I can think of, re-keying, doesn't really require async context tokens, and has fallen out of favor in the TLS community. There's a whole off-list discussion that would have to get brought on-list to pursue this angle, which I'd like to do eventually. Nico --
- [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Benjamin Kaduk
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Benjamin Kaduk
- Re: [kitten] RFC2743 errata 4251 Martin Rex
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Benjamin Kaduk
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Benjamin Kaduk
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Benjamin Kaduk
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Benjamin Kaduk
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Greg Hudson
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Greg Hudson
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Greg Hudson
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Martin Rex
- Re: [kitten] RFC2743 errata 4251 Martin Rex
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Martin Rex
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Benjamin Kaduk
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Stephen Farrell
- Re: [kitten] RFC2743 errata 4251 Benjamin Kaduk
- Re: [kitten] RFC2743 errata 4251 Martin Rex
- Re: [kitten] RFC2743 errata 4251 Stephen Farrell
- Re: [kitten] RFC2743 errata 4251 Greg Hudson
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Benjamin Kaduk
- Re: [kitten] RFC2743 errata 4251 Jeffrey Hutzelman
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Benjamin Kaduk
- Re: [kitten] RFC2743 errata 4251 Benjamin Kaduk
- Re: [kitten] RFC2743 errata 4251 Benjamin Kaduk
- Re: [kitten] RFC2743 errata 4251 Nico Williams
- Re: [kitten] RFC2743 errata 4251 Greg Hudson
- Re: [kitten] RFC2743 errata 4251 Jeffrey Hutzelman