Hi!

I know I'm late but:

On 4/7/25 06:35, Wei Chuang wrote:
In an offline conversation with Bron and Tobias, they described a likely improvement to the header signing method described 26 March 2025.  The following is my description of that proposal.  The change is that all headers fields of a given name are signed, instead of worrying about the DKIM1 style of order sensitive "h=" header field name list.  This also solves the problem of worrying singletons vs trace headers and how to protect against newly added header fields i.e. "oversigning".


As noted on 26 March, the recommended header field list is:

* From

* Reply-To

* Subject

* Date

* To, Cc

* Resent-Date, Resent-From, Resent-To, Resent-Cc

* In-Reply-To, References

* List-Id, List-Help, List-Unsubscribe, List-Subscribe, List-Post, List- Owner, List-Archive


Hashing procedures

1)  Find in the message which of the recommended header fields are present.  Read the header fields in the order found in the recommended header field list,

I'd suggest sorting headers by case-insensitive lexical sort of header field keys, and within the same key, by original order in the header.

This way, no hard-coding of a magical un-intuitive order is needed, the pre-configured always-signed headers can be a possibly unordered set at the developer's convenience.

> and canonicalize using the Relaxed algorithm found in > RFC6376 section 3.4.2 <https://datatracker.ietf.org/doc/html/
rfc6376#section-3.4.2>.   Then successively hash them.  While not expected, if multiple header fields of a given name are found, read them from the header field in a bottom to top order as described in RFC6376 section 5.4.2 <https://datatracker.ietf.org/doc/html/ rfc6376#section-5.4.2>and hash in that order.

I'd suggest removing the reversal (bottom to top).

The reversal made some sense in the old DKIM, where only a subset of fields with the same key might be hashed/committed to, as to allow adding more fields with the same key _at the top_.

As DKIM2 is supposed to commit to all copies (and thus, implicitly the absence of excess copies) for a field key that is signed, this reversal is obsolete.

Oversigning is moot, too, as signing 2 copies of header field key Foo already commits to exactly those 2 copies.

2) Take the list of extra header field names given in the colon separated "h=" header field name list, and read the header field in the order found.  Canonicalize using the Relaxed algorithm found in RFC6376 section 3.4.2 <https://datatracker.ietf.org/doc/html/ rfc6376#section-3.4.2>then successively hash them.  If multiple header fields of a given name are found in "h=", read them in a bottom to top order as described in RFC6376 section 5.4.2 <https:// datatracker.ietf.org/doc/html/rfc6376#section-5.4.2>.  If not found, treat the value as empty.  Unlike section 5.4.2, for each name in "h=", if multiple header fields with the same name are present, all instances will be hashed.

See above. In terms of order, I'd suggest sorting them lexicographically, together with the fixed mandatory set of header field keys.

[...]

There is also an extra header field name "h=" list tag validation procedure.  The names in the "h=" list at some later instance number "i=" must be a superset of earlier ones.  A simple but restrictive check would require that any earlier instance number "h=" names must be a prefix of a given "h=" name list.

With the approach that the header field keys are unordered set (sorted in hashing/canonization), "superset" would be it instead of over-restricting it to prefix.

Hashing would thus be "determine list of header field keys to be signed, based on the fixed set plus the additional set from h=; for each of this list, get all fields with the stated key, canonicalize 'relaxed', add to hash".

[...]

Regards,

Hannah.
--
Hannah Stern            Mail System Development
www.mail-and-media.com  1&1 Mail & Media Development & Technology GmbH
[email protected]   Brauerstraße 48  76135 Karlsruhe  Germany
+49 721 91374-4519

Hauptsitz Montabaur, Amtsgericht Montabaur, HRB 5452

Geschäftsführer: Alexander Charles, Dr. Michael Hagenau, Dana Kraft,
Thomas Ludwig

Member of United Internet

Diese E-Mail kann vertrauliche und/oder gesetzlich geschützte
Informationen enthalten. Wenn Sie nicht der bestimmungsgemäße Adressat
sind oder diese E-Mail irrtümlich erhalten haben, unterrichten Sie
bitte den Absender und vernichten Sie diese E-Mail. Anderen als dem
bestimmungsgemäßen Adressaten ist untersagt, diese E-Mail zu speichern,
weiterzuleiten oder ihren Inhalt auf welche Weise auch immer zu verwenden.

This e-mail may contain confidential and/or privileged information. If you
are not the intended recipient of this e-mail, you are hereby notified
that saving, distribution or use of the content of this e-mail in any
way is prohibited. If you have received this e-mail in error, please
notify the sender and delete the e-mail.

_______________________________________________
Ietf-dkim mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to