Return-Path: <Michael.Jones@microsoft.com>
X-Original-To: jose@ietfa.amsl.com
Delivered-To: jose@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1])
 by ietfa.amsl.com (Postfix) with ESMTP id 2D4A41A8F50;
 Tue, 30 Sep 2014 14:00:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 cZrN_L23cR6Y; Tue, 30 Sep 2014 14:00:04 -0700 (PDT)
Received: from na01-by2-obe.outbound.protection.outlook.com
 (mail-by2on0125.outbound.protection.outlook.com [207.46.100.125])
 (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id A7D711A8AB3;
 Tue, 30 Sep 2014 13:59:35 -0700 (PDT)
Received: from BY2PR03CA079.namprd03.prod.outlook.com (10.141.249.52) by
 BN3PR0301MB1204.namprd03.prod.outlook.com (25.161.207.16) with Microsoft SMTP
 Server (TLS) id 15.0.1039.15; Tue, 30 Sep 2014 20:59:33 +0000
Received: from BL2FFO11FD046.protection.gbl (2a01:111:f400:7c09::135) by
 BY2PR03CA079.outlook.office365.com (2a01:111:e400:2c5d::52) with Microsoft
 SMTP Server (TLS) id 15.0.1039.15 via Frontend Transport; Tue, 30 Sep 2014
 20:59:33 +0000
Received: from mail.microsoft.com (131.107.125.37) by
 BL2FFO11FD046.mail.protection.outlook.com (10.173.161.208) with Microsoft
 SMTP Server (TLS) id 15.0.1029.15 via Frontend Transport; Tue, 30 Sep 2014
 20:59:33 +0000
Received: from TK5EX14MBXC288.redmond.corp.microsoft.com ([169.254.3.218]) by
 TK5EX14HUBC102.redmond.corp.microsoft.com ([157.54.7.154]) with mapi
 id 14.03.0195.002; Tue, 30 Sep 2014 20:58:50 +0000
From: Mike Jones <Michael.Jones@microsoft.com>
To: John Bradley <ve7jtb@ve7jtb.com>
Thread-Topic: [jose] Gen-ART review of draft-ietf-jose-json-web-signature-33
Thread-Index: AQHP2mhILPxPTyEuvU2oGKNSsFOQjZwZ+E6wgAAWzYCAAAflAIAABKAAgAAGAACAAAlLgA==
Date: Tue, 30 Sep 2014 20:58:48 +0000
Message-ID: <4E1F6AAD24975D4BA5B16804296739439BAA6CC2@TK5EX14MBXC288.redmond.corp.microsoft.com>
References: <23AB1ACB-02B2-4E82-A832-E89E61795C85@vigilsec.com>
 <4E1F6AAD24975D4BA5B16804296739439BAA578E@TK5EX14MBXC288.redmond.corp.microsoft.com>
 <CAKHUCzzPhBxrW4d1FMQXS=tbwT-8Tf+uC62r8CVNV_T5YXXL5Q@mail.gmail.com>
 <D3F91FC4-9180-49B3-A5CD-68D3CD1ACF9F@ve7jtb.com>
 <CAKHUCzwdXGbawcGbpgehpQ8+KUkcaZx+MbU0=LaZKjqPxZZXhw@mail.gmail.com>
 <D04364B8-320C-4187-A36F-F43EB5584A9E@ve7jtb.com>
In-Reply-To: <D04364B8-320C-4187-A36F-F43EB5584A9E@ve7jtb.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [157.54.51.71]
Content-Type: multipart/alternative;
 boundary="_000_4E1F6AAD24975D4BA5B16804296739439BAA6CC2TK5EX14MBXC288r_"
MIME-Version: 1.0
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:131.107.125.37; CTRY:US; IPV:CAL; IPV:NLI;
 IPV:NLI; EFV:NLI; SFV:NSPM;
 SFS:(10019020)(438002)(189002)(199003)(24454002)(377454003)(15202345003)(64706001)(106116001)(4396001)(16236675004)(76482002)(104016003)(2656002)(99396003)(110136001)(230783001)(20776003)(85306004)(93886004)(95666004)(33656002)(84676001)(55846006)(512954002)(106466001)(26826002)(84326002)(81156004)(19625215002)(107046002)(19300405004)(92726001)(76176999)(71186001)(50986999)(92566001)(44976005)(80022003)(87936001)(86612001)(97736003)(46102003)(19580395003)(31966008)(54356999)(10300001)(86362001)(19580405001)(120916001)(21056001)(15975445006)(6806004)(77096002)(85852003)(66066001)(68736004)(69596002);
 DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR0301MB1204; H:mail.microsoft.com; FPR:;
 MLV:ovrnspm; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; 
X-Microsoft-Antispam: UriScan:;
X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:;SRVR:BN3PR0301MB1204;
X-O365ENT-EOP-Header: Message processed by -  O365_ENT: Allow from ranges
 (Engineering ONLY)
X-Forefront-PRVS: 0350D7A55D
Received-SPF: Pass (protection.outlook.com: domain of microsoft.com designates
 131.107.125.37 as permitted sender)
 receiver=protection.outlook.com; 
 client-ip=131.107.125.37; helo=mail.microsoft.com;
Authentication-Results: spf=pass (sender IP is 131.107.125.37)
 smtp.mailfrom=Michael.Jones@microsoft.com; 
X-OriginatorOrg: microsoft.onmicrosoft.com
Archived-At: http://mailarchive.ietf.org/arch/msg/jose/86jjtIc3HotKI7Vh1AAeNdFDZlk
Cc: IETF <ietf@ietf.org>, IETF Gen-ART <gen-art@ietf.org>,
 Russ Housley <housley@vigilsec.com>, Dave Cridland <dave@cridland.net>,
 "jose@ietf.org" <jose@ietf.org>,
 "draft-ietf-jose-json-web-signature.all@tools.ietf.org"
 <draft-ietf-jose-json-web-signature.all@tools.ietf.org>
Subject: Re: [jose] Gen-ART review of draft-ietf-jose-json-web-signature-33
X-BeenThere: jose@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Javascript Object Signing and Encryption <jose.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jose>,
 <mailto:jose-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/jose/>
List-Post: <mailto:jose@ietf.org>
List-Help: <mailto:jose-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jose>,
 <mailto:jose-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Sep 2014 21:00:10 -0000

--_000_4E1F6AAD24975D4BA5B16804296739439BAA6CC2TK5EX14MBXC288r_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

John, to move this discussion along on a concrete basis, as an expert in th=
e subject matter, could you write a proposed security considerations subsec=
tion that explains the conditions under which an exception to the MUST woul=
d be OK?  Then we could evaluate in a concrete way whether we think the spe=
cification is better with language like "MUST use TLS unless the conditions=
 described in Section X.Y are met" or better just requiring TLS to keep thi=
ngs simple.

It would be good if you also expanded on the trust model comments you made =
earlier in the thread and that we discussed on the phone.

                                                                Thanks much=
,
                                                                -- Mike

From: jose [mailto:jose-bounces@ietf.org] On Behalf Of John Bradley
Sent: Tuesday, September 30, 2014 1:15 PM
To: Dave Cridland
Cc: IETF; IETF Gen-ART; Russ Housley; Mike Jones; jose@ietf.org; draft-ietf=
-jose-json-web-signature.all@tools.ietf.org
Subject: Re: [jose] Gen-ART review of draft-ietf-jose-json-web-signature-33

The attack is not possible if the receiver validates the host from the x5u =
against the certificate CN and validates the path,  otherwise any valid cer=
tificate would work, as long as it chains to a valid root.

Yes we could explain that that the client could limit itself to a specific =
root or bridge and use the CN or DN for the identity of the signer.

So yes it is possible to make an exception to the MUST but explaining how t=
o do that safely is not trivial, and may cause more harm than good.

John B.
On Sep 30, 2014, at 4:53 PM, Dave Cridland <dave@cridland.net<mailto:dave@c=
ridland.net>> wrote:




On 30 September 2014 20:37, John Bradley <ve7jtb@ve7jtb.com<mailto:ve7jtb@v=
e7jtb.com>> wrote:
I agree, the likelihood of the application correctly walking the path and v=
alidating the chain is very small.


I think the likelihood of the application being *able* to is small given th=
e scope - however if it can, we should assume that it will.

I strongly prefer leaving it a MUST use TLS and validate the server per RFC=
 6125.

The other thing to note is that the CN of the cert is not in the header.  I=
f TLS is not used an attacker could simply modify the DNS to retrieve any v=
alid certificate and use that to sign.


Whilst I agree there's a range of attacks possible against non-validating c=
lients - although "the CN of the cert" sets my teeth on edge - an attacker =
cannot do these if the application performs path validation and checks the =
key matches.

"SHOULD" and "MUST" are not a stick to beat the unthinking implementer, and=
 if there exist perfectly reasonable cases where this particular MUST can b=
e ignored, then by insisting on a MUST here we are simply weakening the emp=
hasis that all other RFC 2119 language has in this document.

"MUST unless you do X" is a compromise I'd be happy with, although that is =
basically what "SHOULD" means.

Certainly this does require the rationale be documented in any case.

Dave.


--_000_4E1F6AAD24975D4BA5B16804296739439BAA6CC2TK5EX14MBXC288r_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#002060;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#002060">John, to move this discus=
sion along on a concrete basis, as an expert in the subject matter, could y=
ou write a proposed security considerations subsection that
 explains the conditions under which an exception to the MUST would be OK?&=
nbsp; Then we could evaluate in a concrete way whether we think the specifi=
cation is better with language like &#8220;MUST use TLS unless the conditio=
ns described in Section X.Y are met&#8221; or better
 just requiring TLS to keep things simple.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#002060"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#002060">It would be good if you a=
lso expanded on the trust model comments you made earlier in the thread and=
 that we discussed on the phone.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#002060"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#002060">&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thanks much,<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#002060">&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Mike<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#002060"><o:p>&nbsp;</o:p></span><=
/p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-=
size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;"> jose [=
mailto:jose-bounces@ietf.org]
<b>On Behalf Of </b>John Bradley<br>
<b>Sent:</b> Tuesday, September 30, 2014 1:15 PM<br>
<b>To:</b> Dave Cridland<br>
<b>Cc:</b> IETF; IETF Gen-ART; Russ Housley; Mike Jones; jose@ietf.org; dra=
ft-ietf-jose-json-web-signature.all@tools.ietf.org<br>
<b>Subject:</b> Re: [jose] Gen-ART review of draft-ietf-jose-json-web-signa=
ture-33<o:p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The attack is not possible if the receiver validates=
 the host from the x5u against the certificate CN and validates the path, &=
