Re: [TLS] New Version Notification for draft-kampanakis-tls-scas-latest-00.txt (ICA Supression)

"Kampanakis, Panos" <kpanos@amazon.com> Fri, 18 February 2022 04:47 UTC

Return-Path: <prvs=0412dd42c=kpanos@amazon.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ECC6F3A08ED for <tls@ietfa.amsl.com>; Thu, 17 Feb 2022 20:47:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.173
X-Spam-Level:
X-Spam-Status: No, score=-15.173 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.576, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=amazon.com
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 f_uo_NjJ5HC6 for <tls@ietfa.amsl.com>; Thu, 17 Feb 2022 20:47:34 -0800 (PST)
Received: from smtp-fw-9102.amazon.com (smtp-fw-9102.amazon.com [207.171.184.29]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B2F0C3A08CE for <tls@ietf.org>; Thu, 17 Feb 2022 20:47:34 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1645159655; x=1676695655; h=from:to:cc:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version:subject; bh=jGNaATQyj+E8BAPD8R9yyntI59JQfPnY3z1kX2nJnms=; b=c64OXpexSRyIxBboob+RvT/l05u/8hj7c64XM9Igeg5QyIwZLH+iY0Wt zMcX+L1iE4cyca63xeuZeVMlmYWGTKfL5NAwdfud/Xe71ewJNkiiTOQ6G omfTAAhmedlqQsieuIzUykqcHmfMDxsI17Yg9PuCXYkwQbtZO4OXhe3mN E=;
X-IronPort-AV: E=Sophos;i="5.88,377,1635206400"; d="scan'208";a="195678176"
Thread-Topic: [TLS] New Version Notification for draft-kampanakis-tls-scas-latest-00.txt (ICA Supression)
Received: from pdx4-co-svc-p1-lb2-vlan3.amazon.com (HELO email-inbound-relay-iad-1a-87b71607.us-east-1.amazon.com) ([10.25.36.214]) by smtp-border-fw-9102.sea19.amazon.com with ESMTP; 18 Feb 2022 04:47:19 +0000
Received: from EX13MTAUWB001.ant.amazon.com (iad12-ws-svc-p26-lb9-vlan3.iad.amazon.com [10.40.163.38]) by email-inbound-relay-iad-1a-87b71607.us-east-1.amazon.com (Postfix) with ESMTPS id 6D469140FF4; Fri, 18 Feb 2022 04:47:18 +0000 (UTC)
Received: from EX13D01ANC002.ant.amazon.com (10.43.157.162) by EX13MTAUWB001.ant.amazon.com (10.43.161.207) with Microsoft SMTP Server (TLS) id 15.0.1497.28; Fri, 18 Feb 2022 04:47:17 +0000
Received: from EX13D01ANC003.ant.amazon.com (10.43.157.68) by EX13D01ANC002.ant.amazon.com (10.43.157.162) with Microsoft SMTP Server (TLS) id 15.0.1497.28; Fri, 18 Feb 2022 04:47:16 +0000
Received: from EX13D01ANC003.ant.amazon.com ([10.43.157.68]) by EX13D01ANC003.ant.amazon.com ([10.43.157.68]) with mapi id 15.00.1497.028; Fri, 18 Feb 2022 04:47:09 +0000
From: "Kampanakis, Panos" <kpanos@amazon.com>
To: "ilariliusvaara@welho.com" <ilariliusvaara@welho.com>
CC: "tls@ietf.org" <tls@ietf.org>
Thread-Index: AdghU4+EMFFuriJ+SLKnIIleOIJolAAItyGAAC6M1iAAPdsXgABWdSJA
Date: Fri, 18 Feb 2022 04:47:09 +0000
Message-ID: <9eee53c130274c5497f7899026f22a76@EX13D01ANC003.ant.amazon.com>
References: <83f923185c3741ccb668826f5b11b0c3@EX13D01ANC003.ant.amazon.com> <YgoH5/zQS67JgexL@LK-Perkele-VII2.locald> <4a28a1fbfb3445cab4906d6266b3831e@EX13D01ANC003.ant.amazon.com> <YgzfZyXNVpbUjiqu@LK-Perkele-VII2.locald>
In-Reply-To: <YgzfZyXNVpbUjiqu@LK-Perkele-VII2.locald>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.43.157.155]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/wkwdk-kBK7y1dVJzXzF725vEYI4>
Subject: Re: [TLS] New Version Notification for draft-kampanakis-tls-scas-latest-00.txt (ICA Supression)
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 18 Feb 2022 04:47:40 -0000

Thx Ilary. 

