[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: stringprep in 3280bis




Kurt,

To be fair, the I-D does address stored strings in a couple of places, although we may have missed a reference. Please review the quotes below, along with a couple of alternatives for one update, to see if we have it right...

Section 7.2 of this I-D includes the following text:

To accommodate
   internationalized domain names in the current structure, conforming
   implementations MUST convert internationalized domain names to the
   ASCII Compatible Encoding (ACE) format as specified in section 4 of
   RFC 3490 before storage in the dNSName field.  Specifically,
   conforming implementations MUST perform the conversion operation
   specified in section 4 of RFC 3490 as follows:

      * in step 1, the domain name SHALL be considered a "stored
      string";
 (additional steps deleted)

Sections 7.5 includes a reference to the text in 7.2.  From 7.5:

   Where the host-part (the domain of the addr-spec) contains an
   internationalized name, the domain name MUST be converted from an IDN
   to the ASCII Compatible Encoding (ACE) format as specified in section
   7.2.

   Two email addresses are considered to match if:

      1) the local-part of each name is an exact match, AND
      2) the host-part of each name matches using a case-insensitive
      ASCII comparison.

I am probably missing some nuance, but this would seem to be sufficient for sections 7.2 and 7.5.

In section 7.3, we did not specify "stored" versus "query", because it does not seem to apply. In this section 7.3, the domain component attribute contains only a single label, so we only perform the "ToASCII" operation.

To represent a label from an IDN in the distinguished
   name, the implementation MUST perform the "ToASCII" label conversion
   specified in section 4.1 of RFC 3490.

As I said, the "ToASCII" operation doesn't seem to care about "stored" versus "query" so we didn't specify it. However, the "ToASCII" operation does require specification of two additional inputs: the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. We dropped the ball here. We should have specified that the UseSTD3ASCIIRules flag should be set, and that AllowUassigned flag is *not* set. (That works out to be the same as "stored" anyway, doesn't it?)

(1) How about the following revision to that sentence in 7.3:

To represent a label from an IDN in the distinguished name, the implementation MUST perform the "ToASCII" label conversion specified in section 4.1 of RFC 3490, where the STD3ASCIIRules flag is set but AllowUnassigned flag is not set.

(2) If I misinterpreted the specification of "ToASCII", and we do need to specify "stored" vs. "query", we could use this alternate text:

To represent a label from an IDN in the distinguished name, the implementation MUST perform the "ToASCII" label conversion specified in section 4.1 of RFC 3490, where the string preparation is performed as a "stored" string.

Am I correct that 7.2 and 7.5 are okay? What do you think of the alternatives for 7.3?

Thanks,

Tim

At 11:39 PM 6/21/2006 -0700, Kurt D. Zeilenga wrote:

For various values, this I-D discusses how strings are to be
prepared using various profiles of the StringPrep algorithm.
However, the I-D fails to discuss whether the strings should
be prepared as "stored" or "query" strings (see Section 4
of RFC 3490).   The I-D should be revised so as to be clear
which strings are to be treated as "stored" strings and which
are to be treated as "query" strings.

Off the cuff, I suspect the right thing to do is:
  1) requiring each prepared string in a certificate/CRL be
    treated as "stored", and
  2) prepared strings to be compared against prepared strings
  in a certificate/CRL to be treated as either "query" or "stored".
This assures that each comparison between prepared strings
involves at least one "stored" string.

-- Kurt

At 01:42 PM 6/16/2006, Stephen Kent wrote:
>Folks,
>
>Based on the latest message from David Cooper, I am initiating last call on "Internet X.509 Public Key Infrastructure, Certificate and Certificate Revocation List (CRL) Profile" (<http://ietf.org/internet-drafts/draft-ietf-pkix-rfc3280bis-03.txt>http://ietf.org/internet-drafts/draft-ietf-pkix-rfc3280bis-03.txt)
>
>The last call will last for two weeks. In deference to the U.S. Independence Dya holiday (which means July 3rd is a holiday for many folks), all comments must be received by July 5th.
>
>Steve