On Wed, Jul 18, 2018 at 01:17:26PM +0000, Salz, Rich wrote:
> 
> Would you be willing and able to write, or co-write, a 6844 errata
> that corrected that document so that the current ACME CAA draft was
> compliant?  At the WG meeting yesterday, we got feedback that this
> would be acceptable to the Area Director, and everyone agrees it
> is a much better solution than waiting for the 6844bis document to
> become an RFC.

In my opinion, there is significant difference between:

- Fixing the ambiguous behavior in RFC6844 grammar in a way that
  does not change the language (which means the set of strings that
  are valid in grammar) but fixes the ambiguous cases.
- Changing the RFC6844 language to make it parse the examples from
  ACME-CAA as the draft intends them to be parsed. Even if this
  grammar would match the examples from the document.

As reminded by recent change from validation-methods to
validationmethods, there apparently are DNS provoders that do check
what is entered against the language.


The no-change-to-language fixed grammar changes would look something
like (omitting unchanged symbols 'domain', 'parameter' and 'space' and
any symbols transitively used by those three):

issuevalue = space [domain space] [";" space [parameters space]]
parameters = parameter *(mspace parameter)
mspace = 1*(SP / HTAB)

(Hope I got that right) But this does not parse the examples from
ACME-CAA correctly. For example:

issue "example.net; accounturi=https://example.net/account/1234; 
validationmethods=dns-01"

would parse as:

space: ""
domain: "example.net"
space: ""
space: ""
parameters:
        parameter:
                tag: "accounturi"
                value: "https://example.net/account/1234;";
        mspace: " "
        parameter:
                tag: "validationmethods"
                value: "dns-01"
space: ""

Note the trailing ';' in the account URI.


Notes about the construction:

- The reason why the space symbols are inside optional blocks is
  to avoid two back-to-back space symbols, as that would allow
  ambiguous parse of some strings.
- I introduced mspace symbol (short from "mandatory space") to
  stand for at least one space in order to separate parameters..


I also found a minor issue with the RFC6844bis grammar: It has
possibility of having two back-to-back *WSP symbols that can
compete with each other. One possible fix would be:

issuevalue = *WSP [domain *WSP] [";" *WSP [parameters *WSP]]

Which ensures there is always a non-empty symbol (domain or
parameters, neither of which can be empty and neither of which
can start or end with WSP) between two *WSP sybmbols.


-Ilari

_______________________________________________
Acme mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/acme

Reply via email to