Re: [Emu] Best practices for supplicants and authenticators

"Owen Friel (ofriel)" <ofriel@cisco.com> Wed, 20 November 2019 03:40 UTC

Return-Path: <ofriel@cisco.com>
X-Original-To: emu@ietfa.amsl.com
Delivered-To: emu@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 388CA12004E for <emu@ietfa.amsl.com>; Tue, 19 Nov 2019 19:40:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.5
X-Spam-Level:
X-Spam-Status: No, score=-14.5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com header.b=mKwlENtC; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=X6nyxGpc
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 UXB84jJ15FKb for <emu@ietfa.amsl.com>; Tue, 19 Nov 2019 19:40:30 -0800 (PST)
Received: from alln-iport-5.cisco.com (alln-iport-5.cisco.com [173.37.142.92]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F2FBE12002E for <emu@ietf.org>; Tue, 19 Nov 2019 19:40:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=5974; q=dns/txt; s=iport; t=1574221230; x=1575430830; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=idHEu/cv9zmOg00jlEI42firlMj+6SRFeZsFKxz1Bio=; b=mKwlENtCD4EWl/s0DTW229JZctTQx35jopodHcQU4CcCYjb17utYbUCz GgaZVkuUTE0hb3u+OWrtpVeE/cR4Ezz94qy4fZhzoinIOAPw4q2qyBj0l jT/Lf9+f3olBnkfdc23falFzfPVW5eyIEOguw7nZV1hUOTORQICAvLpLJ 4=;
IronPort-PHdr: 9a23:/HiSiByZSTF6KNXXCy+N+z0EezQntrPoPwUc9psgjfdUf7+++4j5YR2N/u1j2VnOW4iTq+lJjebbqejBYSQB+t7A1RJKa5lQT1kAgMQSkRYnBZuCB1f6IfrCZC0hF8MEX1hgrDm2
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CDAQCrtNRd/49dJa1cCRoBAQEBAQEBAQEDAQEBAREBAQECAgEBAQGBfoFLUAVsWCAECyqHcAOKdE6CEJgAglIDVAkBAQEMAQEYDQgCAQGEQAKCJSQ4EwIDDQEBBAEBAQIBBQRthTcMhVEBAQEBAwEBECgGAQEsDAsEAgEIEQQBARcCBQEQJwsdCAIEARIIGoMBgkYDLgECDKVyAoE4iGCCJ4J+AQEFhQYYghcDBoE2i3ceGIFAP4ERRoFOUC4+gmIBAQKBNRQJD0YHBoJtgiyNFjgJAYgmghuHB48NCoIrhxqOUIFUlAGEPI5Ihz56kVACBAIEBQIOAQEFgWkigUIOCHAVO4JsUBEUkRoHBReDUIUUhT90B4Ehi1MNFQIHghMBAQ
X-IronPort-AV: E=Sophos;i="5.69,220,1571702400"; d="scan'208";a="374208307"
Received: from rcdn-core-7.cisco.com ([173.37.93.143]) by alln-iport-5.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 20 Nov 2019 03:40:28 +0000
Received: from XCH-ALN-008.cisco.com (xch-aln-008.cisco.com [173.36.7.18]) by rcdn-core-7.cisco.com (8.15.2/8.15.2) with ESMTPS id xAK3eSxF001557 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Wed, 20 Nov 2019 03:40:28 GMT
Received: from xhs-rcd-001.cisco.com (173.37.227.246) by XCH-ALN-008.cisco.com (173.36.7.18) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Tue, 19 Nov 2019 21:40:28 -0600
Received: from xhs-rcd-001.cisco.com (173.37.227.246) by xhs-rcd-001.cisco.com (173.37.227.246) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Tue, 19 Nov 2019 21:40:27 -0600
Received: from NAM03-CO1-obe.outbound.protection.outlook.com (72.163.14.9) by xhs-rcd-001.cisco.com (173.37.227.246) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Tue, 19 Nov 2019 21:40:27 -0600
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NJNJ+A2GjrxM3wiJ/qMlzkcRRGEBOzpxOca9sEx9wyvKhkS5dsVc8K4o2i3/DHvrb4Ex50tmJP72R6KKdQWAYt9/vv4ZFIoszB22Eey379XcyCVRP9aiKPAigpbRHpGcfFySrJnCEQYxq8KapUUIhQd4StQgK29rnmM0A8Z7PuTKIyGDB2aXuFWz92nbZGAs69ki+L9ueDCEdzFdtjNp4A5J/VPoSGd5LIakqlIJZLy4zomHK6XfKki0/8qyyye8vUvHbTVpivxCFkNNNPYQV7smFIC0YOMCbaQiyP7nNF8YKpnyZLM2s5Zz01Ngor9tBHjeFaOagkvviOIyhSbFVg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CZZsyp4vEFE11eXZogNr6A9ghCX+Vafd3JUE8zv91TE=; b=RamAn36pDeijKRxVOffCFZIwP2THFa3BtpnVkh9LuGyHsSPZkKXHyHktRtlgkPorH2vDruPXh3VfxWXpOMSsZRFfMHuQkmybAzW2ZNQaDMHD/qvoou37hYW90z/l/2Cb9pWl9IQ4IGytLAaN/emYaVqDKeLLXlB51TYHEFsYXq0QZydrgOcY8fy+FAhLI7hZHPywFP8SngwvRvpQpWPRORP49tsaSOZ4+90gn/P8TEsrOiRR7euS9qM4VCAFaXBvNbC/UKMaZiTrzXR5UMXhS+LokUWsFOkH5uODLCjzw/Tts8fmSdhagl+ajQ0ol8q3QZ3lTBBvMXdaurf0i6NGrQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cisco.com; dmarc=pass action=none header.from=cisco.com; dkim=pass header.d=cisco.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cisco.onmicrosoft.com; s=selector2-cisco-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CZZsyp4vEFE11eXZogNr6A9ghCX+Vafd3JUE8zv91TE=; b=X6nyxGpcUUjdixH1lAlLpSSBxnXUYvZGNKH50Vo6sADa5rsiOptKGbGjMKc/Fk2hvntBAQ65/7B2lyhPcUtnzlB+Bdg6SC2i1wnLMtDmpn01gp5dMteNzjO1S8ZiWtzzv8DKwcRVURy9DSAM0gEEYdPSG4kxVcLrWmyzMLrjy2Y=
Received: from MN2PR11MB3901.namprd11.prod.outlook.com (20.179.150.76) by MN2PR11MB4013.namprd11.prod.outlook.com (10.255.181.154) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2474.16; Wed, 20 Nov 2019 03:40:25 +0000
Received: from MN2PR11MB3901.namprd11.prod.outlook.com ([fe80::7127:bf0:d3be:3153]) by MN2PR11MB3901.namprd11.prod.outlook.com ([fe80::7127:bf0:d3be:3153%7]) with mapi id 15.20.2451.031; Wed, 20 Nov 2019 03:40:25 +0000
From: "Owen Friel (ofriel)" <ofriel@cisco.com>
To: Alan DeKok <aland@deployingradius.com>, EMU WG <emu@ietf.org>
Thread-Topic: [Emu] Best practices for supplicants and authenticators
Thread-Index: AQHVnhsMTqA+nAW920SAMstMn7GUyaeSBYfg
Date: Wed, 20 Nov 2019 03:40:25 +0000
Message-ID: <MN2PR11MB3901E1330C1B9E79233B09BADB4F0@MN2PR11MB3901.namprd11.prod.outlook.com>
References: <526166D8-80B9-4356-84D9-52ACD49E004B@deployingradius.com>
In-Reply-To: <526166D8-80B9-4356-84D9-52ACD49E004B@deployingradius.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=ofriel@cisco.com;
x-originating-ip: [2001:420:c0c8:1001::f0]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 5e8e67c0-afae-4c6f-0f14-08d76d6b60fd
x-ms-traffictypediagnostic: MN2PR11MB4013:
x-ms-exchange-purlcount: 4
x-microsoft-antispam-prvs: <MN2PR11MB4013AEF271046F40B660894DDB4F0@MN2PR11MB4013.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 02272225C5
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(376002)(396003)(39860400002)(346002)(366004)(136003)(51444003)(13464003)(199004)(189003)(76116006)(8676002)(476003)(81166006)(74316002)(2906002)(81156014)(6116002)(305945005)(110136005)(316002)(446003)(8936002)(66556008)(46003)(71190400001)(71200400001)(6246003)(66946007)(99286004)(64756008)(66476007)(102836004)(66446008)(7696005)(53546011)(11346002)(76176011)(6506007)(7736002)(229853002)(86362001)(486006)(966005)(33656002)(14444005)(256004)(55016002)(25786009)(186003)(52536014)(14454004)(6306002)(5660300002)(9686003)(6436002)(478600001); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR11MB4013; H:MN2PR11MB3901.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: cisco.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: DNqf7nXXGuZY2VPNAf0nQJVKhw529Pp2N6oKhlzt3rQqgVD8Q0IPJLwByGLUvzQqmEvA1ZHxsQTtMmXRdvmXOOKdC0j9dVeiBnYHuewXsMI0ybsed+dLBwk7oTq4B9KdfRBwmq+gxwnxZkyBCm5G4NsWFUpJyl2Rmh7hIuXZ1kvPkhDrNjv3GN0FxUKOjIrzaIc1Dsx/HSmMyXpnrFETfdF+iUfCpiGd3PtHuvRPvf6lR4QWH3ZEhGPFq/5yIml2M27WBE0pFF64PXZFEiVYtoSDR7jK7e3fg1oRCZM9ZkALlB2MFxWWV65cYfPg+nhPlYgkSfPz5yry0F9iDtBzri70cpUwyS7cF0QP8PasRgPBYADKqjF5zAO3zurvorJ0mcfnEsRiMYYkGshQoMWx7/iKrpTzXXBTHD0LKzstH1IpLBiZRQgfb1mRxEBBzjZ3ioXoxoeUj/Gndz5egHe4ayc3lYdKwYtq4azEUuWZsWk=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 5e8e67c0-afae-4c6f-0f14-08d76d6b60fd
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Nov 2019 03:40:25.1140 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5ae1af62-9505-4097-a69a-c1553ef7840e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Gyixou7bGN/Sr8BFB5Py6d4+SvTJwWM2zW0MREJcSOskeC5jweyYZiE30j5dTbAf4Fj31l59N8u4jZBrJeyQhg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4013
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.36.7.18, xch-aln-008.cisco.com
X-Outbound-Node: rcdn-core-7.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/emu/fSaPNDQbi9LfAp2C7PFqnbS51KI>
Subject: Re: [Emu] Best practices for supplicants and authenticators
X-BeenThere: emu@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "EAP Methods Update \(EMU\)" <emu.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/emu>, <mailto:emu-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/emu/>
List-Post: <mailto:emu@ietf.org>
List-Help: <mailto:emu-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/emu>, <mailto:emu-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Nov 2019 03:40:32 -0000

Assuming that NAIRealm is a registered domain as per RFC 7542, and thus public CAs can verify ownership, the goal / where we want to get to is:

- CA may be a public CA and thus public CAs can be enabled by default in supplicant config
- supplicant checks NAI Realm in the EAP identity cert matches that of the user's realm
- supplicant verifies id-kp-eapOverLAN is set

And also assuming that public CAs will not issue certs with an NAIRealm or id-kp-eapOverLAN bit. (This is certainly true for Let's Encrypt. See below for details.) And it could be years before public CAs do.

Does that mean there is an intermediate rollout phase where the supplicant checks that the realm the user enters matches a dNSName in the EAP cert?

The rollout / upgrade issue with this is of course if we give guidance that supplicants
(i) check that entered realm matches NAIRealm; and id-kp-eapOverLAN is set
If that fails then (ii) check that dNSName matches entered realm

at what point in time would supplicant behaviour ever change to remove the fallback to option (ii) and checking dNSName only?

As a data point on RFC 4985 and id-mod-dns-srv-name-93 (or RFC 6125 SRV-IDs): Public CAs generally don't issue these either, so the same issue with supplicants checking for NAIRealm or id-kp-eapOverLAN exists with id-mod-dns-srv-name-93 w.r.t. Public CAs.

Owen

P.S.: Let's Encrypt implementation is at: https://github.com/letsencrypt/boulder

You can see the only allowed KeyUsage and ExtKeyUsage bits here:

https://github.com/letsencrypt/boulder/blob/master/cmd/gen-ca/main.go#L318

https://github.com/letsencrypt/boulder/blob/master/cmd/cert-checker/main.go#L303



-----Original Message-----
From: Emu <emu-bounces@ietf.org> On Behalf Of Alan DeKok
Sent: 18 November 2019 14:18
To: EMU WG <emu@ietf.org>
Subject: [Emu] Best practices for supplicants and authenticators

  After the meeting earlier today, I made some notes on best practices for supplicants and authenticators.  I think it would be useful to have an official WG document which gives guidance.

Background:

a) the current practice in TLS-based EAP methods is to use certificates with "id-kp-serverAuth" OID set for Extended Key Usage.
b) many supplicants check for this OID, and refuse to perform authentication if it is missing
c) supplicants do not check DNS names or any other field in the certificates
d) as a result of this lack of verification, supplicants ship with all known CAs disabled for TLS-based EAP methods

  If the supplicants did ship with root CAs enabled, then because of the lack of validation in (c), the supplicants would hand over user credentials to any authenticator who has a properly signed certificate.  This is wrong, and is why all of the root CAs are disabled.

  It would be useful to simplify the user experience when working with EAP-TLS.  It would also be useful to reduce security issues.  This is where a new document is needed.  I believe that the standards exist to support these goals.  However, there's a lack of guidance around using these standard.  It would be good to document current practices, and then give guidance on how to upgrade to better practices.

  I'll start off describing the end goal, and then discuss how we can get there.

  The goal is to have certificates which contain the id-kp-eapOverLAN OID (RFC 4334), and either the NAIRealm OID (RFC 7585), or a similar one dedicated to TLS-based EAP authentication.  Supplicants can use these fields to verify that the certificate is both intended to be used for TLS-based EAP authentication, and that the certificate is for a given realm.

  The end user experience *should* be something like:

