Most of these seem reasonable, and we'll get to work sorting them out.  The 
only question I have is relating to:

--------------
    o  "policy-type": The type of policy that was applied by the sending
       domain.  Presently, the only three valid choices are "tlsa",
       "sts", and the literal string "no-policy-found".  It is provided
       as a string.

Is this set possibly extensible?
If yes, you probably need a new IANA registry.
If not, you should say so.
-----------------

Sure, this set could be extended at some point in the future, but couldn't it 
be addressed by a minor edit to the draft?  I wouldn't think the number of 
possible values would be largely expanded, if ever. 

--
Alex Brotman
Sr. Engineer, Anti-Abuse
Comcast
x5364

-----Original Message-----
From: Uta [mailto:[email protected]] On Behalf Of Alexey Melnikov
Sent: Wednesday, June 28, 2017 6:03 AM
To: [email protected]
Subject: [Uta] AD review of draft-ietf-uta-smtp-tlsrpt-06.txt

You can treat these comments as WGLC comments:

4.4.  JSON Report Schema

    The JSON schema is derived from the HPKP JSON schema [RFC7469] (cf.
    Section 3)

          {
            "organization-name": organization-name,
            "date-range": {
              "start-datetime": date-time,
              "end-datetime": date-time
            },
            "contact-info": email-address,
            "report-id": report-id,
            "policy": {
              "policy-type": policy-type,
              "policy-string": policy-string,
              "policy-domain": domain,
              "mx-host": mx-host-pattern
            },
            "summary": {
              "success-aggregate": total-successful-session-count,
              "failure-aggregate:" total-failure-session-count
            }
            "failure-details": [
              {
                "result-type": result-type,
                "sending-mta-ip": ip-address,
                "receiving-mx-hostname": receiving-mx-hostname,
                "receiving-mx-helo": receiving-mx-helo,
                "session-count": failed-session-count,
                "additional-information": additional-info-uri,
                "failure-reason-code": "Text body"

I think you should replace "Text body" with failure-reason-code here.

              }
            ]
          }

                             JSON Report Format

    o  "organization-name": The name of the organization responsible for
       the report.  It is provided as a string.

    o  "date-time": The date-time indicates the start- and end-times for
       the report range.  It is provided as a string formatted according
       to Section 5.6, "Internet Date/Time Format", of [RFC3339]. The
       report should be for a full UTC day, 0000-2400.

    o  "email-address": The contact information for a responsible party
       of the report.  It is provided as a string formatted according to
       Section 3.4.1, "Addr-Spec", of [RFC5322].

    o  "report-id": A unique identifier for the report.  Report authors
       may use whatever scheme they prefer to generate a unique
       identifier.  It is provided as a string.

    o  "policy-type": The type of policy that was applied by the sending
       domain.  Presently, the only three valid choices are "tlsa",
       "sts", and the literal string "no-policy-found".  It is provided
       as a string.

Is this set possibly extensible?
If yes, you probably need a new IANA registry.
If not, you should say so.


    o  "policy-string": The JSON string serialization ([RFC7159] section
       7) of the policy, whether TLSA record ([RFC6698] section 2.3) or
       MTA-STS policy.

    o  "domain": The Policy Domain is the domain against which the MTA-
       STS or DANE policy is defined.

Need to make it clear that U-labels are not used here (unless they are!).
For example, add:

       In the case of Internationalized Domain Names
       ([RFC5891]), the domain is the Punycode-encoded A-label
       [RFC3492] and not the U-label.


    o  "mx-host-pattern": The pattern of MX hostnames from the applied
       policy.  It is provided as a string, and is interpreted in the
       same manner as the "Checking of Wildcard Certificates" rules in
       Section 6.4.3 of [RFC6125].

Similar comment about [non-]use of U-labels.

    o  "result-type": A value from Section 4.3, "Result Types", above.

    o  "ip-address": The IP address of the sending MTA that attempted the
       STARTTLS connection.  It is provided as a string representation of
       an IPv4 or IPv6 address in dot-decimal or colon-hexadecimal
       notation.

Need references: RFC 5952 for IPv6 notation and reference "IPv4address" 
ABNF non terminal for IPv4.

    o  "receiving-mx-hostname": The hostname of the receiving MTA MX
       record with which the sending MTA attempted to negotiate a
       STARTTLS connection.

    o  "receiving-mx-helo": (optional) The HELO or EHLO string from the
       banner announced during the reported session.

    o  "success-aggregate": The aggregate number (integer) of
       successfully negotiated TLS-enabled connections to the receiving
       site.

In all other cases you describe the right hand side (the data type).
So should you use "total-successful-session-count" here?

    o  "failure-aggregate": The aggregate number (integer) of failures to
       negotiate an TLS-enabled connection to the receiving site.

In all other cases you describe the right hand side (the data type).
So should you use "total-failure-session-count" here?

    o  "session-count": The number of (attempted) sessions that match the
       relevant "result-type" for this section.

In all other cases you describe the right hand side (the data type).
So should you use "failed-session-count" here?

    o  "additional-info-uri": An optional URI pointing to additional

Add a reference.

       information around the relevant "result-type".  For example, this
       URI might host the complete certificate chain presented during an
       attempted STARTTLS session.

Are any specific URI types mandatory to implement? E.g. "http" and "https"?

    o  "failure-reason-code": A text field to include an TLS-related
       error code or error message.


In Section 5.3:

5.3.  Email Transport

    The report MAY be delivered by email.  To make the reports machine-
    parsable for the receivers, we define a top-level media type
    "multipart/report" with a new parameter "report-type="tlsrpt"".
    Inside it, there are two parts: The first part is human readable,
    typically "text/plain", and the second part is machine readable with
    a new media type defined called "application/tlsrpt+json".  If
    compressed, the report should use the media type "application/
    tlsrpt+gzip".

    In addition, the following two new top level message header fields
    are defined:

                     TLS-Report-Domain: Receiver-Domain
                     TLS-Report-Submitter: Sender-Domain

I would like to see a statement that these fields MUST be included.

    These message headers would allow for easy searching for all reports
    submitted by a report domain or a particular submitter, for example
    in IMAP:

Please add a reference to RFC 3501 for IMAP here.

    "s SEARCH HEADER "TLS-Report-Domain" "example.com""


6.1.  Message headers

    Below is the Internet Assigned Numbers Authority (IANA) Permanent
    Message Header Field registration information per [RFC3864].

              Header field name:           TLS-Report-Domain
              Applicable protocol:         smtp

Per
<https://www.iana.org/assignments/message-headers/message-headers.xhtml#perm-headers>
this should be "mail" instead of "smtp".

              Status:                      standard
              Author/Change controller:    IETF
              Specification document(s):   this one


              Header field name:           TLS-Report-Submitter
              Applicable protocol:         smtp

As above.

              Status:                      standard
              Author/Change controller:    IETF
              Specification document(s):   this one


In Section 6.3:

As you are registering 2 different MIME types, you need to have 2 registration 
templates, because considerations for JSON and GZIP are slightly different.

In Section 6.4:

You need to specify IANA registration policy from choices listed in RFC 5226. 
Most likely you want "Specification Required" or "Expert Review" 
(both imply expert review).

So you need to replace the last sentence of this section:

OLD:

    New result types can be added to this registry without the
    need to update this document.

NEW:

    New result types can be added to this registry using
    "Expert Review" IANA registration policy.

_______________________________________________
Uta mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/uta

_______________________________________________
Uta mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/uta

Reply via email to