# ARC Signing

It is highly recommended that Mailman maintainers configure ARC siging of their outgoing email. ARC is the standard protocol for authenticating the content and authenticity of indirect email flows. These are systems that are more complex than a basic sender -> reciever flow. Mailing lists are a primary example of this.

Configuration is handled in the [ARC] section of `mailman.cfg`, and is mostly a question of cryptographic key management. A public/private key pair should be generated, and the various options configured. See http://www.gettingemaildelivered.com/dkim-explained-how-to-set-up-and-use-domainkeys-identified-mail-effectively for reference, as well as the additional documentaion about ARC configuration in general in schema.cfg.

Note

Depending on your version of openssl and opendkim-genkey, you might find that Mailman is unable to read the private key file. This manifests in emails getting shunted because of “Unparsable private key” exceptions (seen in mailman.log).

This is due to a bug in a dependency, which is for instance present in the bullseye release of Debian.

The private key should be secured locally and made readable to Mailman, and the can be specified in `mailman.cfg`:

    [ARC]
    privkey: /path/to/private.key

The public key should be put into a DNS TXT record, and located at:

#{config.ARC.selector}._domainkey.#{config.ARC.domain}

For example:

test._domainkey.example.com

The following is an example TXT record:

    "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyBwu6PiaDN87t3DVZ84zIrEhCoxtFuv7g52oCwAUXTDnXZ+0XHM/rhkm8XSGr1yLsDc1zLGX8IfITY1dL2CzptdgyiX7vgYjzZqG368C8BtGB5m6nj26NyhSKEdlV7MS9KbASd359ggCeGTT5QjRKEMSauVyVSeapq6ZcpZ9JwQIDAQAB"

The value of the above p= tag should be the public key from your pair.

Enabling signing will result in the addition of three ARC header fields to the outgoing email, which will be evaluated by the receiver.