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

"Gould, James" <jgould@verisign.com> Wed, 18 April 2018 13:43 UTC

Return-Path: <jgould@verisign.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 3200A12D778 for <regext@ietfa.amsl.com>; Wed, 18 Apr 2018 06:43:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.3
X-Spam-Level:
X-Spam-Status: No, score=-4.3 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=verisign.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 ija8k3lAyZ4c for <regext@ietfa.amsl.com>; Wed, 18 Apr 2018 06:43:18 -0700 (PDT)
Received: from mail2.verisign.com (mail2.verisign.com [72.13.63.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1749712741D for <regext@ietf.org>; Wed, 18 Apr 2018 06:43:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=verisign.com; l=56513; q=dns/txt; s=VRSN; t=1524058998; h=from:to:date:message-id:references:in-reply-to: mime-version:subject; bh=CBhgd89WHEnweRfjDwHI67L3aNc8hhzB6EQbVmTVqcU=; b=ZoE/pFZU6gjPFi/4ATDz58Mmzuns8iftyYYKz3LAGdPif02rmFvGPZOH e+7eM7FQfeStXyo9R9XGpC2kIyiEbsa30iJKbO6L+t84Hgk6v9FuuUTnZ RuWZ1lJxdo+15F0cQg+xrGD+ug6WCedqxMukA6T1K/V/q/Aoo9zkLBFjU f4Tp8DGp5WW3GCw6UpWURyvQkZn6nDQlDs0NnfhfTdWCTWvm+2b3S/aQc Ra4nU5MxlcPze9atsapndoqkZK5sdtO8eXoHNZeV+TraSnotoa8587mfx 9RN1/kIObaZPClOxpv9XvQvQ3WtbiZJTz872BECTM+1ajDdQmxC8LObxT Q==;
X-IronPort-AV: E=Sophos;i="5.48,465,1517875200"; d="scan'208,217";a="4172742"
IronPort-PHdr: 9a23:7UIf6h/DtfYzu/9uRHKM819IXTAuvvDOBiVQ1KB21O8cTK2v8tzYMVDF4r011RmVBd6ds6oMotGVmpioYXYH75eFvSJKW713fDhBt/8rmRc9CtWOE0zxIa2iRSU7GMNfSA0tpCnjYgBaF8nkelLdvGC54yIMFRXjLwp1Ifn+FpLPg8it2O2+55Pebx9UiDahfLh/MAi4oQLNu8cMnIBsMLwxyhzHontJf+RZ22ZlLk+Nkhj/+8m94odt/zxftPw9+cFAV776f7kjQrxDEDsmKWE169b1uhTFUACC+2ETUmQSkhpPHgjF8BT3VYr/vyfmquZw3jSRMNboRr4oRzut86ZrSAfpiCgZMT457HrXgdF0gK5CvR6tuwBzz4vSbYqINvRxY7ndcMsaS2RfQ8hRSyJPDICyb4QNAeUBPPpXoIbmqlQUsRe+ABOhCP/1xzJKgHL9wK000/4mEQHDxAEsEdMAsHPJrNXxKageSf2+wq3SwjXGcfxWwjnx45XPfxAjrvGMWq9wcc7MxkQ0CQPKkE+QqY3+PzOU2eQNtXKX4PZnVeKqkmMqrRx6rDaoxscpkIbJh4QVx0ja9Spn2oY1JMa4SE90Yd6iEZtQsT2VO5FqTcMlRmFkoCc6xaMauZ61ZiQKz44nxxHHZ/yGaYeI5AjsWPyWITdii3Jofq+0iRWq8UW41+HwStO43EtIoydLiNXAq3AA2hLJ5sSZRfZw8V+t1SuT2wzJ9+1JI045mbDGJ5MhzLM8jJUevEDFEyTrgkv5lrWWeV8h+uWw7uTnZajpqYGEOo9vjwH+LrwumsuiAeQkKgQOX3aU+eC71LD75kL5WrNKguAykqjWtZDVP8Ubpqq+Aw9IzoYv9wuzAy240NsGh3kHLUlFeBOIj4jvIV3BPPf4DfKnj1Stljdk2ezGM6X8DpnRNHTPjbXscLhn50JByAc+w8pT64xbB7wOOP7zX1X+tN3cDh83KQy0xOPnBc1/1oMRXmKPH6uZP77JvF+W+O0vOeiMZJQUuDbyLfgp/eLhjXg8mVMFZ6mmwYMXaGykHvRhO0iZe2TjgtgfHmYFogozV+3qh0OeUT5dfXqyWLg85j4jAoK8EYjDXpytgKCG3CqjBp1WY3tLBU2LEXf0bYqEXeoDZz6VIsN7jjMEUr2hGMcd0kSWvRPgyrFkZs/Z5D8Vttq3zN1d6+rPnBc+/jsyBMOYhSXFBXt5kW4YWxc30bxx50tnxR3LhbJ1jPFICfRS6u9HFAAgOsiP4fZ9DoW4dQXcetvNAHSvR9i9S3llTN023tsCS1hwAdS5jx/FmSGtBulGxPSwGJUo//eEjDDKLMFnxiODjfF5gg==
X-IPAS-Result: A2HcAAAaStda//SZrQpaAx0BAQUBCwGCTYFWFzJZCoNeiAKOfRF+km4UgSkXIQMLGAEKCIFJgi9GAhqCaDQYAQIBAQEBAQECAQECgQQMgjUkAQ4vHCEIAQUBAQEBAQEmAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBCAIIBx8QEgEBGQEBAQIBAQEMFUIJEAsCAQgNASABCQECBwICAiULJQIEAQkJG4QOXBemKoIciEKCJYlbPoEPI4Fpf4MRAQGBLQESAQkiCwomAQGCNzCCJAKMBoRehwYDBQKFV4UlDYRkGiGKXoc0gXsChkwCBAsCEwGBJRyBGnFwFTsqAYIYCYIXFxGDNIUUhT5vAQwji1UNHoEBgRgBAQ
Received: from brn1wnexcas02.vcorp.ad.vrsn.com (brn1wnexcas02 [10.173.152.206]) by brn1lxmailout01.verisign.com (8.13.8/8.13.8) with ESMTP id w3IDhFH4004999 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Wed, 18 Apr 2018 09:43:16 -0400
Received: from BRN1WNEXMBX02.vcorp.ad.vrsn.com ([::1]) by brn1wnexcas02.vcorp.ad.vrsn.com ([::1]) with mapi id 14.03.0301.000; Wed, 18 Apr 2018 09:43:15 -0400
From: "Gould, James" <jgould@verisign.com>
To: Patrick Mevzek <pm@dotandco.com>, "regext@ietf.org" <regext@ietf.org>
Thread-Topic: [EXTERNAL] [regext] Poll messages with unhandled namespaces (was Re: I-D Action: draft-ietf-regext-change-poll-07.txt)
Thread-Index: AQHT1t06O+GbvAHuC0qnFDEuMA29BKQGiKyA
Date: Wed, 18 Apr 2018 13:43:14 +0000
Message-ID: <BEC1040F-25C7-4F52-BB94-1F55BFA4C1C7@verisign.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>
In-Reply-To: <1524032366.3941888.1341940112.7D43F230@webmail.messagingengine.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/10.c.0.180410
x-originating-ip: [10.173.153.49]
Content-Type: multipart/alternative; boundary="_000_BEC1040F25C74F52BB941F55BFA4C1C7verisigncom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/euAqde9crioDuMODfZ7LJ-lcxJs>
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: Wed, 18 Apr 2018 13:43:22 -0000

Patrick,


This particular thread was started Martin Casanova, who brings up an excellent point that needs to be considered.  Martin, you may want to weigh on this.

I have the following questions and related thoughts:


  1.  Do you believe that it is protocol compliant for the server to return something that the client did not explicitly include in the login services?
     *   I believe that the server should not return something that the client does not include in the login services.
  2.  What is the purpose of the server’s greeting services and the client’s login services?
     *   I believe that the server and client services are used to negotiate the common set of supporting services.  The client should not pass services that the server does not support and vice-versa.
  3.  What do you do with validating clients?
     *   The Verisign EPP SDK is one implementation of a validating client, but there can be others.  A validating client would either need to be updated to support the extension or turn off validation and be capable of processing a message that it doesn’t support.  If the protocol is followed, there should be no issue with validating the XML per the supported XML schemas in either the server or the client based on #2.



You are correct that there are a set of existing EPP extensions that do include poll messages (e.g., RGP Poll Mapping, Low Balance Mapping, Launch Phase Extension, and object mappings that support transfer poll messages like Email Forwarding and Defensive Registration).  This is based on the extensions registered in the EPP Extension Registry (https://www.iana.org/assignments/epp-extensions/epp-extensions.xhtml).  With the exception of the RGP Poll Mapping and the Low Balance Mapping, the poll messages are associated with actions that the client previously took, so it’s reasonable to assume that the client supports it.  The Change Poll messages and the Maintenance Notice poll messages (draft-sattler-epp-registry-maintenance) are not associated with client actions, where there can be no assumption of support.  Based on past experience there have been no issues raised that I’m aware in returning messages independent of what the client includes in the login services, but I don’t believe we can blindly ignore the issue.



Since it looks like Patrick and I are most likely at an impasse, I ask the list to weigh in on the two options that include:



  1.  Server does not consider the login services when returning poll messages.  Clients may be required to consume poll messages that they don’t support.
  2.  Server considers the login services and filters non-supported extensions (object and command / response) from the poll message response with an encoded <msgQ><msg> indicating the extension namepaces not supported.  I include the proposed ABNF for the <msgQ><msg> element below along with a sample of the client’s lack of support of the Change Poll extension.


 ABNF for the <msgQ><msg> element:

msg                   = msg-text *LWSP *(not-supported-service *LWSP)
msg-text              = *VCHAR
not-supported-service = “<notSupported>” service-namespace “</notSupported>”
service-namespace     = 1*VCHAR

Sample poll message of registry initiated domain update, where the client does not support the Change Poll extension with the XML namespace “urn:ietf:params:xml:ns:changePoll-1.0”:

<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  <response>
    <result code="1301">
      <msg lang="en-US">
       Command completed successfully; ack to dequeue</msg>
    </result>
    <msgQ id="202" count="1">
      <qDate>2013-10-22T14:25:57.0Z</qDate>
      <msg>Registry initiated update of domain.
        <notSupported>urn:ietf:params:xml:ns:changePoll-1.0
        </notSupported>
      </msg>
    </msgQ>
    <resData>
      <domain:infData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
        <domain:name>domain.example</domain:name>
        <domain:roid>EXAMPLE1-REP</domain:roid>
        <domain:status s="serverUpdateProhibited"/>
        <domain:status s="serverDeleteProhibited"/>
        <domain:status s="serverTransferProhibited"/>
        <domain:registrant>jd1234</domain:registrant>
        <domain:contact type="admin">sh8013</domain:contact>
        <domain:contact type="tech">sh8013</domain:contact>
        <domain:clID>ClientX</domain:clID>
        <domain:crID>ClientY</domain:crID>
        <domain:crDate>2012-04-03T22:00:00.0Z</domain:crDate>
        <domain:upID>ClientZ</domain:upID>
        <domain:upDate>2013-10-22T14:25:57.0Z</domain:upDate>
        <domain:exDate>2014-04-03T22:00:00.0Z</domain:exDate>
      </domain:infData>
    </resData>
    <trID>
      <clTRID>ABC-12345</clTRID>
      <svTRID>54321-XYZ</svTRID>
    </trID>
  </response>
</epp>

Thanks,

—

JG







James Gould

Distinguished Engineer

jgould@Verisign.com



703-948-3271

12061 Bluemont Way

Reston, VA 20190



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

On 4/18/18, 2:19 AM, "regext on behalf of Patrick Mevzek" <regext-bounces@ietf.org on behalf of pm@dotandco.com> wrote:



    On Mon, Apr 16, 2018, at 16:03, Gould, James wrote:

    > Thanks for your thoughts of the 4 options presented for handling the

    > returning of a poll message that the client does not support based on

    > the client login services.  To note, this is not specific to draft-ietf-

    > regext-change-poll, so it is an important topic for defining a generic

    > solution for all poll messages.



    I agree, hence:

    1) I change the subject

    2) I am also wondering if we are not overdesigning something: obviously

    this problem exists since the beginning of EPP and can only have grown much worse with the additions of new registries, new registrars and new EPP extensions... but as far as I know this subject has never been discussed

    and no registrar came complaining about the issue



    So, for this reason I am still inclined more toward "do nothing" and let the registrars get all messages and deal with them.



    > I re-reviewing the options, I believe

    > option 4 is the only option that is protocol compliant



    We will remain in disagreement.



    > For option 4, I propose to

    > define a simple <msgQ><msg> ABNF formatted message that indicates what

    > poll message service namespaces (object or extension) are not supported

    > are therefore not returned by the server.



    I still stand the position that <msg> is defined for human consumption

    and hence any "formatting" in it is at least violating the spirit of

    the protocol. So I do not support that.



    > A poll message may include

    > multiple EPP services (object and extensions).  It would be up to the

    > server to filter the services not supported by the client and add the

    > service namespace to the encoded <msgQ><msg> element.



    So you are proposing that:

    1) all registries change their software (filtering messages)

    and

    2) all registrars change their software, to parse the special format in <msg>



    I fear that this a lot of changes, and I am not really sure you can count on them.



    And starting with "registrar X did not implement parsing of messages in namespace Y" you arrive to a solution that is "registrar X must parse specific content inside <msg>".

    If the registrar was not convinced to do the first point, I am not sure

    it will get convinced to do the second one anyway. Hence I still think the status quo is better and let the registries send all messages.



    > JG-I don’t believe the server returning something that the client does

    > support based on the login services as being protocol compliant.  There

    > is the issue of the message becoming a poison message for validating

    > clients.  The Verisign EPP SDK does support XML schema validation of the

    > responses by default, where the server returning an XML namespace that

    > is not configured on the client-side will result in an XML parser error

    > and result in a poison poll message.



    This  is only one implementation possible.

    Like I said previously, since these messages are by definition not realtime

    I see no harms (and only benefits) for the registrar to get all messages,

    store them, and parse them later. In that way there is no poison message,

    and full dynamic support of all namespaces.



    >  The XML schema validation can be

    > disabled, but it really should not need to be disabled if the server is

    > protocol compliant.



    Validating poll messages do not need to be done in real time inside the transaction. It can be done asynchronously outside of it.



    > JG-I agree that creating a new extension for this runs into the same

    > issue of the client not supporting the new purpose built extension.  I

    > don’t view this as a realistic option.



    You are creating a "mini" extension by embedding some format inside the <msg> element.



    > JG-I agree that this is not perfect, but it is the only option that is

    > protocol compliant, that will not result in a poison poll message, and

    > will enable the server to convey to the client the XML namespaces of the

    > services (object and extensions) that they can request the attributes

    > out-of-band using the message id.



    I still think that sending all messages and letting the registrars validate

    them out of the EPP session is the simpler solution.



    Also, like I said, noone complained on all of this since EPP started, so maybe affected registrars and registries should speak up...



    --

      Patrick Mevzek

      pm@dotandco.com



    _______________________________________________

    regext mailing list

    regext@ietf.org

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