From owner-svn-src-all@freebsd.org Wed Apr 17 17:16:55 2019 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0DC3E1572DB7 for ; Wed, 17 Apr 2019 17:16:55 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x742.google.com (mail-qk1-x742.google.com [IPv6:2607:f8b0:4864:20::742]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9526689596 for ; Wed, 17 Apr 2019 17:16:54 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x742.google.com with SMTP id n68so14827648qka.1 for ; Wed, 17 Apr 2019 10:16:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=AzK1QqsIhvko8X6L/mAALXziKCYba6+xw/6grpAL7r0=; b=B2tapYqCXif3reFRUe1MU3/EtBoW5VNOQXrSVyu8OFto/x860UCu+LaLwIhI/jcYsX ULFgGlZfdEcYhlhgHR0L3cho/phGW6RsFzd9mU2CuOpf8wiCPX5kXie08HRCDlCO+OTi DGkqqVLMsr0c2UaroHDv1XZWVsI1lJXYHw5ZPNH+QdZo7kdxtWiaPN+b6qpjxPibxW85 Y1Sm1Vhw66hUUjAKKrgU9OKiGwDF+TcNhPDPtZOm9EVJyef7RV41kSt3EdqPKAUESQVw io/FgjlsZM1XyuRXnjj4uI6dcmJCLez9fdgbpjLlDLERxhtR12qEGPZ/Ol8ZpTXyLWFD bVXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=AzK1QqsIhvko8X6L/mAALXziKCYba6+xw/6grpAL7r0=; b=k7bGkiWBKjUBvL9r3g5d+sWDKmcHeF8jSQdOXbV7CjjbditQQizHuWxJ+Xu3/sqQa6 jkWlPsSLdls0oN0E3ttn15OWlyx3rtVnAjJGD1GkQimwPMC0A8sMEgp8wHe31Lyr7Zkg PFEfHmFrA48EXJu0Q8yvQ31rW2bPtubDPyDSkRr63/W3bveL5bauoTwJFJXAw+nRlCOm dxk24Duo76KCWw5eepZCuUkkc1W3ilbOJbbmC/cA5sxrofiMW+xYBEcgZ41SlbwZx2AS uv5Si5Yu27pTq8GpAGbPB3d5XcJp92KnuxDNxg+akdHt9PstIuP0D8rECc+QqPJtUogW pAZA== X-Gm-Message-State: APjAAAW9RXqluuLdIUHLytYKs64RKH/JiLP+skEzkKMDr2U5B8M2umJC iV/Q3HCpYlJAtSa7jzw1KfmlhWmNsjh4/b6bqTJOqg== X-Google-Smtp-Source: APXvYqz4Vm4ZYbGY/j+WuHmwCDXc0mmegMtO26R8LwI73sUy8acjd/2RSetSHbl91Ontn02o/XZPt/9BuVHXUa1QQso= X-Received: by 2002:a37:a02:: with SMTP id 2mr25002843qkk.258.1555521413890; Wed, 17 Apr 2019 10:16:53 -0700 (PDT) MIME-Version: 1.0 References: <201904162251.x3GMp2aF097103@gndrsh.dnsmgr.net> <4d6b8a14-b053-9ed1-14b2-bbc359ac9413@FreeBSD.org> <48b25255-3d66-69fc-658b-6176ebaf4640@FreeBSD.org> In-Reply-To: <48b25255-3d66-69fc-658b-6176ebaf4640@FreeBSD.org> From: Warner Losh Date: Wed, 17 Apr 2019 11:16:42 -0600 Message-ID: Subject: Re: svn commit: r346250 - in head: share/man/man4 share/man/man9 sys/dev/random sys/kern sys/libkern sys/sys To: John Baldwin Cc: "Conrad E. Meyer" , src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 9526689596 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.98 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.983,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Apr 2019 17:16:55 -0000 On Wed, Apr 17, 2019 at 10:06 AM John Baldwin wrote: > On 4/16/19 4:48 PM, Conrad Meyer wrote: > > On Tue, Apr 16, 2019 at 4:31 PM John Baldwin wrote: > >> bhyveload is effectively the loader in this case. It runs the normal > loader > >> scripts and logic and so would load the guests's /boot/entropy and pass > it > >> to the guest kernel as metadata just like the regular loader. > > > > Right, except it doesn't seem to do things like nuke /boot/nextboot.conf > :-(. > > It just needs a disk write method I think for that to work, but I'm not > sure > that's currently in the userboot interface. > It isn't. Write support was added to the boot loader after bhyveload was forked. It hasn't been updated. > >> In addition, bhyve also supports virtio-rng which is another way to > provide > >> entropy to guest OS's. That's why in my reply I focused on qemu for > mips > >> (or riscv) as for x86 hypervisors there are existing, > somewhat-standarized > >> solutions for the hypervisor to provide entropy to the guest. > > > > Perhaps cryptographically random stack-protector cookies are simply > > inappropriate for MIPS or RISCV. Do we have any other examples of > > kernel random consumers blocking after that immediate hiccup is > > overcome? > > There may be MIPS and RISCV designs that do have suitable entropy available > (especially I would expect future RISCV designs to have them), so I think > blacklisting stack protector wholesale on those architectures is overboard. > I think some sort of off-by-default knob (even a compile option) is fine > for > people who need fast and loose vs safe as you already agreed to earlier. > > Also, for development testing we still want coverage of using stack cookies > on MIPS and RISCV even if the simulator environment gives not-very-strong > cookie values. I'm going to put a very fine point on this: any hard-requirement of entropy sources is a non-starter. If you require that, your commit will be backed out and/or hacked around by the addition of a nob in the future. It will happen. Don't pretend you can say 'but things weren't random enough' will carry the day. It will not. That's why I specifically requested a MD routine to be called when there's no source of entropy: that will let special needs folks do the right thing. It's also why I asked for a way to say "don't ever block waiting for entropy, soldier on the best you can, but set some variable that can be exposed to userland so that early in /etc/rc automation can be written to decide what to do when that condition exists: generate entropy and reboot, report it to some central control, nothing" since that will give the tools for different reactions. For our application it is *NEVER* OK to block the boot because there's not enough randomness. We'd rather solider on with crappy randomness and want the boot to proceed not matter what. We want the information that we had to make compromises along the way to make it happen so we can decide the right course of action for our appliances. Warner