[Mathmesh] Status

Phillip Hallam-Baker <phill@hallambaker.com> Thu, 23 January 2020 16:14 UTC

Return-Path: <hallam@gmail.com>
X-Original-To: mathmesh@ietfa.amsl.com
Delivered-To: mathmesh@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 640BA1208AF for <mathmesh@ietfa.amsl.com>; Thu, 23 Jan 2020 08:14:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: YES
X-Spam-Score: 6.099
X-Spam-Level: ******
X-Spam-Status: Yes, score=6.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, GB_SUMOF=5, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, TO_NO_BRKTS_PCNT=2.499] autolearn=no autolearn_force=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 nCY9NQg-h9pd for <mathmesh@ietfa.amsl.com>; Thu, 23 Jan 2020 08:14:51 -0800 (PST)
Received: from mail-oi1-f179.google.com (mail-oi1-f179.google.com [209.85.167.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C447D1208AD for <mathmesh@ietf.org>; Thu, 23 Jan 2020 08:14:51 -0800 (PST)
Received: by mail-oi1-f179.google.com with SMTP id l9so3399325oii.5 for <mathmesh@ietf.org>; Thu, 23 Jan 2020 08:14:51 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=f+yvBYIi4iK1pkBYVzNlbh1G0Ul4Q1jCFvaCjcKwinc=; b=S1E+degNfwK+ou84LHkRcop7JEoTYBAzU0xYklsCqGL8OLK1B3VA0XguTVRkMeufOc FrEp1zb5LJNMVNQok0w4XH+o/ijFn9aMdiXCgOCIlUj/tw1ORvufmKc8G8zK9ID6PPhR bCZnDWGIaF/FPGwPNwVpeZr9Jpes/YchThqPvlLDylBJn++7Dh0kAm97DuCn/vFDVpzV r/7FnuFErrhmR1dRtnmw8T5BtiDZZ6QBAH+Ewn14rUgN8wtz3OnLkXlczdsFo2Ra/yXP WZR4QohjpNumZ5YPidVJwClsptF5nBjm5U7P47plnr2nue/IkVg5PV1H//uu/cHMFtVq EncQ==
X-Gm-Message-State: APjAAAU5TdnSv9Cw91GqD7+irxNDajFCx3EQC3Vqdm5nUuH1tqIKzQgn sbjjDt+ne+jkBuAeJmYY9o6p1jAFY/Z0SzM7X57iGdavuz4=
X-Google-Smtp-Source: APXvYqwHnp0rpQI3GfkCq7oGc9NnA00gGlBMHSYNy14zE5IuHX52O6zpNQZhiOcrV4j61bihoF+fnK7rYzbpZQwmDxk=
X-Received: by 2002:aca:3241:: with SMTP id y62mr10912816oiy.31.1579796090544; Thu, 23 Jan 2020 08:14:50 -0800 (PST)
MIME-Version: 1.0
From: Phillip Hallam-Baker <phill@hallambaker.com>
Date: Thu, 23 Jan 2020 11:14:40 -0500
Message-ID: <CAMm+LwjvbU4=TdJG=1zK8T+1KF9L0C5nhFBKwdjXvosL1WmbBQ@mail.gmail.com>
To: mathmesh@ietf.org
Content-Type: multipart/alternative; boundary="000000000000cb66b1059cd0f084"
Archived-At: <https://mailarchive.ietf.org/arch/msg/mathmesh/rFnMAA-ZEV_wuMhmTJEPBvlw5g8>
Subject: [Mathmesh] Status
X-BeenThere: mathmesh@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <mathmesh.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mathmesh>, <mailto:mathmesh-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mathmesh/>
List-Post: <mailto:mathmesh@ietf.org>
List-Help: <mailto:mathmesh-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mathmesh>, <mailto:mathmesh-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 23 Jan 2020 16:14:53 -0000

I am currently trying to complete the refactoring of the Mesh so that
everything is built on DARE. This has allowed me to cut the amount of code
by 50%.

One issue that I have been grappling with is how device connection requests
are handled and how this ties in with the general client authentication
mechanism. And there is an interesting set of constraints.

Recall that we don't trust manufacturer generated keys. So the keys that a
device uses in the context of the Mesh are different from the ones it
shipped with (or generated locally). The Mesh keys are the sum of the
device and administrator contributions.

This creates a challenge: How does a device complete a connection request
to obtain the administrator contribution? The device cannot authenticate as
a Mesh connected device until it is connected.


I have come up with the following solution:

*  Created a new spool 'local' for outbound messages that are to be
collected from the service rather than forwarded.

A device requesting a connection to alice@example.com posts a
RequestConnection to example.com

The service creates an  AcknowledgeConnection message that allows the
witness value to be calculated and returns that to the device requesting
connection and appends it to alice's inbound spool.

Alice accepts or rejects the connection and posts a RespondConnection to
her local spool.

The device polls for the completion message response specifying a
transaction identifier contained in  AcknowledgeConnection


So all that is left, is a means to calculate the  transaction identifier. I
am considering using the UDF of the MessageID of the  AcknowledgeConnection
message. Since this is server generated, it is going to take collusion
between the device and service to leverage this for some form of DoS
attack. And the service can't perform a DoS attack by definition.

I am wondering if I should generalize this in some way so that when there
is a chained transaction, the identifier of the next message in the
sequence is determined by the immediately preceding message with the
possible incorporation of a nonce. This approach seems very fluent.

One nice side benefit to this is that we can support pending messages
easily. The response to a connection request in an enterprise setting could
well be 'I need to check' so we want to have the option of posting Pending
and tell the requester what to wait on. So our CSP traces are:

Pending* -> (Accept | Reject)

Since the pending messages are moot once Accept or Reject are posted, we
can use the same MessageID for all of these and just have the service
return the last one.