Re: Kathleen Moriarty's Discuss on draft-ietf-rtgwg-yang-key-chain-20: (with DISCUSS and COMMENT)

Kathleen Moriarty <kathleen.moriarty.ietf@gmail.com> Wed, 26 April 2017 20:30 UTC

Return-Path: <kathleen.moriarty.ietf@gmail.com>
X-Original-To: rtgwg@ietfa.amsl.com
Delivered-To: rtgwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 36B651294B9; Wed, 26 Apr 2017 13:30:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 k9c-YZegzq1S; Wed, 26 Apr 2017 13:30:54 -0700 (PDT)
Received: from mail-pf0-x236.google.com (mail-pf0-x236.google.com [IPv6:2607:f8b0:400e:c00::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7B08C127342; Wed, 26 Apr 2017 13:30:50 -0700 (PDT)
Received: by mail-pf0-x236.google.com with SMTP id 194so5231217pfv.3; Wed, 26 Apr 2017 13:30:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=H+50gprk9TNXEMs2O7WcipwUuCw6FnOcAr/MydF6+6c=; b=GdF/lFwsrWjU7qRMTQnFHq+QJDDM9Q9Pg2E6kP9Qi2KkCfHvTZpYLIcp/UNjVbvWny tex/LROSZ4+tOapD6ugJ4CrvDe9IzldYkqFYlWgML0p3U+fwnqHmLlrMvKCTSRGuDApD phgurJ24/4L/i7VRyclqprd9Mqzpe7RNCf6XN/mXq1ZZZRV7d1AENzUhMQ5ajdXXHtui sf47qp4YvuLzx+V0MJ4epDy8vky0NQiPVfGnsKE++pGWaSM+4UxjpyUtOGQLfgtaDQ0V cvgJFxSmYoEDzHff7MQK4uqgYRy94l4Vyx+BQeA0oeAY+4/Nva4nMtt+5ayAg26OzFtP VB0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=H+50gprk9TNXEMs2O7WcipwUuCw6FnOcAr/MydF6+6c=; b=LKaTV7/9lQfQnTVkBheM2W2ZDmnopF6++ENUorQQ6IWOYSSwxQ4VgFASLFp4rYIRGy VjeJNgzrS1gQ1SA+sUDgPnBYQYuym9cHuWmI0PeN8gTgPhLaaDWF576ZTF/HuuXMFPdS 3KEYFLObMnmG2QV901PlB9W3k7XNsiRKZTeCxOFsUik8mJN7CxRBL2OHadgjPUjPFLtC 9DgTgz602dvaOqRHpzMIz5NH5g9AWOTZAhCejoKTyrkEDPtRq06/9ycgPsqHEWJjf/H5 o/onA9Z76YjLOAPWwuWbjmPE2ZRFUZHGuNYyCPD6uIWu2FvmCb2bN9J+F6xHlgnPtMg6 dEag==
X-Gm-Message-State: AN3rC/5o67KDtcVJQgCwBpL9XOWKPtY/criuSqLA+sgbNAeXb4zN5NPc YQKta/pwVbHO5shDjMX5FMkhJCYLgrYf
X-Received: by 10.98.8.143 with SMTP id 15mr1878338pfi.268.1493238649779; Wed, 26 Apr 2017 13:30:49 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.185.143 with HTTP; Wed, 26 Apr 2017 13:30:09 -0700 (PDT)
In-Reply-To: <89d1c702-7830-1f5a-1176-0b894e2d99e9@nostrum.com>
References: <149322447211.30122.5870367500760951821.idtracker@ietfa.amsl.com> <f366eb05-b82c-123e-d0ca-8701fe16a469@nostrum.com> <CAHbuEH5vDjZ5tSt=314Dquju7N26XSOqQPNjV=jO6D8Xn7QVdQ@mail.gmail.com> <89d1c702-7830-1f5a-1176-0b894e2d99e9@nostrum.com>
From: Kathleen Moriarty <kathleen.moriarty.ietf@gmail.com>
Date: Wed, 26 Apr 2017 16:30:09 -0400
Message-ID: <CAHbuEH5OX-GiwF7zqWmks5k6yLj5SXvXwYVFjCChrsa_ckokwQ@mail.gmail.com>
Subject: Re: Kathleen Moriarty's Discuss on draft-ietf-rtgwg-yang-key-chain-20: (with DISCUSS and COMMENT)
To: Adam Roach <adam@nostrum.com>
Cc: The IESG <iesg@ietf.org>, Jeff Tantsura <jefftant.ietf@gmail.com>, rtgwg-chairs@ietf.org, draft-ietf-rtgwg-yang-key-chain@ietf.org, rtgwg@ietf.org
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtgwg/ikLxneWzjY_MKsjM-p1GtFcGYWc>
X-BeenThere: rtgwg@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Routing Area Working Group <rtgwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtgwg>, <mailto:rtgwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtgwg/>
List-Post: <mailto:rtgwg@ietf.org>
List-Help: <mailto:rtgwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtgwg>, <mailto:rtgwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 26 Apr 2017 20:30:56 -0000

Hi Adam,

I think I see where we are coming to different conclusions....

On Wed, Apr 26, 2017 at 4:18 PM, Adam Roach <adam@nostrum.com> wrote:
> On 4/26/17 2:36 PM, Kathleen Moriarty wrote:
>>
>> On Wed, Apr 26, 2017 at 2:42 PM, Adam Roach <adam@nostrum.com> wrote:
>>>
>>> On 4/26/17 11:34 AM, Kathleen Moriarty wrote:
>>>>
>>>> Since the following text int he Security Considerations section is a
>>>> recommendation, IMO it would be better to drop "or otherwise obfuscated"
>>>> from the sentence as encrypting the keys really should be the
>>>> recommendation.  Can we make this update?
>>>>
>>>>      It is RECOMMENDED that keys be encrypted or otherwise obfuscated
>>>> when
>>>>      stored internally on a network device supporting this
>>>> specification.
>>>>
>>>> If obfuscation is what happens more often in practice, maybe mention
>>>> this
>>>> as a fallback from the recommendation, but not make them sound
>>>> equivalent?
>>>
>>>
>>>
>>> To be clear -- the current guidance from the security area is to perform
>>> this kind of encryption, where you have encrypted material living
>>> side-by-side with the key necessary to decrypt it?
>>
>> We are talking about using a key encrypting key (KEK) and storing
>> that, not storing the raw key next to the encrypted data as far as I
>> can tell.
>
>
> Right.
>
>> Additionally, I haven't seen a discussion on the hardware
>> this is expected to run on.
>
>
> That might be appropriate matter for the draft, if it is going to make this
> recommendation.
>
>> Some implementations of KEK solutions use dedicated hardware for the
>> KEK and require authentication for access to the key, hence preventing
>> generic access and side-by-side storage of the KEK's protected key,
>> and encrypted data.  I'd rather see a KEK used than just a key stored
>> in any case.  Are you arguing for not using any encryption at all?
>
>
> I'll defer to you, of course, since you have presumably given the topic more
> thought than I have, but: yes.
>
> Absent something like an HSM or forcing human intervention whenever a
> process starts (or restarts), it seems that the scheme described in section
> 5 doesn't actually deter a competent attacker from obtaining the keys. My
> impression is that storing information in an encrypted form that can be
> trivially decrypted by an attacker provides a false sense of security to
> equipment operators.
>
> If the scheme in section 5 *does* require the kind of prerequisites you
> posit, such as dedicated security hardware, it seems that such prerequisites
> should be mentioned alongside the recommendation.
>
>> For YANG modules, couldn't the application via NETCONF/RESTCONF
>> accessing the module provide the credentials to access the key
>> protected by the KEK?
>
>
> That solves the issues with provisioning, but doesn't seem to help the
> processes actually involved in routing.
>
>> Some implementations could store the KEK in
>> dedicated hardware as well. In this way, storing the KEK and data
>> together is not the same as storing a key right next to the data it is
>> protecting.
>
>
> This makes perfect sense; and it should probably be in the document.
>
>> Use of a KEK is better then not encrypting and can be done
>> well.
>
>
> It can also be done poorly, and the mention of obfuscation (along with the
> exchange I cite below) leads me to believe that -- absent concrete guidance
> to the contrary -- implementors will choose to do it poorly. It's not clear
> that doing this poorly provides any benefit, and it seems to me that it may
> cause harm: if something _looks_ secure but isn't, doesn't that have the
> potential for operators to incorrectly treat it as secure? Again, this is
> more your area than mine and so I will defer to your opinion on the topic;
> but from a lay perspective, this seems likely to result in the lack of
> guarding against compromise of the encrypted information under the mistaken
> impression that it can't be decrypted trivially.
>

The way I read the thread from Acee is that there aren't any KEK
implementations with with particular YANG module, however Brian says
there is with other YANG modules.  I *think* when Acee is referring to
obfuscation and less than ideal scenarios, it is with the currently
deployed implementations that don't use KEKs.  But the text and
responses did seem to be commingled a bit too much.

>
>> Am I missing something?  Was there something implementation specific
>> that has the raw key stored with the encrypted data?
>
>
> Perhaps the following exchange with the author:
>
> Adam: "By my reading, this is just talking about encrypting 'on the disk'
> storage on the device. Any processes involved in provisioning the values or
> using them to process traffic would have access to the plaintext, presumably
> by reading the encrypted form off disk, reading some keying material off
> disk, and combining them to retrieve the plaintext key."

It looks like version 20 had different assumptions about using the
KEK.  I *think* this is describing usage without a KEK and may be part
of why Acee is asking for more implementation guidance... so I'll keep
my discuss to see if we can shape that up more.  This is helpful as I
think I see the gap more now as to what he might be looking for in
terms of guidance.

Here's the text from -20:

When configured, the key-strings can be encrypted using the AES Key
   Wrap algorithm [AES-KEY-WRAP].  The AES key-encryption key (KEK) is
   not included in the YANG model and must be set or derived independent

Lindem, et al.          Expires October 20, 2017               [Page 15]
Internet-Draft               YANG Key Chain                   April 2017

   of key-chain configuration.  When AES key-encryption is used, the
   hex-key-string feature is also required since the encrypted keys will
   contain characters that are not representable in the YANG string
   built-in type [YANG].  AES key-encryption MAY be used for added key
   security in situations where the NETCONF Access Control Mode is not
   available.

>
> Acee: "This is the correct interpretation."
>
> /a

Thanks.

-- 

Best regards,
Kathleen