[Ietf-dkim] Re: New I-D: A Deployment Profile for DKIM2 via Milter Interface

Bron Gondwana <brong@fastmailteam.com> Wed, 15 April 2026 12:26 UTC

Return-Path: <brong@fastmailteam.com>
X-Original-To: ietf-dkim@mail2.ietf.org
Delivered-To: ietf-dkim@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 464A1DCBACEC for <ietf-dkim@mail2.ietf.org>; Wed, 15 Apr 2026 05:26:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1776255991; bh=DjQ+8AtBTmlugQLa9xt9hSfhbQTzgomTGbqlZJoc+IA=; h=Date:From:To:Cc:In-Reply-To:References:Subject; b=DucNgy5kpFTWFarfQHUZGR9eVim4SCTUW7CQfomtYAhexCHMYBZdTzhzjxXi0RTZH 2ynljekQumewjw8TeNgTKMqqKLmYfMGX/UKC5vmC4C8lJ5IMYwB+pzlp2sk4IafPCF r3dbeK+UyPUgh0t7kRLllrocbk/b76IG2sCbJDbU=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.798
X-Spam-Level:
X-Spam-Status: No, score=-2.798 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_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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=fastmailteam.com header.b="T63ImZVF"; dkim=pass (2048-bit key) header.d=messagingengine.com header.b="ZjgEfNbB"
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 Cdm2J8N4Hjy0 for <ietf-dkim@mail2.ietf.org>; Wed, 15 Apr 2026 05:26:30 -0700 (PDT)
Received: from fout-b1-smtp.messagingengine.com (fout-b1-smtp.messagingengine.com [202.12.124.144]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id B58A0DCBACE5 for <ietf-dkim@ietf.org>; Wed, 15 Apr 2026 05:26:30 -0700 (PDT)
Received: from phl-compute-10.internal (phl-compute-10.internal [10.202.2.50]) by mailfout.stl.internal (Postfix) with ESMTP id 589EE1D001B7; Wed, 15 Apr 2026 08:26:24 -0400 (EDT)
Received: from phl-imap-15 ([10.202.2.104]) by phl-compute-10.internal (MEProxy); Wed, 15 Apr 2026 08:26:24 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=cc:cc:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1776255984; x=1776342384; bh=ZbgIAOZZUyAItcutkvW/z6wgh40xEaGjaTKvuOrHs60=; b= T63ImZVFh3sWaimuW0Zpr+8QVWJi9Dwbqt3VKgtgy2GMPdkr0oYw8ytrzzEflugM Rcqpurs++MmhjcrdNQRCydSZ3sRFtFm3ojnqlsgLeWS1JrVz3PbDFcXJuFvGiFfD 4mug6R5tXZFoIWLcuBAKYKvw0Zc9aj9ZbNCOsMbLF9yu4lDAZhWEqFiYSKY6X8FF vkU5G+WbvKTGco54vUSF7Md1kCi8Wx5+1K4WE2oN+2WPjLin0cxJPw8LAwbyoQ0F ZAzSiyBetlk7hrTyzT7QF2Gj6ttwhzIhLc8IfBEOgXt087xsfueyqyP/pGEmTQVp n/w+AVia2kBZdSjCcDrW1Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1776255984; x=1776342384; bh=ZbgIAOZZUyAItcutkvW/z6wgh40xEaGjaTK vuOrHs60=; b=ZjgEfNbB1H8r4nKI0YNsBMitWIEo595UwUkOZDcIYgPstvThFrw hOlc82xTGrjWK+jdfMR5NGH4nVac0K9kfuf90bdGPfWo3TGtk/rKcOwsk7qek7H8 qX+qyrBi0Zs3xlKMSbNOARtyqna7yKi7P+l8/we70XcDd1goMb9Cf+nqnjXgX0v4 mQGHkJztyoiq+dpCEB0Snxw8hA8o3QpcIywI6Xgj2pozTDxonlqILgwljluWFzdV E+FTtvy6LA51XzjdDF67RgvYwlS8rtDAdbQCoOsMDgj63ING5s064irtRFQEYrhF TWme37Vldkf9il1CHAPzGI5sNlu48gUF2mg==
X-ME-Sender: <xms:8IPfaRirElZuVnss1i4awiNA5Tuzo-hhb8qYSRK0QodfecHs4v-vyw> <xme:8IPfaQ09WdFd13kiOz_7xMSFyXAC-g8tA96JJfjJYQfHVy5EUp1_pi6gLsimRAVxz VRC2LKhiJC2fvf6NPYwYFEgBBjMULXqgg7kLJg5VzeLJKBz>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdeggedtjecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecunecujfgurhepofggfffhvfevkfgjfhfutgesrgdtreerre dtjeenucfhrhhomhepfdeurhhonhcuifhonhgufigrnhgrfdcuoegsrhhonhhgsehfrghs thhmrghilhhtvggrmhdrtghomheqnecuggftrfgrthhtvghrnhepteegffelueduveetfe eigeelteffgeejleeuleeitddvhffftdeukeegleduudeknecuvehluhhsthgvrhfuihii vgeptdenucfrrghrrghmpehmrghilhhfrhhomhepsghrohhnghesfhgrshhtmhgrihhlth gvrghmrdgtohhmpdhnsggprhgtphhtthhopedvpdhmohguvgepshhmthhpohhuthdprhgt phhtthhopehsuhhpvghruhhsvghrsehgmhgrihhlrdgtohhmpdhrtghpthhtohepihgvth hfqdgukhhimhesihgvthhfrdhorhhg
X-ME-Proxy: <xmx:8IPfabDF_JO_q79m0FeYmyKgyAQqOx5Nnex-0yK74sqOjAQLXf8WRA> <xmx:8IPfaXjrD9Pcr1VGkFNKQGUV8zWM8RmXHkM51nJE8n4rAUc3KnTRqw> <xmx:8IPfaUMIPoIsFc5gOvTPS4M04KDYTxDnzylGB0RcjqwTmVy9vxjHBg> <xmx:8IPfaY7_cw-nh-iuutUVoleKp0U2ZmeO2msJsx-d4V3VT-2kY8dUqQ> <xmx:8IPfac5bECe0dB8_tq6lFJ9P5ziyGDG11W5aJ43WG7mS2_YHa-wld725>
Feedback-ID: i2d7042ce:Fastmail
Received: by mailuser.phl.internal (Postfix, from userid 501) id 104A8780070; Wed, 15 Apr 2026 08:26:24 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
MIME-Version: 1.0
Date: Wed, 15 Apr 2026 08:26:03 -0400
From: Bron Gondwana <brong@fastmailteam.com>
To: "Murray S. Kucherawy" <superuser@gmail.com>
Message-Id: <3ec13b26-5c15-4301-8112-ce8006749c90@app.fastmail.com>
In-Reply-To: <CAL0qLwZR5SGS=g5j_gnKB+D8Y3d0hXrmVSpoZVTqG+ACH8AHdQ@mail.gmail.com>
References: <f57b6ebedadedc5f6dbdf07e2de5e824@itb.it> <CAL0qLwa9=WkyFF4QmscaG5p93pZso7g7oq5yp1zW=-t1sN9jCA@mail.gmail.com> <7b41024e-8155-4289-8150-54dc4dff1a87@inveigle.net> <CAL0qLwYHXd9b+JTOEtJMnJ4UUEhzh631+stPzpPOepW0vpGv0A@mail.gmail.com> <79ca14fb9642f590200989ecf86e12c5@itb.it> <CAL0qLwawxwJwkhsNtoC_ZYQ9g6w2L+Sy+qLC_eB0XqWP1CCQSA@mail.gmail.com> <f6dedd54b45376041ddbcc6df82aa705@itb.it> <b4bf2c35-9ee6-4818-96c8-75c93c07eccc@app.fastmail.com> <CAL0qLwZR5SGS=g5j_gnKB+D8Y3d0hXrmVSpoZVTqG+ACH8AHdQ@mail.gmail.com>
Content-Type: multipart/alternative; boundary="76dc838ae73b9b24895209707a6e8964676e0945"
Message-ID-Hash: ON6EQURI7J3W4QRBCSDK3I54FOPUE3A5
X-Message-ID-Hash: ON6EQURI7J3W4QRBCSDK3I54FOPUE3A5
X-MailFrom: brong@fastmailteam.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-ietf-dkim.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: ietf-dkim@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Ietf-dkim] Re: New I-D: A Deployment Profile for DKIM2 via Milter Interface
List-Id: IETF DKIM List <ietf-dkim.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf-dkim/Q-L_eyenhdldd7UYiC6qCk_4PPU>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf-dkim>
List-Help: <mailto:ietf-dkim-request@ietf.org?subject=help>
List-Owner: <mailto:ietf-dkim-owner@ietf.org>
List-Post: <mailto:ietf-dkim@ietf.org>
List-Subscribe: <mailto:ietf-dkim-join@ietf.org>
List-Unsubscribe: <mailto:ietf-dkim-leave@ietf.org>


