Re: [kitten] New URI Discovery Draft

Petr Spacek <pspacek@redhat.com> Mon, 26 September 2016 16:01 UTC

Return-Path: <pspacek@redhat.com>
X-Original-To: kitten@ietfa.amsl.com
Delivered-To: kitten@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E1B2412B303 for <kitten@ietfa.amsl.com>; Mon, 26 Sep 2016 09:01:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.218
X-Spam-Level:
X-Spam-Status: No, score=-9.218 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-2.316, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9LjAacgKhJzD for <kitten@ietfa.amsl.com>; Mon, 26 Sep 2016 09:01:48 -0700 (PDT)
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6D82612B2FF for <kitten@ietf.org>; Mon, 26 Sep 2016 09:01:03 -0700 (PDT)
Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 23D957EA96 for <kitten@ietf.org>; Mon, 26 Sep 2016 16:01:03 +0000 (UTC)
Received: from pspacek.brq.redhat.com (pspacek.brq.redhat.com [10.34.128.7]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u8QG10LC014913 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 26 Sep 2016 12:01:02 -0400
To: Matt Rogers <mrogers@redhat.com>, Nathaniel McCallum <npmccallum@redhat.com>, kitten@ietf.org
References: <1474669521.30344.15.camel@redhat.com> <c2e61e27-8a6c-1d38-140e-0c019b0a13a2@redhat.com> <1474905318.15526.31.camel@redhat.com>
From: Petr Spacek <pspacek@redhat.com>
Organization: Red Hat
Message-ID: <fc190d9c-2e8f-d727-1a66-c678cd850a32@redhat.com>
Date: Mon, 26 Sep 2016 18:01:00 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0
MIME-Version: 1.0
In-Reply-To: <1474905318.15526.31.camel@redhat.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Mon, 26 Sep 2016 16:01:03 +0000 (UTC)
Archived-At: <https://mailarchive.ietf.org/arch/msg/kitten/iSMuz4n1n6ifdWhBVHrw9KKEOC4>
Cc: Simo Sorce <simo@redhat.com>
Subject: Re: [kitten] New URI Discovery Draft
X-BeenThere: kitten@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Common Authentication Technologies - Next Generation <kitten.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/kitten>, <mailto:kitten-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/kitten/>
List-Post: <mailto:kitten@ietf.org>
List-Help: <mailto:kitten-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/kitten>, <mailto:kitten-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 26 Sep 2016 16:01:55 -0000

On 26.9.2016 17:55, Matt Rogers wrote:
> On Sat, 2016-09-24 at 18:29 +0200, Petr Spacek wrote:
>> On 24.9.2016 00:25, Nathaniel McCallum wrote:
>>>
>>> https://datatracker.ietf.org/doc/draft-mccallum-kitten-krb-service-
>>> disc
>>> overy/
>>>
>>> I've submitted a new version of the draft. This version matches the
>>> code that is now merged into MIT Kerberos.
>>>
>>> We need to move forward. If that is as an individual submission,
>>> then
>>> so be it. But we really can't wait any longer. So unless I hear
>>> some
>>> noise to the contrary ASAP, I plan to go this route.
>>
>> Hello,
>>
>> in general it makes sense. The new URI format opened an encoding-
>> Pandora-box
>> so it needs more work to make it fully specified. Here are nits I
>> found in the
>> 03 version of the draft:
>>
> 
> Hi Petr, thanks for reviewing! 
> 
>> 1]
>>>
>>> 4.  Required URI Format
>>>    krb5srv:[flags]:transport:residual
>> Nitpick: I do not really like naming "transport:residual". Something
>> like
>> "transport-type:transport-options" would be more descriptive.
>>
> 
> "transport-options" may make it seem that it's an optional field or
> carries something other than a hostname or URI for the client to
> contact. How about "transport-type:transport-target"?

Sounds good.


