Re: [TLS] Case for negotiation of PKCS#1.5 RSASSA-PKCS1-v1_5 in TLS 1.3

Andrey Jivsov <crypto@brainhub.org> Tue, 26 January 2016 03:33 UTC

Return-Path: <crypto@brainhub.org>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 40B301B2D6D for <tls@ietfa.amsl.com>; Mon, 25 Jan 2016 19:33:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.301
X-Spam-Level:
X-Spam-Status: No, score=-1.301 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, J_CHICKENPOX_34=0.6, SPF_PASS=-0.001] 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 3Kn-CWlacsyK for <tls@ietfa.amsl.com>; Mon, 25 Jan 2016 19:33:05 -0800 (PST)
Received: from resqmta-po-10v.sys.comcast.net (resqmta-po-10v.sys.comcast.net [IPv6:2001:558:fe16:19:96:114:154:169]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 29DD31B2D68 for <tls@ietf.org>; Mon, 25 Jan 2016 19:32:59 -0800 (PST)
Received: from resomta-po-13v.sys.comcast.net ([96.114.154.237]) by resqmta-po-10v.sys.comcast.net with comcast id ATYs1s00157bBgG01TYztC; Tue, 26 Jan 2016 03:32:59 +0000
Received: from [192.168.2.3] ([76.103.100.237]) by resomta-po-13v.sys.comcast.net with comcast id ATYx1s00D57Jnqc01TYyvs; Tue, 26 Jan 2016 03:32:59 +0000
From: Andrey Jivsov <crypto@brainhub.org>
To: tls@ietf.org
References: <56A192FC.4060206@brainhub.org> <35455210.tz7m1zDUF6@pintsize.usersys.redhat.com> <56A64D5E.7090104@akamai.com> <3922672.SasYckhRS6@pintsize.usersys.redhat.com> <275D7C71-340A-448D-B0FA-1250AD06AED6@vigilsec.com>
Message-ID: <56A6E8E9.8090902@brainhub.org>
Date: Mon, 25 Jan 2016 19:32:57 -0800
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <275D7C71-340A-448D-B0FA-1250AD06AED6@vigilsec.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20140121; t=1453779179; bh=SMlVU7eDAb0D5hUcM6x3IfOLXzoqROAWMPnwQESHF14=; h=Received:Received:From:Subject:To:Message-ID:Date:MIME-Version: Content-Type; b=BcDPJGQhyHoOFaYxhy+JgqaCed1pQOZjxRlkKT5VJe4W88FnZwV/5vK2m5Zyg8JW3 lObOcoEmX6E0AUAatPyzrIoEYGIxgukQ5VA4wk0oW+ErrjF+cmr6dEnSMAfdjHGI4H knS/dkI9vfOannPmA+tGZnUVYPqOKKkCC56ywJl18BaGozcG+0ypt6x3DPqbQI6MQ1 iSQOBahiLBgxIjtp0VjbJYu516H9F2BDF8mLPGXqb/C37gflDByScHWAzLY98eXeFl yRKXfoXSP0wsiGbe3bNmQMBRo5IIdzPs/gtRcW0QWk+jeavN46wYKysp7wRafIq9+/ y3J7mbzgfgi+g==
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/stBeOMcZgRgjpiRRe4NelP49WME>
Subject: Re: [TLS] Case for negotiation of PKCS#1.5 RSASSA-PKCS1-v1_5 in TLS 1.3
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
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: Tue, 26 Jan 2016 03:33:07 -0000

On 01/25/2016 03:11 PM, Russ Housley wrote:
> On Jan 25, 2016, at 2:43 PM, Hubert Kario wrote:
>
>> On Monday 25 January 2016 10:29:18 Benjamin Kaduk wrote:
>>> On 01/22/2016 01:14 PM, Hubert Kario wrote:
>>>> On Friday 22 January 2016 10:39:26 Andrey Jivsov wrote:
>>>>> On 01/22/2016 03:14 AM, Hubert Kario wrote:
>>>>>>> The only solution that's available at this point is conditioning
>>>>>>> TLS
>>>>>>> 1.3 support on appropriate hardware. For this reason TLS 1.3 it
>>>>>>> probably won't be enabled by default in the product I work on. I
>>>>>>> would prefer for TLS 1.3 to be enabled by default and write the
>>>>>>> code
>>>>>>> to decide whether it does PSS or falls back to RSA PKCS1 1.5.
>>>>>> Yes, it would be nice. But PKCS#1 v1.5 had it long coming. Not
>>>>>> cutting it off now would be negligent.
>>>>> You mean for HS only, while leaving it for X.509 certs?
>>>> If we don't do it for HS in TLS first, we'll never get rid of it in
>>>> X.509 certs.
>>>>
>>>> We need to start somewhere, and it's more reasonable to expect that
>>>> hardware with support for new protocols will get updated for RSA-PSS
>>>> handling than that libraries and hardware will suddenly start
>>>> implementing it in droves just in anticipation of the time when CAs
>>>> _maybe_ will start issuing certificates signed with RSA-PSS.
>>> Isn't it more a matter of TLS being a consumer of external PKIX
>>> infrastructure, the web PKI, etc.?  They are out of the reach of the
>>> IETF TLS working group; any requirements we attempted to impose would
>>> be unenforceable, even if there was an Internet Police (which there
>>> is not).
>> TLS will happily use PKCS#1 v1.5 signed X.509 certificates, so how
>> exactly is creating a side effect of increasing the deployment rate of
>> RSA-PSS _in TLS implementations_ an "overreach"?!
> I have been a supporter of PSS for a very long time -- see RFC 4055.
>
> We have many algorithm transition issues, but this is one place where we have seen very little progress.  I would like to see support for PSS in the protocol, even if we need to support PKCS v1.5 for certificate signatures for a long time.

Is there evidence that hard-wiring {PSS} in HS and {PSS, PKCS#1 1.5} 
with X.509 certs will lead to better PSS adoption than if {PSS, PKCS#1 
1.5} were available in both HS and X.509 certs?

This should be balanced against the reality that PSS in HS with TLS 1.3 
guarantees lower TLS 1.3 adoption as I wrote above. PSS-only in TLS 1.3 
HS may make code more complex as well.

I am trying to imagine a logic that a TLS 1.3 client supporting 
smartcard client authentiation would need to implement, assuming 
mandatory PSS signing in HS, e.g. a case of Firefox + PKCS#11 interface 
with a smartcard.

First, the code should query (attached? logged-in?) smartcard(s) to 
determine if the key(s) on the smartcard that might be used for client 
authentication can do PSS signing. PKCS#11 interface lists the PSS 
capability as CKM_SHA256_RSA_PKCS_PSS mechanism. If no such PSS+hash 
mechanism is available, the code needs to tag the keys(s) as TLS 
1.2-only. When the client connects to a TLS 1.3 server and the server 
requests client authentication with the non-PSS key, I think this will 
require protocol dance down to TLS 1.2 (insecure TLS fallback). 
Alternatively, the client will need to start from TLS 1.2 when it 
detected such a smartcard, for any server.

The underlying reasons why CAs can't sign with PSS v.s. TLS server or 
client are probably overlapping in many cases: FIPS 140, HSM, hardware. 
The all-or-nothing approach to PSS sin HS eems inconsistent with 
traditional feature negotiation in TLS HS.

> Russ
>
>
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls