[Wpack] DARE Containers as possible packaging mechanism

Phillip Hallam-Baker <phill@hallambaker.com> Thu, 27 June 2019 17:01 UTC

Return-Path: <hallam@gmail.com>
X-Original-To: wpack@ietfa.amsl.com
Delivered-To: wpack@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 02705120156 for <wpack@ietfa.amsl.com>; Thu, 27 Jun 2019 10:01:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.399
X-Spam-Level:
X-Spam-Status: No, score=-1.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] 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 TTwgY14ne-a6 for <wpack@ietfa.amsl.com>; Thu, 27 Jun 2019 10:01:26 -0700 (PDT)
Received: from mail-ot1-f46.google.com (mail-ot1-f46.google.com [209.85.210.46]) (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 7C96F12018D for <wpack@ietf.org>; Thu, 27 Jun 2019 10:01:25 -0700 (PDT)
Received: by mail-ot1-f46.google.com with SMTP id e8so2992138otl.7 for <wpack@ietf.org>; Thu, 27 Jun 2019 10:01:25 -0700 (PDT)
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=z3WpjmVRtUmMkXUVPXtHYSeUWAOX9oAvHmznelGo0vE=; b=Xmh5YOdt23YsS4HeQMjP3pEV5hZFzS1l05OPs7EjEBSOvtuKht9Wesd+/8r4w9yR7i xZ+r4pnSrLIoRJMdPBxoXkbKazutmBB7GlFYmjcFwGzSvGQc49LEf6oRHE4w+ZgVUyBL 46bXZgrhF1qrpMgcqdFjGokOMMX3qjOJWmO2ZPLCgyEXTMgYVrPQkQGHXf3J/Qd/whLT IBHmk67utjbuomxEH9uGk1tjvtm8yRR3xTAWgEMJVQv5rao48h0dOci0vNJhMj0b2Qwz QiZerfT5y4/iSOiTq2VoDYgxayxDqdHMQ+GRdJ0Fe4App4mYCOXTT+NS5GNAwv66RLQd 2tWw==
X-Gm-Message-State: APjAAAVana7SYUyg2FATAYvbCPBSdNd9Xq0DLc5VnhsDc0Ky7nBMy8Pi rfBZJey2guQKQ2emkm/mACbtGxJIPnnFzIRdKv2LoA==
X-Google-Smtp-Source: APXvYqzu4o7zfxmP5kv1tdoGl7UYShvsQHa5vX1bLk9wpL0OjK4Vk543AnZMWSDV0WHujZS0yFAPwonHF54jael5lLE=
X-Received: by 2002:a9d:c22:: with SMTP id 31mr4634328otr.48.1561654884305; Thu, 27 Jun 2019 10:01:24 -0700 (PDT)
MIME-Version: 1.0
From: Phillip Hallam-Baker <phill@hallambaker.com>
Date: Thu, 27 Jun 2019 13:01:14 -0400
Message-ID: <CAMm+LwjuB=+_Q4SGdgtQikU+hX3fVi39jvQjF0i+MguRK6Ad9A@mail.gmail.com>
To: wpack@ietf.org
Content-Type: multipart/alternative; boundary="000000000000a40f6a058c511cd5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/wpack/BzYQqYKp04u2Xh0KUoyaJgCHIfM>
Subject: [Wpack] DARE Containers as possible packaging mechanism
X-BeenThere: wpack@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Web Packaging <wpack.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wpack>, <mailto:wpack-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wpack/>
List-Post: <mailto:wpack@ietf.org>
List-Help: <mailto:wpack-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wpack>, <mailto:wpack-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 27 Jun 2019 17:01:28 -0000

As most of you know, I have been working on a new PKI to manage client side
keys providing an almost transparent user experience. This infrastructure,
the Mathematical Mesh makes use of a cryptographic repertoire that is
rather broader than the one traditionally used in commercial cryptography.
In particular, it makes use of meta-cryptography, that is operations on
keys.

Almost any network protocol can be made end-to-end secure with minimal
effort if every user has the necessary private keys available at every
device they wish to use. The purpose of the Mesh is providing the
capabilities necessary to achieve that securely under real world conditions
such as users losing devices, devices being compromised by malware or in
manufacture, etc.

The cryptographic platform on which the Mesh is built is called Data At
Rest Encryption (DARE). At a very basic level, this may be seen as being a
version of the PKCS#7/CMS scheme used in S/MIME applied to JSON Object
Encryption and Signature to provide an 'envelope' capability. For
efficiency, a modest extension of JSON encoding is available as an option,
this simply allows direct encoding of binary and UTF8 sequences without the
need for Base64 or escape encoding.

Envelopes may be joined together in an append only sequence to form a
container. While it is not their primary purpose in the Mesh, DARE
containers provide a full superset of ZIP archive capabilities combined
with modern cryptographic capabilities, i.e.

* Envelopes may be signed and encrypted individually.
* A single key exchange record may be used to encrypt and authenticate
multiple envelopes in a container.
* Blockchain type integrity checking is supported by means of simple chains
and Merkle trees.
* Various indexing mechanisms are supported.
* A form of proxy re-encryption is supported.

The last capability is useful in enterprise deployments as it permits a key
server in the cloud to control the ability to decrypt documents without
having the ability to perform decryption by itself. This protects against
the type of insider attack where the administrator of the key server
decrypts all the documents and makes off for Hong Kong as well as ordinary
cloud breaches.

The application I was considering for deployment of the file archive
capability was distribution of code. Current code signing technologies
target either the distribution package or the distributed files. DARE
Container supports both approaches with a single signature. It is also
allows for redacted containers to be distributed. So a video game for PC
and MAC might be distributed as a single container but the PC version need
only download the shared content and the PC executables.

There is reference code and a very comprehensive document set in
preparation. This was commissioned as pure research into where we might
want to take the industry and so backwards compatibility was intentionally
avoided. It is an open question as to whether the best approach from this
point on is to take the opportunity to jettison the baggage of the past
(ASN.1, PKIX, etc) or to attempt re-use.

I am currently working on finishing the 3.0 version of the documentation
set for Montreal.