Re: [Rats] [Teep] EAT claims needed by TEEP

Jeremy O'Donoghue <jodonogh@qti.qualcomm.com> Thu, 11 November 2021 12:22 UTC

Return-Path: <jodonogh@qti.qualcomm.com>
X-Original-To: rats@ietfa.amsl.com
Delivered-To: rats@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E3C6A3A0EB5; Thu, 11 Nov 2021 04:22:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=qti.qualcomm.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 ftEYxMzaUYvj; Thu, 11 Nov 2021 04:21:58 -0800 (PST)
Received: from esa.hc3962-90.iphmx.com (esa.hc3962-90.iphmx.com [216.71.142.165]) (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 9F2743A0EB4; Thu, 11 Nov 2021 04:21:58 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qti.qualcomm.com; i=@qti.qualcomm.com; q=dns/txt; s=qccesdkim1; t=1636633318; x=1637238118; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=gPfDzlm+5xGcfbGjLrg1TiFQPuk2eBk3ET2UfpBhAkA=; b=Zm/d3Pj5rtapBkfMY0soT/rHHsKUpDZiHwLW5V6QnevRYFMysqfdMP4x mqHiAwiRVfbBfUkVXrihm+miXu4oJCyy9JkjnjYD/FTq/nW1wdLJ9prpV nkBTHqyfpj2+gsCk3xZAdiqjB8tCgRmCa1c9N5o7X/9r8JkDyg4YLpXBq M=;
Received: from mail-dm6nam10lp2108.outbound.protection.outlook.com (HELO NAM10-DM6-obe.outbound.protection.outlook.com) ([104.47.58.108]) by ob1.hc3962-90.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2021 12:21:55 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ma5ylvWWBQpIYZDPl9dzQ0eRKE2J9whe0Z2hqytBS1MbSZt51F8y5g10RK1M5ZUUsyjXWxXqx4RNFc3AEmvqMLxOdPTABXrOS5C5+sJ+BuSjTmJ/xWpY44ds3YG+Ot3laNdSY9Os4Bx7a0szTPskwMsrUJb4WdvkXGPL7+nuchEuK8UBHVcbVj18nBYzzbZi7LF25sBK/WxOo5V3CSXfveCywslM15a1U/j5Obl+5Rb2t4x9NK/B9HlCh1krEK4ktuUtQJvbbMFVp7dm4Umr7sPx9tyAgk6lYc3evsfR2xR1jNCH2ZVjdbKSRLb4WvLIbwZONbCdqq4tlcMudVuBGQ==
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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gPfDzlm+5xGcfbGjLrg1TiFQPuk2eBk3ET2UfpBhAkA=; b=i+EuOZqw5qydMlFpMCA0kl+ljxupRmX9B5K0tCOgVusCo6Hyy+W81rae5RJ0iGPI6C1jJPgQ0aM0DGwphpbR6q2FlsTcNzJ9aFZRU0g3cd+9QS803bQWKWVCS/8iGH5BO6ET6Byh4O8FWPOurnMtD/T3IJtGh12QwaeDMKlmA5RpbCfpfshm2P0xm7Bo/wY+mxl/AGQ8ET020JWqzXUaQbLznv9SnYkVuu7DLtGO/rJAq+tuHK36vAtLr1nLkbRmYTd91PRUUNaXzW0qaL9/m6jfJqpTfKXDFxgn8uWQIYAPamb8ts6Id9V0Uhq+yy67w/ZmiF/316BiRpo2diDRZQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=qti.qualcomm.com; dmarc=pass action=none header.from=qti.qualcomm.com; dkim=pass header.d=qti.qualcomm.com; arc=none
Received: from PH0PR02MB7256.namprd02.prod.outlook.com (2603:10b6:510:1a::23) by PH0PR02MB8568.namprd02.prod.outlook.com (2603:10b6:510:103::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15; Thu, 11 Nov 2021 12:21:52 +0000
Received: from PH0PR02MB7256.namprd02.prod.outlook.com ([fe80::a842:468c:d9a1:a288]) by PH0PR02MB7256.namprd02.prod.outlook.com ([fe80::a842:468c:d9a1:a288%8]) with mapi id 15.20.4690.016; Thu, 11 Nov 2021 12:21:52 +0000
From: Jeremy O'Donoghue <jodonogh@qti.qualcomm.com>
To: Brendan Moran <Brendan.Moran@arm.com>, Laurence Lundblade <lgl@island-resort.com>
CC: Michael Richardson <mcr+ietf@sandelman.ca>, teep <teep@ietf.org>, Dave Thaler <dthaler@microsoft.com>, "rats@ietf.org" <rats@ietf.org>
Thread-Topic: [Teep] [Rats] EAT claims needed by TEEP
Thread-Index: AQHX1nDUZvUf+oSICk25x3KaTOKzVqv9QAiAgAAGGwCAAOs8AIAACrOJ
Date: Thu, 11 Nov 2021 12:21:52 +0000
Message-ID: <PH0PR02MB72563446B396CC589FAC710AF2949@PH0PR02MB7256.namprd02.prod.outlook.com>
References: <BL0PR2101MB102770B8E03B95A44497004CA3190@BL0PR2101MB1027.namprd21.prod.outlook.com> <7607E6BF-459C-4A32-AAE2-08117A97E06B@island-resort.com> <BL0PR2101MB1027EA205417DAF375BA7085A3160@BL0PR2101MB1027.namprd21.prod.outlook.com> <B1FDD70B-2530-454C-90AF-F44EEDC4F1F3@island-resort.com> <AM6PR08MB342916CCDD01E8698BB3C883EF170@AM6PR08MB3429.eurprd08.prod.outlook.com> <2D53BD60-4FA8-4153-B28B-585E902845AE@island-resort.com> <AM6PR08MB423141370A5CE9DEF6C732C69C140@AM6PR08MB4231.eurprd08.prod.outlook.com> <3370D92E-23C2-41C3-B86F-A65C168E9082@island-resort.com> <AM6PR08MB42311D76B24E866812171BDC9C140@AM6PR08MB4231.eurprd08.prod.outlook.com> <CH2PR21MB14640330E3DA58D2144659F7A3919@CH2PR21MB1464.namprd21.prod.outlook.com> <C9FCDB94-1734-4F6C-B6D9-DDB384827E06@island-resort.com> <CH2PR21MB146427B07435A5F36DAE5782A3919@CH2PR21MB1464.namprd21.prod.outlook.com> <27150.1636465193@localhost> <A40BE985-E12E-4B5E-8995-F4408134AEE4@island-resort.com> <398725.1636575788@dooku> <CH2PR21MB14646282D207490FD0C6D69BA3939@CH2PR21MB1464.namprd21.prod.outlook.com> <43D84D56-26B1-4726-A3AC-E918071592BB@island-resort.com> <EF42F5C1-91CC-4965-ABEF-FEDDE04454BF@arm.com>
In-Reply-To: <EF42F5C1-91CC-4965-ABEF-FEDDE04454BF@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=qti.qualcomm.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 650d5d85-7c81-4419-93a5-08d9a50dd81d
x-ms-traffictypediagnostic: PH0PR02MB8568:
x-microsoft-antispam-prvs: <PH0PR02MB8568EF572468D00776112BABF2949@PH0PR02MB8568.namprd02.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8273;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: SkB5vaiOIj2q2xUYNLDuY2fzhR2/i7MDTm+Difw5Xj0Bl6l236bdpUwBuPan8xoMxE8GQN6adE4Tstt+foaSSTSDiouARPmbXEQ6ulopLAJKdAED5ciCqP/34l8qySdyvUnHKJMN2RQCpzmkzIqFkuiK53gR508aeYS+9kFt+5LldEF0uHAQ3b97zTjdycqDTUxOxTw4h3eH6rzRkm64bWe9PikXjOWbTpZX+5g2olv/ZX04x/R9lxgOqgZMC0nsRBozNgquaG2ZMRrvs5JKDDiUmAWjcmE1u1me8IIfMZWW3O0uvtFCwHMNRBtacwa0qrkV2NI6iygbtxnvPtSC1P7multoT49ZEa5NiU5yYfLe7fbkzAHMY0bK33R2/d93lYV13bCDCSxsX8N1+f5poUDlKZMFkv+7SPxOVKJvYO00proKYPwp73ajOoRV7GksEJYRv1GmUPNxs1rvf/rmyq5dN4C6k2sdZC2Z46O16N8I+VRntnU41qsagUTUy3n6LAuVkAZnUIVSME5xvTrzQ/JoJYdNP6VmgSGzDG+mNajeQWM1E2n310rjAQhUbjG8732otPwfRSv+0jMz+ZuQiJXXz9kcUMiKO/WQRcOxA8GLs7etxyKOKmZFESDdPZREb/WHF36+8zPYySlpi0d0Cg8YEE49zsRCi4dsTyVCwc8EmMhOg/rlvXfOFO2SUJWG0izZWxwBfBmzIRyDBYExcJVczxAArLnFY2DbQuI82VMSn++5Jenmw8JMnuKQ2rNKU2rdO9z+JyP3j8RsaPNhrfOzhD6KO27Jg7pK3Yv0+XI=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR02MB7256.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(45080400002)(66476007)(508600001)(38100700002)(38070700005)(64756008)(66556008)(66446008)(2906002)(122000001)(33656002)(86362001)(966005)(5660300002)(6506007)(71200400001)(52536014)(53546011)(8676002)(7696005)(9686003)(55016002)(83380400001)(8936002)(186003)(316002)(91956017)(166002)(54906003)(4326008)(76116006)(66946007)(110136005); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?Windows-1252?Q?cbk8RyI37xbpKdrw4lqvrGjHY6X95FdYZwrjjHC04v6po6CD2LyoW/Hi?= =?Windows-1252?Q?rR4+WeBvK//ASQkPnDrIIVJ02adN6fvp642cSvS4vz/rJ1pLQ7Fcwl/+?= =?Windows-1252?Q?D5AJ6DKvlxkJs5OmSq0jyZUPdw0kTtERDde1cJNRXEPIFXv9DkWEdFX0?= =?Windows-1252?Q?c0CKa7ghmP5TZqtzKVKGdETI4hyvN+H30uJ8KClfnNAmBuMyPfg6mH9E?= =?Windows-1252?Q?81DW2RC29C/0rIgBwvOInvese6QFHyo8gOIpWxnDcXnK4Mb//MaUnU29?= =?Windows-1252?Q?0ETGI5BVk4JoE8bd+2s+mWc3BRjt6kG/huYoFg1g7g6SXe1MMWI+fAVp?= =?Windows-1252?Q?ofGFeA+89vRMnaAMmnIR37brCqpYTyXegQPMvpPR8BXh81bsw/mD/Ttb?= =?Windows-1252?Q?r3muCdwGNdq6Lb7Cb5cFODxq4Qn5ujIuU08kYr8wafCuE8zRZDB6sPEH?= =?Windows-1252?Q?O2qYl20FtWJZBNGVZUC2AWrLlki4mSqa92wZCrd0G1boPWx0cJHeTDvq?= =?Windows-1252?Q?mEPY30PB2Ymx8NM0lAQsBiXkYgcDYk9XwdlDRM2MCWsq+/t6QkzfLk3L?= =?Windows-1252?Q?tqykbP+V71PTv7pfS6lrvwTw6KwSvvbOAR9y/HtXM0KkuFG6gAjUoCnt?= =?Windows-1252?Q?qWPPS3v2A101QLMaeDxlDWNfU4Y9zhkP2/HlcXhUqYPHqShafljIal1P?= =?Windows-1252?Q?9YAoXf/O/jlUSMVwPnxZmrIYuwDzAUsjEtlYd+wjJCw5HgnkcosaRpTR?= =?Windows-1252?Q?OIiaz2Jl371T7q6aQMGmviQqGLa2WVCLxSIDz9/bxx986Q2+4fjjUCEB?= =?Windows-1252?Q?5jHZUajIawDN/UCXufalbz2xcAStQHaAxTu/EecX9yiCZLqGvFXQ09Kz?= =?Windows-1252?Q?MQ+Tk39TvaTJCe97ugWpKV8EAHlAhpeyTuY/vAt5rJ4wdreaGzrFXDTN?= =?Windows-1252?Q?JDUGrW+x61ptrGYqXyVqmtGUmleo3veuCmhM7JpV04nIANJ51WYm/ufZ?= =?Windows-1252?Q?K0q5bf2Ix7QwJ9Bb4Fk2It0RPd3yvDSDtlVTSnuAaa7yPnnpf0ZpXJ6K?= =?Windows-1252?Q?HIxcHnXUwLWL6VlZpBiX2B9YhkMpZPiZNvhKHBnT8q79EPl/+exEnDmX?= =?Windows-1252?Q?EP5H+rcHwF8U0yj84MVZNZ11+xdU6MDNhcxhw5wShAACfOXKNNxykd6w?= =?Windows-1252?Q?JqMpRCY7CJCn6dFsN5wO+GomC0eF92zD9Q2cmTnPyH7yKMGb/+LydXu+?= =?Windows-1252?Q?C88LlW+4TwVEKplUxd9/5AauDSjhyO7OeVl4kjdVPY+QBj4wbio6wBBC?= =?Windows-1252?Q?4r7Zk/vfeVfF2G/o6NoNHoB+2Vw6KnswgPnR9ehz7HaHSZOI4vcOfPLT?= =?Windows-1252?Q?0JcfdvOAcjtJWNYRhrT2pTA1h5fnlsoGNdisQaVAV6PKJMuEspdjpyVl?= =?Windows-1252?Q?4iFtl0CAIHfS9Prh1vFidMpR/Df6OkhZV36rrPuFD1r6IpYGuI5ieItD?= =?Windows-1252?Q?bCGPm3vL+CtbSfBU9zA2WGfQA1kREWOU/kTUB0QES2Y1prgh36zDRNJA?= =?Windows-1252?Q?ZKkomUHDtLno27wjCng83sgymydDQUdKzj/ny/5+baG55gH3sHv0JjgX?= =?Windows-1252?Q?u8WT8hLAjxs9Y5b8Qu2uU+zOh7oeF7BX9V/TKLVn3wvPACtqyVG1cN+l?= =?Windows-1252?Q?jA1W1gTn6qAT6+OqJr0I/NvXinoEwHmEsz3AfNqjWaXusQGSsTzmMjsS?= =?Windows-1252?Q?sqbBt4PqFPqvyxVZOhlK10VGZ/v0vj5enZteJ3hnegk6hniKtiiV/8Wk?= =?Windows-1252?Q?7DlDuD77oqZFdktX4a4HtY19wqVqq71Jalr7Yhu7EGx0jD1M34krs66E?= =?Windows-1252?Q?FSlJekCtpn1Cr/Z4UjDQnSCN/6+2BizorlO7h3xMe1l+oVUFdWtaStXV?=
Content-Type: multipart/alternative; boundary="_000_PH0PR02MB72563446B396CC589FAC710AF2949PH0PR02MB7256namp_"
MIME-Version: 1.0
X-OriginatorOrg: qti.qualcomm.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PH0PR02MB7256.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 650d5d85-7c81-4419-93a5-08d9a50dd81d
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2021 12:21:52.7455 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 98e9ba89-e1a1-4e38-9007-8bdabc25de1d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 46SfckI6N2nTry7Rr8SW99ApEkkgQ6feyaMAq8sdVwrCEEMsrkR0jR2V0nqMtSBW1hKevtR3m9A/x5kWzI6iG0osPfx0Ta0jOUMQ+FLweOM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR02MB8568
Archived-At: <https://mailarchive.ietf.org/arch/msg/rats/ZVHsoOxWqRqaUnBHI8FWlhvSdBI>
Subject: Re: [Rats] [Teep] EAT claims needed by TEEP
X-BeenThere: rats@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Remote ATtestation procedureS <rats.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rats>, <mailto:rats-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rats/>
List-Post: <mailto:rats@ietf.org>
List-Help: <mailto:rats-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rats>, <mailto:rats-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Nov 2021 12:22:04 -0000

Almost every point that has been made is reasonable, but I think we are typing to boil the ocean if we attempt to create a universal (or even “very widely applicable” HW class in EAT). Unfortunately we also have existing standards for HW where human readable strings form all/part of a normative HW definition – I do not think it is reasonable to simply disallow them, even if the approach is, as Brendan rightly states, not ideal.

Since the thread started by stating that being able to attest a TEE is a good idea, I will add that one relevant example where strings are used in this way is the GlobalPlatform TEE Management Framework (and GlobalPlatform OTrP management framework). These definitions cannot be changed in a backward-incompatible way (GlobalPlatform interoperability rules), so we are already in a position where what are almost certainly the most extensively commercially deployed TEE management frameworks in the world have a normative structure which employs strings (for those interested the relevant claims are in sections 9.1.3, 9.1.4, 9.1.5 and 9.1.6 of the GlobalPlatform TEE Management Framework)

To summarize what I have proposed in the PR (https://github.com/ietf-rats-wg/eat/pull/139/commits/d4e19b4a091cbbd6f94545688e2d1fc33c39a136).


  *   EAT should define two or three ways to encode HW class which are known to be collision-resistant. Thomas Fossati has suggested OID, UUID and URL in the PR, and this seems reasonable to me.
  *   EAT should allow profiles to extend the HW class type.
     *   My suggestion is that this pluggable type should be CBOR encoded so that a verifier that does not know how to decode a particular pluggable type can at least treat it is a somewhat-significant stream of bytes.
     *   Further, plugable type SHOULD be used in conjunction with profile claim
     *   Where pluggable type is used with profile claim, the combination profile claim + bstr encoding of pluggable type SHALL uniquely identify HW

I think this places us in a reasonable position from a standardization perspective without trying to cover all bases, and remembering that having a mechanism to enable EAT to be used with existing schemes that may have infelicitous characteristics is a useful goal.

In CDDL my proposal looks like:

hardware-class-label => $hardware-class-type

$hardware-class-type /= tagged-oid
$hardware-class-type /= tagged-uuid
$hardware-class-type /= tagged-url
$hardware-class-type /= bytes .cbor pluggable-x-hw-class-type

Best regards
Jeremy

On 11/11/2021, 11:28, "TEEP" <teep-bounces@ietf.org> wrote:


WARNING: This email originated from outside of Qualcomm. Please be wary of any links or attachments, and do not enable macros.
Strings are not the right choice for machine readable fields. There are extremely good reasons not to use them. Please do not use strings for model IDs.

When you have a string, it is inevitable that someone in marketing will realise that it’s human-readable. The next step is that it must be controlled to preserve brand image. When this happens, it is also inevitable that *wildly incompatible hardware* with *the same function* will be forced into the same “model number.”

By making model identification explicitly non-parseable by humans, we prohibit its use as a controllable, human facing identifier. This ensures that it has a better chance of being used correctly as a means to distinguish between mutually incompatible versions.

Human readable strings used as machine-readable distinguishing tokens are a bad idea. Don’t do it.

Brendan


On 10 Nov 2021, at 21:25, Laurence Lundblade <lgl@island-resort.com<mailto:lgl@island-resort.com>> wrote:

An advantage of a string over a UUID is that it can be very short if that’s all the OEM needs, “S”, “3, “X” and “Y” in the case of Tesla.

LL


On Nov 10, 2021, at 1:03 PM, Dave Thaler <dthaler@microsoft.com<mailto:dthaler@microsoft.com>> wrote:

If it's a string, I think it should be up to the vendor specified by the oemid,
rather than by a vendor-agnostic profile.
If it's a UUID then that's not needed.

Personally I would argue for treating it as opaque in either case
and a verifier should only compare it for equality, rather than permitting
semantic structure in it.   That's because I think some hardware implementation
may fillvin values that can be used for multiple profiles.

Dave

-----Original Message-----
From: RATS <rats-bounces@ietf.org<mailto:rats-bounces@ietf.org>> On Behalf Of Michael Richardson
Sent: Wednesday, November 10, 2021 12:23 PM
To: Laurence Lundblade <lgl@island-resort.com<mailto:lgl@island-resort.com>>; rats@ietf.org<mailto:rats@ietf.org>; teep <teep@ietf.org<mailto:teep@ietf.org>>
Subject: Re: [Rats] EAT claims needed by TEEP


Laurence Lundblade <lgl@island-resort.com<mailto:lgl@island-resort.com>> wrote:

Appreciate the comments.  Think it is important to keep this generic
since it is going in EAT. TEEP can have specific ways it uses HW class,
but don't think we should be referencing TEEP in EAT.

Then I suggest that:

    "There is no global scheme or format for this claim."
->
    "The format for this scheme will need to be specified within profiles that
     use it."

--
]               Never tell me the odds!                 | ipv6 mesh networks [
]   Michael Richardson, Sandelman Software Works        | network architect  [
]     mcr@sandelman.ca<mailto:mcr@sandelman.ca>  https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.sandelman.ca%2F&amp;data=04%7C01%7Cdthaler%40microsoft.com%7C47461df1d4ae4c6cc7f208d9a487f27c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637721726675767230%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=%2BOIH8fZw6zju18DcoR9hQ4HkrtDsMkhTXwQTitkKsSQ%3D&amp;reserved=0        |   ruby on rails    [


--
Michael Richardson <mcr+IETF@sandelman.ca<mailto:mcr+IETF@sandelman.ca>>, Sandelman Software Works  -= IPv6 IoT consulting =-

_______________________________________________
TEEP mailing list
TEEP@ietf.org<mailto:TEEP@ietf.org>
https://www.ietf.org/mailman/listinfo/teep

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.