Re: [regext] Poll messages with unhandled namespaces (was Re: I-D Action: draft-ietf-regext-change-poll-07.txt)

Roger D Carney <rcarney@godaddy.com> Fri, 04 May 2018 18:27 UTC

Return-Path: <rcarney@godaddy.com>
X-Original-To: regext@ietfa.amsl.com
Delivered-To: regext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0CD0912D87A for <regext@ietfa.amsl.com>; Fri, 4 May 2018 11:27:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level:
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_DKIMWL_WL_MED=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=secureservernet.onmicrosoft.com
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 bWzEwCO_nk3v for <regext@ietfa.amsl.com>; Fri, 4 May 2018 11:27:55 -0700 (PDT)
Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0139.outbound.protection.outlook.com [104.47.41.139]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ABEEA124234 for <regext@ietf.org>; Fri, 4 May 2018 11:27:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=secureservernet.onmicrosoft.com; s=selector1-godaddy-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Ads9xP+bq6Vf43qV5qoH8GKBoAiR/m1Awmjb5DuowqM=; b=c/2eEVY+D/GGLObvGD9Ne+iTAJzhEcPGUgJ2zlFKMkvr0wyuwUifP0+/A+fCTWaPC5EzeqZBBZoRHeg8jVfQ6udCkN2HnlHoCg8i0NQ+ZxmlG6N99YReAExo7fZPZEXFcAeebBNzkzA+NZJSfAwSdk6GuOCFjE6RS5VvnfKP2SE=
Received: from CY4PR02MB2549.namprd02.prod.outlook.com (10.173.41.8) by CY4PR02MB3368.namprd02.prod.outlook.com (10.165.89.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.735.16; Fri, 4 May 2018 18:27:52 +0000
Received: from CY4PR02MB2549.namprd02.prod.outlook.com ([fe80::89a:7ca1:71e6:837]) by CY4PR02MB2549.namprd02.prod.outlook.com ([fe80::89a:7ca1:71e6:837%13]) with mapi id 15.20.0735.016; Fri, 4 May 2018 18:27:52 +0000
From: Roger D Carney <rcarney@godaddy.com>
To: "regext@ietf.org" <regext@ietf.org>
Thread-Topic: [regext] Poll messages with unhandled namespaces (was Re: I-D Action: draft-ietf-regext-change-poll-07.txt)
Thread-Index: AQHT1t07D2qIaanI3kCWUums6xcZDqQGiKsAgAKi3wCAAIg0gIADfkIAgAEt+ICAEUrQAIAADDYAgABA9oA=
Date: Fri, 04 May 2018 18:27:52 +0000
Message-ID: <CY4PR02MB254962B12D6D196EACE492AEB1860@CY4PR02MB2549.namprd02.prod.outlook.com>
References: <3266784A-E663-4465-8ABF-A3305B83C253@verisign.com> <e7916b75-1555-14e3-43bc-644059cd68f0@switch.ch> <605AC23F-D7B3-4A37-876E-45EC8E6BEEB8@verisign.com> <84309e91-dbe9-8865-fd06-528266aa93e7@switch.ch> <FAFB62AE-C0D1-4D74-888C-00C632D73211@verisign.com> <1522912361.3587146.1327243736.6AB5A07D@webmail.messagingengine.com> <58605AC6-A8B3-4428-A71E-580E6BC01EFF@verisign.com> <1524032366.3941888.1341940112.7D43F230@webmail.messagingengine.com> <BEC1040F-25C7-4F52-BB94-1F55BFA4C1C7@verisign.com> <1524203922.4022062.1344535160.39F0C10F@webmail.messagingengine.com> <83479150-4E98-452F-B27B-BD286AA18C1B@verisign.com> <1524425212.2370983.1346768616.2A2DE208@webmail.messagingengine.com> <48889EC8-FF2C-4CF3-B5E1-9DC5482E06E9@verisign.com> <CF701CA2-F63A-4573-AB87-68E3AB30C635@elistx.com> <5743B914-A1C7-426C-B0AA-515A3AEB5C72@verisign.com>
In-Reply-To: <5743B914-A1C7-426C-B0AA-515A3AEB5C72@verisign.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=rcarney@godaddy.com;
x-originating-ip: [4.14.64.45]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; CY4PR02MB3368; 7:uv5zEck1RlKw1+/+sV1xazw0jULa0+KI7hvFHaUw2McBhhWZ58/2zIz1G+zBWZyiWAjF6X4wktol7uh0IhDt9xnxK9D5VfFP8nitXMXFdmW+M6yWJfMFfbmJguZhNpDA2QWRcXumMbQB/bKsImd2FuJ9/agiEgbymS4APv4/QvHhtdFD/oWHwaLTZGEcUA0jEFDwX2zZDj9Pkt3uVl3LxnOx04W2ZYrdVoP6ScVPAnEXmh2EgHlQXHlNw8WJqgS/
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(49563074)(7193020); SRVR:CY4PR02MB3368;
x-ms-traffictypediagnostic: CY4PR02MB3368:
x-microsoft-antispam-prvs: <CY4PR02MB33683D894AB7CAD9E445B567B1860@CY4PR02MB3368.namprd02.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(28532068793085)(158342451672863)(131327999870524)(21748063052155);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(102415395)(6040522)(2401047)(5005006)(8121501046)(3002001)(3231254)(944501410)(52105095)(10201501046)(93006095)(93001095)(6055026)(6041310)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(6072148)(201708071742011); SRVR:CY4PR02MB3368; BCL:0; PCL:0; RULEID:; SRVR:CY4PR02MB3368;
x-forefront-prvs: 06628F7CA4
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(39380400002)(39860400002)(396003)(376002)(366004)(189003)(199004)(11346002)(446003)(486006)(3280700002)(7110500001)(97736004)(81166006)(93886005)(8936002)(1730700003)(478600001)(25786009)(8676002)(81156014)(6436002)(66066001)(733005)(790700001)(476003)(7696005)(26005)(59450400001)(53546011)(33656002)(6506007)(76176011)(316002)(6116002)(102836004)(229853002)(186003)(3846002)(99286004)(6306002)(53946003)(16200700003)(53936002)(54556002)(9686003)(99936001)(53376002)(2351001)(68736007)(105586002)(86362001)(345774005)(236005)(2900100001)(14454004)(54896002)(606006)(5660300001)(2501003)(106356001)(15650500001)(10710500007)(6916009)(2420400007)(3660700001)(2906002)(5250100002)(7736002)(55016002)(5640700003)(6246003)(5630700001)(74316002)(966005)(559001)(569006); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR02MB3368; H:CY4PR02MB2549.namprd02.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: godaddy.com does not designate permitted sender hosts)
x-microsoft-antispam-message-info: TSMKvWqMQbBNdwXV/HuyFnlYODOA8RqFovfrQlNozeXK2gFbq34Tfym9CRQ1ootGebAkna1zk1KFfHHaWniit7Yh9dbBkusBHAW03vAoqGC++8ElpkYD7pj3c/3DiZ/lkuXLvToebtj/SGog7pTPQoKPzA8KLeS+1WihdUVG61BGndCqEqdAYCzHlIUsHIn5
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/related; boundary="_004_CY4PR02MB254962B12D6D196EACE492AEB1860CY4PR02MB2549namp_"; type="multipart/alternative"
MIME-Version: 1.0
X-MS-Office365-Filtering-Correlation-Id: adb6409e-c030-4061-23fb-08d5b1ecbf4a
X-OriginatorOrg: godaddy.com
X-MS-Exchange-CrossTenant-Network-Message-Id: adb6409e-c030-4061-23fb-08d5b1ecbf4a
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2018 18:27:52.0779 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: d5f1622b-14a3-45a6-b069-003f8dc4851f
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR02MB3368
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/8NxH9Pv6Qm8noqO30bKDjE1n0s0>
Subject: Re: [regext] Poll messages with unhandled namespaces (was Re: I-D Action: draft-ietf-regext-change-poll-07.txt)
X-BeenThere: regext@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Registration Protocols Extensions <regext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/regext>, <mailto:regext-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/regext/>
List-Post: <mailto:regext@ietf.org>
List-Help: <mailto:regext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/regext>, <mailto:regext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 04 May 2018 18:27:59 -0000

