[Diem] draft-steele-diem-architecture-demo

Orie <orie@or13.io> Thu, 16 July 2026 14:11 UTC

Return-Path: <orie@or13.io>
X-Original-To: diem@mail2.ietf.org
Delivered-To: diem@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 8C155117D6B46 for <diem@mail2.ietf.org>; Thu, 16 Jul 2026 07:11:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1784211102; bh=ExnHVY9ISOfGNACAuuEwPXThirbHGLTGaePF5Lhi6+U=; h=From:Date:Subject:To; b=FduFnRT8WkWUyth4tQDgC4CUi1bI9UnAorCQ0t6hKTsqu/gf4FXXbCQHHUNi5H1NK BSSO0CcMsN4+Ft72+EzRcN1vEom39l2qFo9UaY494SPW+mHDQ88ZPInkTmaTiD6ari QI+lRTvZmT4mt8seo3d2nsKkY7QyNQRqGo0iBIt0=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=or13.io
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 696hSB7ut187 for <diem@mail2.ietf.org>; Thu, 16 Jul 2026 07:11:41 -0700 (PDT)
Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 85D4F117D6B3F for <diem@ietf.org>; Thu, 16 Jul 2026 07:11:41 -0700 (PDT)
Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-2ca64c3ce5fso74606535ad.3 for <diem@ietf.org>; Thu, 16 Jul 2026 07:11:41 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1784211095; cv=none; d=google.com; s=arc-20260327; b=jVKknOtvMvhCIzePF911qqlk5GXJ6pjIsMU3CJmvnjaAv4HPjlEs9r2VV0dSVIfcyA FwNu4DjQuEHu+4yf//LVeZPDPeVx+55z7RXL2fdraWmj5BX/x/3sqiqYIC8lP+mDfOsP CBVhWUUWMxnbELTc4Ksrdk9INVlsyAjcXxADmP5z0eaR4c/XzJzJtx53PJt4x8KgeACJ vy4/S45cU1+4XA+X363w5jwyShDqFVP5SRXZ35nG8cAidkmgK1vf6NdwNp5hIXhNPhJ3 RyREVaOEbyW5vxKGK0GXZmvvEUkpU/Pl/SLh+tnYrmmwnGErMEoT5/8FvRkVOlhVDaVk vEMQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=ExnHVY9ISOfGNACAuuEwPXThirbHGLTGaePF5Lhi6+U=; fh=njJGnvBIEzoMao8KR0IsM2cN1zRco1XN5cLAJXmvdzo=; b=ok5tUj+I0JuXUu7l37ah4iXdJijJ1wolxWARrAqW/2WMqwgX7NbeIzkF5uQd4O73LR bYtN+tP8RHbVi3ZbKMPYzHgZFjsz922ji1djGYCksUeJlg2hbSYvQU2qLlBlyD68zUPN 4ptuwQ6Aw5zGd2JUUOeRB4n7lq/iJi0k3Zc25wP4XJsfHnddQQrMPtQT6wfhQXl0Z5lO kLb6GvhoXV1XnnhooVxl7SAAUKwZHpXAPIw/OmsZEkdYtxOitb6SvVzLg5w+mFKngLgv RD/5W73aMEuavzUZNKP7wGKbnSMC8FpfgH0FlFPFi1KVCMFNAKYfimA6gtteFS3Fr83d BivA==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=or13.io; s=google; t=1784211095; x=1784815895; darn=ietf.org; h=content-type:to:subject:message-id:date:from:mime-version:from:to :cc:subject:date:message-id:reply-to:content-type; bh=ExnHVY9ISOfGNACAuuEwPXThirbHGLTGaePF5Lhi6+U=; b=cYXngeg45XwFGEL22yg7FM6xecvtkqzDWdo6IKBBSXPYHlMGwQjOXJCyGR3XyetZ3E B4ryiO+y2ZP7+iszXF2AyC2rDiVit9R6YktjlZGt2Yh9vdQAWsnUUnyEV7SCS5Hb33yY 0Idd60LYmSGPIYdLpVsfY3SLruvoLOuRT5pGuHJ7ZmD+50XkSEsoyPmz7A3PHJsSRZ2u tWez+8WhjAsY8fKoSFnal54DAG5WIXhriIVMWcwSYDlxTus9J9AZVRroW5IfFIZ1Ycbo TTk08BMkwoCqg6GBj1OUOQZ0+IpaCfkJ5D8dUtcWl41ebQLVMju0vYYLseMJrQJ5ZgcQ 3lCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784211095; x=1784815895; h=content-type:to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=ExnHVY9ISOfGNACAuuEwPXThirbHGLTGaePF5Lhi6+U=; b=NvaNlV3a/Ijjr6DYDuduuP6UoA2zusCVeOOAaDPe6FGLOz9CHXiW7N+GscBTrvx8mM pXHfSpevNJGpu1qb1uvc0szmrQynW5Rdb9IDsoLcInYI10ghTK/3Rk7hQiU9PlWYaOkY w4jzCoqoZbIkcvtMvbEje8s8IOgGp2h0go7Oe+ceVuoIN/BMAAI10TyzEHVEzLQ2gfH+ 9aHrPmL1UOdYkXk3birPc71Ld9O9G7uNg0nGw54uqNgUAfPZ1+gXFhIvrv2Q1k6Q6ho0 JkpzRJBrpF9LlC/7tvH8Y8/lcrJdH9a4vI5CaSTHvXgu+h+moFm08r0eO3NDS6n8egh6 N7SA==
X-Gm-Message-State: AOJu0Ywisn83E2A4OeuLX0+/NETOJyyTIiWGj6I4pB2IWHchqM8MuKyU S1Ro3Xuk/t5ZAzP/Kw5DIVJAJMQOI46sbTeDzWA0fkaVxQRfgXtCknUED0xKLvqc/1eeSvJuy0h MtwFYDsBgcQOhDJM0euUGw7EcaRQRrycvwtDpB89RIRpw6mzhmERkmrBGOg==
X-Gm-Gg: AfdE7cl5lNIsFeKaMIZjBkrphm6AoZ5/qUhJXu44lAu/JHR536RLk+auOpDXN5oZzOR DVximSb9pF5utTChx/wE3XClhQM51UftzCTv7DlxS7AU/dr7RUC0AEz4lKIqWQvX5fMb3EZI8BQ jF86M+axglmEZ+5JOi0jPECxYTn8I9eCGasRRFVUp9P5STVkyXRI0pvgzSsZVnX5Cl8c8jXO/Mz 8GLPisAYQNAft+GQxBjVK86d6dsXYHgnZ9x41UT6tu+OlxODxoOM6gfFjCvkg6RlHnrg9Yd7Rca yLAhsFubnKMZZEbNBp7c
X-Received: by 2002:a17:903:3c30:b0:2ca:ea56:7a58 with SMTP id d9443c01a7336-2cef1332279mr108129675ad.37.1784211094987; Thu, 16 Jul 2026 07:11:34 -0700 (PDT)
MIME-Version: 1.0
From: Orie <orie@or13.io>
Date: Thu, 16 Jul 2026 09:11:23 -0500
X-Gm-Features: AUfX_mwpjzIOnQJGhyw6oxk583GDu5M1A6KU8tztEgTmz6XvULXwmcEzAxJAF44
Message-ID: <CAMzqgowNo48SHP1iTCrDSSs+VFTn2iok8QQrxHoEkpzr+6DNqw@mail.gmail.com>
To: diem@ietf.org
Content-Type: multipart/alternative; boundary="000000000000858c9d0656bb0471"
Message-ID-Hash: G7O4FWDASI2WLBC7JERHE2SL4AIFQ7XO
X-Message-ID-Hash: G7O4FWDASI2WLBC7JERHE2SL4AIFQ7XO
X-MailFrom: orie@or13.io
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Diem] draft-steele-diem-architecture-demo
List-Id: Discussion of digital emblems <diem.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/diem/Kzh_DDTN430Ju2mC9A98wEH85oI>
List-Archive: <https://mailarchive.ietf.org/arch/browse/diem>
List-Help: <mailto:diem-request@ietf.org?subject=help>
List-Owner: <mailto:diem-owner@ietf.org>
List-Post: <mailto:diem@ietf.org>
List-Subscribe: <mailto:diem-join@ietf.org>
List-Unsubscribe: <mailto:diem-leave@ietf.org>

