ietf
[Top] [All Lists]

Re: Last Call: <draft-ietf-weirds-rdap-sec-04.txt> (Security Services for the Registration Data Access Protocol) to Proposed Standard

2013-08-05 12:37:03
Hi SM, thanks for your comments.  I'm shepherding the document, so replies
inline:

On Wed, Jul 24, 2013 at 12:21 PM, SM <sm(_at_)resistor(_dot_)net> wrote:

According to Section 1, the Registration Data Access Protocol is a Lookup
Format,
JSON Responses and HTTP usage.  This looks like a weird protocol to me.
 If the said protocol is HTTP + JSON (responses) it would be clearer to the
reader to explain that in one specification.  Section 1 mentions that:

  "One goal of RDAP is to provide security services that do not exist in
   the WHOIS"

I don't see how adding a fourth document helps to achieve that goal.


RDAP is far from the first protocol specification to exist across multiple
RFCs, so this approach isn't uncommon.  That said, I take it you believe
the material here should be rolled into one of the other documents?


In Section 3.1:

  'To that end, RDAP clients and servers MUST implement the
   authentication framework specified in "HTTP Authentication:
   Basic and Digest Access Authentication" [RFC2617].'

This draft refers to the above authentication framework as the RDAP
authentication framework.  The draft then explains how the "basic" and
"digest" schemes work.  This is "how-to" stuff.  The draft sets the
following requirement:

  'If the "basic" scheme is used, HTTP Over TLS [RFC2818] MUST be used
   to protect the client's credentials from disclosure while in transit
  (see Section 3.4).'

If I understood correctly HTTPS is needed for security only if the "basic"
scheme" is used.


Correct, that's what it says.


  "RDAP SHOULD be capable of supporting future authentication methods
   defined for use with HTTP."

That sounds like a "SHOULD CONSIDER".  Given how ill-defined the protocol
is I doubt that the above is actionable.


You said two important things here:

1) Can you please elaborate on why you think this is "ill-defined" and, if
possible, how this could be remedied?

2) Insofar as this draft amounts to a requirements document, I take "SHOULD
be capable" to mean the actual implementation needs to have hooks for the
stated capability, or have a very good reason for not providing those hooks
(e.g., the same capability is available some other way).


In Section 3.1.1:

  "RDAP MAY include a federated authentication mechanism that permits
   a client to access multiple RDAP servers in the same federation
   with one credential."

Using an upper-case "may" does not bring much in terms of security.  The
draft takes the stance that security is an optional feature.


More precisely, the draft takes the stance that federated authentication is
an option.  The working group doesn't feel the need to elevate this to
SHOULD or MUST, likely because operators might not be compelled to federate
themselves with anyone for whatever local security or privacy reasons apply.



Section 3.1.1 looks like an executive summary for federated authentication.


Right, and the benefits it provides in the context of RDAP.  Is that a
criticism or an observation?  What do you suggest?


In Section 3.3:

  "An RDAP service has to be available to be useful.  There are no RDAP-
   unique requirements to provide availability, but as a general
   security consideration a service operator needs to be aware of the
   issues associated with denial of service."

The text says that the service must be available to be useful and that
there isn't any requirement for the service to be available.


The next sentence (which you omitted) provides the context.  Operators are
advised to be aware of denial-of-service considerations, and there's a
document referenced that provides useful information.  Depending on the
uptake of RDAP and the other services that begin to depend upon it, it
might become a DoS target.  Hardening against such attacks will be
important to begin with, but might become critical later.  I think this is
not a waste of space.


In Section 3.4:

  "Web services such as RDAP commonly use HTTP Over TLS [RFC2818] to
   provide that protection by encrypting all traffic sent on the
   connection between client and server."

The above describes the protocol as a web service.


It is a web service, in as much as it uses web protocols.  Is there some
improvement you'd like to suggest?



  "When this scheme is used, HTTP Over TLS MUST be used to protect the
   client's credentials from disclosure while in transit.'

The above repeats a "MUST" mentioned in a previous section.


True, this can be fixed by replacing it with a reference to Section 3.1.



In Section 5:

  "RDAP might need to be extended to provide this service in the future."

This does not look like a security consideration.


Non-repudiation (which is the context of the paragraph from which that
sentence was taken) is one of the classic properties of security, so I
don't agree.  It's useful to point out to the reader that non-repudiation
is not provided by any of the capabilities discussed here, and its absence
might be conspicuous.




  "Code injection refers to adding code into a computer system
   or program to alter the course of execution."

I can only wonder about who is the target audience after reading the above.


It's true that the specific things called out in that paragraph are not
specific to RDAP, but rather to anything built atop HTTP.  Do you suggest
something else, perhaps something more general like a statement that any
known HTTP-based attack might also affect an RDAP service?




The security considerations section seems like an attempt to write
something about security as there isn't nothing to say about the protocol.


SecDir often scratches its head when a document says very little, so what
you're saying is often the case.  However, sometimes it's enough to say
"This is built on top of HTTP, so all the security issues known about HTTP
and HTTPS also apply here."  Do you have a specific suggestion?



Overall, the draft does not look like a technical specification.  It looks
like the working group took FYI 36 as a template for designing a security
service instead of thinking about security and designing a security service.


That seems a little sharp.

This draft is manifestly not a technical specification insofar as it does
not define a new protocol.  I would say it's partly a requirements document
and partly an applicability statement, and the latter at least is normally
a standards track document.

I don't know what "thinking about security" we are expected to do beyond
making use of the security services that have already been made available
to applications built atop HTTP.  Do you have any specific suggestions?

-MSK
<Prev in Thread] Current Thread [Next in Thread>