Good Afternoon,

+1.

We agree that that we should move forward with the current draft-ietf-regext-change-poll draft and move this discussion along another path.


Thanks
Roger


From: regext [mailto:regext-bounces@ietf.org] On Behalf Of Gould, James
Sent: Friday, May 04, 2018 9:16 AM
To: James Galvin <galvin@elistx.com>
Cc: Patrick Mevzek <pm@dotandco.com>; regext@ietf.org
Subject: Re: [regext] Poll messages with unhandled namespaces (was Re: I-D Action: draft-ietf-regext-change-poll-07.txt)

Jim,

My recommendation is to move forward with draft-ietf-regext-change-poll and to leave the EPP server sending unsupported responses (mapping extension and / or command response extensions) to a client based on the login services up to a separate draft.

This comes down to the interpretation of how the server should handle the login services of the client in creating responses.  EPP extensions like the DNSSEC extension (RFC 5910) leverages the login services in the migration from RFC 4310 to RFC 5910, since the info response may include the DNSSEC extension if there is DNSSEC data.  The inclusion of the DNSSEC extension and the version of the DNSSEC extension is based on the login services.  Similar functionality exists within draft-ietf-regext-epp-fees in determining if and which version of the extension to return to the client.  Poll messages are unique since they are inserted ahead of time by the server without knowledge of what the client does support, and therefore runs the risk of coming across a message that the client does not support based on the login services.  Clients may or may not be able to handle the parsing and unmarshalling of unsupported extensions sent by the server.  For poll messaging this is of particular interest, since a client may have an issue acknowledging the unsupported poll messages to get to the rest of the messages in the queue.  This would represent a poison message in the poll queue.

Based on the thread, there are separate thoughts related to whether it is fine for the server to send a response that contains an extension that was not included in the client’s login services.  I believe that the greeting services and the login services are used to negotiate the set of extensions that client are server can use.  What should the EPP server do with unsupported extensions in any EPP response and with poll message EPP responses in particular?  This is a broader topic than draft-ietf-regext-change-poll, so I recommend that we don’t attempt to solve the problem specifically for draft-ietf-regext-change-poll but more generically across all of the extensions in a separate draft.


—

JG

[cid:image001.png@01D255E2.EB933A30]

James Gould
Distinguished Engineer
jgould@Verisign.com

703-948-3271
12061 Bluemont Way
Reston, VA 20190

Verisign.com<http://verisigninc.com/>
From: James Galvin <galvin@elistx.com<mailto:galvin@elistx.com>>
Date: Friday, May 4, 2018 at 9:31 AM
To: James Gould <jgould@verisign.com<mailto:jgould@verisign.com>>
Cc: Patrick Mevzek <pm@dotandco.com<mailto:pm@dotandco.com>>, "regext@ietf.org<mailto:regext@ietf.org>" <regext@ietf.org<mailto:regext@ietf.org>>
Subject: [EXTERNAL] Re: [regext] Poll messages with unhandled namespaces (was Re: I-D Action: draft-ietf-regext-change-poll-07.txt)


The chairs would appreciate a suggestion from those in this discussion as to what you would like to do next?

The change-poll document has been in WGLC that has now expired. However, you have identified a technical issue but you have not been clear as to whether you want a change in the existing document or you want a new work item for the working group?

What would you propose? What do others think?

Antoin and Jim



On 23 Apr 2018, at 9:27, Gould, James wrote:

Patrick,



This may be an excellent topic for a working session at the next IETF.  It would be great to hear opinions from others on this topic, since there is obviously a gap in the interpretation of the greeting and login services as it relates to responses (command responses and poll response) provided by the server.



Your description still leaves out a case, that I cannot prove to be the dominant one but that is certainly not a negligible one: the client receives the message, DOES NOT validate it per XML schema, DOES NOT parse it, and just stores it (as is or with a simple transformation to any other serialization format, an operation that does not need to know about the schema nor the content at all) for out of band later examination, and ACKs it in EPP to be able to fetch the next one.



How can the client ack the message if it doesn’t at least parse it for the message id?  An EPP client should frame the responses per RFC 5734 and will most likely parse the response to determine the result of the command and in the case of a poll message parse the message id to send the subsequent poll ack.  The client could use regular expressions to extract the information or could do a validating DOM parse and object unmarshalling to have something easier to work with.  There is no way for the server to know the capabilities of the client other than using the login services.  Both sets of clients can be fully supported if the server honors the login services sent by the client.  If the client wants to retrieve everything from the server for later processing, then the client can simply mirror the greeting services into the login services.  Clients that do unmarshall responses, will most likely use marshalling factories that will be used to dynamically create the login services.  This way the server will not send a response that the client does not support and will not break the client.



As for "A client would need to proactively deal with the

unexpected if the server does not honor the login services of the

client.", I think this is already the case for many registries, and since a long time, so clients had to deal with that already. It is far from a new hypothetical problem.



Just because servers have been sending unsolicited extensions to clients does not make it correct or appropriate from a protocol perspective.  I believe we have examples of EPP extensions (RFC 5910 and draft-ietf-regext-epp-fees) that includes language related to what the server should or should not due based on the client login services, so this should be understood.  I believe where it is not well understood is the handling of poll messages, which would be the point in creating a new draft.





If the registrar logs in without the secDNS extension, to use a "core" example, and if it does a domain:info on a domain name which has secDNS info (because it is one of his own domain for which he put DNSSEC material with it before but right now in this particular session it did not use the secDNS extension at login, or maybe less contrived before a transfer he does a domain:info with the associated authInfo on a domain name it does not sponsor)

then what should the registry do? Send the secDNS part of the domain:info or not?

I believe not sending it creates more harm than benefits, even if the registrar did not specify it at login, but clearly this is the core point of our disagreement.