Hi all,

I've written up an individual, Informational draft exploring the DIEM
architecture and use cases, together with a running demo that implements it
end-to-end:

- Draft — "An Architecture for DNS-Delivered Digital Emblems
(Demonstration)"
Editor's copy:
https://or13.github.io/emblem.red/draft-steele-diem-architecture-demo.html
- Live demo: https://emblem.red
- Source: https://github.com/OR13/emblem.red

The core idea is to model a digital emblem as a COSE hash envelope: a COSE
single-signer structure whose payload is the hash of an external resource,
and whose protected header carries the hash algorithm, the resource's
content type and location, a minimal set of CWT claims, and a confirmation
(cnf) key for later proof of possession.

The emblem is then delivered over DNS inside the asset's own HTTPS resource
record, in a private-use service parameter. The point of that choice is a
privacy property: the query used to discover an emblem is indistinguishable
from the query an ordinary client already makes to connect to the asset. A
validator can check whether an asset is protected without revealing — to
the infrastructure provider or an on-path observer — any intent to look for
emblems.

The demo lets you exercise the full lifecycle over an FQDN — issue, mark,
verify, unmark — including real COSE/CWT signing (ES256) and, with
credentials configured, real SVCB/HTTPS record writes. It performs genuine
cryptography but ships an insecure, public issuer key by default; it's a
demonstration, not a production service.

To be clear about scope: this is not a standards-track proposal. It's an
attempt to hold the DIEM architecture and requirements up against something
executable, and I'd value the group's feedback on the modeling choices —
the hash-envelope structure, the DNS delivery mechanism, and the
discovery/privacy properties in particular.

Thanks,
Orie

PS: yeah, I used AI to do this stuff.... I'm not asking for agenda time or
any formal consideration, but if you want to chat with me I will be onsite
for IETF 125.