Re: [Netconf] Ben Campbell's No Objection on draft-ietf-netconf-call-home-11: (with COMMENT)

Kent Watsen <kwatsen@juniper.net> Wed, 21 October 2015 20:18 UTC

Return-Path: <kwatsen@juniper.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 89C231B2A24; Wed, 21 Oct 2015 13:18:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level:
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9frBPRTyVWWM; Wed, 21 Oct 2015 13:18:41 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0703.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::1:703]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A5B641AD066; Wed, 21 Oct 2015 13:18:40 -0700 (PDT)
Received: from CO1PR05MB458.namprd05.prod.outlook.com (10.141.72.140) by CO1PR05MB457.namprd05.prod.outlook.com (10.141.72.141) with Microsoft SMTP Server (TLS) id 15.1.306.13; Wed, 21 Oct 2015 20:18:34 +0000
Received: from CO1PR05MB458.namprd05.prod.outlook.com ([169.254.16.52]) by CO1PR05MB458.namprd05.prod.outlook.com ([169.254.16.52]) with mapi id 15.01.0306.003; Wed, 21 Oct 2015 20:18:34 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: Ben Campbell <ben@nostrum.com>, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Thread-Topic: [Netconf] Ben Campbell's No Objection on draft-ietf-netconf-call-home-11: (with COMMENT)
Thread-Index: AQHRC4NwSO9HeS5EiE2jlg9x14GRTZ51dggAgAA4poCAAAM9AIAAUjGAgAAdHgA=
Date: Wed, 21 Oct 2015 20:18:34 +0000
Message-ID: <8034DC26-F098-42C6-A90D-F15E2B2DAEE6@juniper.net>
References: <20151020220528.1103.2866.idtracker@ietfa.amsl.com> <C4B32A05-BA53-43CA-ABDD-4E46EC0331CE@gmail.com> <CALaySJ+S+AmY6+4f1OePmgdgsGV5WHr37PsRGLzHCg_StQGLvw@mail.gmail.com> <20151021094008.GB65099@elstar.local> <5C065838-2633-4BDF-A514-9A0E31207C1B@nostrum.com>
In-Reply-To: <5C065838-2633-4BDF-A514-9A0E31207C1B@nostrum.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/0.0.0.151008
authentication-results: spf=none (sender IP is ) smtp.mailfrom=kwatsen@juniper.net;
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [66.129.241.10]
x-microsoft-exchange-diagnostics: 1; CO1PR05MB457; 5:3pXjb79zIkAPXMEKkgqd9cw4wOowb00eD3whJv2muGyAGDXZCMWmKsN4Mo5W3b/Jzef9Q+GbHnJ0ysRSdH+d1aOPFRJsYHMKBYrTJ2g1NxOVoo5XJUnPqKQT3odMydItOWrix7Hlugc+7aTcL6UoPw==; 24:EVO9ySX1pb5JT9D4WOmSoSlkP6TY2dS48X08DC2HIbc5LoCkkcL0DUGmLD+Dyma7sQhIZhuK2axF2hvhSKfpSS9KzpQKjcoEFTjUa20zkME=; 20:0W1kmLNUOsxpYepKsK3fUHTYVZgbhk906991V05pA0RAkJbYGZO28Co8ExjsOuINH/YqcOBpiKI/m3M+l+13fw==
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO1PR05MB457;
x-microsoft-antispam-prvs: <CO1PR05MB457CE42F55CAE420EBBAF78A5380@CO1PR05MB457.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001)(102115026); SRVR:CO1PR05MB457; BCL:0; PCL:0; RULEID:; SRVR:CO1PR05MB457;
x-forefront-prvs: 073631BD3D
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(189002)(199003)(43784003)(93886004)(36756003)(105586002)(4001350100001)(106116001)(106356001)(99286002)(5001770100001)(97736004)(66066001)(33656002)(54356999)(50986999)(76176999)(81156007)(92566002)(86362001)(5002640100001)(2950100001)(122556002)(2900100001)(5001960100002)(5008740100001)(101416001)(40100003)(82746002)(10400500002)(64706001)(5007970100001)(189998001)(83506001)(102836002)(11100500001)(5004730100002)(83716003)(230783001)(87936001)(46102003)(104396002); DIR:OUT; SFP:1102; SCL:1; SRVR:CO1PR05MB457; H:CO1PR05MB458.namprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en;
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
spamdiagnosticoutput: 1:23
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <CE95CBF8DEAF284EAEBFBB5EABCF9FFF@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Oct 2015 20:18:34.5297 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR05MB457
Archived-At: <http://mailarchive.ietf.org/arch/msg/netconf/FzcfBSqNUDsP7AVlIdFFHN9j8Es>
Cc: Netconf <netconf@ietf.org>, Barry Leiba <barryleiba@computer.org>, "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>, "draft-ietf-netconf-call-home@ietf.org" <draft-ietf-netconf-call-home@ietf.org>, The IESG <iesg@ietf.org>
Subject: Re: [Netconf] Ben Campbell's No Objection on draft-ietf-netconf-call-home-11: (with COMMENT)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 21 Oct 2015 20:18:43 -0000

