draft-ietf-regext-login-security-07.txt | draft-ietf-regext-login-security-08.txt | |||
---|---|---|---|---|
Network Working Group J. Gould | Network Working Group J. Gould | |||
Internet-Draft M. Pozun | Internet-Draft M. Pozun | |||
Intended status: Standards Track VeriSign, Inc. | Intended status: Standards Track VeriSign, Inc. | |||
Expires: June 8, 2020 December 6, 2019 | Expires: August 2, 2020 January 30, 2020 | |||
Login Security Extension for the Extensible Provisioning Protocol (EPP) | Login Security Extension for the Extensible Provisioning Protocol (EPP) | |||
draft-ietf-regext-login-security-07 | draft-ietf-regext-login-security-08 | |||
Abstract | Abstract | |||
The Extensible Provisioning Protocol (EPP) includes a client | The Extensible Provisioning Protocol (EPP) includes a client | |||
authentication scheme that is based on a user identifier and | authentication scheme that is based on a user identifier and | |||
password. The structure of the password field is defined by an XML | password. The structure of the password field is defined by an XML | |||
Schema data type that specifies minimum and maximum password length | Schema data type that specifies minimum and maximum password length | |||
values, but there are no other provisions for password management | values, but there are no other provisions for password management | |||
other than changing the password. This document describes an EPP | other than changing the password. This document describes an EPP | |||
extension that allows longer passwords to be created and adds | extension that allows longer passwords to be created and adds | |||
skipping to change at page 1, line 37 ¶ | skipping to change at page 1, line 37 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on June 8, 2020. | This Internet-Draft will expire on August 2, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
skipping to change at page 2, line 17 ¶ | skipping to change at page 2, line 17 ¶ | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Conventions Used in This Document . . . . . . . . . . . . 3 | 1.1. Conventions Used in This Document . . . . . . . . . . . . 3 | |||
2. Migrating to Newer Versions of This Extension . . . . . . . . 3 | 2. Migrating to Newer Versions of This Extension . . . . . . . . 3 | |||
3. Object Attributes . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Object Attributes . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3.1. Event . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3.1. Event . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3.2. "[LOGIN-SECURITY]" Password . . . . . . . . . . . . . . . 6 | 3.2. "[LOGIN-SECURITY]" Password . . . . . . . . . . . . . . . 6 | |||
3.3. Dates and Times . . . . . . . . . . . . . . . . . . . . . 6 | 3.3. Dates and Times . . . . . . . . . . . . . . . . . . . . . 6 | |||
4. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 6 | 4. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 7 | |||
4.1. EPP <login> Command . . . . . . . . . . . . . . . . . . . 6 | 4.1. EPP <login> Command . . . . . . . . . . . . . . . . . . . 7 | |||
5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 14 | 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
5.1. Login Security Extension Schema . . . . . . . . . . . . . 14 | 5.1. Login Security Extension Schema . . . . . . . . . . . . . 15 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | |||
6.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 16 | 6.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 17 | |||
6.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 17 | 6.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 18 | |||
7. Implementation Status . . . . . . . . . . . . . . . . . . . . 17 | 7. Implementation Status . . . . . . . . . . . . . . . . . . . . 18 | |||
7.1. Verisign EPP SDK . . . . . . . . . . . . . . . . . . . . 18 | 7.1. Verisign EPP SDK . . . . . . . . . . . . . . . . . . . . 19 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | |||
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 19 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 20 | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 19 | 10.2. Informative References . . . . . . . . . . . . . . . . . 21 | |||
10.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | 10.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
Appendix A. Change History . . . . . . . . . . . . . . . . . . . 20 | Appendix A. Change History . . . . . . . . . . . . . . . . . . . 21 | |||
A.1. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 20 | A.1. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 21 | |||
A.2. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 20 | A.2. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 21 | |||
A.3. Change from 02 to 03 . . . . . . . . . . . . . . . . . . 20 | A.3. Change from 02 to 03 . . . . . . . . . . . . . . . . . . 22 | |||
A.4. Change from 03 to REGEXT 00 . . . . . . . . . . . . . . . 21 | A.4. Change from 03 to REGEXT 00 . . . . . . . . . . . . . . . 22 | |||
A.5. Change from REGEXT 00 to REGEXT 01 . . . . . . . . . . . 21 | A.5. Change from REGEXT 00 to REGEXT 01 . . . . . . . . . . . 22 | |||
A.6. Change from REGEXT 01 to REGEXT 02 . . . . . . . . . . . 21 | A.6. Change from REGEXT 01 to REGEXT 02 . . . . . . . . . . . 22 | |||
A.7. Change from REGEXT 02 to REGEXT 03 . . . . . . . . . . . 21 | A.7. Change from REGEXT 02 to REGEXT 03 . . . . . . . . . . . 22 | |||
A.8. Change from REGEXT 03 to REGEXT 04 . . . . . . . . . . . 22 | A.8. Change from REGEXT 03 to REGEXT 04 . . . . . . . . . . . 23 | |||
A.9. Change from REGEXT 04 to REGEXT 05 . . . . . . . . . . . 22 | A.9. Change from REGEXT 04 to REGEXT 05 . . . . . . . . . . . 23 | |||
A.10. Change from REGEXT 05 to REGEXT 06 . . . . . . . . . . . 23 | A.10. Change from REGEXT 05 to REGEXT 06 . . . . . . . . . . . 24 | |||
A.11. Change from REGEXT 06 to REGEXT 07 . . . . . . . . . . . 23 | A.11. Change from REGEXT 06 to REGEXT 07 . . . . . . . . . . . 24 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 | A.12. Change from REGEXT 07 to REGEXT 08 . . . . . . . . . . . 24 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 | ||||
1. Introduction | 1. Introduction | |||
This document describes an Extensible Provisioning Protocol (EPP) | This document describes an Extensible Provisioning Protocol (EPP) | |||
extension for enhancing the security of the EPP login command in EPP | extension for enhancing the security of the EPP login command in EPP | |||
[RFC5730]. The enhancements include supporting longer passwords (or | [RFC5730]. The enhancements include supporting longer passwords (or | |||
passphrases) than the 16-character maximum and providing a list of | passphrases) than the 16-character maximum and providing a list of | |||
security events in the login response. The password (current and | security events in the login response. The password (current and | |||
new) in EPP [RFC5730] can be overridden by the password included in | new) in EPP [RFC5730] can be overridden by the password included in | |||
the extension to extend past the 16-character maximum. The security | the extension to extend past the 16-character maximum. The security | |||
events supported include: password expiry, client certificate expiry, | events supported include: password expiry, client certificate expiry, | |||
insecure cipher, insecure TLS protocol, new pasword complexity, login | insecure cipher, insecure TLS protocol, new password complexity, | |||
security statistical warning, and a custom event. The attributes | login security statistical warning, and a custom event. The | |||
supported by the security events include identifying the event type | attributes supported by the security events include identifying the | |||
or sub-type, indicating the security level of warning or error, a | event type or sub-type, indicating the security level of warning or | |||
future or past-due expiration date, the value that resulted in the | error, a future or past-due expiration date, the value that resulted | |||
event, the duration of the statistical event, and a free-form | in the event, the duration of the statistical event, and a free-form | |||
description with an optional language. | description with an optional language. | |||
1.1. Conventions Used in This Document | 1.1. Conventions Used in This Document | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
skipping to change at page 3, line 40 ¶ | skipping to change at page 3, line 41 ¶ | |||
represents lines returned by a protocol server. Indentation and | represents lines returned by a protocol server. Indentation and | |||
white space in examples are provided only to illustrate element | white space in examples are provided only to illustrate element | |||
relationships and are not a required feature of this protocol. | relationships and are not a required feature of this protocol. | |||
"loginSec-1.0" is used as an abbreviation for | "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 it and | "loginSec" is used, but implementations MUST NOT depend on it and | |||
instead employ a proper namespace-aware XML parser and serializer to | instead employ a proper namespace-aware XML parser and serializer to | |||
interpret and output the XML documents. | interpret and output the XML documents. | |||
"whitespace" is defined by the XML schema whiteSpace datatype in | ||||
[W3C.REC-xmlschema-2-20041028], which only includes the ASCII | ||||
whitespace characters #x9 (tab), #xA (linefeed), #xD (carriage | ||||
return), and #x20 (space). | ||||
2. Migrating to Newer Versions of This Extension | 2. Migrating to Newer Versions of This Extension | |||
Servers which implement this extension SHOULD provide a way for | Servers which implement this extension SHOULD provide a way 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. | 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 the prior versions. | ||||
Servers SHOULD (for a temporary migration period up to server policy) | Servers SHOULD (for a temporary migration period up to server policy) | |||
provide support for older versions of the extension in parallel to | provide support for older versions of the extension in parallel to | |||
the newest version, and allow clients to select their preferred | the newest version, and allow clients to select their preferred | |||
version via the <svcExtension> element of the <login> command. | version via the <svcExtension> element of the <login> command. | |||
If a client requests multiple versions of the extension at login, | If a client requests multiple versions of the extension at login, | |||
then, when preparing responses to commands which do not include | then, when preparing responses to commands which do not include | |||
extension elements, the server SHOULD only include extension 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 | |||
skipping to change at page 4, line 24 ¶ | skipping to change at page 4, line 31 ¶ | |||
3. Object Attributes | 3. Object Attributes | |||
This extension adds additional elements to [RFC5730] login command | This extension adds additional elements to [RFC5730] login command | |||
and response. Only those new elements are described here. | and response. Only those new elements are described here. | |||
3.1. Event | 3.1. Event | |||
A security event, using the <loginSec:event> element, represents | A security event, using the <loginSec:event> element, represents | |||
either a warning or error identified by the server after the client | either a warning or error identified by the server after the client | |||
has connected and submitted the login command. There MAY be multiple | has connected and submitted the login command. The <loginSec:event> | |||
events returned that provide information for the client to address. | element is contained in a list of one or more elements in the | |||
The <loginSec:event> MAY include a free-form description. All of the | <loginSec:loginSecData> element, so there MAY be multiple events | |||
returned that provide information for the client to address. The | ||||
<loginSec:event> MAY include a free-form description. All of the | ||||
security events use a consistent set of attributes, where the exact | security events use a consistent set of attributes, where the exact | |||
set of applicable attributes is based on the event type. The | set of applicable attributes is based on the event type. The | |||
supported set of <loginSec:event> element attributes include: | supported set of <loginSec:event> element attributes include: | |||
"type": A REQUIRED attribute that defines the type of security | "type": A REQUIRED attribute that defines the type of security | |||
event. The enumerated list of "type" values includes: | event. The enumerated list of "type" values includes: | |||
"password": Identifies a password expiry event, where the | "password": Identifies a password expiry event, where the | |||
password expires in the future or has expired based on the | password expires in the future or has expired based on the | |||
"exDate" date and time. | "exDate" date and time. The "exDate" attribute MUST be set | |||
with the password expiry date and time. | ||||
"certificate": Identifies a client certificate expiry event, | "certificate": Identifies a client certificate expiry event, | |||
where the client certificate will expire at the "exDate" date | where the client certificate will expire at the "exDate" date | |||
and time. | and time. The "exDate" attribute MUST be set with the | |||
certificate expiry date and time. | ||||
"cipher": Identifies the use of an insecure or deprecated TLS | "cipher": Identifies the use of an insecure or deprecated TLS | |||
cipher suite. | cipher suite. The "name" attribute MUST be set with the name | |||
of the cipher suite, which is free-form and is not expected | ||||
to be parsed and automatically addressed by the client. An | ||||
example of cipher suite names can be found in the TLS Cipher | ||||
Suites of the Transport Layer Security (TLS) Parameters IANA | ||||
Registry [1]. | ||||
"tlsProtocol": Identifies the use of an insecure or deprecated | "tlsProtocol": Identifies the use of an insecure or deprecated | |||
TLS protocol. | TLS protocol. The "name" attribute MUST be set with the name | |||
of the TLS protocol, which is free-form and is not expected | ||||
to be parsed and automatically addressed by the client. | ||||
"newPW": The new password does not meet the server password | "newPW": The new password does not meet the server password | |||
complexity requirements. | complexity requirements. | |||
"stat": Provides a login security statistical warning that MUST | "stat": Provides a login security statistical warning that MUST | |||
set the "name" attribute to the name of the statistic sub- | set the "name" attribute to the name of the statistic sub- | |||
type. | type. | |||
"custom": Custom event type that MUST set the "name" attribute | "custom": Custom event type that MUST set the "name" attribute | |||
with the custom event type name. | with the custom event type name. | |||
"name": Used to define a sub-type when the "type" attribute is not | "name": Used to define a sub-type when the "type" attribute is not | |||
"custom" or the full type name when the "type" attribute is | "custom" or the full type name when the "type" attribute is | |||
"custom". The "name" attribute MUST be set when the "type" | "custom". The "name" attribute MUST be set when the "type" | |||
attribute is "stat" or "custom". | attribute is "stat" or "custom". The possible set of "name" | |||
values, by event type, can be discovered / negotiated out of band | ||||
to EPP or using a separate EPP extension designed to provide | ||||
server policy information to the client. | ||||
"level": Defines the level of the event as either "warning" for a | "level": Defines the level of the event as either "warning" for a | |||
warning event that needs action, or "error" for an error event | warning event that needs action, or "error" for an error event | |||
that requires immediate action. | that requires immediate action. | |||
"exDate": Contains the date and time that a "warning" level has or | "exDate": Contains the date and time that a "warning" level has or | |||
will become an "error" level. At expiry there MAY be an error to | will become an "error" level. At expiry there MAY be a | |||
connect or MAY be an error to login. An example is an expired | connection failure or MAY be a login failure. An example is an | |||
certificate that will result in an error to connect or an expired | expired certification that will result in a connection failure or | |||
password that may result in a failed login. | an expired password that may result in a login failure. | |||
"value": Identifies the value that resulted in the login security | "value": Identifies the value that resulted in the login security | |||
event. An example is the negotiated insecure cipher suite or the | event. An example is the negotiated insecure cipher suite or the | |||
negotiated insecure TLS protocol. | negotiated insecure TLS protocol. | |||
"duration": Defines the duration that a statistical event is | "duration": Defines the duration that a statistical event is | |||
associated with, ending when the login command was received. The | associated with, ending when the login command was received. The | |||
format of the duration is defined by the duration primitive | format of the duration is defined by the duration primitive | |||
datatype in [W3C.REC-xmlschema-2-20041028]. | datatype in section 3.2.6 of [W3C.REC-xmlschema-2-20041028]. | |||
"lang": Identifies the negotiated language of the free-form | "lang": Identifies the negotiated language of the free-form | |||
description. The default is "en" (English). | description. The format of the language is defined by the | |||
language primitive datatype in section 3.3.3 of | ||||
[W3C.REC-xmlschema-2-20041028]. The default is "en" (English). | ||||
Example login security event for password expiration, where the | Example login security event for password expiration, where the | |||
current date is 2018-03-25: | current date is 2020-03-25: | |||
<loginSec:event | <loginSec:event | |||
type="password" | type="password" | |||
level="warning" | level="warning" | |||
exDate="2018-04-01T22:00:00.0Z" | exDate="2020-04-01T22:00:00.0Z" | |||
lang="en"> | lang="en"> | |||
Password expiration soon | Password expiration soon | |||
</loginSec:event> | </loginSec:event> | |||
Example login security event for identifying 100 failed logins over | Example login security event for identifying 100 failed logins over | |||
the last day, using the "stat" sub-type of "failedLogins": | the last day, using the "stat" sub-type of "failedLogins": | |||
<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> | </loginSec:event> | |||
3.2. "[LOGIN-SECURITY]" Password | 3.2. "[LOGIN-SECURITY]" Password | |||
The <loginSec:pw> element MUST override the [RFC5730] <pw> element | When the [RFC5730] <pw> element contains the predefined value of | |||
only if the <pw> contains the predefined value of "[LOGIN-SECURITY]", | "[LOGIN-SECURITY]", the <loginSec:pw> element overrides the <pw> | |||
which is a constant value for the server to use the <loginSec:pw> | element, which is a constant value for the server to use the | |||
element for the password. Similarly, the <loginSec:newPW> element | <loginSec:pw> element for the password. Similarly, when the | |||
MUST override the [RFC5730] <newPW> element only if the <newPW> | [RFC5730] <newPw> element contains the predefined value of "[LOGIN- | |||
contains the predefined value of "[LOGIN-SECURITY]", which is a | SECURITY]", the <loginSec:newPw> element overrides the <newPw> | |||
constant value for the server to use the <loginSec:newPW> element for | element, which is a constant value for the server to use the | |||
the new password. The "[LOGIN-SECURITY]" pre-defined string MUST be | <loginSec:newPW> element for the new password. The "[LOGIN- | |||
supported by the server for the client to explicitly indicate to the | SECURITY]" pre-defined string MUST be supported by the server for the | |||
server whether to use <loginSec:pw> element in place of the [RFC5730] | client to explicitly indicate to the server whether to use | |||
<pw> element or to use the <loginSec:newPW> in place of the [RFC5730] | <loginSec:pw> element in place of the [RFC5730] <pw> element or to | |||
<newPW> element. The server MUST NOT allow the client to set the | use the <loginSec:newPW> in place of the [RFC5730] <newPW> element. | |||
password to the value "[LOGIN-SECURITY]". | The server MUST NOT allow the client to set the password to the value | |||
"[LOGIN-SECURITY]". | ||||
3.3. Dates and Times | 3.3. Dates and Times | |||
Date and time attribute values MUST be represented in Universal | Date and time attribute values MUST be represented in Universal | |||
Coordinated Time (UTC) using the Gregorian calendar. The extended | Coordinated Time (UTC) using the Gregorian calendar. The extended | |||
date-time form using upper case "T" and "Z" characters defined in | date-time form using upper case "T" and "Z" characters defined in | |||
[W3C.REC-xmlschema-2-20041028] MUST be used to represent date-time | [W3C.REC-xmlschema-2-20041028] MUST be used to represent 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. | lower case "T" and "Z" characters. | |||
skipping to change at page 6, line 47 ¶ | skipping to change at page 7, line 22 ¶ | |||
This extension defines additional elements to extend the EPP <login> | This extension defines additional elements to extend the EPP <login> | |||
command and response to be used in conjunction with [RFC5730]. | command and response to be used in conjunction with [RFC5730]. | |||
The EPP <login> command is used to establish a session with an EPP | The EPP <login> command is used to establish a session with an EPP | |||
server. This extension overrides the password that is passed with | server. This extension overrides the password that is passed with | |||
the [RFC5730] <pw> or the <newPW> element as defined in Section 3.2. | the [RFC5730] <pw> or the <newPW> element as defined in Section 3.2. | |||
A <loginSec:loginSec> element is sent along with the [RFC5730] | A <loginSec:loginSec> element is sent along with the [RFC5730] | |||
<login> command and MUST contain at least one of the following child | <login> command and MUST contain at least one of the following child | |||
elements: | elements: | |||
<loginSec:userAgent>: OPTIONAL client user agent that identifies the | <loginSec:userAgent>: OPTIONAL client user agent information that | |||
client application software, technology, and operating system | identifies the client application software, technology, and | |||
used by the server to identify functional or security | operating system used by the server to identify functional or | |||
constraints, current security issues, and potential future | security constraints, current security issues, and potential | |||
functional or security issues for the client. The | future functional or security issues for the client. The server | |||
<loginSec:userAgent> element MUST contain at least one of the | may use the information for real-time identification and client | |||
following child elements: | 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 MUST contain | ||||
at least one of the following child elements: | ||||
<loginSec:app>: OPTIONAL name of the client application software | <loginSec:app>: OPTIONAL name of the client application software | |||
with version if available, such as the name of the client SDK | with version if available, such as the name of the client SDK | |||
"EPP SDK 1.0.0". | "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 [RFC5234] format: | ||||
app = name SP version | ||||
name = 1*VCHAR | ||||
version = 1*VCHAR | ||||
<loginSec:tech>: OPTIONAL technology used for the client | <loginSec:tech>: OPTIONAL technology used for the client | |||
software with version if available, such as "Java 11.0.2". | 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 [RFC5234] format: | ||||
tech = vendor SP name SP version | ||||
vendor = 1*VCHAR | ||||
name = 1*VCHAR | ||||
version = 1*VCHAR | ||||
<loginSec:os>: OPTIONAL client operating system used with | <loginSec:os>: OPTIONAL client operating system used with | |||
version if available, such as "x86_64 Mac OS X 10.11.6". | 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 [RFC5234] format: | ||||
os = arch SP name SP version | ||||
arch = 1*VCHAR | ||||
name = 1*VCHAR | ||||
version = 1*VCHAR | ||||
<loginSec:pw>: OPTIONAL plain text password that is case sensitive, | <loginSec:pw>: OPTIONAL plain text password that is case sensitive, | |||
has a minimum length of 6 characters, and has a maximum length | has a minimum length of 6 characters, and has a maximum length | |||
that is up to server policy. All leading and trailing whitespace | that is up to server policy. All leading and trailing whitespace | |||
is removed, and all internal contiguous whitespace that includes | is removed, and all internal contiguous whitespace that includes | |||
#x9 (tab), #xA (linefeed), #xD (carriage return), and #x20 | #x9 (tab), #xA (linefeed), #xD (carriage return), and #x20 | |||
(space) is replaced with a single #x20 (space). This element | (space) is replaced with a single #x20 (space). This element | |||
MUST only be used if the [RFC5730] <pw> element is set to the | MUST only be set if the [RFC5730] <pw> element is set to the | |||
"[LOGIN-SECURITY]" value. | "[LOGIN-SECURITY]" value. | |||
<loginSec:newPW>: OPTIONAL plain text new password that is case | <loginSec:newPW>: OPTIONAL plain text new password that is case | |||
sensitive, has a minimum length of 6 characters, and has a | sensitive, has a minimum length of 6 characters, and has a | |||
maximum length that is up to server policy. All leading and | maximum length that is up to server policy. All leading and | |||
trailing whitespace is removed, and all internal contiguous | trailing whitespace is removed, and all internal contiguous | |||
whitespace that includes #x9 (tab), #xA (linefeed), #xD (carriage | whitespace that includes #x9 (tab), #xA (linefeed), #xD (carriage | |||
return), and #x20 (space) is replaced with a single #x20 (space). | return), and #x20 (space) is replaced with a single #x20 (space). | |||
This element MUST only be used if the [RFC5730] <newPW> element | This element MUST only be set if the [RFC5730] <newPW> element is | |||
is set to the "[LOGIN-SECURITY]" value. | set to the "[LOGIN-SECURITY]" value. | |||
It is recommended that the plain text password in the <loginSec:pw> | It is recommended that the plain text password in the <loginSec:pw> | |||
and <loginSec:newPw> elements use printable ASCII characters #x20 | and <loginSec:newPw> elements use printable ASCII characters #x20 | |||
(space) - #x7E (~), with high entropy, such as 128 bits. If non- | (space) - #x7E (~), with high entropy, such as 128 bits. If non- | |||
ASCII characters are supported with the plain text password, then use | ASCII characters are supported with the plain text password, then use | |||
a standard for passwords with international characters, such as the | a standard for passwords with international characters, such as the | |||
OpaqueString PRECIS profile in [RFC8265]. | OpaqueString PRECIS profile in [RFC8265]. | |||
Example login command that uses the <loginSec:pw> element instead of | Example login command that uses the <loginSec:pw> element instead of | |||
the [RFC5730] <pw> element to establish the session and includes the | the [RFC5730] <pw> element to establish the session and includes the | |||
skipping to change at page 8, line 34 ¶ | skipping to change at page 9, line 34 ¶ | |||
C: <extURI>urn:ietf:params:xml:ns:epp:loginSec-1.0</extURI> | C: <extURI>urn:ietf:params:xml:ns:epp:loginSec-1.0</extURI> | |||
C: </svcExtension> | C: </svcExtension> | |||
C: </svcs> | C: </svcs> | |||
C: </login> | C: </login> | |||
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: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>Java 11.0.2</loginSec:tech> | C: <loginSec:tech>Vendor Java 11.0.6</loginSec:tech> | |||
C: <loginSec:os>x86_64 Mac OS X 10.11.6</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> | C:</epp> | |||
Example login command that uses the <loginSec:pw> element instead of | Example login command that uses the <loginSec:pw> element instead of | |||
the [RFC5730] <pw> element to establish the session, and uses the | the [RFC5730] <pw> element to establish the session, and uses the | |||
<loginSec:newPW> element instead of the [RFC5730] <newPW> element to | <loginSec:newPW> element instead of the [RFC5730] <newPW> element to | |||
skipping to change at page 10, line 41 ¶ | skipping to change at page 11, line 41 ¶ | |||
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> | C:</epp> | |||
Upon a completed login command (success or failed), the extension | Upon a completed login command (success or failed), the extension | |||
MUST be included in the response based on both of the following | MUST be included in the response when both of the following | |||
conditions: | conditions hold: | |||
Client supports extension: The client supports the extension based | Client supports extension: The client supports the extension based | |||
on the <svcExtension> element of the <login> command. | on the <svcExtension> element of the <login> command. | |||
At least one login security event: The server has identified at | At least one login security event: The server has identified at | |||
least one login security event to communicate to the client. | least one login security event to communicate to the client. | |||
The extension to the EPP response uses the <loginSec:loginSecData> | The extension to the EPP response uses the <loginSec:loginSecData> | |||
element that contains the following child elements: | element that contains the following child elements: | |||
<loginSec:event>: One or more <loginSec:event> elements defined in | <loginSec:event>: One or more <loginSec:event> elements defined in | |||
Section 3.1. | Section 3.1. | |||
Example EPP response to a successful login command on 2018-03-25, | Example EPP response to a successful login command on 2020-03-25, | |||
where the password will expire in a week: | where the password will expire in a week: | |||
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"> | |||
S: <loginSec:event | S: <loginSec:event | |||
S: type="password" | S: type="password" | |||
S: level="warning" | S: level="warning" | |||
S: exDate="2018-04-01T22:00:00.0Z" | S: exDate="2020-04-01T22:00:00.0Z" | |||
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> | |||
skipping to change at page 12, line 21 ¶ | skipping to change at page 13, line 21 ¶ | |||
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"> | |||
S: <loginSec:event | S: <loginSec:event | |||
S: type="password" | S: type="password" | |||
S: level="error" | S: level="error" | |||
S: exDate="2018-03-26T22:00:00.0Z"> | S: exDate="2020-03-24T22:00:00.0Z"> | |||
S: Password has expired | S: Password has expired | |||
S: </loginSec:event> | S: </loginSec:event> | |||
S: <loginSec:event | S: <loginSec:event | |||
S: type="newPW" | S: type="newPW" | |||
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> | |||
skipping to change at page 13, line 6 ¶ | skipping to change at page 14, line 6 ¶ | |||
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"> | |||
S: <loginSec:event | S: <loginSec:event | |||
S: type="password" | S: type="password" | |||
S: level="warning" | S: level="warning" | |||
S: exDate="2018-04-01T22:00:00.0Z" | S: exDate="2020-04-01T22:00:00.0Z" | |||
S: lang="en"> | S: lang="en"> | |||
S: Password expiration soon | S: Password expiration soon | |||
S: </loginSec:event> | S: </loginSec:event> | |||
S: <loginSec:event | S: <loginSec:event | |||
S: type="certificate" | S: type="certificate" | |||
S: level="warning" | S: level="warning" | |||
S: exDate="2018-04-02T22:00:00.0Z"/> | S: exDate="2020-04-02T22:00:00.0Z"/> | |||
S: <loginSec:event | S: <loginSec:event | |||
S: type="cipher" | S: type="cipher" | |||
S: level="warning" | S: level="warning" | |||
S: value="TLS_RSA_WITH_AES_128_CBC_SHA"> | S: value="TLS_RSA_WITH_AES_128_CBC_SHA"> | |||
S: Non-PFS Cipher negotiated | S: Non-PFS Cipher negotiated | |||
S: </loginSec:event> | S: </loginSec:event> | |||
S: <loginSec:event | S: <loginSec:event | |||
S: type="tlsProtocol" | S: type="tlsProtocol" | |||
S: level="warning" | S: level="warning" | |||
S: value="TLSv1.0"> | S: value="TLSv1.0"> | |||
skipping to change at page 14, line 7 ¶ | skipping to change at page 15, line 7 ¶ | |||
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> | S:</epp> | |||
5. Formal Syntax | 5. Formal Syntax | |||
One schema is presented here that is the EPP Login Security Extension | The EPP Login Security Extension schema is presented here. | |||
schema. | ||||
The formal syntax presented here is a complete schema representation | The formal syntax presented here is a complete XML schema | |||
of the object mapping suitable for automated validation of EPP XML | representation of the object mapping suitable for automated | |||
instances. The BEGIN and END tags are not part of the schema; they | validation of EPP XML instances. The BEGIN and END tags are not part | |||
are used to note the beginning and ending of the schema for URI | of the XML schema; they are used to note the beginning and ending of | |||
registration purposes. | the XML schema for URI registration purposes. | |||
5.1. Login Security Extension Schema | 5.1. Login Security Extension Schema | |||
BEGIN | 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" | |||
skipping to change at page 18, line 35 ¶ | skipping to change at page 19, line 31 ¶ | |||
Licensing: GNU Lesser General Public License | Licensing: GNU Lesser General Public License | |||
Contact: jgould@verisign.com | Contact: jgould@verisign.com | |||
URL: https://www.verisign.com/en_US/channel-resources/domain- | URL: https://www.verisign.com/en_US/channel-resources/domain- | |||
registry-products/epp-sdks | registry-products/epp-sdks | |||
8. Security Considerations | 8. Security Considerations | |||
The Security Considerations of [RFC5730] apply in this document, and | ||||
this document enhances these considerations. | ||||
The extension leaves the password (<pw> element) and new password | The extension leaves the password (<pw> element) and new password | |||
(<newPW> element) minimum length beyond 6 characters and the maximum | (<newPW> element) minimum length greater than 6 characters and the | |||
length up to sever policy. The server SHOULD enforce minimum and | maximum length up to server policy. The server SHOULD enforce | |||
maximum length requirements that are appropriate for their operating | minimum and maximum length requirements that are appropriate for | |||
environment. One example of a guideline for password length policies | their operating environment. One example of a guideline for password | |||
can be found in section 5 of NIST Special Publication 800-63B [1]. | length policies can be found in section 5 of NIST Special Publication | |||
800-63B [2]. | ||||
The client SHOULD NOT decrease the security of a new password by | The client SHOULD NOT decrease the security of a new password by | |||
decreasing the length of the current password. For example, a client | decreasing the length of the current password. For example, a client | |||
with a 20 character password set using the extension, should not use | with a 20 character password set using the extension, should not use | |||
the login command in [RFC5730] without using the extension, to set a | the login command in [RFC5730] without using the extension, to set a | |||
new password that is less than or equal to 16 characters. | new password that is less than or equal to 16 characters. | |||
The extension provides an extensible list of login security events to | The extension provides an extensible list of login security events to | |||
inform clients of connection and login warnings and errors. | inform clients of connection and login warnings and errors. The | |||
server returning of security events to unauthenticated users needs to | ||||
take into account the security/privacy issues of returning | ||||
information to potential attackers. | ||||
The user agent information represents 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. | ||||
9. Acknowledgements | 9. Acknowledgements | |||
The authors wish to thank the following persons for their feedback | The authors wish to thank the following persons for their feedback | |||
and suggestions: | and suggestions: | |||
o Martin Casanova | o Martin Casanova | |||
o Scott Hollenbeck | o Scott Hollenbeck | |||
o Barry Leiba | o Barry Leiba | |||
o Patrick Mevzek | o Patrick Mevzek | |||
skipping to change at page 19, line 38 ¶ | skipping to change at page 20, line 44 ¶ | |||
[RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", | [RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", | |||
STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009, | STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009, | |||
<https://www.rfc-editor.org/info/rfc5730>. | <https://www.rfc-editor.org/info/rfc5730>. | |||
[RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | |||
Code: The Implementation Status Section", BCP 205, | Code: The Implementation Status Section", BCP 205, | |||
RFC 7942, DOI 10.17487/RFC7942, July 2016, | RFC 7942, DOI 10.17487/RFC7942, July 2016, | |||
<https://www.rfc-editor.org/info/rfc7942>. | <https://www.rfc-editor.org/info/rfc7942>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
[W3C.REC-xmlschema-2-20041028] | [W3C.REC-xmlschema-2-20041028] | |||
Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes | Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes | |||
Second Edition", World Wide Web Consortium Recommendation | Second Edition", World Wide Web Consortium Recommendation | |||
REC-xmlschema-2-20041028, October 2004, | REC-xmlschema-2-20041028, October 2004, | |||
<http://www.w3.org/TR/2004/REC-xmlschema-2-20041028>. | <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028>. | |||
10.2. Informative References | 10.2. Informative References | |||
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | ||||
Specifications: ABNF", STD 68, RFC 5234, | ||||
DOI 10.17487/RFC5234, January 2008, | ||||
<https://www.rfc-editor.org/info/rfc5234>. | ||||
[RFC7451] Hollenbeck, S., "Extension Registry for the Extensible | [RFC7451] Hollenbeck, S., "Extension Registry for the Extensible | |||
Provisioning Protocol", RFC 7451, DOI 10.17487/RFC7451, | Provisioning Protocol", RFC 7451, DOI 10.17487/RFC7451, | |||
February 2015, <https://www.rfc-editor.org/info/rfc7451>. | February 2015, <https://www.rfc-editor.org/info/rfc7451>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
[RFC8265] Saint-Andre, P. and A. Melnikov, "Preparation, | [RFC8265] Saint-Andre, P. and A. Melnikov, "Preparation, | |||
Enforcement, and Comparison of Internationalized Strings | Enforcement, and Comparison of Internationalized Strings | |||
Representing Usernames and Passwords", RFC 8265, | Representing Usernames and Passwords", RFC 8265, | |||
DOI 10.17487/RFC8265, October 2017, | DOI 10.17487/RFC8265, October 2017, | |||
<https://www.rfc-editor.org/info/rfc8265>. | <https://www.rfc-editor.org/info/rfc8265>. | |||
10.3. URIs | 10.3. URIs | |||
[1] https://pages.nist.gov/800-63-3/sp800-63b.html | [1] https://www.iana.org/assignments/tls-parameters/tls- | |||
parameters.xhtml#tls-parameters-4 | ||||
[2] https://pages.nist.gov/800-63-3/sp800-63b.html | ||||
Appendix A. Change History | Appendix A. Change History | |||
[[RFC Editor: Please remove this section.]] | [[RFC Editor: Please remove this section.]] | |||
A.1. Change from 00 to 01 | A.1. Change from 00 to 01 | |||
1. Based on the feedback from Patrick Mevzek and a proposal from | 1. Based on the feedback from Patrick Mevzek and a proposal from | |||
Scott Hollenbeck, changed the minimum length of the password from | Scott Hollenbeck, changed the minimum length of the password from | |||
8 to 6, revised the description of the password, and added text | 8 to 6, revised the description of the password, and added text | |||
skipping to change at page 23, line 15 ¶ | skipping to change at page 24, line 35 ¶ | |||
A.10. Change from REGEXT 05 to REGEXT 06 | A.10. Change from REGEXT 05 to REGEXT 06 | |||
Updates based on the review by Brian Carpenter, that include: | Updates based on the review by Brian Carpenter, that include: | |||
1. In section 1, change the references to RFC 5730 to use links. | 1. In section 1, change the references to RFC 5730 to use links. | |||
2. In section 2, change "(for a temporary migration period)" to | 2. In section 2, change "(for a temporary migration period)" to | |||
"(for a temporary migration period up to server policy)". | "(for a temporary migration period up to server policy)". | |||
A.11. Change from REGEXT 06 to REGEXT 07 | A.11. Change from REGEXT 06 to REGEXT 07 | |||
1. Based on feedback from Barry Leiba, added recommendations on the | 1. Updates based on feedback from Barry Leiba, added recommendations | |||
characters used for the plain text password. Recommended the use | on the characters used for the plain text password. Recommended | |||
of printable ASCII passwords and if non-ASCII characters are | the use of printable ASCII passwords and if non-ASCII characters | |||
supported, to use a standard for passwords with international | are supported, to use a standard for passwords with international | |||
characters, such as the OpaqueString PRECIS profile in [RFC8265]. | characters, such as the OpaqueString PRECIS profile in [RFC8265]. | |||
2. Based on the feedback from Carlos Pignataro, added "[[RFC Editor: | 2. Based on the feedback from Carlos Pignataro, added "[[RFC Editor: | |||
Please remove this section.]]" to the "Change History" section. | Please remove this section.]]" to the "Change History" section. | |||
A.12. Change from REGEXT 07 to REGEXT 08 | ||||
1. Based on feedback from Eric Vyncke during the IESG review, | ||||
changed [RFC8174] from the informative references into the | ||||
normative references. | ||||
2. 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.". | ||||
3. Changed "sever policy" to "server policy" in section 8. | ||||
4. Updates based on feedback from Roman Danyliw during the IESG | ||||
review: | ||||
1. Changed "pasword" to "password" in section 1. | ||||
2. In section 3.1, added a reference to section 3.3.3 of | ||||
[W3C.REC-xmlschema-2-20041028] for the format of the "lang" | ||||
attribute. Added the corresponding section (3.2.6) for the | ||||
"duration" attribute. | ||||
3. Added the "XML" prefix for each reference to "schema" in the | ||||
introduction of section 5. | ||||
4. Added the leading sentence "The Security Considerations of | ||||
[RFC5730] apply in this document, and this document enhances | ||||
these considerations." to section 8. | ||||
5. Added the sentence 'The possible set of "name" values, by | ||||
event type, can be discovered / negotiated out of band to EPP | ||||
or using a separate EPP extension designed to provide server | ||||
policy information to the client.' to the description of the | ||||
"name" attribute. | ||||
6. Added a description of how to create the <loginSec:app>, | ||||
<loginSec:tech>, and <loginSec:os> values using ABNF. | ||||
5. Updates based on feedback from Alexey Melnikov during the IESG | ||||
review: | ||||
1. Added a description of "whitespace" to section 1.1. | ||||
2. Added a description of the usage of the user agent | ||||
information in section 4.1. | ||||
6. Updates based on feedback from Benjamin Kaduk during the IESG | ||||
review: | ||||
1. 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 paragraph of section 2. | ||||
2. In section 3.1, replace the sentence "There MAY be multiple | ||||
events returned that provide information for the client to | ||||
address." with "The <loginSec:event> element is contained in | ||||
a list of one or more elements in the | ||||
<loginSec:loginSecData> element, so there MAY be multiple | ||||
events returned that provide information for the client to | ||||
address." | ||||
3. 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 failure." and a similar | ||||
change to the following sentence. | ||||
4. In section 3.1, replace the description of the "cipher" type | ||||
and the "tlsProtocol" type. | ||||
5. In section 3.1, add a sentence that the "exDate" attribute | ||||
MUST be set for the "password" type and the "certificate" | ||||
type. | ||||
6. Updates the dates by replacing 2018 with 2020. | ||||
7. In section 3.2, update the MUST override sentences for the | ||||
<loginSec:pw> and the <loginSec:newPw> elements. | ||||
8. In section 4.1, update "OPTIONAL client user agent" with | ||||
"OPTIONAL client user agent information" for the description | ||||
of the <loginSec:userAgent> element. | ||||
9. In section 4.1, replace "MUST only be used" to "MUST only be | ||||
set" for the <loginSec:pw> and <loginSec:newPw> elements. | ||||
10. Updated references of "x86_64 Mac OS X 10.11.6" to "x86_64 | ||||
Mac OS X 10.15.2". | ||||
11. In section 4.1, replace "MUST be included in the response | ||||
based on both of the following conditions" with "MUST be | ||||
included in the response when both of the following | ||||
conditions hold". | ||||
12. In section 4.1, update the "exDate" for the "password" | ||||
security event error to be "2020-03-24T22:00:00.0Z" so that | ||||
it's prior to the date 2020-03-25 reference previously. | ||||
13. 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 returning information | ||||
to potential attackers." to the end of the last paragraph. | ||||
14. In section 8, change "minimum length beyond 6 characters" to | ||||
"minimum length greater than 6 characters". | ||||
15. In section 8, add the sentence "The user agent information | ||||
represents 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." | ||||
Authors' Addresses | Authors' Addresses | |||
James Gould | James Gould | |||
VeriSign, Inc. | VeriSign, Inc. | |||
12061 Bluemont Way | 12061 Bluemont Way | |||
Reston, VA 20190 | Reston, VA 20190 | |||
US | US | |||
Email: jgould@verisign.com | Email: jgould@verisign.com | |||
URI: http://www.verisign.com | URI: http://www.verisign.com | |||
End of changes. 45 change blocks. | ||||
113 lines changed or deleted | 275 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |