On 2020-08-01 07:59, Marek Marczykowski-Górecki wrote:
> On Fri, Jul 31, 2020 at 02:17:05PM -0700, Jason M wrote:
>> I then looked into alternatives to prevent my complete departure from 
>> Qubes.  Marek told me about DomB, which is now in its design stages.  It 
>> would allow me to statically partition my machine (like having 2 dom0 VMs 
> 
> Not really 2 dom0 in a sense you would need. What you'd need is a 2
> hardware domains (dom0 by default) and that can still be only one. One
> of domB proposal goals is to make it more meaningful to have hardware
> domain != dom0, by eliminating dom0.
> 
>> *GOALS*
>> The final goals would be to support all Qubes features and apps.
> 
> Yes!!
> 
>> *STAGE 1*
>> The initial goal is to get Qubes to be able to manage the virtual machines 
>> (start, stop, etc) using 'qvm-*' tools and *Qubes Manager*.  Seamless VM 
>> video or audio will not be implemented in stage 1 so either a GPU will need 
>> to be passed through to the VM (which will also be able to provide HDMI 
>> audio), or access using spice or vnc.  Stage 1 goals include the following:
> 
>>    - Use same template system Qubes currently uses including settings like 
>>       *qvm-prefs*, *features*, *tags*, etc.
>>       - Obviously support PCI pass-through using Nvidia drivers for RTX GPU
>>       - Support qrexec communication from host <-> vm
>>       - Locking down KVM host
>>       - Securing the network - look into ability to enabling *sys-net* and 
>>          *sys-firewall*
> 
> One challenge with the last point is to have VM<->VM network connection
> (like sys-net - sys-firewall) without exposing the host to the traffic.
> Most (all?) of the traditional KVM setups assumes the host is responsible
> for routing network traffic.

In most KVM setups that I know of, the kernel network stack is
considered trusted.  That’s a reasonable assumption for production
servers, which have server-grade NICs and are behind enterprise
routers, but not for Qubes.

> One idea is to use netdev socket to connect two VMs directly, but I
> worry about the performance...

We could also reimplement the Xen netfront/netback protocols on top
of KVM shared memory.  Future versions of KVM might even have direct
support for Xen paravirtualized drivers.

> One thing to consider is also enabling memory deduplication in KVM
> (KSM). This should nicely save memory when running multiple similar VMs,
> but at the same time is risky in light of speculative execution and also
> rowhammer-style attacks.

Honestly, I don’t think that deduplication is worth it, especially
in light of TRRespass.  It also makes side-channel attacks far, *far*
easier to exploit.

What *might* be safe is mapping read-only data (such as dom0-provided
kernels) into multiple VMs 
> Yes, no issue as stubdomains are not existing on KVM.

This could be a nasty issue for HVMs, as without stubdomains, all
emulation must be done in dom0.  Google and Amazon both solved this by
writing their own VMMs.  At some point, KVM might be able to move the
instruction emulation into userspace, which might be a significant win.

(What I *really* want is a version of QubesOS based on seL4.
But seL4 didn’t support 64-bit VMs last I checked, and I am not
aware of any tooling for creating and destroying VMs at run-time.
Most of the userspace tooling around seL4 is based on CAmkES, which
requires that every component be statically known at compile-time.
Furthermore, getting seL4’s hypervisor and IOMMU support verified
would either require someone to fund the project, or someone who has
sufficient skill with the Isabelle proof assistant to do it themselves.
Without verification, the benefits of using seL4 are significantly
diminished.)

Sincerely,

Demi



-- 
You received this message because you are subscribed to the Google Groups 
"qubes-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to qubes-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/qubes-devel/a0fa62fd-941b-c450-542c-59be6c7c238c%40gmail.com.

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to