ACK about the unconstrained CAs and the MSRP 2.8. I updated the git issue and we will address it in text. 

About the tlsflags, make sense. It would simplify things too. The impression I got from the old draft-thomson-tls-sic thread and the tlsflags draft was that it mandates an acknowledgement. I will confirm with Yoav. 



-----Original Message-----
From: ilariliusvaara@welho.com <ilariliusvaara@welho.com> 
Sent: Wednesday, February 16, 2022 6:27 AM
To: Kampanakis, Panos <kpanos@amazon.com>
Cc: tls@ietf.org
Subject: RE: [EXTERNAL] [TLS] New Version Notification for draft-kampanakis-tls-scas-latest-00.txt (ICA Supression)

CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



On Wed, Feb 16, 2022 at 05:45:47AM +0000, Kampanakis, Panos wrote:
> Good comments, thank you Ilari.
>
> To answer your comments
>
> > 1) There are a few "shall" in the text. Should those be "SHALL"?
>
> The two "shall" refer to draft-ietf-tls-tlsflags. Based on experience 
> from previous drafts, we do not want to repeat normative language from 
> another draft, so we kept them lowercase. We can still consider making 
> them normative though.

I think the language in tlsflags about acknowledging extensions is confusing. Tlsflags behavior should be similar to extensions, which do not have acknowledgment requirement in base TLS (any acknowledgement requirement is per extension). So I think any acknowledgement requirement should be explicitly stated normatively.

As to why I find tlsflags language confusing: I think flags as shorthand for empty extensions, and TLS extensions can be capability advertisments (no reply). E.g., compress_certificate, which happens to add a new HandshakeType.


> > 3) Why there are two flags? I do not see a case where both would be 
> > sent in the same message.
>
> In the original draft there was only one. But we want for both the 
> client and server (CertReq) to be able to signal to their peer to 
> suppress CAs. draft-ietf-tls-tlsflags defines that the peer needs to 
> acknowledge the flag, thus we needed one per direction.

There are no less than four existing TLS extensions (and flags work similarly to extensions), which work in both directions with the same codepoint, in the IANA registry:

- status_request
- signed_certificate_timestamp
- delegated_credentials
- transparency_info

And there does not seem to be a percedent for extension that works in both directions, but with different codepoints.


> > 4) In WebPKI, there are some cornercases (constrained ICAs) where 
> > the client might be missing a certificate or certificates in the 
> > chain. Currently the WebPKI root program rules allow not disclosing 
> > "technically constrained" certificates (but there are plans to 
> > change this).
>
> Good point. That has come up in discussions with my co-authors. As 
> Martin was pointing out, a lot hinges on the semantics of the 
> tls_flags bit.  We probably can say that it means "I have all the 
> intermediates I am willing to accept".  That's a little too absolute 
> for the web PKI as it stands. We don't have stats on how often we'd 
> fail as a result; we would have to check but unconstrained 
> intermediates probably isn't exceptional. The flag should probably say 
> "I have all the *unconstrained* intermediates that I'm willing to 
> accept" or maybe "I have all the intermediates from that I'm willing 
> to accept, unless it's the WebPKI and then I only have unconstrained 
> intermediates"'

I would expect constrained intermediates to be quite rare. IIRC, there is a lot of red tape in Baseline Requirements about constrained ICAs.

> But if MSRP 2.8 adds constrained intermediates, then "I have all the 
> intermediates I am willing to accept" may just suffice.

MSRP 2.8 is slated for this year, so it might very well fix this issue for WebPKI.

Another way to address the issue would be to write some text that the server might want to send any ICA that has not been publically disclosed. As that is neutral to PKI and is exactly what makes constrained ICAs problematic here.


> > 5) In the client auth scenario, the server might have exhaustive 
> > list of all issuing ICAs it accepts, so including any ICAs is never 
> > necressary. However, this might be handled even currently by not 
> > giving the client a chain. However, doing this in other direction 
> > can be quite dangerous without prior agreement.
>
> I am not sure I am following that argument. If the client does not 
> have a chain what happens if the server does not have all 
> intermediates?

Sending ICA will not help: The authentication would still fail.

But actually, if using public PKI certificates for client auth (usually not a great idea), then this can fail rather badly with legacy servers that do not have issuing ICA lists at all.

> By quite dangerous do you mean that if they have not pre-agreed on the 
> ICA list there could be an auth failure and recovery will not be easy 
> because the server can't track the clients it is expecting ICAs from? 
> Am I getting you right?

The problem is legacy clients. If one of those connects to the server and server omits the chain, that will cause handshake failure.

Unfortunately, currently there are fair amount of misconfigured servers that behave this way.



-Ilari