Domain Keys for email sender authentication
DK was proposed by Yahoo as a way to authenticate the sender of an email. Essentially, the email is signed using a public key cryptographic signature. A receiving Mail Transfer Agent (MTA) or Mail User Agent (MUA) can look up the public key in the DNS record for the sending domain and compute the signature. If it matches the entry in the DomainKey-Signature header, the email has been verified to have come from that domain.
The DK header can specify which other headers are signed and the email body is always included. The domain in the "From:" (or, in some cases, "Sender:") header must always match the domain in the DK header and that provides the linkage that verifies the sender. Because of the way the signature algorithm works, any modification to the signed parts will result in a signature mismatch -- this provides some email integrity protection.
Domains and subdomains will maintain public keys as TXT records in their DNS entries. DK uses a standard section of a domain's DNS space to contain the public keys for that domain. In addition, a selector is specified in the DK header which can be used to restrict keys to specific organizations and to revoke keys periodically. To retrieve a key, one queries for the TXT record associated with selector._domainkey.example.com.
DK has been adopted by two of the larger email providers: Yahoo and Gmail. Banks and other financial institutions are also starting to adopt it because it provides very good phishing protection for their customers. It allows customers the opportunity to verify that the mail is authentic. Unfortunately, the support for DK checking in MTAs and MUAs has not been widely deployed yet, but the early adopters appear to be betting that it will be.
There are several issues with DK, but they do not fundamentally break the store and forward nature of email as SPF does. The main problem is that users will need to use an SMTP server associated with the domain that they are sending from or their MUA will need to generate a DK signature using a personal private key (that is listed appropriately in the domain's DNS). Another issue is that the signing of the body only works if the body is not modified after the signing. Unfortunately some mailing lists and other software (virus scanners for example) tack on a few lines to the body and this will cause the signature check to fail.
A potentially bigger problem is that DK is covered by patents held by Yahoo. Microsoft's Sender ID proposal never gained any traction in the free software world because of patent issues, but it appears that Yahoo's liberal licensing terms have removed that issue, at least for free software. Yahoo licenses the patents under either the GPL or their own license agreement. A patent peace provision and a notice that acknowledges Yahoo's intellectual property are all that are required for those who do not wish to license under the GPL.
Shortly after Yahoo released the Domain Keys specification, Cisco proposed Identified Internet Email. The two are similar in many respects and have since been merged into a proposal called Domain Keys Identified Mail (DKIM). The IETF has formed a DKIM working group that plans to guide the proposal towards adoption as an internet standard. Depending on whose opinion you believe, that could happen within the next year or two. It remains to be seen whether there is widespread adoption and conversion from Domain Keys if and when DKIM becomes a standard.
| Index entries for this article | |
|---|---|
| GuestArticles | Edge, Jake |