Re: [eppext] New draft for keyrelay available

"Gould, James" <JGould@verisign.com> Fri, 30 January 2015 20:34 UTC

Return-Path: <JGould@verisign.com>
X-Original-To: eppext@ietfa.amsl.com
Delivered-To: eppext@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CF9711A7004 for <eppext@ietfa.amsl.com>; Fri, 30 Jan 2015 12:34:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham
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 ga9EH7YdB-y3 for <eppext@ietfa.amsl.com>; Fri, 30 Jan 2015 12:34:50 -0800 (PST)
Received: from exprod6og124.obsmtp.com (exprod6og124.obsmtp.com [64.18.1.242]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9CF2C1A6FF0 for <eppext@ietf.org>; Fri, 30 Jan 2015 12:34:45 -0800 (PST)
Received: from brn1lxmailout01.verisign.com ([72.13.63.41]) (using TLSv1) by exprod6ob124.postini.com ([64.18.5.12]) with SMTP ID DSNKVMvq5YThsm+C5sXcVGf65seJbE0pRq2I@postini.com; Fri, 30 Jan 2015 12:34:50 PST
Received: from BRN1WNEXCHM01.vcorp.ad.vrsn.com (brn1wnexchm01.vcorp.ad.vrsn.com [10.173.152.255]) by brn1lxmailout01.verisign.com (8.13.8/8.13.8) with ESMTP id t0UKYibh022530 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 30 Jan 2015 15:34:44 -0500
Received: from BRN1WNEXMBX01.vcorp.ad.vrsn.com ([::1]) by BRN1WNEXCHM01.vcorp.ad.vrsn.com ([::1]) with mapi id 14.03.0174.001; Fri, 30 Jan 2015 15:34:43 -0500
From: "Gould, James" <JGould@verisign.com>
To: "Hollenbeck, Scott" <shollenbeck@verisign.com>
Thread-Topic: [eppext] New draft for keyrelay available
Thread-Index: AdArSKQ+n3FmCyCWSq6l2+OWlzutMwA+eoEAALUP4qAAEcW9gAEmPdEAAANycwAAKyYUgAIEIAGAAAFOhwAAAGLyAAAA03OAAAAZ7YAAAkG4AAAELswAAABaAQAAAMFFgAABzoiAAApRdhD//7ZaAA==
Date: Fri, 30 Jan 2015 20:34:42 +0000
Message-ID: <BF69A00E-EBD5-435A-8BF5-1C77A44E4545@verisign.com>
References: <C80127C588F8F2409E2B535AF968B768B927CDA8@kambx2.SIDN.local> <0ED7237B-F4E8-45D7-971F-1625350DB0FC@verisign.com> <C80127C588F8F2409E2B535AF968B768B9280B52@kambx2.SIDN.local> <472EF001-1A03-4C50-A7DB-3D6B766B3BA8@verisign.com> <20150119094734.GA27180@miek.nl> <AF040383-7DED-4DDA-A52A-F40978697DF9@dnsbelgium.be> <C80127C588F8F2409E2B535AF968B768B9285C2F@kambx2.SIDN.local> <831693C2CDA2E849A7D7A712B24E257F49F33387@BRN1WNEXMBX01.vcorp.ad.vrsn.com> <46F2F7EA-7FD4-4D47-B80D-CCC795277512@verisign.com> <831693C2CDA2E849A7D7A712B24E257F49F3353E@BRN1WNEXMBX01.vcorp.ad.vrsn.com> <ABCBA930-3045-438C-A526-B6B824390048@verisign.com> <831693C2CDA2E849A7D7A712B24E257F49F338CE@BRN1WNEXMBX01.vcorp.ad.vrsn.com> <C80127C588F8F2409E2B535AF968B768B928BC13@kambx2.SIDN.local> <831693C2CDA2E849A7D7A712B24E257F49F33CD7@BRN1WNEXMBX01.vcorp.ad.vrsn.com> <9DA4482A-EF0F-4D66-A941-9472F16403E3@verisign.com> <831693C2CDA2E849A7D7A712B24E257F49F33D6D@BRN1WNEXMBX01.vcorp.ad.vrsn.com> <6BA91560-5425-4BAC-A17A-25D13EF88A8F@verisign.com> <831693C2CDA2E849A7D7A712B24E257F49F33F4C@BRN1WNEXMBX01.vcorp.ad.vrsn.com>
In-Reply-To: <831693C2CDA2E849A7D7A712B24E257F49F33F4C@BRN1WNEXMBX01.vcorp.ad.vrsn.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-originating-ip: [10.173.152.4]
Content-Type: multipart/related; boundary="_004_BF69A00EEBD5435A8BF51C77A44E4545verisigncom_"; type="multipart/alternative"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/eppext/I2OwssKZplea-NFn-ZD_tEcNaEM>
Cc: Rik Ribbers <rik.ribbers@sidn.nl>, Miek Gieben <miek@miek.nl>, Maarten Bosteels <maarten.bosteels@dnsbelgium.be>, "eppext@ietf.org" <eppext@ietf.org>
Subject: Re: [eppext] New draft for keyrelay available
X-BeenThere: eppext@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: EPPEXT <eppext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/eppext>, <mailto:eppext-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/eppext/>
List-Post: <mailto:eppext@ietf.org>
List-Help: <mailto:eppext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/eppext>, <mailto:eppext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 30 Jan 2015 20:34:55 -0000

Scott,

There are three parties here which include the producing client, the server, and the consuming client.  What you’re referring to in the EPP command is the producing client and server, which does not have any idempotent issue since the message is transient and immutable.  To address your idempotency concern end-to-end, maybe the producing client should add a unique relay identifier that the relaying consumer ensures to process only once.  Messages with a duplicate relay identifier must be processed a single time by the relaying consumer.  Does that work?


—


JG


[cid:77031CC3-BE7A-4188-A95F-D23115A30A4D@vcorp.ad.vrsn.com]

James Gould
Distinguished Engineer
jgould@Verisign.com

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

VerisignInc.com<http://VerisignInc.com>

On Jan 30, 2015, at 3:18 PM, Hollenbeck, Scott <shollenbeck@verisign.com<mailto:shollenbeck@verisign.com>> wrote:

> This is the responsibility of the consuming client and not of the server

EPP commands are supposed to be idempotent *without* the client needing to assume responsibility for any special actions. We can do better.

Scott

From: Gould, James
Sent: Friday, January 30, 2015 3:03 PM
To: Hollenbeck, Scott
Cc: Rik Ribbers; Maarten Bosteels; Miek Gieben; eppext@ietf.org<mailto:eppext@ietf.org>
Subject: Re: [eppext] New draft for keyrelay available

Scott,

There is a level of indirection here, where the goal of the extension is to create a message to be sent to another party.  There is no idempotency issue with the creation of the message itself since it’s transient and immutable.  Creating a duplicate message  with the same data creates another immutable, transient object.  The consuming client will handle the idempotency aspects by ensuring that receipt of a duplicate message does not change the result.  For example, consumption of the relay of the same key should not result in the key getting duplicated in the resulting zone.  This is the responsibility of the consuming client and not of the server.

—


JG

<image001.png>

James Gould
Distinguished Engineer
jgould@Verisign.com<x-msg://31/jgould@Verisign.com>

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

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

On Jan 30, 2015, at 2:11 PM, Hollenbeck, Scott <shollenbeck@verisign.com<mailto:shollenbeck@verisign.com>> wrote:


> Since the create is for a transient message object, there is no issue with creating more then one message with the same data.

If two or more messages end up being enqueued, what is the client supposed to assume about any repeats after retrieving and acting on the first message? How is idempotency preserved?

Scott

From: Gould, James
Sent: Friday, January 30, 2015 1:50 PM
To: Hollenbeck, Scott
Cc: Rik Ribbers; Maarten Bosteels; Miek Gieben; eppext@ietf.org<mailto:eppext@ietf.org>
Subject: Re: [eppext] New draft for keyrelay available

Yes, each create would result in a new message to get created and enqueued.  Since the create is for a transient message object, there is no issue with creating more then one message with the same data.
—


JG

<image001.png>

James Gould
Distinguished Engineer
jgould@Verisign.com<x-msg://30/jgould@Verisign.com>

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

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

On Jan 30, 2015, at 1:39 PM, Hollenbeck, Scott <shollenbeck@verisign.com<mailto:shollenbeck@verisign.com>> wrote:



> The intention of the relay command is more of sending a message (with information) then the manipulation of objects, but James explained it pretty well.

I just thought of something else while re-reading this sentence. What happens if the exact same command is sent twice? Is a second message sent?

Scott

From: Rik Ribbers [mailto:rik.ribbers@sidn.nl]
Sent: Friday, January 30, 2015 11:40 AM
To: Hollenbeck, Scott; Gould, James
Cc: Maarten Bosteels; Miek Gieben; eppext@ietf.org<mailto:eppext@ietf.org>
Subject: RE: [eppext] New draft for keyrelay available

Scott,

The intention of the relay command is more of sending a message (with information) then the manipulation of objects, but James explained it pretty well.

The  thing that triggered me is the second part of your reply:

>  I don't have an issue with continuing work on this draft if the intention is to document the existing practice of one operator in an informational way, but I'm not comfortable with pursuing the current approach on the standards track. We should confirm the need before doing standards track work.

Although I’m not an IETF expert I assumed that when the document was adapted by the WG the WG acknowledges the need for a standard. In Honolulu there was a discussion if the documents from the working group should be informational or standards track. And as far I understood it is not up to the WG to make a document informational, that is something the IESG does. Feel free to correct me if I misunderstood things.

However the real question is: Who can confirm this need?

We see the need for an automated secure transfer of domainnames in our daily operation. As the adoption of validating DNSSEC resolver grows it becomes more and more a problem that domainnames cannot be resolved. We choose the solution which is described in the draft and believe it is a good pragmatic solution for a the problem. But  I agree that the need is not extremely high at this point, but it will be in the near future. Should we wait for that or act upon what we believe is inevitable?  We choose not to wait.

Kind regards,
Rik

From: Hollenbeck, Scott [mailto:shollenbeck@verisign.com]
Sent: vrijdag 30 januari 2015 16:35
To: Gould, James
Cc: Rik Ribbers; Maarten Bosteels; Miek Gieben; eppext@ietf.org<mailto:eppext@ietf.org>
Subject: RE: [eppext] New draft for keyrelay available

Jim, that’s not how I would have designed it. To each his own.

Scott

From: Gould, James
Sent: Friday, January 30, 2015 10:32 AM
To: Hollenbeck, Scott
Cc: Rik Ribbers; Maarten Bosteels; Miek Gieben; eppext@ietf.org<mailto:eppext@ietf.org>
Subject: Re: [eppext] New draft for keyrelay available

Scott,

EPP can be extended to support new types of objects, and objects can support a different set of commands and responses based on the requirements of those objects.   Objects can be created on the server-side without any support for transform by the client.  In this case, the intent is to create a poll queue message object that is consumed and automatically deleted when consumed, so the create functions as an enqueue and the poll info response functions as a dequeue once acknowledged.  With this, the transient object only needs to support the create transform to insert the message in the poll queue and the poll message in the form of an info response to consume the message.  There is no need for the implementation to create any form of a transient object outside the poll queue, since the poll queue is the transient object store for this object type.

—


JG

<image001.png>

James Gould
Distinguished Engineer
jgould@Verisign.com<x-msg://29/jgould@Verisign.com>

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

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

On Jan 30, 2015, at 10:08 AM, Hollenbeck, Scott <shollenbeck@verisign.com<mailto:shollenbeck@verisign.com>> wrote:

EPP has no concept of “objects” in the poll queue. The poll queue manipulates messages. Objects are manipulated by transform commands like create, delete, etc.

I was thinking that the source client would create a relay object, which would result in a message being queued for the target client. The info could exist in both the poll message (which would be short-lived and lost once dequeued), and in the object (which would be slightly longer-lived, but would be automatically deleted when it expired).

Scott

From: Gould, James
Sent: Friday, January 30, 2015 9:57 AM
To: Hollenbeck, Scott
Cc: Rik Ribbers; Maarten Bosteels; Miek Gieben; eppext@ietf.org<mailto:eppext@ietf.org>
Subject: Re: [eppext] New draft for keyrelay available

Scott,

I believe the intent is to insert the transient object into the poll queue for the target client.  The acknowledgement of the poll message should result in the implicit removal of the transient object from the server.  With what you’re proposing, the source client would create the transient object that I’m assuming would result in a poll notification containing a signal to the client to submit an info command to get the transient object information?  I’m assuming that the target client would then need to delete the transient object once they’re done with processing the message.  I believe it’s simpler and consistent with the concept of creating a transient poll message to support the create to create the poll message and the info response poll message for the consumption of the transient object.  In this case the poll queue is functioning as the repository for the transient object with the signal and data being one and the same, and the deletion of the transient object handled via the standard poll queue mechanism.

—


JG

<image001.png>

James Gould
Distinguished Engineer
jgould@Verisign.com<x-msg://27/jgould@Verisign.com>

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

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

On Jan 30, 2015, at 9:20 AM, Hollenbeck, Scott <shollenbeck@verisign.com<mailto:shollenbeck@verisign.com>> wrote:

-----Original Message-----
From: EppExt [mailto:eppext-bounces@ietf.org] On Behalf Of Rik Ribbers
Sent: Tuesday, January 20, 2015 3:02 AM
To: 'Maarten Bosteels'; Miek Gieben; Gould, James; eppext@ietf.org<mailto:eppext@ietf.org>
Subject: Re: [eppext] New draft for keyrelay available

Hello Maarten,

Thx for the feedback, I hope more people with experience on extending
EPP will state their opinion on the list.

We have implemented the functionality in our registration system, but
it is not very actively used. What we see is that most registrars go
insecure. Most of the time we see a transfer command followed (some
time later in time) by a domain update to remove the old key material
and add new key material. There is even a losing registrar that removes
all DNS key data when a registrant requests its authorization token
before the actual transfer.

One more opinion:

After reading through the draft again I believe I would have designed this differently. EPP commands typically act on or read data from objects, and if I'm reading keyrelay correctly the <relay> command isn't doing either of those things. It's pushing information to the server to be stored temporarily (in what?) so that it can be retrieved with a <poll> command. It would be more architecturally consistent to create a temporary relay object with the needed information and use an <info> command to retrieve the data. <poll> can be used to notify the receiving client that the information is there to be retrieved. Anyway, that's my two cents.

Rik's "not very actively used" comment is telling. DNSSEC isn't widely supported by registrars, so it makes sense that we're not seeing a lot of use. I don't have an issue with continuing work on this draft if the intention is to document the existing practice of one operator in an informational way, but I'm not comfortable with pursuing the current approach on the standards track. We should confirm the need before doing standards track work.

Scott