* connect to a system which uses 802.1X authentication (SSID, wired, etc)
* prompt the user for full credentials (user id + realm / password)
* validate that the server certificate has the id-kp-eapOverLAN OID set, AND that the NAIRealm OID matches the user's realm
* validate the certificate chain

  If those validation steps succeed, then the supplicant could send the users credentials over the EAP method.  I think that this extra validation means that supplicants can trust known root CAs by default.  Which makes the user experience much better.

  Since the certificates do not currently contain these fields, and supplicants don't check them, we need an upgrade path.

  The first step is to suggest that admins generate certificates with the above fields.  This likely means that certificate authorities will be asked to sign certs with the NAIRealm OID, which they might not do.  This limitation is less of a problem in a roaming federation like Eduroam, where they are their own CA.

  The next step is to suggest that supplicant vendors upgrade their systems to allow the id-kp-eapOverLAN OID, *or* the id-kp-serverAuth in server certificates.  That is a simple change, and shouldn't have any negative affects.

  Supplicants can also be upgraded to check the NAIRealm.  If the field does not match the users realm, then the certificate should be rejected.  If the field does match, then the supplicant should validate the certificate chain.  This validation should also include trusting known root CAs by default.

  We should also recommend that supplicant vendors check the id-mod-dns-srv-name-88 and id-mod-dns-srv-name-93 fields of server certificates.  If the domain names there do not match the realm given by the user, then the user should be warned, and the certificate rejected.

  If accepted, I think that such practices would tremendously simplify the use of TLS-based EAP methods for both users and administrators.

  Alan DeKok.

_______________________________________________
Emu mailing list
Emu@ietf.org
https://www.ietf.org/mailman/listinfo/emu