>> 2] Is this a good idea?
>>>
>>>    Flags are not considered critical, therefore flags that are not
>>> used
>>>    or unknown to the implementation SHOULD be ignored.
>> Just wondering out loud, not insisting on it:
>> If we say there is no criticality, it will be impossible to add later
>> on.
>>
>> What about using capitalization to indicate criticality of a flag?
>> Records
>> with critical but unsupported flags should be skipped as if there
>> were not
>> present in DNS. Records with non-critical unsupported flags should be
>> used as
>> usual.
>>
>> Or maybe we can limit valid flags to lowercase ASCII letters for now
>> so there
>> is a room for extension in future?
> 
> I think avoiding having case-sensitive fields is the most appropriate
> thing to do for DNS data, our exception here being the path part of a
> KKDCP URL, which we can leave as defined by MS-KKDCP (see below)
> 
> If we want to later add criticality to a flag then it could be a flag
> prepended by a '!' or some such character rather than using the case.

Fine with me. The main point is that if we do not define criticality or at
least reserved character now it will be impossible to enforce it on older
clients. Maybe we can reserve "!" character now and say that character
immediately following "!" must be ignored by clients implementing this version
of the draft?


>> 3] In any case, there is disagreement between
>>>
>>> 4.2.  Flags
>>>    This field contains a sequence of zero or more case-insensitive
>> vs.
>>>
>>> 9.1.  Kerberos Server Discovery Flags
>>> 9.1.1.  Registration Template
>>>    Value:  A single unique ASCII character that identifies the
>>> entry,
>>
>> "A single unique ASCII character" is case-sensitive by definition.
>> This
>> conflicts with case-insensitivity defined in 4.2.
>>
>>
>> 3] The draft is not clear on whether transport field is case-
>> sensitive or not.
>>>
>>> 4.3.  Transport
>>> 9.2.  Kerberos Server Discovery Transport Types
>>
> 
> I'll clear this up.
> 
>>
>> 4] Residual formats are not sufficiently specified:
>>>
>>> 4.4.  Residual
>>> 9.2.  Kerberos Server Discovery Transport Types
>>> 9.2.2.  Initial Registry Contents
>>>
>>>    o Value: "udp"
>>>    o Description: User Datagram Protocol
>>>    o Residual Format: "host[:port]"
>>>    o Case Sensitive: None
>>>    o Default KDC Port: 88
>>>    o Default Admin Service Port: 749
>>>    o Default Password Service Port: 464
>>>    o Reference: [RFC0768]
>>
>> There is no definition of "host" and there is none in RFC 768.
>> Can it be IP(v?) address?
>> Can it be DNS name?
>> How this field should be encoded into the URI?
>>
>>>
>>>    o Value: "tcp"
>>>    o Description: Transport Control Protocol
>>>    o Residual Format: "host[:port]"
>>>    o Case Sensitive: None
>>>    o Default KDC Port: 88
>>>    o Default Admin Service Port: 749
>>>    o Default Password Service Port: 464
>>>    o Reference: [RFC0793]
>>
>> Again there is no definition of "host".
>> Can it be IP(v?) address?
>> Can it be DNS name?
>> How this field should be encoded into the URI?
> 
> Good point, I'll clear this up as well.
> 
>>
>>>
>>>    o Value: "kkdcp"
>>>    o Description: Kerberos Key Distribution Center Proxy Protocol
>>>    o Residual Format: https://host[:port][/path]
>>
>> This is technically URI inside URI, am I right?
>> How is it encoded? Should usual %-encoding be used here?
>>>
>>> 10.1.  URI Format Examples
>> suggest that %-encoding is not used. I would like to see this clearly
>> specified and explained why not.
>>
>> At this point I would rather say "use URL as specified by [MS-KKDCP]" 
>> instead
>> of specifying "https://host[:port][/path]".
> 
> I agree with this, especially since MS-KKDCP defines the URI with
> RFC3986 encoding rules. I think then the registration template can also
> leave out the case-sensitivity definition as the path is defined as
> case-sensitive with RFC3986.
> 
>>
>> Also, to make this bullet-proof, I would mention that "/KdcProxy"
>> must be
>> explicitly specified in the URI record and is not implicitly assumed
>> by clients.
>>
> 
> Sure, that makes sense. 
> 
> Thanks again,
I'm happy to review it again.

-- 
Petr^2 Spacek