From owner-svn-src-head@freebsd.org Wed Apr 17 17:16:55 2019 Return-Path: Delivered-To: svn-src-head@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 2A56B1572DB8 for ; Wed, 17 Apr 2019 17:16:55 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x744.google.com (mail-qk1-x744.google.com [IPv6:2607:f8b0:4864:20::744]) (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 9F39089598 for ; Wed, 17 Apr 2019 17:16:54 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x744.google.com with SMTP id x18so2615705qkf.13 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=PsZmqZIoc7S9WXgxFyk0oVRYWirdVPAWzy0Ro784+waLO/VaVQplG8qdYMQTQ+V28O HAeliVv+/t3Rm8p+wmbbtLysEujqejsIbuL8QaDkcjT+/DSKVnqu5Yy6kX0BcxV4HqKO 4gUoFxrc2rSRZgTFBF8/uNyhE3IkL9N+/TIirs+CbBikQ2ik6lAJYUmnbW7zNG2IXkUg HnL/O6PGQugvThuq3WDo5I6CXyNYllJUo6lABwtAy7UM1P28pHOXmtX2CEhauHEdqGAV 92ATWjRqtel0hXqLLIurXX/8viflTK+T/fA7LZ/2JbckJm6Hbb9zf9wb7wsjQ0Y9uZjF yMOQ== X-Gm-Message-State: APjAAAUkxpn+g692hCR39YixI5ZOLiiSTsns2e9HI+v4TYmCxD8/JI8h oTlxTW1XObQAHGiX3u7c8/vNpGjfgxEr7EpdgH9OAA== 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: 9F39089598 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]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current 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