[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dccp] DCCP Service Names/Codes and security



Hi Steve, all,

One of Steve's comments from last IETF's DCCP expert review (for which
THANK YOU AGAIN, it was great) confuses me.  It had to do with the security
implications of DCCP's Service Name field, since renamed to Service Code.
I wonder if someone could clarify?

Background: Service Code is a 4-byte number, sent on a DCCP-Request (the
active open), that identifies the service the client expects to be running
on the server port.  If the client's specified Service Code doesn't match
the server port's internal Service Code, then the connection fails.  For
instance, if the server app listening on port 80 is running service "FTP",
and the client's DCCP-Request sent to port 80 expected service "HTTP", then
the connection fails.  Service Code 0 is used for wildcards on both Request
and listening port.

Here are some things that Service Code does *not* do:
* Service Code does *not* replace Destination Port.
* Service Code does *not* necessarily allow multiple services to run on the
  same Destination Port.  We intended there to be at most one Service Code
  per Port, although the document isn't crystal clear here.

Now here's your comment.

  - The service name bother me - this could be dangerous it presents 2
    things with the same meaning: port + name.  Once you have two ways
    of doing it, you need two checks, or they can exploited.  An example
    is an Operating system that treat low-numbered ports as privileged -
    but midboxes don't do quite same thing (e.g. they open based on
    service name)- can this be exploited?  appropriate actions need to
    be defined.

I'm confused because the Service Code *doesn't* mean the same thing as the
port.  The port is explicitly the primary lookup.  If I were writing a
midbox I'd totally do it with port first, using Service Code as a secondary
check.

Is that all you meant by "appropriate actions" -- adding some text, perhaps
in the Middlebox Considerations section, like:

    Since well-known ports are well understood in TCP and UDP, and ports
    remain DCCP's main way to differentiate among services active on an
    endpoint, middleboxes should use well-known DCCP ports as their main
    policy enforcement mechanism.  The Service Code values on DCCP-Requests
    should be used for supplementary checks.

?

Thanks,
Eddie

_______________________________________________
dccp IETF mailing list: dccp@ietf.org
list info:  https://www1.ietf.org/mailman/listinfo/dccp
wg charter: http://www.ietf.org/html.charters/dccp-charter.html