Hi Ben,

Thank you for your review.


Regarding your original comments:


> If the client MAY be configured to listen on a non-standard port, doesn’t
> that imply that the server MUST be _capable_ of being configured to
> connect to a non-standard port?

This is correct and what draft-ietf-netconf-server-model-08 allows.   Were you thinking that there needs to be a change in this draft?


> I'm curious why people felt it necessary to reverse the usual TLS or SSH
> client and server roles. Did the working group consider having the
> NETCONF/RESTCONF server act as the TLS or SSH client? If so, can the

As Juergen noted, this allows that all existing authentication to continue working.  Also, since SSH is not a symmetric protocol, it’s actually important for the client to be the SSH-client so it can open/close SSH channels (e.g., to start the “netconf” subsystem).





And regarding your latest message:

>Paraphrasing back to check my understanding:
>
>At least for the case of TLS, The NETCONF/RESTCONF server is 
>authenticated by TLS, and the client by credentials that are exchanged 
>after the TLS handshake completes?

NETCONF over TLS requires the client to use client-certificate based authentication and this happens at the time the TLS session is being established, for the NETCONF protocol layer starts.

RESTCONF over TLS (the only choice) uses HTTP Authentication [RFC7235].  When “Basic” or “Digest” are used, the client-authentication is after the TLS session has been established.  The “ClientCertificate” is used, then the client-authentication occurs at the time the TLS session is being established (same as NETCONF over TLS). 




>I'm going to go out on a limb and guess that that approach is an 
>artifact of the normal (non-call-home) connection direction, and a lack 
>of client certs? I am no NETCONF expert, so forgive me if I am missing 
>some other obvious reason.

Yes, that is fair to say, in the sense that it is very easy to implement it this way.   For instance, JUNOS uses `inetd` to listen on port 22 and, when a TCP connection is established, it forks/execs `sshd -i` passing the open socket descriptor.   So to implement call home, all that had to be done was to write a daemon that initiates the TCP connection to the client and then, as soon as the TCP connection is established, it forks/execs `sshd -i` exactly like how `inetd` does it.   Everything else stays the same.  In fact, the SSH has no awareness of how it was invoked.



>However, this does make me wonder about the statement in the Security
>Considerations that the DoS potential is "no different than for any 
>other secured service". The reversed connection approach seems to allow 
>an attacker to cause the NETCONF client to perform computationally 
>intense operations with just a TCP connection--that is, with marginally 
>less effort on the part of the attacker. I'm not sure that's enough 
>difference to make a real-world difference, but it might be worth a 
>mention.


A normal SSH or TLS server accepts the TCP connection and immediately starts a computationally expensive operation (proving it has the private key associated with its SSH host key or TLS server certificate).   

Here we have similar setup, except the client has the port open and it starts the SSH/TLS client protocol.  It could be argued that the client protocol is less expensive than the server protocol, so perhaps it’s not so bad.

Still, for the draft, what do you recommend changing?   The current text follows:

    An attacker could launch a denial of service (DoS) attack on the
    NETCONF/RESTCONF client by having it perform computationally
    expensive operations, before deducing that the attacker doesn't
    posses a valid key.  This is no different than any secured service
    and all common precautions apply (e.g., blacklisting the source
    address after a set number of unsuccessful login attempts).




Thanks again,
Kent