[Atp] Re: Early Attempt at ATP Charter Text
Orie <orie@or13.io> Sat, 15 November 2025 18:59 UTC
Return-Path: <orie@or13.io>
X-Original-To: atp@mail2.ietf.org
Delivered-To: atp@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 5699F8A25A2E for <atp@mail2.ietf.org>; Sat, 15 Nov 2025 10:59:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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, TVD_PH_BODY_ACCOUNTS_PRE=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 M1LOLqMlSvCs for <atp@mail2.ietf.org>; Sat, 15 Nov 2025 10:59:06 -0800 (PST)
Received: from mail-vs1-xe33.google.com (mail-vs1-xe33.google.com [IPv6:2607:f8b0:4864:20::e33]) (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 711B08A25A1C for <atp@ietf.org>; Sat, 15 Nov 2025 10:59:06 -0800 (PST)
Received: by mail-vs1-xe33.google.com with SMTP id ada2fe7eead31-5dfb5fcf063so890440137.1 for <atp@ietf.org>; Sat, 15 Nov 2025 10:59:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=or13.io; s=google; t=1763233140; x=1763837940; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=4DAybQb7V0AhgX9zUqO/1hup5IzIKL6oDn4+xj/nLEg=; b=VMk0Ub0JIwdD1AG5HI74P4/xs7nAe/gCrR3atPk/LyQd3IbHqM6lNaWhfGc3R/DLk8 D9cC5Us0jWLeGwXSdwOZMnCNX0ZpNsP0HmNCn2CgvNPqSAvunewnDmBufECSi2HzdLPR 4W8qYEmLI1GvNDAaND3EyL9aT4xk/62yrrtmBG89mx//5ZzjVyFwVwYHHlAG+BQxH4D2 5qMvSLOk53LypT8zNvI0g8tizWFSVE6MCeeVRGrA+75Mi1HYWyspvlbGWpNmxEIfB5uu uPNzih76ImCAVgPo6cr1EiVwZm6NU5SbZ8Y7iCOISbWWifmwr2a6NND1cih8a/ikLbmL L/Rw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763233140; x=1763837940; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=4DAybQb7V0AhgX9zUqO/1hup5IzIKL6oDn4+xj/nLEg=; b=CI/GAxIdOobz1j/CAgeCercXaizlU/2yHgBZYL0zgR++r5C9rNM0s+J/UHulOGNdmQ DR9faHn8mQ4m6jmFQk1VM+vxqpKbS+pPcoC/5uwMcYnbzju68+G5sHZI5Ir/ZJSfBqhB aGVYU2KeslBJ7QJOPXRUvuy5jW8sET0sTbuDNAXvs73lbe8lr+TQ9E3zl/u3vUvZXrEP knxph7Bm0yygTjK6UQcla6nlMgATtJjuFLAkGCFSoMx9FMFVFpH0tmqDUzFG7qvf/+Wy LOQiZdg6OJ3Y1ZOmNy9odaok7LU/0CQVy9pROjHkaVd2pATMxmvcWdcP57Y+xPF6lZ5S vgxw==
X-Gm-Message-State: AOJu0YwT6TeJfMm/G36ZDU5Lwoqt5FPUAz7Muu00Zbvg6knXJV50ZkNi W4GszdtBkmAgOCPACBfMDAFo34cBmwnSwsgIaDBaAs1TW+tnnqJgJ6JBlgeSKfTEN/vRklHs67s PrVZFLSsxNkjGbNPoD9kmREG+drWB0Ogxnv/Woo6XrBSMColgCxwfeEhO3g==
X-Gm-Gg: ASbGncvfPCsOgGKDh6E+GAj5UiYpwPWJ87HW5+KdZ6FNY2r/Pry458/Iq+AKUujpz40 KYh5enz1rI47Y7J2hUOG1LBWCohn9RGgL1/wQFJtcRO646mDXE/YMREXitBbo0kKK6r0etfJR8B q7FnzILAaIpNXIWLPGEARpdXL3ROz/WcuoLPqOoQN/RR+/4JC0aTkm5Tkz6C7ALeOJzy88Rjh7B 83Yj+yVGsPn0FEkQSMx47tIpZL6xvNWeBYWXGGx/t9TIrxqkOcqJw2U+zvfcPTlQfwV8n9N
X-Google-Smtp-Source: AGHT+IFeRFUWHEyAJbg//C98h4DESXDPT19PP/8ZF2amjS8LTyQEwymQShhlXaBtIn3kcLSKTYgceigFdJn2cwHEfWY=
X-Received: by 2002:a05:6102:5a8a:b0:5df:ac57:b0ea with SMTP id ada2fe7eead31-5dfc5535373mr2071341137.10.1763233139806; Sat, 15 Nov 2025 10:58:59 -0800 (PST)
MIME-Version: 1.0
References: <CABFYohgnJEs13RfU1s7PvwrW-wR2a8xT1aOAz1hM2N+5NWZUcw@mail.gmail.com> <CAMzqgowrr2en3eKCzd1T1JaeuQ3si32qx-FWouOy+3QinhEYOA@mail.gmail.com> <CABFYohiTaD8jRRee8Tw-EpXHEx4hVvu+CrKybkSTVOLXwrhPHw@mail.gmail.com>
In-Reply-To: <CABFYohiTaD8jRRee8Tw-EpXHEx4hVvu+CrKybkSTVOLXwrhPHw@mail.gmail.com>
From: Orie <orie@or13.io>
Date: Sat, 15 Nov 2025 12:58:49 -0600
X-Gm-Features: AWmQ_bmbFjE_1T_InDo8dxmHhX-xvpaCIjxMqewWxkZfsfGGTwp0Q_Lx1ZB7PDs
Message-ID: <CAMzqgoyrCEL7chtYXGN_sZgqtdFqyzv7P=i5V0ANrD1MSq1SSw@mail.gmail.com>
To: Bryan Newbold <bryan@blueskyweb.xyz>
Content-Type: multipart/alternative; boundary="000000000000f462de0643a6b491"
Message-ID-Hash: R7DUA5SPQ26GITNSADVEIADGP56OGNRJ
X-Message-ID-Hash: R7DUA5SPQ26GITNSADVEIADGP56OGNRJ
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
CC: atp@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Atp] Re: Early Attempt at ATP Charter Text
List-Id: Authenticated Transfer <atp.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/atp/5znZ2GJsmeVSLBy9gETzi-CJWMQ>
List-Archive: <https://mailarchive.ietf.org/arch/browse/atp>
List-Help: <mailto:atp-request@ietf.org?subject=help>
List-Owner: <mailto:atp-owner@ietf.org>
List-Post: <mailto:atp@ietf.org>
List-Subscribe: <mailto:atp-join@ietf.org>
List-Unsubscribe: <mailto:atp-leave@ietf.org>
Hi Bryan, (as an individual, and sorry this is long) Today we have: ``` dig _atproto.ACCOUNT TXT ;; QUESTION SECTION: ;_atproto.ACCOUNT. IN TXT ;; ANSWER SECTION: _atproto.ACCOUNT. 300 IN TXT "did=URI" ``` URI -> JSON-LD -> names, keys, services did:web turns into a URL to https://w3c-ccg.github.io/did-method-web/, and did:plc turns into https://web.plc.directory/spec/v0.1/did-plc ... I see this as confusing, since true identity and account control remains in the DNS. ... Signaling intention to support all DID Methods plus whatever other identity systems the new interfaces unlock seems harmful to interoperability. Keeping this indirection and keeping it outside of the charter is concerning, because it makes understanding what verifying signatures means, and who controls content authenticity... confusing. What are the privacy implications for a verifier checking a signature? What metadata leaks and to who? There exists interest within the IETF on the topic of account identifiers and key discovery: https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-integration-01#section-3.7 (WG Adopted) https://datatracker.ietf.org/doc/html/draft-hallambaker-jscontact-05 (currently in Call for Adoption) Per the BoF text: ``` Self-Certifying data structures make it possible to efficiently synchronize public content across organizational boundaries, while preserving authenticity. These techniques have found broad adoption in some areas (such as software code versioning with git), but for the most part not in traditional web publishing or social web applications. On the social web today, authority and authenticity remain rooted in *specific network locations and service providers*, not *network identities controlled by individuals or organizations*. ``` If the current identity layer stays out of scope, won't control over the data repositories ultimately remain in the hands of the identity system providers (*did method providers / did method resolvers AND the DNS service providers*) ? See if this text captures the requirements that are currently satisfied with DNS and DIDs: ``` Verification of public data repositories requires *account identity systems with public key management*. The output of this working group will not mandate any single account identity system implementation for public data repositories. Instead, the working group shall describe an interface boundary and requirements which fulfill the verification requirements of public data repositories. ``` This framing is attempting to be in terms of what is required to trust the data you get from the repo, not in terms of features from DIDs you have used to date. Your other proposed text I will reframe in terms of questions, which the working group would likely need to answer to determine what "verification requirements of public data repositories" are. Is it a requirement that an account be able to activate and deactivate verification keys for digital signatures? ... What about encryption keys? Are the timing and history of these activations and deactivations important when processing data from repositories? Is it a requirement that an account be able to activate or deactivate publishing service providers? Should an account be able to use multiple service providers to publish data at the same time? Are the timing and history of these activations and deactivations important when processing data from repositories? Is it a requirement that accounts be able to label keys and service providers as being for different purposes? Is it a requirement that this labeling be time stamped or integrity protected? Is it a requirement that accounts be able to publish alternative account identifiers? Is bi-directional linking a requirement for alternative account identifiers? Is it a requirement that adding or removing alternative account identifiers be timestamped, integrity protected or auditable? When keys, names, or services are changed, is the history of all changes required to be preserved? Is the integrity of the account history important? If an account is taken over, should it be possible to register a new key (without controlling older keys), revoke all the old ones, and then publish new content under the existing account identifier? If all fields are mutable, which parties are able to mutate them, is there mandatory validation of fields before processing? If fields identify network resources, what are the privacy implications for verifiers who are processing published data and validating it? ... Assuming we are successful, when domains are sold or taken over, what impact should this have on publishing data and verifying previously published data? Assuming we are successful, when the DID Method is sold / sanctioned, or taken over, what impact should this have on publishing data and verifying previously published data? It seems like there might be some linkage requirements between "handle ownership" and "account identifier control" / "service provider" changes that impact what verifying published data means. It would be nice if we could go straight from a handle to a public data repository, and have that repository internalize all the cryptography details for verifying content originating from the handle, per: - https://atproto.com/specs/handle - https://atproto.com/specs/did > For this resolution method, a DNS TXT record is registered for the _atproto sub-domain under the handle hostname. The record value should have the prefix did=, followed by the full DID. https://datatracker.ietf.org/doc/html/draft-holmgren-at-repository-00#name-user-identifiers > Each repository must reference exactly one DID, and each DID may be associated with at most one AT repository. Together, these yield: 1 AT DNS Handle - 1 DID Account Identifier - 1 AT Data Repository. I'd prefer to see: 1 ATP DNS Handle - N ATP Data Repositories Regards, OS (as an individual) On Thu, Nov 13, 2025 at 7:15 PM Bryan Newbold <bryan@blueskyweb.xyz> wrote: > On Wed, Nov 12, 2025 at 8:56 AM Orie <orie@or13.io> wrote: > >> If you use more than just an identifier to public key binding from DIDs ( >> if you use https://www.w3.org/TR/did-1.0/#services ) ... >> You need a way to handle this that is not locked to your out of scope >> identity layer. >> >> I would suggest putting anything that you have that relies on things that >> are in the DID Document, in scope, so that the working group can develop a >> complete system that works with and without DIDs. >> > > For reference, the current things that get pulled from the DID document > (described in https://atproto.com/specs/did#did-documents) > > - account "handle" is indicated in 'alsoKnownAs' array > - one or more public keys are declared in the 'verificationMethod' array. > AT uses the id fragment (eg, #atproto) to reference specific keys for > different purposes > - one or more service locations declared under the 'service' array, again > using id fragment (eg, #atproto_pds) for specific purposes > > The DID document might contain other fields and entries for non-AT > purposes, and that is fine (eg, the DID does not need to be used > exclusively with AT). Some protocol-level or application-level features use > additional keys or service entries (eg, #atproto_labeler for moderation > labeling, or #bsky_feedgen for Bluesky app feed providers). All of these > fields should be mutable (support updates), to enable key rotation and > migration between service providers (network locations). > > I can certainly imagine other identity frameworks providing the same > degree of flexibility as DIDs do, and that we can specify what the > requirements are in the abstract. For the charter, maybe that paragraph > could be iterated on as: > > --- > The output of this working group will not mandate any single identity > system implementation. It will instead describe an interface boundary and > requirements for identity systems to fulfill that interface. These include > the ability to register public keys for multiple distinct purposes, service > endpoint URLs for multiple distinct purposes, and multiple alternative > account URIs. All fields must be mutable to enable key rotation and > migration between service providers. > --- > > To bump back up to the big picture, this does feel a bit like describing > something that walks and talks like DIDs and the DID document structure, > without actually requiring DIDs and the DID document structure. I think for > full functionality and interoperation in the network, the identity > requirements are going to look an awful lot like DIDs. Signing and > verifying data repositories is a simpler subset of that flexibility. > > --bryan >
- [Atp] Early Attempt at ATP Charter Text Bryan Newbold
- [Atp] Re: Early Attempt at ATP Charter Text Orie
- [Atp] Re: Early Attempt at ATP Charter Text Bryan Newbold
- [Atp] Re: Early Attempt at ATP Charter Text Orie
- [Atp] Re: Early Attempt at ATP Charter Text Daniel Holmgren
- [Atp] Re: Early Attempt at ATP Charter Text Orie
- [Atp] Re: Early Attempt at ATP Charter Text Daniel Holmgren
- [Atp] Re: Early Attempt at ATP Charter Text Daniel Holmgren
- [Atp] Re: Early Attempt at ATP Charter Text Bryan Newbold
- [Atp] Re: Early Attempt at ATP Charter Text Ted Hardie
- [Atp] Re: Early Attempt at ATP Charter Text Clinton Bowen
- [Atp] Re: Early Attempt at ATP Charter Text Daniel Holmgren
- [Atp] Re: Early Attempt at ATP Charter Text Bryan Newbold
- [Atp] Re: Early Attempt at ATP Charter Text Eric Rescorla