Re: [secdir] SECDIR review of draft-ietf-sfc-nsh-18

Christian Huitema <> Sat, 09 September 2017 23:42 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id EDC8813247A for <>; Sat, 9 Sep 2017 16:42:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 5SLXeOQhN2pp for <>; Sat, 9 Sep 2017 16:42:14 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 79ABF124F57 for <>; Sat, 9 Sep 2017 16:42:14 -0700 (PDT)
Received: from ([] by with esmtps (TLSv1:AES256-SHA:256) (Exim 4.89) (envelope-from <>) id 1dqpO8-00061P-Il for; Sun, 10 Sep 2017 01:42:13 +0200
Received: from [] ( by with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.63) (envelope-from <>) id 1dqpO5-0001DM-JR for; Sat, 09 Sep 2017 19:42:10 -0400
Received: (qmail 19967 invoked from network); 9 Sep 2017 23:42:07 -0000
Received: from unknown (HELO []) ([]) (envelope-sender <>) by (qmail-ldap-1.03) with ESMTPA for <>; 9 Sep 2017 23:42:07 -0000
To: "Carlos Pignataro (cpignata)" <>
Cc: "" <>, IETF Discussion Mailing List <>, The IESG <>, "" <>
References: <> <>
From: Christian Huitema <>
Message-ID: <>
Date: Sat, 9 Sep 2017 16:42:02 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-US
Authentication-Results:; auth=pass smtp.auth=
X-SpamExperts-Outgoing-Class: unsure
X-SpamExperts-Outgoing-Evidence: Combined (0.30)
X-Recommended-Action: accept
X-Filter-ID: PqwsvolAWURa0gwxuN3S5YEa3T7JuZT23fGO2rGt3ZgTCGhDnudOJ80D1c8rffxrus7BTv7Ss8cH d2IQQuvdbtM+m4WpRRDP6YzwkAPgQJYoNzrMVvavOgy+9M5kGys4ND46yZLY9QyX+cRXmooQ3hum JwiT+2brWmQlzkLIcXivpIH4ag6BM/+u9ym+BA236IX1B/I/Kf5kM7f7MmxVp4mQ+OU0JIt78q8H P8BS4qjOdyacXG/GPY8yy9T4wgM6YOEkjsX7F8KmpUaZQHV+ScWIfGf9Fu8q9UhMPe0GR5O2G5Pj 7iQJEmtNUzH3idZ6uMF2OhyCCCV83x+RZrKIj0QqMGQOSwmEPwP4wBzM77N8GvkYGGDFjg9NrmGY yNnXsSjdYwfRhjHqxQXDsBKLpKs+iZ7+uSas6Kaz0EAgJQDfPQj1kOyxNFg33kI1TaC7CpXSTy88 yKXT59k+LMPEe4JLqhxNFuv9gsbx4Jckhv+pb0YnYvmU5PphG8LogcC6a8Mrc8quJ4btPpt/2FLu FENuK6ldck0juAg+FVtv+IOo4y6frMgdTo7c9I9ngwHJYd/jKzjiuDYHz/0WYr1rUy6ggDjF/JYa A95R4z1aC/OoU7Wp8jKTGnwq+YJ5o8map17vcIhp4/vU15YpEcaF91b7LCVq2nuinYFw/C3rfJ2V 3KD8IdSHBSi9yjOsRb3kOBo9alPIsYsEQTlAhTyXeNdeQM+qg+BY9Oa+dkWSt3JycdQqvJYqsZIv 7DXp5rizPjVKi9GxJ6AQ2tth2z2hbW9uSl5jk2GSHPTeiS5jQRdhCzUOiI84TnM1VbcpKHR7xpOn 1bfMnWw/v8Bdr8FcBce5E3gE8Kl81GJcWDpdD/xGoON3HTTAwlo57pg+CKKIH471Mu+/byzf7wdX PQq6HJgFDaftEbbX+WcJwJH4K/0=
Archived-At: <>
Subject: Re: [secdir] SECDIR review of draft-ietf-sfc-nsh-18
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Security Area Directorate <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Sat, 09 Sep 2017 23:42:16 -0000

On 9/7/2017 9:06 AM, Carlos Pignataro (cpignata) wrote:
> Christian,
> Thanks for taking time to review this document. The net-result of addressing them will be an improved specification.
I am looking at the changes between draft-18 and draft-20, and draft-20
is indeed improved.
> We took some additional time before responding, because some of your comments are very likely addressed (or partially addressed at least) in the current revision -20. 
> You raise some very general broadly-scoped questions, such as “Why is the IETF even working on such specifications?” Those are probably beyond the scope of a SecDir review, but nonetheless, important LC comments. As those are beyond the technology specifics of draft-ietf-sfc-nsh, I can (and I do) share my perspective, but I will let others (responsible AD, sfc chairs, doc shepherd) add on more authoritatively.
> ...
> But, if you knew all this, I am not sure what is the question behind your question… 
> I can offer that there’s market demand for interoperable implementations of service function chaining solutions...

I have no doubt that there are multiple products developed and sold, and
that interoperable specifications are preferable to competing
proprietary specifications. My initial reaction was largely motivated by
the lack of scoping in the document. Without that scoping, it looks like
a general architecture for adding metadata to packets on the Internet,
and that's a big red flag, big enough to state that no, the IETF should
not endorse that at all, interop be damned.

The scoping mitigates some of the concerns. I am still troubled by some
of the specification, such as the example giving a scope as "a campus
physical network". Environments like that are only partially controlled.
Adding metadata to packets in such wide locations could enable many

>> What
>> does this have to do with the Internet?
> I’ll just share that, just like RFC 7665, this specification narrowscopes itself to a single provider’s operational domain. 
> Relevant text from revision -20, that was not there on the revision -18 you reviewed, includes:
>    The intended scope of the NSH is for use within a single provider's
>    operational domain.  This deployment scope is deliberately
>    constrained, as explained also in [RFC7665], and limited to a single
>    network administrative domain.  In this context, a "domain" is a set
>    of network entities within a single administration.  For example, a
>    network administrative domain can include a single data center, a
>    campus physical network, or an overlay domain using virtual
>    connections and tunnels.  A corollary is that a network
>    administrative domain has a well defined perimeter.

Yes, I saw that. That's good. But I also only see minimal mechanisms in
the draft for enforcing the removal of the metadata before a packet
leaves the specified domain. Section 2 states that "the last SFF in the
service chain removes the NSH". That's fine, but that's not a fail-safe
mechanism. The draft mentions using IPv4 or IPv6 as transport. It seems
that in that case there should be some ingress/egress filtering, as in
"packets originating outside the service domain must be dropped if they
contain an NSH," and similarly must be drop on domain exit if they
contain an NSH.

>> And why such disregard
>> for privacy and security? In any case, this document has significant
>> issues. It does not explaining where exactly the proposed Network
>> Service Header would be inserted (MPLS or IPv6?).
> This is another good comment, we believe is already addressed in rev -20 with the additions to the Introduction and Figure 1, among others.

Figure 1 does help, thank you. I assume that the intent is to complete
the NSH draft with specifications of the actual encapsulations over
MPLS, Ethernet, IPv4 and IPv6. But it is pretty hard to review the
security of the system without a description of these encapsulations.

>> The security
>> provisions boil down to lip-service mentions of IPSEC, and that's way
>> insufficient given the nature of the protocol.
>> ...
>> ...
> I believe one source of confusion here is the extrapolation of carrying privacy-sensitive metadata across the Internet. That is not the case.
> The so-called "RFC 7665" defined the applicability scope, but we the NSH specification has failed to make that clear. This is a good point, and one that needs text changes. We took initial steps in -20 to correct that and be clear and explicit.
Yes, the new introduction is much better.
>> In a spirit of
>> cooperation, I choose the latter, and here is the two steps advice:
>> The first step to better security and privacy there would be to present
>> the practical deployment conditions. I could only make guesses, and
>> that's silly. There should be some kind of diagram explaining how the
>> SFH is inserted in packets, and where it sits between Ethernet, MPLS and
>> IP.
>> The next step is to develop a protection model. Given that the goal of
>> the architecture is to decorate the packets with sensitive metadata,
>> there need to be some thinking about who should be able to see it. How
>> would path encryption like IPSEC be deployed? Should all elements on
>> path really be able to access all metadata, or should some of it be
>> further protected?
>> Please fix that before the document is published.
> A lot of this conversation is déjà vu of the RFC 7665 WG, LC, and ballot discussions. Those discussions resulted in significant work with the Security ADs, security-focused SFC experts, and SFC-focused security experts; those in turn are codified in the text of RFC 7665’s security considerations.
The new security section does provide a number of recommendations, such
as the obfuscation of metadata. That's definitely an improvement. But I
believe there are still issues.

The first issue is that "Metadata privacy and security considerations
are a matter for the documents that define metadata format." That does
not give me a warm and fuzzy feeling at all. I understand that the
formats will be only registered "after IETF review", but these future
reviews would be much easier if the NSH mechanism defined at least a
baseline security posture, and maybe some generic mechanisms for
obfuscation or encryption.

The second issue is that the security section provide recommendations
about solutions, but does not analyze the threats. In particular, one of
the threats that I find worrisome is, what happens if a specific
function in a service chain gets subverted? In the current version, it
seems that subverting just one element in the chain will provide access
to all the metadata.

I may be paranoid, but there is already an history of adversaries
attacking complex systems like data centers, network control systems or
corporate networks, not to mention campus networks. These adversaries
typically proceed by lateral movement after an initial penetration until
they get closer to their actual target inside the domain. I can see an
adversary trying to penetrate one of these domains in order to access
the metadata. In our case, it would try to find a weak link in the
service function chain. It maybe that one of the functions is deemed
benign, and thus was less secured than the others. But if all functions
see the metadata, then the adversaries will achieve their goal by
targeting that weak link. Some application of the "least privilege"
principle would be useful there.

-- Christian Huitema

Christian Huitema