SPF's use of punctuation was indeed not very friendly. The first letter comprising a single word assertion would be much easier to recall and subsequently read. This is especially true when punctuation such as ":" or "+" is used to separate various assertion flags.

There remains a good reason for not using full words per assertion, when a single letter is sufficient. It should be assumed that over time domain-names will become larger. Perhaps something like "xn--55qx5d" may even become the common size for a TLD. There are also sizable SLDs such as "kitakyushu.jp" or "chirurgiens- dentistes.fr". When policy contains a confirmation of a sha-1 and base32 encoding of an associated domain, this adds a 32 byte label and the indeterminate length of the actual domain-name.

Within the DNS message allotment, 12 bytes contain the DNS message header, 5 bytes contain the query, plus the number of bytes to accommodate the query name, plus one byte per label overhead. Also add the 9 bytes that contain the response, plus 2 bytes per label (assuming name compression) followed by the RR data. Not including the name requirements, there are 486 bytes available within this DNS message allotment. A TXT RR holding more than 255 characters also contains an additional two bytes for defining the character-string length, which leaves 484 bytes for the key related data and the name information. The name information would require the sum of the label sizes plus 3 additional bytes per label.

When 32 character labels of base32 encoded sha-1 hash are used to associate domains or local-parts, and that the policy label also consumes an additional 7 characters, this represents a 45 byte overhead. The French SLD alone consumes 30 bytes. Assume two sub- domains below this SLD average 16 characters where people in this region have become accustom to using long domains names. To define the domain-name for the policy query would require 113 bytes. That leaves 371 bytes for restating the hashed element, asserting policy, and perhaps including infrequent associations such as special local- parts in order to avoid publishing local-part policy separately (when this information can fit).

http://www.sonic.net/~dougotis/dkim/draft-otis-dkim-dosp-01.html

There are still several errors in this illustrative policy draft, largely within the DNS example section. A better example will be made that includes domain associations along with the corrections, in addition to offering examples containing a few local-part addresses. When this is done, it becomes more readily apparent there is little space to spare. This shows 7 bytes consumed by the version, and perhaps another 8 bytes consumed to assert various flags that comprise a single and fairly easy to remember first letters of the assertions. Now add to that, a domain name of 68 characters contained within the hash that requires 71 bytes to list. This leaves 285 bytes for a local-part list which permits specific exceptions without requiring the separate publishing of a local-part policy with the added DNS transaction. If these local-part names average 24 characters long, then about 10 such names could be listed to avoid the separate publishing of the local-part using the same hashed label technique.

-Doug








_______________________________________________
NOTE WELL: This list operates according to http://mipassoc.org/dkim/ietf-list-rules.html

Reply via email to