| rfc8807xml2.original.xml | rfc8807.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <!-- One method to get references from the online citation libraries. | ||||
| There has to be one entity for each item to be referenced. | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" | |||
| An alternate method (rfc include) is described in the references. --> | category="std" consensus="true" | |||
| <!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | docName="draft-ietf-regext-login-security-10" number="8807" | |||
| .2119.xml"> | ipr="trust200902" obsoletes="" updates="" xml:lang="en" tocInclude="true" | |||
| <!ENTITY RFC3688 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | tocDepth="4" symRefs="true" sortRefs="true" version="3"> | |||
| .3688.xml"> | ||||
| <!ENTITY RFC5234 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | <!-- xml2rfc v2v3 conversion 2.40.1 --> | |||
| .5234.xml"> | ||||
| <!ENTITY RFC5730 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .5730.xml"> | ||||
| <!ENTITY RFC7451 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .7451.xml"> | ||||
| <!ENTITY RFC7942 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .7942.xml"> | ||||
| <!ENTITY RFC8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8174.xml"> | ||||
| <!ENTITY RFC8265 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8265.xml"> | ||||
| <!ENTITY W3C.REC-xmlschema-2-20041028 PUBLIC '' 'http://xml2rfc.ietf.org/public/ | ||||
| rfc/bibxml4/reference.W3C.REC-xmlschema-2-20041028.xml'>]> | ||||
| <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
| <!-- used by XSLT processors --> | ||||
| <!-- For a complete list and description of processing instructions (PIs), | ||||
| please see http://xml.resource.org/authoring/README.html. --> | ||||
| <!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds | ||||
| might want to use. | ||||
| (Here they are set differently than their defaults in xml2rfc v1.32) --> | ||||
| <?rfc strict="yes" ?> | ||||
| <!-- give errors regarding ID-nits and DTD validation --> | ||||
| <!-- control the table of contents (ToC) --> | ||||
| <?rfc toc="yes"?> | ||||
| <!-- generate a ToC --> | ||||
| <?rfc tocdepth="4"?> | ||||
| <!-- the number of levels of subsections in ToC. default: 3 --> | ||||
| <!-- control references --> | ||||
| <?rfc symrefs="yes"?> | ||||
| <!-- use symbolic references tags, i.e, [RFC2119] instead of [1] --> | ||||
| <?rfc sortrefs="yes" ?> | ||||
| <!-- sort the reference entries alphabetically --> | ||||
| <!-- control vertical white space | ||||
| (using these PIs as follows is recommended by the RFC Editor) --> | ||||
| <?rfc compact="yes" ?> | ||||
| <!-- do not start each main section on a new page --> | ||||
| <?rfc subcompact="yes"?> | ||||
| <!-- keep one blank line between list items --> | ||||
| <?rfc comments="yes" ?> | ||||
| <!-- show cref output --> | ||||
| <?rfc inline="yes" ?> | ||||
| <!-- inline cref output --> | ||||
| <!-- end of list of popular I-D processing instructions --> | ||||
| <rfc category="std" docName="draft-ietf-regext-login-security-10" ipr="trust2009 | ||||
| 02"> | ||||
| <!-- category values: std, bcp, info, exp, and historic | ||||
| ipr values: full3667, noModification3667, noDerivatives3667 | ||||
| you can add the attributes updates="NNNN" and obsoletes="NNNN" | ||||
| they will automatically be output with "(if approved)" --> | ||||
| <!-- ***** FRONT MATTER ***** --> | <!-- ***** FRONT MATTER ***** --> | |||
| <front> | <front> | |||
| <title abbrev="loginSec"> | <title abbrev="Login Security Extension for the EPP"> | |||
| Login Security Extension for the Extensible Provisioning Protocol (EPP)</tit le> | Login Security Extension for the Extensible Provisioning Protocol (EPP)</tit le> | |||
| <seriesInfo name="RFC" value="8807"/> | ||||
| <author fullname="James Gould" initials="J.G" surname="Gould"> | <author fullname="James Gould" initials="J." surname="Gould"> | |||
| <organization>VeriSign, Inc.</organization> | <organization>VeriSign, Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>12061 Bluemont Way</street> | <street>12061 Bluemont Way</street> | |||
| <city>Reston</city> | <city>Reston</city> | |||
| <region>VA</region> | <region>VA</region> | |||
| <code>20190</code> | <code>20190</code> | |||
| <country>United States of America</country> | ||||
| <country>US</country> | ||||
| </postal> | </postal> | |||
| <email>jgould@verisign.com</email> | <email>jgould@verisign.com</email> | |||
| <uri>http://www.verisign.com</uri> | <uri>http://www.verisign.com</uri> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Matthew Pozun" initials="M." surname="Pozun"> | ||||
| <author fullname="Matthew Pozun" initials="M.P" surname="Pozun"> | ||||
| <organization>VeriSign, Inc.</organization> | <organization>VeriSign, Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>12061 Bluemont Way</street> | <street>12061 Bluemont Way</street> | |||
| <city>Reston</city> | <city>Reston</city> | |||
| <region>VA</region> | <region>VA</region> | |||
| <code>20190</code> | <code>20190</code> | |||
| <country>United States of America</country> | ||||
| <country>US</country> | ||||
| </postal> | </postal> | |||
| <email>mpozun@verisign.com</email> | <email>mpozun@verisign.com</email> | |||
| <uri>http://www.verisign.com</uri> | <uri>http://www.verisign.com</uri> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date month="August" year="2020"/> | ||||
| <date day="26" month="February" year="2020"/> | ||||
| <abstract> | <abstract> | |||
| <t>The Extensible Provisioning Protocol (EPP) includes a client authentica | <t>The Extensible Provisioning Protocol (EPP) includes a client | |||
| tion scheme | authentication scheme that is based on a user identifier and | |||
| that is based on a user identifier and password. The structure of the pass | password. The structure of the password field is defined by an XML | |||
| word field is defined | Schema data type that specifies minimum and maximum password length | |||
| by an XML Schema data type that specifies minimum and maximum password len | values, but there are no other provisions for password management other | |||
| gth values, | than changing the password. | |||
| but there are no other provisions for password management other than chang | ||||
| ing the password. | ||||
| This document describes an EPP extension | This document describes an EPP extension | |||
| that allows longer passwords to be created and adds additional security fe | that allows longer passwords to be created and adds additional security | |||
| atures | features to the EPP login command and response.</t> | |||
| to the EPP login command and response.</t> | ||||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section title="Introduction"> | <section numbered="true" toc="default"> | |||
| <name>Introduction</name> | ||||
| <t>This document describes an Extensible Provisioning Protocol (EPP) | <t>This document describes an Extensible Provisioning Protocol (EPP) | |||
| extension for enhancing the security of the EPP login command in EPP <xref | extension for enhancing the security of the EPP login command in EPP | |||
| target="RFC5730"/>. | <xref target="RFC5730" format="default"/>. EPP <xref target="RFC5730" | |||
| EPP <xref target="RFC5730"/> includes a maximum password length of 16 char | format="default"/> includes a maximum password length of 16 characters, | |||
| acters that inhibits | which inhibits implementing stronger password security policies with | |||
| implementing stronger password security policies with higher entropy. | higher entropy. The enhancements include supporting longer passwords (or | |||
| The enhancements include supporting longer passwords (or passphrases) than | passphrases) than the 16-character maximum and providing a list of | |||
| the 16-character | security events in the login response. The password (current and new) | |||
| maximum and providing a list of security events in the | in EPP <xref target="RFC5730" format="default"/> can be overridden by | |||
| login response. The password (current and new) in EPP <xref target="RFC57 | the password included in the extension to extend past the 16-character | |||
| 30"/> can be | maximum. The security events supported include password expiry, client | |||
| overridden by the password included in the extension to extend past the 16 | certificate expiry, insecure cipher, insecure TLS protocol, new password | |||
| -character maximum. | complexity, login security statistical warning, and a custom event. The | |||
| The security events supported include: | attributes supported by the security events include an identified event | |||
| password expiry, client certificate expiry, insecure cipher, insecure | type or a subtype, an indicated security level of | |||
| TLS protocol, new password complexity, login security statistical warning, | warning or error, a future or past-due expiration date, the | |||
| and a custom event. The attributes supported | value that resulted in the event, the duration of the statistical event, | |||
| by the security events include identifying the event type or sub-type, ind | ||||
| icating | ||||
| the security level of warning or error, a future or past-due expiration | ||||
| date, the value that resulted in the event, the duration of the statistica | ||||
| l event, | ||||
| and a free-form description with an optional language.</t> | and a free-form description with an optional language.</t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Conventions Used in This Document"> | <name>Conventions Used in This Document</name> | |||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | <t> | |||
| NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| "MAY", and "OPTIONAL" in this document are to be interpreted as | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
| when, and only when, they | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| appear in all capitals, as shown here.</t> | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are | |||
| to be interpreted as | ||||
| <t>XML is case sensitive. Unless stated otherwise, XML specifications | described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | |||
| and examples provided in this document MUST be interpreted in the | when, and only when, they appear in all capitals, as shown here. | |||
| character case presented in order to develop a conforming | ||||
| implementation.</t> | ||||
| <t>In examples, "C:" represents lines sent by a protocol client and "S:" | ||||
| represents lines returned by a protocol server. | ||||
| Indentation and white space in examples are provided only to illustrate | ||||
| element relationships | ||||
| and are not a required feature of this protocol. | ||||
| </t> | </t> | |||
| <t>XML is case sensitive. Unless stated otherwise, XML specifications | ||||
| and examples provided in this document <bcp14>MUST</bcp14> be | ||||
| interpreted in the character case presented in order to develop a | ||||
| conforming implementation.</t> | ||||
| <t>In examples, "C:" represents lines sent by a protocol client and | ||||
| "S:" represents lines returned by a protocol server. In | ||||
| examples, indentation and | ||||
| whitespace are provided only to illustrate element | ||||
| relationships and are not a required feature of this protocol.</t> | ||||
| <t>"loginSec-1.0" is used as an abbreviation for | <t>"loginSec-1.0" is used as an abbreviation for | |||
| "urn:ietf:params:xml:ns:epp:loginSec-1.0". The XML namespace prefix | "urn:ietf:params:xml:ns:epp:loginSec-1.0". The XML namespace prefix | |||
| "loginSec" is used, but implementations MUST NOT depend on | "loginSec" is used, but implementations <bcp14>MUST NOT</bcp14> depend o | |||
| it and instead employ | n | |||
| it. Instead, they are to employ | ||||
| a proper namespace-aware XML parser and serializer to interpret and | a proper namespace-aware XML parser and serializer to interpret and | |||
| output the XML documents.</t> | output the XML documents.</t> | |||
| <t>"whitespace" is defined by the XML Schema whiteSpace data type in | ||||
| <t>"whitespace" is defined by the XML schema whiteSpace datatype in <xre | <xref target="W3C.REC-xmlschema-2-20041028" format="default"/>, which | |||
| f target="W3C.REC-xmlschema-2-20041028"/>, | only includes the ASCII whitespace characters #x9 (tab), #xA | |||
| which only includes the ASCII whitespace characters #x9 (tab), #xA (line | (linefeed), #xD (carriage return), and #x20 (space).</t> | |||
| feed), #xD (carriage return), and #x20 (space).</t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Migrating to Newer Versions of This Extension"> | <name>Migrating to Newer Versions of This Extension</name> | |||
| <t>Servers that implement this extension <bcp14>SHOULD</bcp14> provide a w | ||||
| <t>Servers which implement this extension SHOULD provide a way for | ay for | |||
| clients to progressively update their implementations when a new | clients to progressively update their implementations when a new | |||
| version of the extension is deployed. A newer version of the extension | version of the extension is deployed. A newer version of the extension | |||
| is expected to use an XML namespace with a higher version number than t | is expected to use an XML namespace with a higher version number than | |||
| he prior versions.</t> | the prior versions.</t> | |||
| <t>Servers <bcp14>SHOULD</bcp14> (for a temporary migration period up to | ||||
| <t>Servers SHOULD (for a temporary migration period up to server policy) | server policy) provide support for | |||
| provide support for | older versions of the extension in parallel to the newest version | |||
| older versions of the extension in parallel to the newest version, | ||||
| and allow clients to select their preferred version via the | and allow clients to select their preferred version via the | |||
| <svcExtension> element of the <login> command.</t> | <svcExtension> element of the <login> command.</t> | |||
| <t>If a client requests multiple versions of the extension at login, | ||||
| <t>If a client requests multiple versions of the extension at log | then, when preparing responses to commands that do not include | |||
| in, | extension elements, the server <bcp14>SHOULD</bcp14> only include ext | |||
| then, when preparing responses to commands which do not include | ension elements | |||
| extension elements, the server SHOULD only include extension elements | ||||
| in the namespace of the newest version of the extension requested by | in the namespace of the newest version of the extension requested by | |||
| the client.</t> | the client.</t> | |||
| <t>When preparing responses to commands that do include extension | ||||
| <t>When preparing responses to commands which do include extension | elements, the server <bcp14>SHOULD</bcp14> only include extension ele | |||
| elements, the server SHOULD only include extension elements for the | ments for the | |||
| extension versions present in the command.</t> | extension versions present in the command.</t> | |||
| </section> | </section> | |||
| <section anchor="attrs" numbered="true" toc="default"> | ||||
| <section anchor="attrs" title="Object Attributes"> | <name>Object Attributes</name> | |||
| <t>This extension adds additional elements to <xref target="RFC5730" | ||||
| <t>This extension adds additional elements to <xref target="RFC5730"/> log | format="default"/> login command and response. Only those new elements | |||
| in command | ||||
| and response. Only those new elements | ||||
| are described here.</t> | are described here.</t> | |||
| <section anchor="event" numbered="true" toc="default"> | ||||
| <section anchor="event" title="Event"> | <name>Event</name> | |||
| <t>A security event using the <loginSec:event> element | ||||
| <t>A security event, using the <loginSec:event> element, | ||||
| represents either a warning or error identified by the server after | represents either a warning or error identified by the server after | |||
| the client has connected and submitted the login command. The <loginS | the client has connected and submitted the login command. The | |||
| ec:event> element | <loginSec:event> element is contained in a list of one or more | |||
| is contained in a list of one or more elements in the <loginSec:login | elements in the <loginSec:loginSecData> element, so there | |||
| SecData> element, | <bcp14>MAY</bcp14> be multiple events returned that provide | |||
| so there MAY be multiple events returned that provide information for th | information for the client to address. The <loginSec:event> | |||
| e client to address. | <bcp14>MAY</bcp14> include a free-form description. All of the | |||
| The <loginSec:event> MAY include a free-form description. | security events use a consistent set of attributes, where the exact | |||
| All of the security events use a consistent set of attributes, | set of applicable attributes is based on the event type. The supported | |||
| where the exact set of applicable attributes is based on the event type. | set of <loginSec:event> element attributes include:</t> | |||
| The supported set of <loginSec:event> element attributes include:< | <dl newline="false" indent="4"> | |||
| /t> | <dt>"type":</dt> | |||
| <dd>A <bcp14>REQUIRED</bcp14> attribute that defines the type of | ||||
| <t><list hangIndent="4" style="hanging"> | security event. The enumerated list of "type" values includes:</dd> | |||
| <t hangText=""type":">A REQUIRED attribute that | <dt/> | |||
| defines the type of security event. The enumerated list of "type" va | <dd> | |||
| lues includes:</t> | <dl newline="false" indent="4"> | |||
| <dt>"password":</dt> | ||||
| <t><list hangIndent="4" style="hanging"> | <dd>Identifies a password expiry event where the password | |||
| <t hangText=""password":">Identifies a | expires in the future or has expired based on the "exDate" date | |||
| password expiry event, where the password expires in the future or has expired b | and time. The "exDate" attribute <bcp14>MUST</bcp14> be set with | |||
| ased on the "exDate" date and time. | the password expiry date and time.</dd> | |||
| The "exDate" attribute MUST be set with the password expiry date and tim | <dt>"certificate":</dt> | |||
| e.</t> | <dd>Identifies a client certificate expiry event where the | |||
| <t hangText=""certificate":">Identifies | client certificate will expire at the "exDate" date and | |||
| a client certificate expiry event, where the client certificate will expire at | time. The "exDate" attribute <bcp14>MUST</bcp14> be set with the | |||
| the "exDate" date and time. | certificate expiry date and time.</dd> | |||
| The "exDate" attribute MUST be set with the certificate expiry date and | <dt>"cipher":</dt> | |||
| time.</t> | <dd>Identifies the use of an insecure or deprecated TLS cipher | |||
| <t hangText=""cipher":">Identifies the | suite. The "name" attribute <bcp14>MUST</bcp14> be set with the | |||
| use of an insecure or deprecated TLS cipher suite. | name of the cipher suite, which is free-form and is not expected | |||
| The "name" attribute MUST be set with the name of the cipher suite, wh | to be parsed and automatically addressed by the client. An | |||
| ich is free-form and is not | example of cipher suite names can be found in the TLS Cipher | |||
| expected to be parsed and automatically addressed by the client. | Suites of the <eref | |||
| An example of cipher suite names can be found in the TLS Cipher Suites | target="https://www.iana.org/assignments/tls-parameters/tls-paramet | |||
| of the | ers.xhtml#tls-parameters-4">"Transport | |||
| <eref target="https://www.iana.org/assignments/tls-parameters/tls-para | Layer Security (TLS) Parameters" registry</eref>.</dd> | |||
| meters.xhtml#tls-parameters-4">Transport Layer Security (TLS) Parameters IANA Re | <dt>"tlsProtocol":</dt> | |||
| gistry</eref>. | <dd>Identifies the use of an insecure or deprecated TLS | |||
| </t> | protocol. The "name" attribute <bcp14>MUST</bcp14> be set with | |||
| <t hangText=""tlsProtocol":">Identifies | the name of the TLS protocol, which is free-form and is not | |||
| the use of an insecure or deprecated TLS protocol. | expected to be parsed and automatically addressed by the | |||
| The "name" attribute MUST be set with the name of the TLS protocol, | client.</dd> | |||
| which is free-form and is not expected to be parsed and automatically | <dt>"newPW":</dt> | |||
| addressed by the client.</t> | <dd>The new password does not meet the server password | |||
| <t hangText=""newPW":">The new password | complexity requirements.</dd> | |||
| does not meet the server password complexity requirements.</t> | <dt>"stat":</dt> | |||
| <t hangText=""stat":">Provides a login | <dd>Provides a login security statistical warning that | |||
| security statistical warning that MUST set the "name" attribute to the name of t | <bcp14>MUST</bcp14> set the "name" attribute to the name of the | |||
| he statistic sub-type.</t> | statistic subtype.</dd> | |||
| <t hangText=""custom":">Custom event ty | <dt>"custom":</dt> | |||
| pe that MUST set the "name" attribute with the custom event type name.</t> | <dd>Custom event type that <bcp14>MUST</bcp14> set the "name" | |||
| </list></t> | attribute with the custom event type name.</dd> | |||
| </dl> | ||||
| <t hangText=""name":">Used to define a sub-type | </dd> | |||
| when the "type" attribute is not "custom" or the full type name when the "type" | <dt>"name":</dt> | |||
| attribute is "custom". The | <dd>Used to define a subtype when the "type" attribute is not | |||
| "name" attribute MUST be set when the "type" attribute i | "custom" or the full type name when the "type" attribute is | |||
| s "stat" or "custom". | "custom". The "name" attribute <bcp14>MUST</bcp14> be set when the | |||
| The possible set of "name" values, by event type, can be discovered / neg | "type" attribute is "stat" or "custom". The possible set of "name" | |||
| otiated out of band to EPP or | values, by event type, can be discovered/negotiated out of band to | |||
| using a separate EPP extension designed to provide server policy informat | EPP or using a separate EPP extension designed to provide server | |||
| ion to the client.</t> | policy information to the client.</dd> | |||
| <t hangText=""level":">Defines the level of the | <dt>"level":</dt> | |||
| event as either "warning" for a warning event | <dd>Defines the level of the event as either "warning" for a warning | |||
| that needs action, or "error" for an error event that r | event that needs action or "error" for an error event that requires | |||
| equires immediate action.</t> | immediate action.</dd> | |||
| <t hangText=""exDate":">Contains the date and t | <dt>"exDate":</dt> | |||
| ime that a "warning" level has or will become an "error" level. | <dd>Contains the date and time that a "warning" level has or will | |||
| At expiry there MAY be a connection failure or MAY be a login failure. | become an "error" level. At expiry, there <bcp14>MAY</bcp14> be a | |||
| An example is an expired certification that will result in a connection | connection failure or <bcp14>MAY</bcp14> be a login failure. An | |||
| failure or an expired password that may result in a login failure.</t> | example is an expired certification that will result in a connection | |||
| <t hangText=""value":">Identifies the value tha | failure or an expired password that may result in a login | |||
| t resulted in the login security event. | failure.</dd> | |||
| An example is the negotiated insecure cipher suite or t | <dt>"value":</dt> | |||
| he negotiated insecure TLS protocol.</t> | <dd>Identifies the value that resulted in the login security | |||
| <t hangText=""duration":">Defines the duration | event. An example is the negotiated insecure cipher suite or the | |||
| that a statistical event is associated with, ending when the login command was r | negotiated insecure TLS protocol.</dd> | |||
| eceived. The format | <dt>"duration":</dt> | |||
| of the duration is defined by the duration primitive data | <dd>Defines the duration that a statistical event is associated | |||
| type in section 3.2.6 of <xref target="W3C.REC-xmlschema-2-20041028"/>.</t> | with, ending when the login command was received. The format of the | |||
| <t hangText=""lang":">Identifies the negotiated | duration is defined by the duration primitive data type in Section | |||
| language of the free-form description. The format of the language is defined b | 3.2.6 of <xref target="W3C.REC-xmlschema-2-20041028" | |||
| y the | format="default"/>.</dd> | |||
| language primitive datatype in section 3.3.3 of <xref target="W3C.REC-xm | <dt>"lang":</dt> | |||
| lschema-2-20041028"/>. The default is "en" (English).</t> | <dd>Identifies the negotiated language of the free-form description. | |||
| </list></t> | The format of the language is defined by the language primitive | |||
| data type in Section 3.3.3 of <xref | ||||
| <figure> | target="W3C.REC-xmlschema-2-20041028" format="default"/>. The | |||
| <preamble>Example login security event for password expiration, wher | default is "en" (English).</dd> | |||
| e the current date is 2020-03-25:</preamble> | </dl> | |||
| <t>Example login security event for password expiration, where the | ||||
| <artwork><![CDATA[ | current date is 2020-03-25:</t> | |||
| <sourcecode type="xml"><![CDATA[ | ||||
| <loginSec:event | <loginSec:event | |||
| type="password" | type="password" | |||
| level="warning" | level="warning" | |||
| exDate="2020-04-01T22:00:00.0Z" | exDate="2020-04-01T22:00:00.0Z" | |||
| lang="en"> | lang="en"> | |||
| Password expiration soon | Password expiration soon | |||
| </loginSec:event>]]></artwork> | </loginSec:event> | |||
| </figure> | ]]></sourcecode> | |||
| <t>Example login security event for identifying 100 failed logins over | ||||
| <figure> | the last day, using the "stat" subtype of "failedLogins":</t> | |||
| <preamble>Example login security event for identifying 100 failed lo | <sourcecode type="xml"><![CDATA[ | |||
| gins | ||||
| over the last day, using the "stat" sub-type of "failedLogins":</pre | ||||
| amble> | ||||
| <artwork><![CDATA[ | ||||
| <loginSec:event | <loginSec:event | |||
| type="stat" | type="stat" | |||
| name="failedLogins" | name="failedLogins" | |||
| level="warning" | level="warning" | |||
| value="100" | value="100" | |||
| duration="P1D"> | duration="P1D"> | |||
| Excessive invalid daily logins | Excessive invalid daily logins | |||
| </loginSec:event>]]></artwork> | </loginSec:event> | |||
| </figure> | ]]></sourcecode> | |||
| </section> | </section> | |||
| <section anchor="loginSecurityPassword" numbered="true" toc="default"> | ||||
| <section anchor="loginSecurityPassword" title=""[LOGIN-SECURITY]" | <name>"[LOGIN-SECURITY]" Password</name> | |||
| ; Password"> | <t>When the <xref target="RFC5730" format="default"/> <pw> | |||
| element contains the predefined value of "[LOGIN-SECURITY]", the | ||||
| <t>When the <xref target="RFC5730"/> <pw> element contains the pre | <loginSec:pw> element overrides the <pw> element, which is | |||
| defined value of "[LOGIN-SECURITY]", the <loginSec:pw> element overrides t | a constant value for the server to use the <loginSec:pw> element | |||
| he <pw> element, | for the password. Similarly, when the <xref target="RFC5730" | |||
| which is a constant value for the server to use the <loginSec:pw> | format="default"/> <newPw> element contains the predefined value | |||
| element for the password. | of "[LOGIN-SECURITY]", the <loginSec:newPw> element overrides | |||
| Similarly, when the <xref target="RFC5730"/> <newPw> element conta | the <newPw> element, which is a constant value for the server to | |||
| ins the predefined value of "[LOGIN-SECURITY]", the <loginSec:newPw> eleme | use the <loginSec:newPW> element for the new password. The | |||
| nt overrides the <newPw> element, | "[LOGIN-SECURITY]" predefined string <bcp14>MUST</bcp14> be supported | |||
| which is a constant value for the server to use the <loginSec:newPW&g | by the server for the client to explicitly indicate to the server | |||
| t; element for the new password. | whether to use <loginSec:pw> element in place of the <xref | |||
| The "[LOGIN-SECURITY]" pre-defined string MUST be supported by the serve | target="RFC5730" format="default"/> <pw> element or to use the | |||
| r for the client to explicitly indicate to the server | <loginSec:newPW> in place of the <xref target="RFC5730" | |||
| whether to use <loginSec:pw> element in place of the <xref target= | format="default"/> <newPW> element. The server <bcp14>MUST | |||
| "RFC5730"/> <pw> element or to use the <loginSec:newPW> in place | NOT</bcp14> allow the client to set the password to the value | |||
| of the <xref target="RFC5730"/> <newPW> element. The server MUST | "[LOGIN-SECURITY]".</t> | |||
| NOT allow the client to set the password to the value "[LOGIN-SECURITY]".</t> | ||||
| </section> | </section> | |||
| <section anchor="datestimes" numbered="true" toc="default"> | ||||
| <section anchor="datestimes" title="Dates and Times"> | <name>Dates and Times</name> | |||
| <t>Date and time attribute values <bcp14>MUST</bcp14> be represented | ||||
| <t>Date and time attribute values MUST be represented in Universal | in Universal Coordinated Time (UTC) using the Gregorian calendar. The | |||
| Coordinated Time (UTC) using the Gregorian calendar. The extended | extended date-time form using upper case "T" and "Z" characters | |||
| date-time form using upper case "T" and "Z" characters defined in | defined in <xref target="W3C.REC-xmlschema-2-20041028" | |||
| <xref target="W3C.REC-xmlschema-2-20041028"/> MUST be used to represe | format="default"/> <bcp14>MUST</bcp14> be used to represent date-time | |||
| nt date-time | values, as XML Schema does not support truncated date-time forms or | |||
| values, as XML Schema does not support truncated date-time forms or | lower case "T" and "Z" characters.</t> | |||
| lower case "T" and "Z" characters.</t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="commands" numbered="true" toc="default"> | ||||
| <section anchor="commands" title="EPP Command Mapping"> | <name>EPP Command Mapping</name> | |||
| <t>A detailed description of the EPP syntax and semantics can be found | <t>A detailed description of the EPP syntax and semantics can be found | |||
| in the EPP core protocol specification <xref target="RFC5730"/>.</t> | in the EPP core protocol specification <xref target="RFC5730" | |||
| format="default"/>.</t> | ||||
| <section anchor="loginCommand" title="EPP <login> Command"> | ||||
| <t>This extension defines additional elements to extend the EPP <logi | ||||
| n> command and response to be used | ||||
| in conjunction with <xref target="RFC5730"/>.</t> | ||||
| <t>The EPP <login> command is used to establish a session w | ||||
| ith an EPP server. This extension overrides | ||||
| the password that is passed with the <xref target="RFC5730"/> < | ||||
| ;pw> or the <newPW> element as defined in | ||||
| <xref target="loginSecurityPassword"/>. A <loginSec:loginSec& | ||||
| gt; element is sent along with the <xref target="RFC5730"/> | ||||
| <login> command and MUST contain at least one of the follow | ||||
| ing child elements:</t> | ||||
| <t><list hangIndent="4" style="hanging"> | ||||
| <t hangText="<loginSec:userAgent>:">OPTIONAL client user | ||||
| agent information that identifies the client application software, technology, a | ||||
| nd operating system used by the server to identify functional or security constr | ||||
| aints, | ||||
| current security issues, and potential future functional or sec | ||||
| urity issues for the client. The server may use the information for real-time i | ||||
| dentification and client notification of security issues, | ||||
| such as keying off of the client application software for executing securi | ||||
| ty rule checks. The server may capture the information to identify future secur | ||||
| ity policy issues, | ||||
| such as deprecating or removing TLS cipher suites or TLS protocols. The & | ||||
| lt;loginSec:userAgent> element MUST contain at least one of the following chi | ||||
| ld elements:</t> | ||||
| <t><list hangIndent="4" style="hanging"> | ||||
| <t hangText="<loginSec:app>:">OPTIONAL name of the cl | ||||
| ient application software with version if available, such as the name of the cli | ||||
| ent SDK "EPP SDK 1.0.0". The <loginSec:app> element value | ||||
| can be created by appending the version number to the name of the appl | ||||
| ication software, such as the <xref target="RFC5234">Augmented Backus-Naur Form | ||||
| (ABNF) grammar</xref> format: | ||||
| <list> | ||||
| <t>app = name SP version</t> | ||||
| <t>name = 1*VCHAR</t> | ||||
| <t>version = 1*VCHAR</t> | ||||
| </list> | ||||
| </t> | ||||
| <t hangText="<loginSec:tech>:">OPTIONAL technology us | ||||
| ed for the client software with version if available, such as "Vendor Java 11.0. | ||||
| 6". The <loginSec:tech> element value | ||||
| can be created by including the technology vendor, technology name, an | ||||
| d technology version, such as the <xref target="RFC5234">Augmented Backus-Naur F | ||||
| orm (ABNF) grammar</xref> format: | ||||
| <list> | ||||
| <t>tech = vendor SP name SP version</t> | ||||
| <t>vendor = 1*VCHAR</t> | ||||
| <t>name = 1*VCHAR</t> | ||||
| <t>version = 1*VCHAR</t> | ||||
| </list></t> | ||||
| <t hangText="<loginSec:os>:">OPTIONAL client operatin | ||||
| g system used with version if available, such as "x86_64 Mac OS X 10.15.2". The | ||||
| <loginSec:os> element value | ||||
| can be created by including the operating system architecture, operati | ||||
| ng system name, and operating system version, such as the <xref target="RFC5234" | ||||
| >Augmented Backus-Naur Form (ABNF) grammar</xref> format: | ||||
| <list> | ||||
| <t>os = arch SP name SP version</t> | ||||
| <t>arch = 1*VCHAR</t> | ||||
| <t>name = 1*VCHAR</t> | ||||
| <t>version = 1*VCHAR</t> | ||||
| </list></t> | ||||
| </list></t> | ||||
| <t hangText="<loginSec:pw>:">OPTIONAL plain text password | ||||
| that is case sensitive, has a minimum length of 6 characters, and has a maximum | ||||
| length that | ||||
| is up to server policy. All leading and trailing whitespace is | ||||
| removed, and all internal contiguous whitespace that includes #x9 (tab), #xA (l | ||||
| inefeed), #xD (carriage return), and #x20 (space) is | ||||
| replaced with a single #x20 (space). This element MUST only be | ||||
| set if the <xref target="RFC5730"/> <pw> element is set to the "[LOGIN-SE | ||||
| CURITY]" value.</t> | ||||
| <t hangText="<loginSec:newPW>:">OPTIONAL plain text new p | ||||
| assword that is case sensitive, has a minimum length of 6 characters, and has a | ||||
| maximum length that | ||||
| is up to server policy. All leading and trailing whitespace is | ||||
| removed, and all internal contiguous whitespace that includes #x9 (tab), #xA (l | ||||
| inefeed), #xD (carriage return), and #x20 (space) is | ||||
| replaced with a single #x20 (space). This element MUST only be | ||||
| set if the <xref target="RFC5730"/> <newPW> element is set to the "[LOGIN | ||||
| -SECURITY]" value.</t> | ||||
| </list></t> | ||||
| <t>It is RECOMMENDED that the plain text password in the <logi | ||||
| nSec:pw> and <loginSec:newPw> elements use | ||||
| printable ASCII characters #x20 (space) - #x7E (~), with high ent | ||||
| ropy, such as 128 bits. If non-ASCII characters are supported with the plain te | ||||
| xt password, then use | ||||
| a standard for passwords with international characters; the Opaqu | ||||
| eString PRECIS profile in <xref target="RFC8265"/> is recommended in the | ||||
| absence of other considerations.</t> | ||||
| <figure> | ||||
| <preamble>Example login command that uses the <loginSec:pw> el | ||||
| ement instead of the <xref target="RFC5730"/> <pw> element to | ||||
| establish the session and includes the <loginSec:userAgent> el | ||||
| ement:</preamble> | ||||
| <artwork><![CDATA[ | <section anchor="loginCommand" numbered="true" toc="default"> | |||
| <name>EPP <login> Command</name> | ||||
| <t>This extension defines additional elements to extend the EPP | ||||
| <login> command and response to be used in conjunction with | ||||
| <xref target="RFC5730" format="default"/>.</t> | ||||
| <t>The EPP <login> command is used to establish a session with | ||||
| an EPP server. This extension overrides the password that is passed | ||||
| with the <xref target="RFC5730" format="default"/> <pw> or the | ||||
| <newPW> element, as defined in <xref | ||||
| target="loginSecurityPassword" format="default"/>. A | ||||
| <loginSec:loginSec> element is sent along with the <xref | ||||
| target="RFC5730" format="default"/> <login> command and | ||||
| <bcp14>MUST</bcp14> contain at least one of the following child | ||||
| elements:</t> | ||||
| <dl newline="false" indent="4"> | ||||
| <dt><loginSec:userAgent>:</dt> | ||||
| <dd><bcp14>OPTIONAL</bcp14> client user-agent information that | ||||
| identifies the client application software, technology, and | ||||
| operating system used by the server to identify functional or | ||||
| security constraints, current security issues, and potential future | ||||
| functional or security issues for the client. The server may use | ||||
| the information for real-time identification and client notification | ||||
| of security issues, such as keying off of the client application | ||||
| software for executing security rule checks. The server may capture | ||||
| the information to identify future security policy issues, such as | ||||
| deprecating or removing TLS cipher suites or TLS protocols. The | ||||
| <loginSec:userAgent> element <bcp14>MUST</bcp14> contain at | ||||
| least one of the following child elements:</dd> | ||||
| <dt/> | ||||
| <dd> | ||||
| <dl newline="false" indent="4"> | ||||
| <dt><loginSec:app>:</dt> | ||||
| <dd> | ||||
| <t><bcp14>OPTIONAL</bcp14> name of the client application | ||||
| software with version if available, such as the name of the | ||||
| client SDK "EPP SDK 1.0.0". The <loginSec:app> element | ||||
| value can be created by appending the version number to the | ||||
| name of the application software, such as the Augmented | ||||
| Backus-Naur Form (ABNF) grammar <xref target="RFC5234" | ||||
| format="default"></xref> format:</t> | ||||
| <sourcecode type="abnf"> | ||||
| app = name SP version | ||||
| name = 1*VCHAR | ||||
| version = 1*VCHAR | ||||
| </sourcecode> | ||||
| </dd> | ||||
| <dt><loginSec:tech>:</dt> | ||||
| <dd> | ||||
| <t><bcp14>OPTIONAL</bcp14> technology used for the client | ||||
| software with version if available, such as "Vendor Java | ||||
| 11.0.6". The <loginSec:tech> element value can be | ||||
| created by including the technology vendor, technology name, | ||||
| and technology version, such as the Augmented Backus-Naur Form | ||||
| (ABNF) grammar <xref target="RFC5234" format="default"></xref> | ||||
| format:</t> | ||||
| <sourcecode type="abnf"> | ||||
| tech = vendor SP name SP version | ||||
| vendor = 1*VCHAR | ||||
| name = 1*VCHAR | ||||
| version = 1*VCHAR | ||||
| </sourcecode> | ||||
| </dd> | ||||
| <dt><loginSec:os>:</dt> | ||||
| <dd> | ||||
| <t><bcp14>OPTIONAL</bcp14> client operating system used with | ||||
| version if available, such as "x86_64 Mac OS X 10.15.2". The | ||||
| <loginSec:os> element value can be created by including | ||||
| the operating system architecture, operating system name, and | ||||
| operating system version, such as the Augmented Backus-Naur | ||||
| Form (ABNF) grammar <xref target="RFC5234" | ||||
| format="default"></xref> format:</t> | ||||
| <sourcecode type="abnf"> | ||||
| os = arch SP name SP version | ||||
| arch = 1*VCHAR | ||||
| name = 1*VCHAR | ||||
| version = 1*VCHAR | ||||
| </sourcecode> | ||||
| </dd> | ||||
| </dl> | ||||
| </dd> | ||||
| <dt><loginSec:pw>:</dt> | ||||
| <dd><bcp14>OPTIONAL</bcp14> plain text password that is case | ||||
| sensitive, has a minimum length of 6 characters, and has a maximum | ||||
| length that is up to server policy. All leading and trailing | ||||
| whitespace is removed, and all internal contiguous whitespace that | ||||
| includes #x9 (tab), #xA (linefeed), #xD (carriage return), and #x20 | ||||
| (space) is replaced with a single #x20 (space). This element | ||||
| <bcp14>MUST</bcp14> only be set if the <xref target="RFC5730" | ||||
| format="default"/> <pw> element is set to the | ||||
| "[LOGIN-SECURITY]" value.</dd> | ||||
| <dt><loginSec:newPW>:</dt> | ||||
| <dd><bcp14>OPTIONAL</bcp14> plain text new password that is case | ||||
| sensitive, has a minimum length of 6 characters, and has a maximum | ||||
| length that is up to server policy. All leading and trailing | ||||
| whitespace is removed, and all internal contiguous whitespace that | ||||
| includes #x9 (tab), #xA (linefeed), #xD (carriage return), and #x20 | ||||
| (space) is replaced with a single #x20 (space). This element | ||||
| <bcp14>MUST</bcp14> only be set if the <xref target="RFC5730" | ||||
| format="default"/> <newPW> element is set to the | ||||
| "[LOGIN-SECURITY]" value.</dd> | ||||
| </dl> | ||||
| <t>It is <bcp14>RECOMMENDED</bcp14> that the plain text password in | ||||
| the <loginSec:pw> and <loginSec:newPw> elements use | ||||
| printable ASCII characters #x20 (space) - #x7E (~) with high entropy, | ||||
| such as 128 bits. If non-ASCII characters are supported with the | ||||
| plain text password, then use a standard for passwords with | ||||
| international characters; the OpaqueString PRECIS profile in <xref | ||||
| target="RFC8265" format="default"/> is recommended in the absence of | ||||
| other considerations.</t> | ||||
| <t>Example login command that uses the <loginSec:pw> element | ||||
| instead of the <pw> | ||||
| element (<xref target="RFC5730" format="default"/>) to establish the ses | ||||
| sion and includes the | ||||
| <loginSec:userAgent> element:</t> | ||||
| <sourcecode type=""><![CDATA[ | ||||
| C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| C: <command> | C: <command> | |||
| C: <login> | C: <login> | |||
| C: <clID>ClientX</clID> | C: <clID>ClientX</clID> | |||
| C: <pw>[LOGIN-SECURITY]</pw> | C: <pw>[LOGIN-SECURITY]</pw> | |||
| C: <options> | C: <options> | |||
| C: <version>1.0</version> | C: <version>1.0</version> | |||
| C: <lang>en</lang> | C: <lang>en</lang> | |||
| C: </options> | C: </options> | |||
| skipping to change at line 394 ¶ | skipping to change at line 442 ¶ | |||
| C: <loginSec:userAgent> | C: <loginSec:userAgent> | |||
| C: <loginSec:app>EPP SDK 1.0.0</loginSec:app> | C: <loginSec:app>EPP SDK 1.0.0</loginSec:app> | |||
| C: <loginSec:tech>Vendor Java 11.0.6</loginSec:tech> | C: <loginSec:tech>Vendor Java 11.0.6</loginSec:tech> | |||
| C: <loginSec:os>x86_64 Mac OS X 10.15.2</loginSec:os> | C: <loginSec:os>x86_64 Mac OS X 10.15.2</loginSec:os> | |||
| C: </loginSec:userAgent> | C: </loginSec:userAgent> | |||
| C: <loginSec:pw>this is a long password</loginSec:pw> | C: <loginSec:pw>this is a long password</loginSec:pw> | |||
| C: </loginSec:loginSec> | C: </loginSec:loginSec> | |||
| C: </extension> | C: </extension> | |||
| C: <clTRID>ABC-12345</clTRID> | C: <clTRID>ABC-12345</clTRID> | |||
| C: </command> | C: </command> | |||
| C:</epp>]]></artwork> | C:</epp> | |||
| </figure> | ]]></sourcecode> | |||
| <t>Example login command that uses the <loginSec:pw> element | ||||
| <figure> | instead of the <pw> | |||
| <preamble>Example login command that uses the <loginSec:pw> el | element (<xref target="RFC5730" format="default"/>) to | |||
| ement instead of the <xref target="RFC5730"/> <pw> element to | establish the session and that uses the <loginSec:newPW> | |||
| establish the session, and uses the <loginSec:newPW> element i | element instead of the | |||
| nstead of the <xref target="RFC5730"/> <newPW> element to | <newPW> element (<xref target="RFC5730" | |||
| set the new password:</preamble> | format="default"/>) to set the new password:</t> | |||
| <sourcecode type=""><![CDATA[ | ||||
| <artwork><![CDATA[ | ||||
| C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| C: <command> | C: <command> | |||
| C: <login> | C: <login> | |||
| C: <clID>ClientX</clID> | C: <clID>ClientX</clID> | |||
| C: <pw>[LOGIN-SECURITY]</pw> | C: <pw>[LOGIN-SECURITY]</pw> | |||
| C: <newPW>[LOGIN-SECURITY]</newPW> | C: <newPW>[LOGIN-SECURITY]</newPW> | |||
| C: <options> | C: <options> | |||
| C: <version>1.0</version> | C: <version>1.0</version> | |||
| C: <lang>en</lang> | C: <lang>en</lang> | |||
| skipping to change at line 435 ¶ | skipping to change at line 484 ¶ | |||
| C: xmlns:loginSec= | C: xmlns:loginSec= | |||
| C: "urn:ietf:params:xml:ns:epp:loginSec-1.0"> | C: "urn:ietf:params:xml:ns:epp:loginSec-1.0"> | |||
| C: <loginSec:pw>this is a long password | C: <loginSec:pw>this is a long password | |||
| C: </loginSec:pw> | C: </loginSec:pw> | |||
| C: <loginSec:newPW>new password that is still long | C: <loginSec:newPW>new password that is still long | |||
| C: </loginSec:newPW> | C: </loginSec:newPW> | |||
| C: </loginSec:loginSec> | C: </loginSec:loginSec> | |||
| C: </extension> | C: </extension> | |||
| C: <clTRID>ABC-12345</clTRID> | C: <clTRID>ABC-12345</clTRID> | |||
| C: </command> | C: </command> | |||
| C:</epp>]]></artwork> | C:</epp> | |||
| </figure> | ]]></sourcecode> | |||
| <t>Example login command that uses the <pw> element (<xref target= | ||||
| <figure> | "RFC5730" | |||
| <preamble>Example login command that uses the <xref target="RFC5730" | format="default"/>) to establish the session and | |||
| /> <pw> element to | that uses the <loginSec:newPW> element instead of the <newPW> | |||
| establish the session, and uses the <loginSec:newPW> element i | ; element (<xref | |||
| nstead of the <xref target="RFC5730"/> <newPW> element to | target="RFC5730" format="default"/>) to set the | |||
| set the new password:</preamble> | new password:</t> | |||
| <sourcecode type=""><![CDATA[ | ||||
| <artwork><![CDATA[ | ||||
| C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| C: <command> | C: <command> | |||
| C: <login> | C: <login> | |||
| C: <clID>ClientX</clID> | C: <clID>ClientX</clID> | |||
| C: <pw>shortpassword</pw> | C: <pw>shortpassword</pw> | |||
| C: <newPW>[LOGIN-SECURITY]</newPW> | C: <newPW>[LOGIN-SECURITY]</newPW> | |||
| C: <options> | C: <options> | |||
| C: <version>1.0</version> | C: <version>1.0</version> | |||
| C: <lang>en</lang> | C: <lang>en</lang> | |||
| skipping to change at line 474 ¶ | skipping to change at line 522 ¶ | |||
| C: <extension> | C: <extension> | |||
| C: <loginSec:loginSec | C: <loginSec:loginSec | |||
| C: xmlns:loginSec= | C: xmlns:loginSec= | |||
| C: "urn:ietf:params:xml:ns:epp:loginSec-1.0"> | C: "urn:ietf:params:xml:ns:epp:loginSec-1.0"> | |||
| C: <loginSec:newPW>new password that is still long | C: <loginSec:newPW>new password that is still long | |||
| C: </loginSec:newPW> | C: </loginSec:newPW> | |||
| C: </loginSec:loginSec> | C: </loginSec:loginSec> | |||
| C: </extension> | C: </extension> | |||
| C: <clTRID>ABC-12345</clTRID> | C: <clTRID>ABC-12345</clTRID> | |||
| C: </command> | C: </command> | |||
| C:</epp>]]></artwork> | C:</epp> | |||
| </figure> | ]]></sourcecode> | |||
| <t>Upon a completed login command (success or failed), the extension | ||||
| <t>Upon a completed login command (success or failed), the extension M | <bcp14>MUST</bcp14> be included in the response when both of the | |||
| UST be included | following conditions hold:</t> | |||
| in the response when both of the following conditions hold:</t> | <dl newline="false" indent="4"> | |||
| <dt>Client supports extension:</dt> | ||||
| <t><list hangIndent="4" style="hanging"> | <dd>The client supports the extension based on the | |||
| <t hangText="Client supports extension:"> | <svcExtension> element of the <login> command.</dd> | |||
| The client supports the extension based on the <svcExtension> | <dt>At least one login security event:</dt> | |||
| element | <dd>The server has identified at least one login security event to | |||
| of the <login> command.</t> | communicate to the client.</dd> | |||
| <t hangText="At least one login security event:"> | </dl> | |||
| The server has identified at least one login security event to | <t>The extension to the EPP response uses the | |||
| communicate to the client.</t> | <loginSec:loginSecData> element that contains the following | |||
| </list></t> | child elements:</t> | |||
| <dl newline="false" indent="4"> | ||||
| <t>The extension to the EPP response uses | <dt><loginSec:event>:</dt> | |||
| the <loginSec:loginSecData> element that contains the following | <dd>One or more <loginSec:event> elements defined in <xref | |||
| child elements:</t> | target="event" format="default"/>.</dd> | |||
| </dl> | ||||
| <t><list hangIndent="4" style="hanging"> | <t>Example EPP response to a successful login command on 2020-03-25, | |||
| <t hangText="<loginSec:event>:">One or more <loginSec: | where the password will expire in a week:</t> | |||
| event> elements | <sourcecode type=""><![CDATA[ | |||
| defined in <xref target="event"/>.</t> | ||||
| </list></t> | ||||
| <figure> | ||||
| <preamble>Example EPP response to a successful login command on 2020 | ||||
| -03-25, where the password will expire in a week:</preamble> | ||||
| <artwork><![CDATA[ | ||||
| S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| S: <response> | S: <response> | |||
| S: <result code="1000"> | S: <result code="1000"> | |||
| S: <msg>Command completed successfully</msg> | S: <msg>Command completed successfully</msg> | |||
| S: </result> | S: </result> | |||
| S: <extension> | S: <extension> | |||
| S: <loginSec:loginSecData | S: <loginSec:loginSecData | |||
| S: xmlns:loginSec= | S: xmlns:loginSec= | |||
| S: "urn:ietf:params:xml:ns:epp:loginSec-1.0"> | S: "urn:ietf:params:xml:ns:epp:loginSec-1.0"> | |||
| skipping to change at line 526 ¶ | skipping to change at line 570 ¶ | |||
| S: lang="en"> | S: lang="en"> | |||
| S: Password expiring in a week | S: Password expiring in a week | |||
| S: </loginSec:event> | S: </loginSec:event> | |||
| S: </loginSec:loginSecData> | S: </loginSec:loginSecData> | |||
| S: </extension> | S: </extension> | |||
| S: <trID> | S: <trID> | |||
| S: <clTRID>ABC-12345</clTRID> | S: <clTRID>ABC-12345</clTRID> | |||
| S: <svTRID>54321-XYZ</svTRID> | S: <svTRID>54321-XYZ</svTRID> | |||
| S: </trID> | S: </trID> | |||
| S: </response> | S: </response> | |||
| S:</epp>]]></artwork> | S:</epp> | |||
| </figure> | ]]></sourcecode> | |||
| <t>Example EPP response to a failed login command where the password | ||||
| <figure> | has expired and the new password does not meet the server complexity | |||
| <preamble>Example EPP response to a failed login command where | requirements:</t> | |||
| the password has expired and the new password does not | <sourcecode type=""><![CDATA[ | |||
| meet the server complexity requirements:</preamble> | ||||
| <artwork><![CDATA[ | ||||
| S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| S: <response> | S: <response> | |||
| S: <result code="2200"> | S: <result code="2200"> | |||
| S: <msg>Authentication error</msg> | S: <msg>Authentication error</msg> | |||
| S: </result> | S: </result> | |||
| S: <extension> | S: <extension> | |||
| S: <loginSec:loginSecData | S: <loginSec:loginSecData | |||
| S: xmlns:loginSec= | S: xmlns:loginSec= | |||
| S: "urn:ietf:params:xml:ns:epp:loginSec-1.0"> | S: "urn:ietf:params:xml:ns:epp:loginSec-1.0"> | |||
| skipping to change at line 563 ¶ | skipping to change at line 604 ¶ | |||
| S: level="error"> | S: level="error"> | |||
| S: New password does not meet complexity requirements | S: New password does not meet complexity requirements | |||
| S: </loginSec:event> | S: </loginSec:event> | |||
| S: </loginSec:loginSecData> | S: </loginSec:loginSecData> | |||
| S: </extension> | S: </extension> | |||
| S: <trID> | S: <trID> | |||
| S: <clTRID>ABC-12345</clTRID> | S: <clTRID>ABC-12345</clTRID> | |||
| S: <svTRID>54321-XYZ</svTRID> | S: <svTRID>54321-XYZ</svTRID> | |||
| S: </trID> | S: </trID> | |||
| S: </response> | S: </response> | |||
| S:</epp>]]></artwork> | S:</epp> | |||
| </figure> | ]]></sourcecode> | |||
| <t>Example EPP response to a successful login command where | ||||
| <figure> | there is a set of login security events:</t> | |||
| <preamble>Example EPP response to a successful login command where | <sourcecode type=""><![CDATA[ | |||
| there is a set of login security events:</preamble> | ||||
| <artwork><![CDATA[ | ||||
| S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| S: <response> | S: <response> | |||
| S: <result code="1000"> | S: <result code="1000"> | |||
| S: <msg>Command completed successfully</msg> | S: <msg>Command completed successfully</msg> | |||
| S: </result> | S: </result> | |||
| S: <extension> | S: <extension> | |||
| S: <loginSec:loginSecData | S: <loginSec:loginSecData | |||
| S: xmlns:loginSec= | S: xmlns:loginSec= | |||
| S: "urn:ietf:params:xml:ns:epp:loginSec-1.0"> | S: "urn:ietf:params:xml:ns:epp:loginSec-1.0"> | |||
| skipping to change at line 616 ¶ | skipping to change at line 654 ¶ | |||
| S: name="failedLogins" | S: name="failedLogins" | |||
| S: level="warning" | S: level="warning" | |||
| S: value="100" | S: value="100" | |||
| S: duration="P1D"> | S: duration="P1D"> | |||
| S: Excessive invalid daily logins | S: Excessive invalid daily logins | |||
| S: </loginSec:event> | S: </loginSec:event> | |||
| S: <loginSec:event | S: <loginSec:event | |||
| S: type="custom" | S: type="custom" | |||
| S: name="myCustomEvent" | S: name="myCustomEvent" | |||
| S: level="warning"> | S: level="warning"> | |||
| S: A custom login security event occured | S: A custom login security event occurred | |||
| S: </loginSec:event> | S: </loginSec:event> | |||
| S: </loginSec:loginSecData> | S: </loginSec:loginSecData> | |||
| S: </extension> | S: </extension> | |||
| S: <trID> | S: <trID> | |||
| S: <clTRID>ABC-12345</clTRID> | S: <clTRID>ABC-12345</clTRID> | |||
| S: <svTRID>54321-XYZ</svTRID> | S: <svTRID>54321-XYZ</svTRID> | |||
| S: </trID> | S: </trID> | |||
| S: </response> | S: </response> | |||
| S:</epp>]]></artwork> | S:</epp> | |||
| </figure> | ]]></sourcecode> | |||
| </section> | </section> | |||
| <!-- end LOGIN command --> | <!-- end LOGIN command --> | |||
| </section> | </section> | |||
| <!-- EPP command mapping --> | <!-- EPP command mapping --> | |||
| <section anchor="syntax" title="Formal Syntax"> | <section anchor="syntax" numbered="true" toc="default"> | |||
| <name>Formal Syntax</name> | ||||
| <t>The EPP Login Security Extension schema is presented here.</t> | <t>The EPP Login Security Extension schema is presented here.</t> | |||
| <t>The formal | <t>The formal | |||
| syntax presented here is a complete XML schema representation of the objec t | syntax shown here is a complete XML Schema representation of the object | |||
| mapping suitable for automated validation of EPP XML instances. The | mapping suitable for automated validation of EPP XML instances. The | |||
| BEGIN and END tags are not part of the XML schema; they are used to note t | <CODE BEGINS> and <CODE ENDS> tags are not part of the XML Sch | |||
| he | ema; they are used to note the | |||
| beginning and ending of the XML schema for URI registration purposes.</t> | beginning and ending of the XML Schema for URI registration purposes.</t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Login Security Extension Schema"> | <name>Login Security Extension Schema</name> | |||
| <sourcecode type="xml" markers="true"><![CDATA[ | ||||
| <figure> | ||||
| <artwork><![CDATA[ | ||||
| BEGIN | ||||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <schema xmlns="http://www.w3.org/2001/XMLSchema" | <schema xmlns="http://www.w3.org/2001/XMLSchema" | |||
| xmlns:epp="urn:ietf:params:xml:ns:epp-1.0" | xmlns:epp="urn:ietf:params:xml:ns:epp-1.0" | |||
| xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0" | xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0" | |||
| xmlns:loginSec="urn:ietf:params:xml:ns:epp:loginSec-1.0" | xmlns:loginSec="urn:ietf:params:xml:ns:epp:loginSec-1.0" | |||
| targetNamespace="urn:ietf:params:xml:ns:epp:loginSec-1.0" | targetNamespace="urn:ietf:params:xml:ns:epp:loginSec-1.0" | |||
| elementFormDefault="qualified"> | elementFormDefault="qualified"> | |||
| <!-- | <!-- | |||
| Import common element types. | Import common element types. | |||
| --> | --> | |||
| skipping to change at line 764 ¶ | skipping to change at line 796 ¶ | |||
| <simpleType name="levelEnum"> | <simpleType name="levelEnum"> | |||
| <restriction base="token"> | <restriction base="token"> | |||
| <enumeration value="warning" /> | <enumeration value="warning" /> | |||
| <enumeration value="error" /> | <enumeration value="error" /> | |||
| </restriction> | </restriction> | |||
| </simpleType> | </simpleType> | |||
| <!-- | <!-- | |||
| End of schema. | End of schema. | |||
| --> | --> | |||
| </schema> | </schema> | |||
| END]]></artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="IANA" numbered="true" toc="default"> | ||||
| <section anchor="IANA" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
| <section anchor="IANA-XML-Namespace" numbered="true" toc="default"> | ||||
| <section anchor="IANA-XML-Namespace" title="XML Namespace"> | <name>XML Namespace</name> | |||
| <t> | <t>This document uses URNs to describe XML namespaces and XML schemas | |||
| This document uses URNs to describe XML namespaces and XML schemas | conforming to a registry mechanism described in <xref target="RFC3688" | |||
| conforming to a registry mechanism described in <xref target="RFC36 | format="default"/>. The following URI assignment has been made by | |||
| 88"/>. | IANA:</t> | |||
| The following URI assignment is requested of IANA: | <t>Registration request for the loginSec namespace:</t> | |||
| </t> | <dl newline="false" spacing="compact"> | |||
| <dt>URI:</dt> | ||||
| <t>Registration request for the loginSec namespace:</t> | <dd>urn:ietf:params:xml:ns:epp:loginSec-1.0</dd> | |||
| <dt>Registrant Contact:</dt> | ||||
| <t><list> | <dd>IESG</dd> | |||
| <t>URI: urn:ietf:params:xml:ns:epp:loginSec-1.0</t> | <dt>XML:</dt> | |||
| <dd>None. Namespace URIs do not represent an XML specification.</dd> | ||||
| <t>Registrant Contact: IESG</t> | </dl> | |||
| <t>Registration request for the loginSec XML Schema:</t> | ||||
| <t>XML: None. Namespace URIs do not represent an XML specification.</t> | <dl newline="false" spacing="compact"> | |||
| </list></t> | <dt>URI:</dt> | |||
| <dd>urn:ietf:params:xml:schema:epp:loginSec-1.0</dd> | ||||
| <t>Registration request for the loginSec XML schema:</t> | <dt>Registrant Contact:</dt> | |||
| <dd>IESG</dd> | ||||
| <t><list> | <dt>XML:</dt> | |||
| <t>URI: urn:ietf:params:xml:schema:epp:loginSec-1.0</t> | <dd>See the "Formal Syntax" section of this document.</dd> | |||
| </dl> | ||||
| <t>Registrant Contact: IESG</t> | </section> | |||
| <section anchor="EPP-Extension-Registry" numbered="true" toc="default"> | ||||
| <t>XML: See the "Formal Syntax" section of this document.</t> | <name>EPP Extension Registry</name> | |||
| <t>The EPP extension described in this document has been registered | ||||
| </list></t> | by IANA in the "Extensions for the Extensible Provisioning | |||
| Protocol (EPP)" registry described in <xref | ||||
| </section> | target="RFC7451" format="default"/>. The details of the registration | |||
| are as follows:</t> | ||||
| <section anchor="EPP-Extension-Registry" title="EPP Extension Registry"> | <dl newline="false" spacing="compact"> | |||
| <dt>Name of Extension:</dt> | ||||
| <t> | <dd>"Login Security Extension for the Extensible | |||
| The EPP extension described in this document should be registered by | Provisioning Protocol (EPP)"</dd> | |||
| the IANA in the EPP Extension Registry described in <xref target="RFC7451"/>. | <dt>Document status:</dt> | |||
| The | <dd>Standards Track</dd> | |||
| details of the registration are as follows: | <dt>Reference:</dt> | |||
| </t> | <dd>RFC 8807</dd> | |||
| <dt>Registrant Name and Email Address:</dt> | ||||
| <t> | <dd>IESG, <iesg@ietf.org></dd> | |||
| Name of Extension: "Login Security Extension for the Extensible Provisio | <dt>Top-Level Domains(TLDs):</dt> | |||
| ning Protocol (EPP)" | <dd>Any</dd> | |||
| </t> | <dt>IPR Disclosure:</dt> | |||
| <dd>None</dd> | ||||
| <t> | <dt>Status:</dt> | |||
| Document status: Standards Track | <dd>Active</dd> | |||
| </t> | <dt>Notes:</dt> | |||
| <dd>None</dd> | ||||
| <t> | </dl> | |||
| Reference: (insert reference to RFC version of this document) | ||||
| </t> | ||||
| <t> | ||||
| Registrant Name and Email Address: IESG, <iesg@ietf.org> | ||||
| </t> | ||||
| <t> | ||||
| TLDs: Any | ||||
| </t> | ||||
| <t> | ||||
| IPR Disclosure: None | ||||
| </t> | ||||
| <t> | ||||
| Status: Active | ||||
| </t> | ||||
| <t> | ||||
| Notes: None | ||||
| </t> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="Implementation" title="Implementation Status"> | ||||
| <t>Note to RFC Editor: Please remove this section and the reference to | ||||
| <xref target="RFC7942">RFC 7942</xref> before publication.</t> | ||||
| <t>This section records the status of known implementations of the | ||||
| protocol defined by this specification at the time of posting of | ||||
| this Internet-Draft, and is based on a proposal described in <xref target= | ||||
| "RFC7942">RFC | ||||
| 7942</xref>. The description of implementations in this section is | ||||
| intended to assist the IETF in its decision processes in | ||||
| progressing drafts to RFCs. Please note that the listing of any | ||||
| individual implementation here does not imply endorsement by the | ||||
| IETF. Furthermore, no effort has been spent to verify the | ||||
| information presented here that was supplied by IETF contributors. | ||||
| This is not intended as, and must not be construed to be, a | ||||
| catalog of available implementations or their features. Readers | ||||
| are advised to note that other implementations may exist.</t> | ||||
| <t>According to <xref target="RFC7942">RFC 7942</xref>, "this will allow r | ||||
| eviewers and working | ||||
| groups to assign due consideration to documents that have the | ||||
| benefit of running code, which may serve as evidence of valuable | ||||
| experimentation and feedback that have made the implemented | ||||
| protocols more mature. It is up to the individual working groups | ||||
| to use this information as they see fit".</t> | ||||
| <section title="Verisign EPP SDK"> | ||||
| <t>Organization: Verisign Inc.</t> | ||||
| <t>Name: Verisign EPP SDK</t> | ||||
| <t>Description: The Verisign EPP SDK includes both a full client impleme | ||||
| ntation | ||||
| and a full server stub implementation of draft-ietf-regext-login-securit | ||||
| y.</t> | ||||
| <t>Level of maturity: Development</t> | ||||
| <t>Coverage: All aspects of the protocol are implemented.</t> | ||||
| <t>Licensing: GNU Lesser General Public License</t> | ||||
| <t>Contact: jgould@verisign.com</t> | ||||
| <t>URL: https://www.verisign.com/en_US/channel-resources/domain-registry | ||||
| -products/epp-sdks</t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="Security" numbered="true" toc="default"> | ||||
| <section anchor="Security" title="Security Considerations"> | <name>Security Considerations</name> | |||
| <t>The Security Considerations of <xref target="RFC5730"/> apply in this d | <t>The security considerations of <xref target="RFC5730" | |||
| ocument, and this document enhances these considerations.</t> | format="default"/> apply in this document, and this document enhances | |||
| <t>The extension leaves the password (<pw> element) and new password | these considerations.</t> | |||
| (<newPW> element) minimum length | <t>The extension leaves the password (<pw> element) and new | |||
| greater than 6 characters and the maximum length up to server policy. The | password (<newPW> element) minimum length greater than 6 | |||
| server SHOULD enforce minimum and maximum length requirements that are | characters and the maximum length up to server policy. The server | |||
| appropriate for their operating environment. One example of a guideline f | <bcp14>SHOULD</bcp14> enforce minimum and maximum length requirements | |||
| or password length policies can be found in section 5 of | that are appropriate for their operating environment. One example of a | |||
| <eref target="https://pages.nist.gov/800-63-3/sp800-63b.html">NIST Special | guideline for password length policies can be found in Section 5 of | |||
| Publication 800-63B</eref>.</t> | <eref target="https://pages.nist.gov/800-63-3/sp800-63b.html">NIST | |||
| <t>The client SHOULD NOT decrease | Special Publication 800-63B</eref>.</t> | |||
| the security of a new password by decreasing the length of the current pas | <t>The client <bcp14>SHOULD NOT</bcp14> decrease | |||
| sword. For example, a client with a 20 character password set using | the security of a new password by decreasing the length of the current | |||
| the extension, should not use the login command in <xref target="RFC5730"/ | password. For example, a client with a 20-character password set using | |||
| > without using the extension, to set a new password that is less than or equal | the extension should not use the login command in <xref | |||
| to 16 characters.</t> | target="RFC5730" format="default"/> without using the extension to set | |||
| <t>The extension provides an extensible list of login security events to i | a new password that is less than or equal to 16 characters.</t> | |||
| nform clients of connection and login warnings and errors. | <t>The extension provides an extensible list of login security events to | |||
| The server returning of security events to unauthenticated users needs to | inform clients of connection and login warnings and errors. The server | |||
| take into account the security/privacy issues of | returning of security events to unauthenticated users needs to take into | |||
| returning information to potential attackers.</t> | account the security/privacy issues of returning information to | |||
| <t>The user agent information represents the client system of a system-to- | potential attackers.</t> | |||
| system interface, so the user | <t>The user-agent information represents the client system of a | |||
| agent information MUST NOT provide any ability to track individual users | system-to-system interface, so the user-agent information <bcp14>MUST | |||
| or classes of users.</t> | NOT</bcp14> provide any ability to track individual users or classes of | |||
| </section> | users.</t> | |||
| <section anchor="Acknowledgements" title="Acknowledgements"> | ||||
| <t>The authors wish to thank the following persons for their feedback and | ||||
| suggestions:</t> | ||||
| <t><list style="symbols"> | ||||
| <t>Martin Casanova</t> | ||||
| <t>Scott Hollenbeck</t> | ||||
| <t>Barry Leiba</t> | ||||
| <t>Patrick Mevzek</t> | ||||
| <t>Joseph Yee</t> | ||||
| </list></t> | ||||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <!-- *****BACK MATTER ***** --> | <!-- *****BACK MATTER ***** --> | |||
| <back> | <back> | |||
| <!-- References split into informative and normative --> | ||||
| <!-- There are 2 ways to insert reference entries from the citation librarie | ||||
| s: | ||||
| 1. define an ENTITY at the top, and use "ampersand character"RFC2629; here | ||||
| (as shown) | ||||
| 2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xm | ||||
| l"?> here | ||||
| (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis. | ||||
| xml") | ||||
| Both are cited textually in the same manner: by using xref elements. | ||||
| If you use the PI option, xml2rfc will, by default, try to find included fi | ||||
| les in the same | ||||
| directory as the including file. You can also define the XML_LIBRARY enviro | ||||
| nment variable | ||||
| with a value containing a set of directories to search. These can be eithe | ||||
| r in the local | ||||
| filing system or remote ones accessed by http (http://domain/dir/... ).--> | ||||
| <references title="Normative References"> | ||||
| &RFC2119; | ||||
| &RFC3688; | ||||
| &RFC5730; | ||||
| &RFC7942; | ||||
| &RFC8174; | ||||
| &W3C.REC-xmlschema-2-20041028; | ||||
| </references> | ||||
| <references title="Informative References"> | ||||
| &RFC5234; | ||||
| &RFC7451; | <references> | |||
| <name>References</name> | ||||
| <references> | ||||
| <name>Normative References</name> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.2119.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.3688.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.5730.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.8174.xml"/> | ||||
| &RFC8265; | <reference anchor="W3C.REC-xmlschema-2-20041028" target="http://www.w3.o | |||
| rg/TR/2004/REC-xmlschema-2-20041028" xml:base="https://xml2rfc.tools.ietf.org/pu | ||||
| blic/rfc/bibxml4/reference.W3C.REC-xmlschema-2-20041028.xml"> | ||||
| <front> | ||||
| <title>XML Schema Part 2: Datatypes Second Edition</title> | ||||
| <seriesInfo name="W3C Recommendation" value="REC-xmlschema-2-2004102 | ||||
| 8"/> | ||||
| <author initials="P." surname="Biron" fullname="Paul V. Biron"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="A." surname="Malhotra" fullname="Ashok Malhotra"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="October" year="2004"/> | ||||
| </front> | ||||
| </reference> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxm | ||||
| l/reference.RFC.5234.xml"/> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.7451.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.8265.xml"/> | ||||
| </references> | ||||
| </references> | </references> | |||
| <section anchor="Acknowledgements" numbered="false" toc="default"> | ||||
| <section title="Change History"> | <name>Acknowledgements</name> | |||
| <t>The authors wish to thank the following persons for their feedback | ||||
| <t>[[RFC Editor: Please remove this section.]]</t> | and suggestions: <contact fullname="Martin Casanova"/>, <contact | |||
| fullname="Scott Hollenbeck"/>, <contact fullname="Barry Leiba"/>, | ||||
| <section title="Change from 00 to 01" anchor="change-00-to-01"> | <contact fullname="Patrick Mevzek"/>, and <contact fullname="Joseph | |||
| <t><list style="numbers"> | Yee"/>.</t> | |||
| <t>Based on the feedback from Patrick Mevzek and a proposal from Scott H | ||||
| ollenbeck, changed the minimum length of the password from 8 to 6, revised the d | ||||
| escription of the password, | ||||
| and added text in the Security Considerations section for the server pas | ||||
| sword length policy.</t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="Change from 01 to 02" anchor="change-01-to-02"> | ||||
| <t><list style="numbers"> | ||||
| <t>Changed the XML namespace from urn:ietf:params:xml:ns:loginSec-0.3 to | ||||
| urn:ietf:params:xml:ns:epp:loginSec-0.3, | ||||
| and changed the XML schema registration from urn:ietf:params:xml:ns:logi | ||||
| nSec-0.3 to urn:ietf:params:xml:schema:epp:loginSec-0.3 based | ||||
| on a request from IANA with draft-ietf-regext-allocation-token.</t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="Change from 02 to 03" anchor="change-02-to-03"> | ||||
| <t><list style="numbers"> | ||||
| <t>Updates based on the review by Patrick Mevzek, that include: | ||||
| <list style="numbers"> | ||||
| <t>Fix the inconsistent case for newPW, that required a global chang | ||||
| e in the draft text and an update to the XML schema to "urn:ietf:params:xml:ns:l | ||||
| oginSec-0.3".</t> | ||||
| <t>Changed "contains the following child elements" to "MUST contain | ||||
| at least one of the following child elements", section "EPP <login> Comman | ||||
| d" to ensure that | ||||
| an empty <loginSec:loginSec> element is not passed.</t> | ||||
| <t>Add "The client SHOULD NOT decrease the security of a new passwor | ||||
| d by decreasing the length of the current password." along with an example to th | ||||
| e "Security Considerations" section.</t> | ||||
| </list> | ||||
| </t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="Change from 03 to REGEXT 00" anchor="change-03-to-WG00"> | ||||
| <t><list style="numbers"> | ||||
| <t>Changed to regext working group draft by changing draft-gould-regext- | ||||
| login-security to draft-ietf-regext-login-security.</t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="Change from REGEXT 00 to REGEXT 01" anchor="change-WG00-to- | ||||
| WG01"> | ||||
| <t><list style="numbers"> | ||||
| <t>Changed the <loginSec:userAgent> element to be structured with | ||||
| the <loginSec:app>, <loginSec:tech>, and <loginSec:os> sub-ele | ||||
| ments. This was based on the | ||||
| feedback from Martin Casanova. This resulted in the need to change the | ||||
| XML namespace from urn:ietf:params:xml:ns:epp:loginSec-0.3 to urn:ietf:params:xm | ||||
| l:ns:epp:loginSec-0.4.</t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="Change from REGEXT 01 to REGEXT 02" anchor="change-WG01-to- | ||||
| WG02"> | ||||
| <t><list style="numbers"> | ||||
| <t>Updated the Implementation Status section from "TBD" to include the Ve | ||||
| risign EPP SDK implementation.</t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="Change from REGEXT 02 to REGEXT 03" anchor="change-WG02-to- | ||||
| WG03"> | ||||
| <t><list style="numbers"> | ||||
| <t>Revised the description of the "duration" attribute to clarify that i | ||||
| t ends when the | ||||
| login command was received and to clarify the format, based on the feedb | ||||
| ack from Martin Casanova.</t> | ||||
| <t>Revised the sentence 'Upon a completed login command (success or fail | ||||
| ed), the extension MUST | ||||
| be included in the response based on the following conditions:' to 'Up | ||||
| on a completed login command (success or failed), | ||||
| the extension MUST be included in the response based on both of the fo | ||||
| llowing conditions:' based on the feedback from Patrick Mevzek.</t> | ||||
| <t>Updates based on the review by Joseph Yee, that include: | ||||
| <list style="numbers"> | ||||
| <t>Revised the description of the <loginSec:event> "name" attr | ||||
| ibute read 'Used to define a sub-type when the "type" attribute is not "custom" | ||||
| or the full type name when the "type" attribute is "custom"'. | ||||
| The definition of the "stat" type was updated to 'Provides a login s | ||||
| ecurity statistical warning that MUST set the "name" attribute to the name of th | ||||
| e statistic.'</t> | ||||
| <t>Added the following sentence 'The server MUST NOT allow the clien | ||||
| t to set the password to the value "[LOGIN-SECURITY]".' to address the corner ca | ||||
| se where the constant is used as the password.</t> | ||||
| <t>Revised the description of the <loginSec:userAgent> element | ||||
| to read 'The <loginSec:userAgent> element MUST contain at least one of th | ||||
| e following child elements:'.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Revised the description of the <loginSec:userAgent> to match th | ||||
| e child elements that can be passed, by changing "client software" to "client ap | ||||
| plication software" and change "language" to "technology".</t> | ||||
| <t>Changed the XML namespace from urn:ietf:params:xml:ns:epp:loginSec-0. | ||||
| 4 to urn:ietf:params:xml:ns:epp:loginSec-1.0.</t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="Change from REGEXT 03 to REGEXT 04" anchor="change-WG03-to-W | ||||
| G04"> | ||||
| <t>Updates based on the review by Joseph Yee, that include: | ||||
| <list style="numbers"> | ||||
| <t>Update the definition of the "stat" security event type to refere | ||||
| nce sub-type to match the language for the "name" attribute.</t> | ||||
| <t>Added the sentence 'The "name" attribute MUST be set when the "ty | ||||
| pe" attribute is "stat" or "custom".' to the definition of the "name" attribute | ||||
| for clarity.</t> | ||||
| <t>Update the definition of the "userAgentType" in the XML schema to | ||||
| require at least one sub-element using a <choice> element.</t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| <section title="Change from REGEXT 04 to REGEXT 05" anchor="change-WG04-to-W | ||||
| G05"> | ||||
| <t>Updates based on the review by Barry Leiba, that include: | ||||
| <list style="numbers"> | ||||
| <t>In section 1.1, updated to use BCP 14 boilerplate and references | ||||
| as defined in RFC 8174.</t> | ||||
| <t>In section 1.1, change "REQUIRED" to "required".</t> | ||||
| <t>Keep the "Migration to Newer Versions of This Extension" section | ||||
| by removing the note for removal to the RFC Editor.</t> | ||||
| <t>In section 3.1, change "MAY be multiple events returned that prov | ||||
| ides information" to "MAY be multiple events returned that provide information". | ||||
| </t> | ||||
| <t>In section 3.1, change "free form" to "free-form".</t> | ||||
| <t>In section 3.1, change "The enumerated list of "type" v | ||||
| alues include:" to "The enumerated list of "type" values includes:".</ | ||||
| t> | ||||
| <t>In section 3.1, change "Identifies the language of the free-form | ||||
| description if the negotiated language is something other than the | ||||
| default value of "en" (English)." to "Identifies the nego | ||||
| tiated language of the free-form description. The default is "en" (English).</t | ||||
| > | ||||
| <t>In section 3.1, change example description from "Examp | ||||
| le login security event for a password expiring in a week:" to | ||||
| "Example login security event for password expiration, wh | ||||
| ere the current date is 2018-03-25:".</t> | ||||
| <t>In section 4.1, change "Example EPP response to a succ | ||||
| essful login command where the password will expire in a week:" to | ||||
| "Example EPP response to a successful login command on 20 | ||||
| 18-03-25, where the password will expire in a week:".</t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| <section title="Change from REGEXT 05 to REGEXT 06" anchor="change-WG05-to-W | ||||
| G06"> | ||||
| <t>Updates based on the review by Brian Carpenter, that include: | ||||
| <list style="numbers"> | ||||
| <t>In section 1, change the references to RFC 5730 to use links.</t> | ||||
| <t>In section 2, change "(for a temporary migration period)" to "(fo | ||||
| r a temporary migration period up to server policy)".</t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| <section title="Change from REGEXT 06 to REGEXT 07" anchor="change-WG06-to-W | ||||
| G07"> | ||||
| <t><list style="numbers"> | ||||
| <t>Updates based on feedback from Barry Leiba, added recommendations on | ||||
| the characters used for the plain text password. | ||||
| Recommended the use of printable ASCII passwords and | ||||
| if non-ASCII characters are supported, to use a standard for passwords w | ||||
| ith international characters, such as | ||||
| the OpaqueString PRECIS profile in <xref target="RFC8265"/>.</t> | ||||
| <t>Based on the feedback from Carlos Pignataro, added "[[RFC Editor: Ple | ||||
| ase remove this section.]]" to the "Change History" section.</t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="Change from REGEXT 07 to REGEXT 08" anchor="change-WG07-to-W | ||||
| G08"> | ||||
| <t><list style="numbers"> | ||||
| <t>Based on feedback from Eric Vyncke during the IESG review, changed <x | ||||
| ref target="RFC8174"/> from the informative references into the normative refere | ||||
| nces.</t> | ||||
| <t>Based on feedback from Alissa Cooper during the IESG review, changed | ||||
| the sentence | ||||
| "One schema is presented here that is the EPP Login Security Extension | ||||
| schema." in section 5 | ||||
| to "The EPP Login Security Extension schema is presented here.".</t> | ||||
| <t>Changed "sever policy" to "server policy" in section 8.</t> | ||||
| <t>Updates based on feedback from Roman Danyliw during the IESG review: | ||||
| <list style="numbers"> | ||||
| <t>Changed "pasword" to "password" in section 1.</t> | ||||
| <t>In section 3.1, added a reference to section 3.3.3 of <xref targe | ||||
| t="W3C.REC-xmlschema-2-20041028"/> for the format of the "lang" attribute. | ||||
| Added the corresponding section (3.2.6) for the "duration" attribute | ||||
| .</t> | ||||
| <t>Added the "XML" prefix for each reference to "schema" in the intr | ||||
| oduction of section 5.</t> | ||||
| <t>Added the leading sentence "The Security Considerations of <xref | ||||
| target="RFC5730"/> apply in this document, and this document enhances these cons | ||||
| iderations." to section 8.</t> | ||||
| <t>Added the sentence 'The possible set of "name" values, by event t | ||||
| ype, can be discovered / negotiated out of band to EPP or using a | ||||
| separate EPP extension designed to provide server policy informati | ||||
| on to the client.' | ||||
| to the description of the "name" attribute.</t> | ||||
| <t>Added a description of how to create the <loginSec:app>, &l | ||||
| t;loginSec:tech>, and <loginSec:os> values using ABNF.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Updates based on feedback from Alexey Melnikov during the IESG review | ||||
| : | ||||
| <list style="numbers"> | ||||
| <t>Added a description of "whitespace" to section 1.1.</t> | ||||
| <t>Added a description of the usage of the user agent information | ||||
| in section 4.1.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Updates based on feedback from Benjamin Kaduk during the IESG review: | ||||
| <list style="numbers"> | ||||
| <t>Added "A newer version of the extension is expected to use an XML | ||||
| namespace with a higher version number than the prior versions." to the first p | ||||
| aragraph of section 2.</t> | ||||
| <t>In section 3.1, replace the sentence "There MAY be multiple event | ||||
| s returned that provide information for the client to address." with "The <lo | ||||
| ginSec:event> element | ||||
| is contained in a list of one or more elements in the <loginSec:l | ||||
| oginSecData> element, | ||||
| so there MAY be multiple events returned that provide information fo | ||||
| r the client to address."</t> | ||||
| <t>In section 3.1, for the "exDate" attribute, replace the sentence | ||||
| "At expiry there MAY be an error to connect or MAY be an error to login." with | ||||
| "At expiry there MAY be a connection failure or MAY be a login failu | ||||
| re." and a similar change to the following sentence.</t> | ||||
| <t>In section 3.1, replace the description of the "cipher" type and | ||||
| the "tlsProtocol" type.</t> | ||||
| <t>In section 3.1, add a sentence that the "exDate" attribute MUST b | ||||
| e set for the "password" type and the "certificate" type.</t> | ||||
| <t>Updates the dates by replacing 2018 with 2020.</t> | ||||
| <t>In section 3.2, update the MUST override sentences for the <lo | ||||
| ginSec:pw> and the <loginSec:newPw> elements.</t> | ||||
| <t>In section 4.1, update "OPTIONAL client user agent" with "OPTIONA | ||||
| L client user agent information" for the description of the <loginSec:userAge | ||||
| nt> element.</t> | ||||
| <t>In section 4.1, replace "MUST only be used" to "MUST only be set" | ||||
| for the <loginSec:pw> and <loginSec:newPw> elements.</t> | ||||
| <t>Updated references of "x86_64 Mac OS X 10.11.6" to "x86_64 Mac OS | ||||
| X 10.15.2".</t> | ||||
| <t>In section 4.1, replace "MUST be included in the response based o | ||||
| n both of the following conditions" with | ||||
| "MUST be included in the response when both of the following condi | ||||
| tions hold".</t> | ||||
| <t>In section 4.1, update the "exDate" for the "password" security e | ||||
| vent error to be | ||||
| "2020-03-24T22:00:00.0Z" so that it's prior to the date 2020-03-25 | ||||
| reference previously.</t> | ||||
| <t>In section 8, add the sentence "The server returning of security | ||||
| events to unauthenticated users | ||||
| needs to take into account the security/privacy issues of returnin | ||||
| g information to potential attackers." | ||||
| to the end of the last paragraph.</t> | ||||
| <t>In section 8, change "minimum length beyond 6 characters" to "min | ||||
| imum length greater than 6 characters".</t> | ||||
| <t>In section 8, add the sentence "The user agent information repres | ||||
| ents the client system of a system-to-system interface, so the user | ||||
| agent information MUST NOT provide any ability to track individual | ||||
| users or classes of users."</t> | ||||
| </list> | ||||
| </t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="Change from REGEXT 08 to REGEXT 09" anchor="change-WG08-to-W | ||||
| G08"> | ||||
| <t><list style="numbers"> | ||||
| <t>Based on feedback from Barry Leiba in responding to Benjamin Kaduk's | ||||
| discuss item, | ||||
| changed "It is recommended that the plain text..." to "It is RECOMMEND | ||||
| ED that the plain text..." and | ||||
| "If non-ASCII characters are supported with the plain text password, t | ||||
| hen use a standard for passwords | ||||
| with international characters, such as the OpaqueString PRECIS profile | ||||
| in [RFC8265]." to | ||||
| "If non-ASCII characters are supported with the plain text password, t | ||||
| hen use a standard for passwords | ||||
| with international characters; the OpaqueString PRECIS profile in [RFC | ||||
| 8265] is recommended in the absence of | ||||
| other considerations."</t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="Change from REGEXT 09 to REGEXT 10" anchor="change-WG09-to-W | ||||
| G10"> | ||||
| <t><list style="numbers"> | ||||
| <t>Based on feedback from Benjamin Kaduk, added the sentence | ||||
| "EPP <xref target="RFC5730"/> includes a maximum password length of 16 | ||||
| characters that inhibits | ||||
| implementing stronger password security policies with higher entropy. | ||||
| " to the Introduction.</t> | ||||
| </list></t> | ||||
| </section> | </section> | |||
| </section> | ||||
| </back> | </back> | |||
| <!-- vim: set ts=2 sw=2 expandtab: --> | ||||
| </rfc> | </rfc> | |||
| End of changes. 69 change blocks. | ||||
| 1013 lines changed or deleted | 535 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||