nbsp;otherwise any valid certificate would work, as long as it chains to a =
valid root.<o:p></o:p></p>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Yes we could explain that that the client could limi=
t itself to a specific root or bridge and use the CN or DN for the identity=
 of the signer. &nbsp;<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">So yes it is possible to make an exception to the MU=
ST but explaining how to do that safely is not trivial, and may cause more =
harm than good.<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">John B.<o:p></o:p></p>
<div>
<div>
<p class=3D"MsoNormal">On Sep 30, 2014, at 4:53 PM, Dave Cridland &lt;<a hr=
ef=3D"mailto:dave@cridland.net">dave@cridland.net</a>&gt; wrote:<o:p></o:p>=
</p>
</div>
<p class=3D"MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class=3D"MsoNormal">On 30 September 2014 20:37, John Bradley &lt;<a href=
=3D"mailto:ve7jtb@ve7jtb.com" target=3D"_blank">ve7jtb@ve7jtb.com</a>&gt; w=
rote:<o:p></o:p></p>
<blockquote style=3D"border:none;border-left:solid #CCCCCC 1.0pt;padding:0i=
n 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class=3D"MsoNormal">I agree, the likelihood of the application correctly=
 walking the path and validating the chain is very small. &nbsp;<o:p></o:p>=
</p>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">I think the likelihood of the application being *abl=
e* to is small given the scope - however if it can, we should assume that i=
t will.<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<blockquote style=3D"border:none;border-left:solid #CCCCCC 1.0pt;padding:0i=
n 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class=3D"MsoNormal">I strongly prefer leaving it a MUST use TLS and vali=
date the server per RFC 6125.<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">The other thing to note is that the CN of the cert i=
s not in the header.&nbsp; If TLS is not used an attacker could simply modi=
fy the DNS to retrieve any valid certificate and use that to sign.<o:p></o:=
p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Whilst I agree there's a range of attacks possible a=
gainst non-validating clients - although &quot;the CN of the cert&quot; set=
s my teeth on edge - an attacker cannot do these if the application perform=
s path validation and checks the key matches.<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&quot;SHOULD&quot; and &quot;MUST&quot; are not a st=
ick to beat the unthinking implementer, and if there exist perfectly reason=
able cases where this particular MUST can be ignored, then by insisting on =
a MUST here we are simply weakening the emphasis that
 all other RFC 2119 language has in this document.<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&quot;MUST unless you do X&quot; is a compromise I'd=
 be happy with, although that is basically what &quot;SHOULD&quot; means.<o=
:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Certainly this does require the rationale be documen=
ted in any case.<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Dave.<o:p></o:p></p>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</div>
</body>
</html>

--_000_4E1F6AAD24975D4BA5B16804296739439BAA6CC2TK5EX14MBXC288r_--