On Tue, Apr 14, 2026, at 18:32, Murray S. Kucherawy wrote:
> On Tue, Apr 14, 2026 at 12:32 PM Bron Gondwana <brong=40fastmailteam.com@dmarc.ietf.org> wrote:
>> __
>>> On the stateful architecture question, the document addresses this in 
>>> Section 4.3. The issue is not database persistence between sessions but 
>>> shared state between filter components within a deployment. To generate 
>>> a body recipe, the signing component needs the message body before 
>>> modification by security gateways, DLP systems, antivirus engines and 
>>> mailing list managers, components that are precisely the most common 
>>> body modifiers and the least likely to implement DKIM2. This state is 
>>> not available through any standard filter interface to a component that 
>>> sees only the final message. Bron Gondwana's implementation in the 
>>> working group interoperability repository requires exactly this 
>>> inter-component state for body recipe generation and this has been 
>>> discussed on the list. DKIM2-core has no such requirement: everything 
>>> needed for signing and verification is available within the current 
>>> transaction.
>> 
>> Correct - SOMETHING has to be able to calculate the difference between the old and new body if you're going to do body recipes.  My "take a copy on the way in, compare on the way out" approach is the dumbest thing that could possibly work; it's great for demos.
> 
> It's workable, but another approach involves knowing a priori what mutations will occur between a message's arrival and its departure.  One implementation I did, for instance, could be told "user@example.com will be rewritten outbound as user@example.org" and would then feed the replaced string to canonicalization, anticipating what actually needed to be signed versus what arrived over the wire.  Of course, lists are more complex because they involve multiple mutations and configuring these mutations in two places might not be practical.

You can create multiple Message-Instance headers to capture the mutations separately.

Bron.

--
  Bron Gondwana, CEO, Fastmail Pty Ltd / Fastmail US LLC
  brong@fastmailteam.com