Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp1340112ybp; Fri, 4 Oct 2019 13:12:09 -0700 (PDT) X-Google-Smtp-Source: APXvYqz1dkUsCH/PKugTAqukJ+KEE9wv9ssYtYrAmuIy1qEsB8jyx3SabFyo/t2zdFEiPwk5JRbs X-Received: by 2002:a17:906:f145:: with SMTP id gw5mr14008850ejb.68.1570219929823; Fri, 04 Oct 2019 13:12:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570219929; cv=none; d=google.com; s=arc-20160816; b=Dc3mq63EcWYxdwBhieOCdxIjIF/XXskcgl+wx04ckmBxHfrY3gF1F4N+le54iBUvgh l5U/I8D7QTH7mjmOMb+u9TVD2dkdgfHDT/Cpg26wMnRLt7DThOjJS6P6LAnxPoM2IXb+ CK0zOn27OaW+t0WJE5YyKKoxEnj0rby5+XETzjoqcdDBcUbYsZZ1KR7ytrGqNZrEmPW/ ZoehEfk5cNE2nZ0w8W6HzualdkypiXNgh7RY4nCVfE5tLM0u63WQh17X8ilgX9+QSSjV n9P4rWy8IFUQ+W+i445pUo16oRH4EmIaup559BPl+A4G/v/bpi+JN8GI7ejaCGJtWBKD 31yQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:mail-followup-to :reply-to:message-id:subject:to:from:date; bh=oefRLRHPUFRhefeZoPfYtoKI/frpILJv/HMoF+sATsw=; b=TxHh1KCgbSvlnKX7vpxxjnw/q0dmWF/wrVtEmtxiB7+Rv7FrpG9/WC0AyIE0fVBLcB g9rzriPRxhmSQv+nVd3qGdotKg3WmTXVrGOBTeTzwE/gbq0DchLmYdh9fu4VZtJfZOz+ Q+XIqB3wU9nOJwkK+DKcj3XVVXdOZF8Rq/S/TABbRFIAnqRSGkjdJpNIl6HnZ8shWHEh GEWwF8/IF8+APKe035PtDNWVqeQIWldtWgxvWP77Zg7LfIffGP1r6kSIO+h2lLgN32WW JJYIcWPncTkSUbCxfBOMBXSR1RW+5TRMM3Cr8+tY0dqjTrMrvvx32WP6B1m6I9LN4dkx DH5w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id sa16si3622427ejb.356.2019.10.04.13.11.45; Fri, 04 Oct 2019 13:12:09 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731206AbfJDULi (ORCPT + 99 others); Fri, 4 Oct 2019 16:11:38 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48292 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730340AbfJDULh (ORCPT ); Fri, 4 Oct 2019 16:11:37 -0400 Received: from mail-io1-f69.google.com (mail-io1-f69.google.com [209.85.166.69]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6BB92B62C for ; Fri, 4 Oct 2019 20:11:37 +0000 (UTC) Received: by mail-io1-f69.google.com with SMTP id x13so13712416ioa.18 for ; Fri, 04 Oct 2019 13:11:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:reply-to :mail-followup-to:references:mime-version:content-disposition :in-reply-to:user-agent; bh=oefRLRHPUFRhefeZoPfYtoKI/frpILJv/HMoF+sATsw=; b=lhq9F4/TNwVh3m7RhDJjpemUw1cxGptYgVfiSaiEG6wS1fLnEHhIl5wmyl0aCZblkC g94fLwbmKFMrdQPV2IgW0qH9uuvj5J+fCY8xDFYXR3iz8EQt0Nan9FgEFrbrXysoe0ZN lCwOwpmZ7fBjjvpedLRs91c5cfRWv3ale4zWofYvf4bSQi45ImRxjzmeMayLaFHg8jD8 itjXIDqp6jd9IelZgbo88f25IQDLp2ovKG8VzWFqdRrRSB5sJCjXYmpgNGfda0dgWGC4 pwZeBvM6vv21dTC86mK5vwBY2JV8JEuYY+JLs3Ovrere/SzCRiLaG+hLfWd6zH1R5aKx qShg== X-Gm-Message-State: APjAAAW1IIbq2JiYJ95wZmmiOWTD8SSjTV9sdUrt5L4K+AIiBABEcGcO RMbg9Y5lel7k+PINO2/BrbMNrEz0asCRFPp4X23T9XQxxMYBwsyuLFx4BqIRHX1oKjQSlb5DAxG o32R7sXu5NdiEUBJXfevB7bIc X-Received: by 2002:a92:3bca:: with SMTP id n71mr18292796ilh.104.1570219896808; Fri, 04 Oct 2019 13:11:36 -0700 (PDT) X-Received: by 2002:a92:3bca:: with SMTP id n71mr18292760ilh.104.1570219896550; Fri, 04 Oct 2019 13:11:36 -0700 (PDT) Received: from localhost (ip70-163-223-149.ph.ph.cox.net. [70.163.223.149]) by smtp.gmail.com with ESMTPSA id f12sm2530228iob.58.2019.10.04.13.11.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Oct 2019 13:11:35 -0700 (PDT) Date: Fri, 4 Oct 2019 13:11:34 -0700 From: Jerry Snitselaar To: James Bottomley , Jarkko Sakkinen , Mimi Zohar , David Safford , linux-integrity@vger.kernel.org, stable@vger.kernel.org, David Howells , Herbert Xu , "David S. Miller" , "open list:ASYMMETRIC KEYS" , "open list:CRYPTO API" , open list Subject: Re: [PATCH] KEYS: asym_tpm: Switch to get_random_bytes() Message-ID: <20191004201134.nuesk6hxtxajnxh2@cantor> Reply-To: Jerry Snitselaar Mail-Followup-To: James Bottomley , Jarkko Sakkinen , Mimi Zohar , David Safford , linux-integrity@vger.kernel.org, stable@vger.kernel.org, David Howells , Herbert Xu , "David S. Miller" , "open list:ASYMMETRIC KEYS" , "open list:CRYPTO API" , open list References: <1570128827.5046.19.camel@linux.ibm.com> <20191003215125.GA30511@linux.intel.com> <20191003215743.GB30511@linux.intel.com> <1570140491.5046.33.camel@linux.ibm.com> <1570147177.10818.11.camel@HansenPartnership.com> <20191004182216.GB6945@linux.intel.com> <1570213491.3563.27.camel@HansenPartnership.com> <20191004183342.y63qdvspojyf3m55@cantor> <1570214574.3563.32.camel@HansenPartnership.com> <20191004200728.xoj6jlgbhv57gepc@cantor> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <20191004200728.xoj6jlgbhv57gepc@cantor> User-Agent: NeoMutt/20180716 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org On Fri Oct 04 19, Jerry Snitselaar wrote: >On Fri Oct 04 19, James Bottomley wrote: >>On Fri, 2019-10-04 at 11:33 -0700, Jerry Snitselaar wrote: >>>On Fri Oct 04 19, James Bottomley wrote: >>>> On Fri, 2019-10-04 at 21:22 +0300, Jarkko Sakkinen wrote: >>>> > On Thu, Oct 03, 2019 at 04:59:37PM -0700, James Bottomley wrote: >>>> > > I think the principle of using multiple RNG sources for strong >>>> > > keys is a sound one, so could I propose a compromise: We have >>>> > > a tpm subsystem random number generator that, when asked for >>>> > > random bytes first extracts bytes from the TPM RNG and >>>> > > places it into the kernel entropy pool and then asks for >>>> > > random bytes from the kernel RNG? That way, it will always have >>>> > > the entropy to satisfy the request and in the worst case, where >>>> > > the kernel has picked up no other entropy sources at all it >>>> > > will be equivalent to what we have now (single entropy source) >>>> > > but usually it will be a much better mixed entropy source. >>>> > >>>> > I think we should rely the existing architecture where TPM is >>>> > contributing to the entropy pool as hwrng. >>>> >>>> That doesn't seem to work: when I trace what happens I see us >>>> inject 32 bytes of entropy at boot time, but never again. I think >>>> the problem is the kernel entropy pool is push not pull and we have >>>> no triggering event in the TPM to get us to push. I suppose we >>>> could set a timer to do this or perhaps there is a pull hook and we >>>> haven't wired it up correctly? >>>> >>>> James >>>> >>> >>>Shouldn't hwrng_fillfn be pulling from it? >> >>It should, but the problem seems to be it only polls the "current" hw >>rng ... it doesn't seem to have a concept that there may be more than >>one. What happens, according to a brief reading of the code, is when >>multiple are registered, it determines what the "best" one is and then >>only pulls from that. What I think it should be doing is filling from >>all of them using the entropy quality to adjust how many bits we get. >> >>James >> > >Most of them don't even set quality, including the tpm, so they end up >at the end of the list. For the ones that do I'm not sure how they determined >the value. For example virtio-rng sets quality to 1000. I should have added that I like that idea though.