The registry should not return the secDNS extension in the domain info response for a client that does support secDNS-1.0 (RFC 4310) or secDNS-1.1 (RFC 5910) according to section 2 of RFC 5910 (https://tools.ietf.org/html/rfc5910#page-4).  There is similar language in the Registry Fee Extension related to inclusion of the fee extension in the command response (e.g., “does include elements in the response, when the extension has been selected during a <login> command”).  The login services explicitly provide the object and command / response extensions supported by the client along with their versions, so why would the server not honor those services to determine if and what version of an extension to return to a client?  The exchange of the server services in the greeting and the client services in the login allow the client and server to negotiate what extensions are supported on both sides.  Inclusion of an extension outside of the negotiated services should result with an error on the server side and the server should not return an unsupported extension back in a response.  The server does not know the capabilities of the client, where sending an unsolicitated extension may result in a client-side failure in the case for a validating client or a client that unmarshalls the response.



—

JG







James Gould

Distinguished Engineer

jgould@Verisign.com<mailto:jgould@Verisign.com>



703-948-3271

12061 Bluemont Way

Reston, VA 20190



Verisign.com <http://verisigninc.com/>

On 4/22/18, 3:27 PM, "regext on behalf of Patrick Mevzek" <regext-bounces@ietf.org on behalf of pm@dotandco.com<mailto:regext-bounces@ietf.org%20on%20behalf%20of%20pm@dotandco.com>> wrote:



    On Fri, Apr 20, 2018, at 16:06, Gould, James wrote:

    > Thank you for the detailed description of your reasoning.  I will leave

    > it that we disagree on the purpose of the login services, the need for

    > the server to honor the login services for poll messaging, and the

    > impacts in returning unsupported responses or response extensions to

    > clients.



    Ok.



    > On the impact, there are two elements to consider including

    > first the XML parser in validating a response against the XML schemas,

    > and second is the unmarshalling of the XML to a representative object.

    > A client could disable the XML parser validation and move along to the

    > unmarshalling step.  In the unmarshalling step the client would need to

    > deal with receipt of unsupported content.  The client could throw an

    > exception because the XML (e.g., DOM tree) could not be unmarshalled,

    > ignore the unsupported content, or come up with some other

    > representation of the unsupported content (e.g., convert to list of XML

    > blobs or DOM objects).  A client would need to proactively deal with the

    > unexpected if the server does not honor the login services of the

    > client.



    Your description still leaves out a case, that I can not prove to be the dominant one but that is certainly not a negligible one: the client receives the message, DOES NOT validate it per XML schema, DOES NOT parse it, and just stores it (as is or with a simple transformation to any other serialization format, an operation that does not need to know about the schema nor the content at all) for out of band later examination, and ACKs it in EPP to be able to fetch the next one.



    In this case, there are absolutely none of the problem you expose:

    the registry has no extra work to do, the registrar has no extra work to do to understand messages in unknown namespaces, registrar is not blocked at all for any new namespace introduced, the registrar has no problem if the registry message does not validate per its own XML schema, the registrar does not have to be proactive it can deal with new cases and problems later, etc.

    I really fail to see the drawbacks but of course anyone is free to do differently and stick to validate and parse everything in band in real time.



    As for "A client would need to proactively deal with the

    unexpected if the server does not honor the login services of the

    client.", I think this is already the case for many registries, and since a long time, so clients had to deal with that already. It is far from a new hypothetical problem.



    > Since this is not a problem unique to draft-ietf-regext-change-poll, I

    > agree that it's best suited to be addressed in a separate Internet Draft

    > that addresses service-aware EPP poll messaging.



    I agree this should be a separate draft, to become eventually an Informational Standard or a Best Practice depending on its content.



    > Is there interest in such a draft by the working group?



    I am interested by the subject but disagree on the offered solution.



    Also, it may be useful to be able (as difficult as it may be) to understand a little more on the current situation, and to see how registries currently handle this problem.



    Note that this happens very early and not only from poll messages.

    If the registrar logs in without the secDNS extension, to use a "core" example, and if it does a domain:info on a domain name which has secDNS info (because it is one of his own domain for which he put DNSSEC material with it before but right now in this particular session it did not use the secDNS extension at login, or maybe less contrived before a transfer he does a domain:info with the associated authInfo on a domain name it does not sponsor)

    then what should the registry do? Send the secDNS part of the domain:info or not?

    I believe not sending it creates more harm than benefits, even if the registrar did not specify it at login, but clearly this is the core point of our disagreement.



    --

      Patrick Mevzek

      pm@dotandco.com<mailto:pm@dotandco.com>



    _______________________________________________

    regext mailing list

    regext@ietf.org<mailto:regext@ietf.org>

    https://www.ietf.org/mailman/listinfo/regext



_______________________________________________
regext mailing list
regext@ietf.org<mailto:regext@ietf.org>
https://www.ietf.org/mailman/listinfo/regext