general high-level discussion about spectrum
 help / color / mirror / Atom feed
* Comparison to Qubes OS
@ 2020-06-12 11:06 joweill
  2020-06-12 11:28 ` Michał "rysiek" Woźniak
  2020-06-13 11:38 ` Alyssa Ross
  0 siblings, 2 replies; 19+ messages in thread
From: joweill @ 2020-06-12 11:06 UTC (permalink / raw)
  To: discuss

Hi there,

I just discovered this project and I'm really excited about it! I've long waited for an OS that combines Qubes-like compartmentalization with the reproducibility of Nix/GUIX.

I'm trying to understand what this project aims to improve over Qubes, other than the integration of Nix (which I do think is really important!). I read the motivation page [1], but I'm not yet convinced by most
of the points mentioned that relate to Qubes. Going over each usability issue mentioned in the motivation doc:

- "Hardware compatibility is extremely limited": I don't believe this is really the case for the minimum Qubes 4 requirements [4]: most modern computers people buy support these. Is there anything I'm missing?
- "People are reluctant to use Xen on their computer for power management etc. reasons." Can you elaborate on these issues?
- I know that Qubes considered using KVM and decided against it for security reasons [2]. My understanding is that the downside of this decision is the limited hardware support, which is one of the things that Spectrum views as an opportunity for improvement. Can you elaborate on this decision?
- "VMs are heavy": How will Spectrum improve on this without sacrificing security?
- "GUI applications are buggy, command line tools are mostly undocumented": I assume that the reason for this is the lack of resources the Qubes project has. However, I don't see how this will be be
  better in the case of Spectrum which is a new project with one developer.

More generally, I'm wondering whether this projects' goals couldn't be better achieved by trying to work with the Qubes developers to integrate Nix. It may very well be that they would reject it for
some reason, but then the logical next step would be to fork Qubes.
Have you reached out to the Qubes developers?

Thanks in advance!

## References

[1] https://spectrum-os.org/motivation.html
[2] https://www.qubes-os.org/faq/#why-does-qubes-use-xen-instead-of-kvm-or-some-other-hypervisor

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-12 11:06 Comparison to Qubes OS joweill
@ 2020-06-12 11:28 ` Michał "rysiek" Woźniak
  2020-06-12 11:54   ` infokiller ​
  2020-06-13 11:38 ` Alyssa Ross
  1 sibling, 1 reply; 19+ messages in thread
From: Michał "rysiek" Woźniak @ 2020-06-12 11:28 UTC (permalink / raw)
  To: discuss


[-- Attachment #1.1: Type: text/plain, Size: 3642 bytes --]

Hi!

A QubesOS user here for about a year and a half, let's see if I can help out here.

On 6/12/20 11:06 AM, joweill@icloud.com wrote:
> Going over each usability issue mentioned in the motivation doc:
> 
> - "Hardware compatibility is extremely limited": I don't believe this is really the case for the minimum Qubes 4 requirements [4]: most modern computers people buy support these. Is there anything I'm missing?

I got a shiny new Thinkpad T490 a few months ago. 3d acceleration (KDE user
here, I demand my wobbly windows!) is simply not available, because the dom0
system is too old.

My other laptop, a T470, was specifically selected for QubesOS, and there were
still issues (for instance, disabling Thuderbolt got me almost double the
battery life).

Generally speaking, one can buy almost any laptop today and expect it to mostly
work with plain GNU/Linux. However, most might not even be able to boot QubesOS.

> - "People are reluctant to use Xen on their computer for power management etc. reasons." Can you elaborate on these issues?

The T470 had easily a 10-12h battery life on plain Kubuntu. On Qubes, 4-5h is
maximum I can squeeze out of it, and that's *after* the Tunderbolt fix.

Running virtual machines is extremely resource-intensive, there's no way around it.

> - I know that Qubes considered using KVM and decided against it for security reasons [2]. My understanding is that the downside of this decision is the limited hardware support, which is one of the things that Spectrum views as an opportunity for improvement. Can you elaborate on this decision?

Can't speak for the developers, but the way I see Spectrum is as a compromise
between regular GNU/Linux distro (with all the related security problems) and
QubesOS (with the limited hardware support and

> - "VMs are heavy": How will Spectrum improve on this without sacrificing security?

I'll leave this to the developers, but will say that I expect *some* security to
be sacrificed. There are always trade-offs.

I feel one needs to be an expert to use QubesOS, but a regular user (with some
basic training) can use a Mint or Ubuntu-based system. And I think it makes a
lot of sense to offer a middle ground.

> - "GUI applications are buggy, command line tools are mostly undocumented": I assume that the reason for this is the lack of resources the Qubes project has. However, I don't see how this will be be
>   better in the case of Spectrum which is a new project with one developer.

That's a fair point. Things to consider:
1. *probably* certain things can be easier (thus, less bug-prone) in SpectrumOS
than in QubesOS (kvm easier to work with than Xen, bigger potential community of
users and developers due to improved hardware support, etc);
2. perhaps some QubesOS tools could be used in SpectrumOS, thus limiting the
amount of work needed

> More generally, I'm wondering whether this projects' goals couldn't be better achieved by trying to work with the Qubes developers to integrate Nix. It may very well be that they would reject it for
> some reason, but then the logical next step would be to fork Qubes.

My feel is that QubesOS and SpectrumOS might have a bit different threat models
in mind, and thus things that make sense for SpectrumOS (like using kvm) are a
no-go for Qubes. But that's just guesswork on my part.

> Have you reached out to the Qubes developers?
> 
> Thanks in advance!
> 
> ## References
> 
> [1] https://spectrum-os.org/motivation.html
> [2] https://www.qubes-os.org/faq/#why-does-qubes-use-xen-instead-of-kvm-or-some-other-hypervisor
> 



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 963 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-12 11:28 ` Michał "rysiek" Woźniak
@ 2020-06-12 11:54   ` infokiller ​
  2020-06-12 12:02     ` Michał "rysiek" Woźniak
  0 siblings, 1 reply; 19+ messages in thread
From: infokiller ​ @ 2020-06-12 11:54 UTC (permalink / raw)
  To: discuss

Thanks for a useful reply Michał!
Some responses below.

Michał "rysiek" Woźniak wrote:
> Hi!
> 
> A QubesOS user here for about a year and a half, let's see if I can help out here.
> 
> On 6/12/20 11:06 AM, joweill(a)icloud.com wrote:
> >   Going over each usability issue mentioned in the
> > motivation doc:
> >  
> >  - "Hardware compatibility is extremely limited": I don't believe this is
> > really the case for the minimum Qubes 4 requirements [4]: most modern computers people buy
> > support these. Is there anything I'm missing? 
> I got a shiny new Thinkpad T490 a few months ago. 3d acceleration (KDE user
> here, I demand my wobbly windows!) is simply not available, because the dom0
> system is too old.
> 
> My other laptop, a T470, was specifically selected for QubesOS, and there were
> still issues (for instance, disabling Thuderbolt got me almost double the
> battery life).
> 
> Generally speaking, one can buy almost any laptop today and expect it to mostly
> work with plain GNU/Linux. However, most might not even be able to boot QubesOS.
> 
> >   - "People are reluctant to use Xen on their
> > computer for power management etc. reasons." Can you elaborate on these issues?
> > 
> The T470 had easily a 10-12h battery life on plain Kubuntu. On Qubes, 4-5h is
> maximum I can squeeze out of it, and that's *after* the Tunderbolt fix.
> 
> Running virtual machines is extremely resource-intensive, there's no way around it.
But if the issues stem from running VMs (and not switching from Xen), they won't be resolved with Spectrum's current design, right?
> 
> >   - I know that Qubes considered using KVM and decided
> > against it for security reasons [2]. My understanding is that the downside of this
> > decision is the limited hardware support, which is one of the things that Spectrum views
> > as an opportunity for improvement. Can you elaborate on this decision? 
> Can't speak for the developers, but the way I see Spectrum is as a compromise
> between regular GNU/Linux distro (with all the related security problems) and
> QubesOS (with the limited hardware support and
> 
> >   - "VMs are heavy": How will Spectrum improve
> > on this without sacrificing security? 
> I'll leave this to the developers, but will say that I expect *some* security to
> be sacrificed. There are always trade-offs.
> 
> I feel one needs to be an expert to use QubesOS, but a regular user (with some
> basic training) can use a Mint or Ubuntu-based system. And I think it makes a
> lot of sense to offer a middle ground.
Agreed, but I think the current design of Spectrum may improve Qubes' hardware issues, but not the other issues the doc mentions. Possibly switching to containers (which something like gVisor) may solve some of the other issues of Qubes, though that would further degrade security.
> 
> >   - "GUI applications are buggy, command line tools
> > are mostly undocumented": I assume that the reason for this is the lack of resources
> > the Qubes project has. However, I don't see how this will be be
> >    better in the case of Spectrum which is a new project with one developer. 
> That's a fair point. Things to consider:
> 1. *probably* certain things can be easier (thus, less bug-prone) in SpectrumOS
> than in QubesOS (kvm easier to work with than Xen, bigger potential community of
> users and developers due to improved hardware support, etc);
> 2. perhaps some QubesOS tools could be used in SpectrumOS, thus limiting the
> amount of work needed
> 
> >   More generally, I'm wondering whether this
> > projects' goals couldn't be better achieved by trying to work with the Qubes
> > developers to integrate Nix. It may very well be that they would reject it for
> >  some reason, but then the logical next step would be to fork Qubes. 
> My feel is that QubesOS and SpectrumOS might have a bit different threat models
> in mind, and thus things that make sense for SpectrumOS (like using kvm) are a
> no-go for Qubes. But that's just guesswork on my part.
> 
> >   Have you reached out to the Qubes developers?
> >  
> >  Thanks in advance!
> >  
> >  ## References
> >  
> >  [1] https://spectrum-os.org/motivation.html
> >  [2]
> > https://www.qubes-os.org/faq/#why-does-qubes-use-xen-instead-of-kvm-or-some…
> >

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-12 11:54   ` infokiller ​
@ 2020-06-12 12:02     ` Michał "rysiek" Woźniak
  2020-06-13 11:19       ` Alyssa Ross
  0 siblings, 1 reply; 19+ messages in thread
From: Michał "rysiek" Woźniak @ 2020-06-12 12:02 UTC (permalink / raw)
  To: discuss


[-- Attachment #1.1: Type: text/plain, Size: 1217 bytes --]

Hey,

On 6/12/20 11:54 AM, infokiller wrote:
> Michał "rysiek" Woźniak wrote:
>> Running virtual machines is extremely resource-intensive, there's no way around it.
>
> But if the issues stem from running VMs (and not switching from Xen), they won't be resolved with Spectrum's current design, right?

Right you are about the performance issues *I think*. I would however expect
hardware compatibility to improve with kvm.

But I'd love somebody more knowledgeable to shed some light here.

>> I feel one needs to be an expert to use QubesOS, but a regular user (with some
>> basic training) can use a Mint or Ubuntu-based system. And I think it makes a
>> lot of sense to offer a middle ground.
>
> Agreed, but I think the current design of Spectrum may improve Qubes' hardware issues, but not the other issues the doc mentions. Possibly switching to containers (which something like gVisor) may solve some of the other issues of Qubes, though that would further degrade security.

Fun fact, containers were in fact initially considered. :-)

Here's a good blogpost from Alyssa on why move to kvm, and the advantages of it
over Xen: https://alyssa.is/back-from-cccamp-2019/

--
Best
r


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 963 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-12 12:02     ` Michał "rysiek" Woźniak
@ 2020-06-13 11:19       ` Alyssa Ross
  0 siblings, 0 replies; 19+ messages in thread
From: Alyssa Ross @ 2020-06-13 11:19 UTC (permalink / raw)
  To: Michał rysiek Woźniak, infokiller ​; +Cc: discuss

[-- Attachment #1: Type: text/plain, Size: 4327 bytes --]

Michał "rysiek" Woźniak <rysiek@hackerspace.pl> writes:

> On 6/12/20 11:54 AM, infokiller wrote:
>> Michał "rysiek" Woźniak wrote:
>>> Running virtual machines is extremely resource-intensive, there's no way around it.
>>
>> But if the issues stem from running VMs (and not switching from Xen), they won't be resolved with Spectrum's current design, right?
>
> Right you are about the performance issues *I think*. I would however expect
> hardware compatibility to improve with kvm.
>
> But I'd love somebody more knowledgeable to shed some light here.

I am by no means a Xen expert (and so the following could be totally
wrong, and I would appreciate being corrected), but my understanding is
that Linux is likely to provide better power management than Xen due to
being better optimised, and not being as focused as Xen on large data
center deployments.

Additionally, there are interesting Linux virtualization features that
may allow for reduced overall hardware requirements by securely sharing
resources between VMs.  For example, it may be possible to share
identical read-only memory pages between VMs.  There's not necessarily
any reason that running identical copies of Firefox in two different VMs
should require two copies of Firefox in host memory.  The most promising
application of this principle at the moment in virtio-fs[1][2], which
supports this page sharing.  DAX[3] may also be of interest.  Of course,
there will be security considerations when deciding whether to adopt
these systems, but the point is that this sort of development just isn't
happening with Xen.  It's all focused on the KVM ecosystem.

[1]: https://virtio-fs.gitlab.io/
[2]: https://lwn.net/Articles/788333/
[3]: https://lwn.net/Articles/610174/

Hardware compatibility should certainly be better with KVM.  Linux
has extremely diverse hardware support, and a much larger user base than
Xen, especially on consumer hardware.  I'd be confident in saying most
relatively recent consumer PC hardware will support Linux reasonably
well (a notable exception of course being Nvidea GPUs), and I'd be
surprised if Xen worked well on anywhere near as many devices.

>>> I feel one needs to be an expert to use QubesOS, but a regular user (with some
>>> basic training) can use a Mint or Ubuntu-based system. And I think it makes a
>>> lot of sense to offer a middle ground.
>>
>> Agreed, but I think the current design of Spectrum may improve Qubes' hardware issues, but not the other issues the doc mentions. Possibly switching to containers (which something like gVisor) may solve some of the other issues of Qubes, though that would further degrade security.
>
> Fun fact, containers were in fact initially considered. :-)
>
> Here's a good blogpost from Alyssa on why move to kvm, and the advantages of it
> over Xen: https://alyssa.is/back-from-cccamp-2019/

Indeed, Spectrum was originally conceived as a Qubes-style operating
system that used containers instead of VMs.  The reason the focus
shifted from containers to KVM is that as I researched the topic, I
became less confident in the ability of containers to offer meaningful
security, and learned that the overhead of VMs doesn't have to be as big
as I thought.  Of particular inspiration was "My VM is Ligther (and
Faster) than your Container"[4], which demonstrates Xen-based virtual
machines with resource requirements roughly equivalent to containers.

I also think that Nix might put Spectrum in a unique position to provide
lightweight virtual machines.  Conventionally, VMs run full-featured
Linux distributions, with all the memory and disk requirements that
entails.  It's not usually feasible to build tailored VM images running
only the software that is critical to the task of the VM.  With Nix,
however, it suddenly is.  A big part of the appeal of containers, I
think, is that the tooling makes it easy to create small images focused
on a single task.  VM tooling has never really provided this.  It's a
sort of vicious cycle of assuming VMs are heavy and therefore it doesn't
make sense to have a VM dedicated to a single task, which means that
tooling for creating such a VM isn't developed, which means that VMs
stay heavy.

[4]: http://cnp.neclab.eu/projects/lightvm/lightvm.pdf

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-12 11:06 Comparison to Qubes OS joweill
  2020-06-12 11:28 ` Michał "rysiek" Woźniak
@ 2020-06-13 11:38 ` Alyssa Ross
  2020-06-14 20:19   ` infokiller ​
  2020-06-14 21:13   ` Michael Raskin
  1 sibling, 2 replies; 19+ messages in thread
From: Alyssa Ross @ 2020-06-13 11:38 UTC (permalink / raw)
  To: joweill; +Cc: discuss

[-- Attachment #1: Type: text/plain, Size: 3642 bytes --]

> Hi there,
>
> I just discovered this project and I'm really excited about it! I've
> long waited for an OS that combines Qubes-like compartmentalization
> with the reproducibility of Nix/GUIX.

Hi!  Thank you for getting in touch. :)

> I'm trying to understand what this project aims to improve over Qubes, other than the integration of Nix (which I do think is really important!). I read the motivation page [1], but I'm not yet convinced by most
> of the points mentioned that relate to Qubes. Going over each usability issue mentioned in the motivation doc:
>
> - "Hardware compatibility is extremely limited": I don't believe this is really the case for the minimum Qubes 4 requirements [4]: most modern computers people buy support these. Is there anything I'm missing?
> - "People are reluctant to use Xen on their computer for power management etc. reasons." Can you elaborate on these issues?
> - I know that Qubes considered using KVM and decided against it for security reasons [2]. My understanding is that the downside of this decision is the limited hardware support, which is one of the things that Spectrum views as an opportunity for improvement. Can you elaborate on this decision?
> - "VMs are heavy": How will Spectrum improve on this without sacrificing security?

I already talked about Xen vs KVM elsewhere in the thread, but wanted to
say that the impression I've got from talking to several Qubes
developers is that they are at this point far less enthusiastic about
Xen than their documentation might suggest.

Additionally, a couple of things that the Qubes Architecture
Specification[1] mentions as being benefits of Xen over KVM are now, I
believe, also available in KVM.  Specifically, I believe it is possible
to use PV drivers with KVM (although I wonder if maybe there is a
terminology mismatch here?), and I believe it will be at least partially
possible to have something resembling driver domains, although this is
an area of active R&D within Spectrum.  Other mentioned advantages of
Xen, such as auditability, remain, of course.

[1]: https://www.qubes-os.org/attachment/wiki/QubesArchitecture/arch-spec-0.3.pdf

> - "GUI applications are buggy, command line tools are mostly
>   undocumented": I assume that the reason for this is the lack of
>   resources the Qubes project has. However, I don't see how this will be
>   be better in the case of Spectrum which is a new project with one
>   developer.

My understanding is that a lot of the instability I've encountered with
Qubes's tools comes down to some severe technical debt with their
inter-VM communication system.  This is likely something that is very
difficult to fix, but easy to learn from.  Being a new project allows
Spectrum to learn from Qubes' mistakes.

> More generally, I'm wondering whether this projects' goals couldn't be
> better achieved by trying to work with the Qubes developers to
> integrate Nix. It may very well be that they would reject it for some
> reason, but then the logical next step would be to fork Qubes.  Have
> you reached out to the Qubes developers?

I've had the pleasure of speaking with several Qubes developers on
multiple occasions.  I also know that there is work being done to
support NixOS templates in Qubes.  As I see it, though, the real benefit
of Nix here is that it would allow defining the whole system in one
single Nix configuration.  Doing this in Qubes would require big
fundamental changes to how Qubes works.  I believe the idea has been
brought up to the Qubes developers, and as I recall they were not keen.
I believe there is room in this space for Qubes and Spectrum to coexist.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-13 11:38 ` Alyssa Ross
@ 2020-06-14 20:19   ` infokiller ​
  2020-06-14 21:27     ` Alyssa Ross
  2020-06-14 21:13   ` Michael Raskin
  1 sibling, 1 reply; 19+ messages in thread
From: infokiller ​ @ 2020-06-14 20:19 UTC (permalink / raw)
  To: discuss

Thanks for your detailed and well put responses!

Alyssa Ross wrote:
> >   Hi there,
> > 
> >  I just discovered this project and I'm really excited about it! I've
> >  long waited for an OS that combines Qubes-like compartmentalization
> >  with the reproducibility of Nix/GUIX. 
> Hi!  Thank you for getting in touch. :)
> 
> >   I'm trying to understand what this project aims to
> > improve over Qubes, other than the integration of Nix (which I do think is really
> > important!). I read the motivation page [1], but I'm not yet convinced by most
> >  of the points mentioned that relate to Qubes. Going over each usability issue mentioned
> > in the motivation doc:
> > 
> >  - "Hardware compatibility is extremely limited": I don't believe this is
> > really the case for the minimum Qubes 4 requirements [4]: most modern computers people buy
> > support these. Is there anything I'm missing?
> >  - "People are reluctant to use Xen on their computer for power management etc.
> > reasons." Can you elaborate on these issues?
> >  - I know that Qubes considered using KVM and decided against it for security reasons [2].
> > My understanding is that the downside of this decision is the limited hardware support,
> > which is one of the things that Spectrum views as an opportunity for improvement. Can you
> > elaborate on this decision?
> >  - "VMs are heavy": How will Spectrum improve on this without sacrificing
> > security? 
> I already talked about Xen vs KVM elsewhere in the thread, but wanted to
> say that the impression I've got from talking to several Qubes
> developers is that they are at this point far less enthusiastic about
> Xen than their documentation might suggest.
> 
> Additionally, a couple of things that the Qubes Architecture
> Specification[1] mentions as being benefits of Xen over KVM are now, I
> believe, also available in KVM.  Specifically, I believe it is possible
> to use PV drivers with KVM (although I wonder if maybe there is a
> terminology mismatch here?), and I believe it will be at least partially
> possible to have something resembling driver domains, although this is
> an area of active R&D within Spectrum.  Other mentioned advantages of
> Xen, such as auditability, remain, of course.
> 
> [1]: https://www.qubes-os.org/attachment/wiki/QubesArchitecture/arch-spec-0.3.pdf
> 
> >   - "GUI applications are buggy, command line tools
> > are mostly
> >    undocumented": I assume that the reason for this is the lack of
> >    resources the Qubes project has. However, I don't see how this will be
> >    be better in the case of Spectrum which is a new project with one
> >    developer. 
> My understanding is that a lot of the instability I've encountered with
> Qubes's tools comes down to some severe technical debt with their
> inter-VM communication system.  This is likely something that is very
> difficult to fix, but easy to learn from.  Being a new project allows
> Spectrum to learn from Qubes' mistakes.
I agree, but I'm still not convinced this will be different in the case of Spectrum, having even more limited dev resources than Qubes'. I mean, if the Qubes folks could fix these issues without a
huge effort, even if it
meant rewriting all the inter-VM communication tools, they probably would. If they didn't, I assume this is because this is just a huge undertaking (as is the whole project), and they're busy with other work which has higher priority. I would assume that you will end up in exactly the same situation.

> 
> >   More generally, I'm wondering whether this
> > projects' goals couldn't be
> >  better achieved by trying to work with the Qubes developers to
> >  integrate Nix. It may very well be that they would reject it for some
> >  reason, but then the logical next step would be to fork Qubes.  Have
> >  you reached out to the Qubes developers? 
> I've had the pleasure of speaking with several Qubes developers on
> multiple occasions.  I also know that there is work being done to
> support NixOS templates in Qubes.  
Do you have any link you can share to work on Nix template being used in Qubes?

> As I see it, though, the real benefit
> of Nix here is that it would allow defining the whole system in one
> single Nix configuration.  Doing this in Qubes would require big
> fundamental changes to how Qubes works.  I believe the idea has been
> brought up to the Qubes developers, and as I recall they were not keen.
> I believe there is room in this space for Qubes and Spectrum to coexist.

There's definitely a place for both efforts, but I'm just wondering if it would not be better to implement Spectrum's ideas while working more closely with Qubes. For example, creating a git branch or
a fork that replaces Xen with KVM and integrates Nix. Now, that may very be not the best way to make progress on this project, because ramping up on the Qubes codebase will be an inefficient use of your time, or because you want to first experiment with some ideas in isolation, or for any other reason. However, the potential benefits of such a collaboration are, in my opinion, too big to pass on without strongly pursuing it. Just to name a few:
- You will get feedback from top tier security experts
- Qubes already has strong credibility which can be a huge driver of adoption, especially if your project will be endorsed by Qubes devs
- You will be in a better position to integrate some of the tools of Qubes, which you likely would need to do, and it is less likely that changes in the Qubes tooling will break your project (if you will indeed integrate them)
- You are less likely to be asked time and again "Why not Qubes"? :)

So, why not start a public discussion in Qubes' mailing list on issue tracker to figure out what is needed to accomplish Spectrum's goals?
It will probably turn out that you made the right decision by starting a separate project, but at the very least: 
- You'll may get attention from people who can contribute to Spectrum
- The issues involved with be publicly documented and searchable for future generations

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-13 11:38 ` Alyssa Ross
  2020-06-14 20:19   ` infokiller ​
@ 2020-06-14 21:13   ` Michael Raskin
  2020-06-15  1:33     ` infokiller ​
  2020-06-15 11:38     ` Michael Raskin
  1 sibling, 2 replies; 19+ messages in thread
From: Michael Raskin @ 2020-06-14 21:13 UTC (permalink / raw)
  To: joweill, discuss


>> >   - "GUI applications are buggy, command line tools
>> > are mostly
>> >    undocumented": I assume that the reason for this is the lack of
>> >    resources the Qubes project has. However, I don't see how this will be
>> >    be better in the case of Spectrum which is a new project with one
>> >    developer. 
>> My understanding is that a lot of the instability I've encountered with
>> Qubes's tools comes down to some severe technical debt with their
>> inter-VM communication system.  This is likely something that is very
>> difficult to fix, but easy to learn from.  Being a new project allows
>> Spectrum to learn from Qubes' mistakes.
>I agree, but I'm still not convinced this will be different in the case of Spectrum, having even more limited dev resources than Qubes'. I mean, if the Qubes folks could fix these issues without a
>huge effort, even if it
>meant rewriting all the inter-VM communication tools, they probably would. If they didn't, I assume this is because this is just a huge undertaking (as is the whole project), and they're busy with other work which has higher priority. I would assume that you will end up in exactly the same situation.

Note that SpectrumOS is going to make tradeoffs that are complete non-starters for Qubes. A wl_roots based tooling is seriously considered for the first full release, after all??? A lot of problems for Qubes is that things are hard to do without making security slightly worse than what Qubes has now. Spectrum is definitely not going to achieve this level of security anytime soon for various reasons, and the goal is more to find the best trade-off between security and usability. 

There is quite a bit of design space in the gap between ??quite a bit more secure than Firejail, with the ease of use around plain NixOS plus Firejail?? and ??less secure than Qubes, but easier to manage??.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-14 20:19   ` infokiller ​
@ 2020-06-14 21:27     ` Alyssa Ross
  2020-06-14 22:19       ` Michał "rysiek" Woźniak
  2020-06-15  1:54       ` infokiller ​
  0 siblings, 2 replies; 19+ messages in thread
From: Alyssa Ross @ 2020-06-14 21:27 UTC (permalink / raw)
  To: infokiller ​; +Cc: discuss

[-- Attachment #1: Type: text/plain, Size: 5116 bytes --]

>> >   - "GUI applications are buggy, command line tools
>> > are mostly
>> >    undocumented": I assume that the reason for this is the lack of
>> >    resources the Qubes project has. However, I don't see how this will be
>> >    be better in the case of Spectrum which is a new project with one
>> >    developer. 
>> My understanding is that a lot of the instability I've encountered with
>> Qubes's tools comes down to some severe technical debt with their
>> inter-VM communication system.  This is likely something that is very
>> difficult to fix, but easy to learn from.  Being a new project allows
>> Spectrum to learn from Qubes' mistakes.
> I agree, but I'm still not convinced this will be different in the
> case of Spectrum, having even more limited dev resources than
> Qubes'. I mean, if the Qubes folks could fix these issues without a
> huge effort, even if it meant rewriting all the inter-VM communication
> tools, they probably would. If they didn't, I assume this is because
> this is just a huge undertaking (as is the whole project), and they're
> busy with other work which has higher priority. I would assume that
> you will end up in exactly the same situation.

Maybe eventually, but the flexibility that comes with being a new
project still gives us a significant opportunity to advance the state of
the art before that happens.  At that point, maybe something else will
come along to innovate free of all the technical debt Spectrum has
acquired by then, and then the state of the art will advance even
further.  Such is the nature of software development.

>> >   More generally, I'm wondering whether this
>> > projects' goals couldn't be
>> >  better achieved by trying to work with the Qubes developers to
>> >  integrate Nix. It may very well be that they would reject it for some
>> >  reason, but then the logical next step would be to fork Qubes.  Have
>> >  you reached out to the Qubes developers? 
>> I've had the pleasure of speaking with several Qubes developers on
>> multiple occasions.  I also know that there is work being done to
>> support NixOS templates in Qubes.  
> Do you have any link you can share to work on Nix template being used in Qubes?

This was the last I heard of it:

https://hackmd.shackspace.de/qubes-nixos

>> As I see it, though, the real benefit
>> of Nix here is that it would allow defining the whole system in one
>> single Nix configuration.  Doing this in Qubes would require big
>> fundamental changes to how Qubes works.  I believe the idea has been
>> brought up to the Qubes developers, and as I recall they were not keen.
>> I believe there is room in this space for Qubes and Spectrum to coexist.
>
> There's definitely a place for both efforts, but I'm just wondering if
> it would not be better to implement Spectrum's ideas while working
> more closely with Qubes. For example, creating a git branch or a fork
> that replaces Xen with KVM and integrates Nix. Now, that may very be
> not the best way to make progress on this project, because ramping up
> on the Qubes codebase will be an inefficient use of your time, or
> because you want to first experiment with some ideas in isolation, or
> for any other reason. However, the potential benefits of such a
> collaboration are, in my opinion, too big to pass on without strongly
> pursuing it. Just to name a few:
>
> - You will get feedback from top tier security experts
> - Qubes already has strong credibility which can be a huge driver of
>   adoption, especially if your project will be endorsed by Qubes devs
> - You will be in a better position to integrate some of the tools of
>   Qubes, which you likely would need to do, and it is less likely
>   that changes in the Qubes tooling will break your project (if you
>   will indeed integrate them)
> - You are less likely to be asked time and again "Why not Qubes"? :)
>
> So, why not start a public discussion in Qubes' mailing list on issue
> tracker to figure out what is needed to accomplish Spectrum's goals?
>
> It will probably turn out that you made the right decision by starting
> a separate project, but at the very least:
> - You'll may get attention from people who can contribute to Spectrum
> - The issues involved with be publicly documented and searchable for
>   future generations

I think you maybe don't appreciate just how huge an undertaking this
would be.  There is so much that would have to change about how Qubes
works that I think you'd end up having to reimplement most of it
anyway, but you'd be doing it bit by bit, never having the opportunity
to consider the system as a whole.

At the end of the day I just don't believe that trying to shoehorn these
changes into Qubes is the best way to make progress.  It might well be
valuable to try that, but even so it would make much more sense for
somebody who believes in that approach to dedicate the huge amount of
effort required to attempt it, rather than me.  This could be another
effort that could be pursued in parallel to my work on Spectrum.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-14 21:27     ` Alyssa Ross
@ 2020-06-14 22:19       ` Michał "rysiek" Woźniak
  2020-06-15  1:59         ` infokiller ​
  2020-06-15  1:54       ` infokiller ​
  1 sibling, 1 reply; 19+ messages in thread
From: Michał "rysiek" Woźniak @ 2020-06-14 22:19 UTC (permalink / raw)
  To: discuss


[-- Attachment #1.1: Type: text/plain, Size: 1562 bytes --]

On 6/14/20 9:27 PM, Alyssa Ross wrote:
>> So, why not start a public discussion in Qubes' mailing list on issue
>> tracker to figure out what is needed to accomplish Spectrum's goals?
>>
>> It will probably turn out that you made the right decision by starting
>> a separate project, but at the very least:
>> - You'll may get attention from people who can contribute to Spectrum
>> - The issues involved with be publicly documented and searchable for
>>   future generations
> 
> I think you maybe don't appreciate just how huge an undertaking this
> would be.  There is so much that would have to change about how Qubes
> works that I think you'd end up having to reimplement most of it
> anyway, but you'd be doing it bit by bit, never having the opportunity
> to consider the system as a whole.

Plus, SpectrumOS does not have to deal with backwards compatibility. If QubesOS
developers were to start implementing these changes, they would constantly have
to deal with trade-offs between ease of implementing them and the cost of
breaking backwards compatibility.

> At the end of the day I just don't believe that trying to shoehorn these
> changes into Qubes is the best way to make progress.  It might well be
> valuable to try that, but even so it would make much more sense for
> somebody who believes in that approach to dedicate the huge amount of
> effort required to attempt it, rather than me.  This could be another
> effort that could be pursued in parallel to my work on Spectrum.

Very much this.

--
Best,
r


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 963 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-14 21:13   ` Michael Raskin
@ 2020-06-15  1:33     ` infokiller ​
  2020-06-15 11:38     ` Michael Raskin
  1 sibling, 0 replies; 19+ messages in thread
From: infokiller ​ @ 2020-06-15  1:33 UTC (permalink / raw)
  To: discuss

Michael Raskin wrote:
> >       - "GUI applications are buggy, command line
> > tools
> >  are mostly
> >     undocumented": I assume that the reason for this is the lack of
> >     resources the Qubes project has. However, I don't see how this will be
> >     be better in the case of Spectrum which is a new project with one
> >     developer.   My understanding is that a lot of the instability I've
> > encountered with
> >  Qubes's tools comes down to some severe technical debt with their
> >  inter-VM communication system.  This is likely something that is very
> >  difficult to fix, but easy to learn from.  Being a new project allows
> >  Spectrum to learn from Qubes' mistakes. I agree, but I'm still not
> > convinced this will be different in the case of Spectrum, having even more limited dev
> > resources than Qubes'. I mean, if the Qubes folks could fix these issues without a
> > huge effort, even if it
> > meant rewriting all the inter-VM communication tools, they probably would. If they
> > didn't, I assume this is because this is just a huge undertaking (as is the whole
> > project), and they're busy with other work which has higher priority. I would assume
> > that you will end up in exactly the same situation. 
> Note that SpectrumOS is going to make tradeoffs that are complete non-starters for Qubes.

True, but I'm not sure this applies to making GUI tools less buggy, or having better documentation for CLI tools. Even if Spectrum development will make big compromises, I find it unlikely that
these aspects will be improved over Qubes.
Now, I'm not saying this is not possible at all. Maybe a 100 new contributors will join the project soon and will make this viable. I just think that this is not a strong selling point of Spectrum,
which is somewhat implied in the motivation page.

> A wl_roots based tooling is seriously considered for the first full release, after all���

Is using wl_roots a non-starter for Qubes?

> A lot of problems for Qubes is that things are hard to do without making security slightly
> worse than what Qubes has now. Spectrum is definitely not going to achieve this level of
> security anytime soon for various reasons, and the goal is more to find the best trade-off
> between security and usability. 
> 
> There is quite a bit of design space in the gap between ��quite a bit more secure than
> Firejail, with the ease of use around plain NixOS plus Firejail�� and ��less secure than
> Qubes, but easier to manage��.

What do you mean by "quite a bit more secure than firejail"? isn't this side of the spectrum actually "firejail-like security"?

The way I see it, the following are the major points on the usability-security spectrum for running desktop Linux (or another desktop OS for that matter), starting from the best usability and worst
security, and ending in the worst usability and best security:

1. Run a regular Linux distro (some are better than others in providing quick security updates)
2. Harden the system: sandbox processes, harden the kernel and important userspace libraries like libc, enforce MAC, use Wayland instead of X11, firewall, verified/secure boot, etc.
3. Use Qubes

Most users, of course, don't bother and just use (1), which is actually fine in most cases.
(2) gives pretty good usability, with the main issues related to sandboxing, since most Linux desktop apps were not built with sandboxing in mind, and the overall experience does not
support it well (for example, there's no standard permission dialogs like in Android, where sandboxing works much better in practice).
Theoretically, people could use (2), run untrusted software in VMs to get strong sandboxing but still be able to use most software, and get pretty good security. In practice this doesn't quite work
because running stuff in dedicated VMs is not streamlined enough, so people just don't do it.
Then there's (3), which is the most secure, but has some usability issues that were already mentioned. So Spectrum can fill the gap between (2) and (3).

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-14 21:27     ` Alyssa Ross
  2020-06-14 22:19       ` Michał "rysiek" Woźniak
@ 2020-06-15  1:54       ` infokiller ​
  1 sibling, 0 replies; 19+ messages in thread
From: infokiller ​ @ 2020-06-15  1:54 UTC (permalink / raw)
  To: discuss

Alyssa Ross wrote:
> >       - "GUI applications are buggy, command line
> > tools
> >  are mostly
> >     undocumented": I assume that the reason for this is the lack of
> >     resources the Qubes project has. However, I don't see how this will be
> >     be better in the case of Spectrum which is a new project with one
> >     developer.   My understanding is that a lot of the instability I've
> > encountered with
> >  Qubes's tools comes down to some severe technical debt with their
> >  inter-VM communication system.  This is likely something that is very
> >  difficult to fix, but easy to learn from.  Being a new project allows
> >  Spectrum to learn from Qubes' mistakes.  I agree, but I'm still not
> > convinced this will be different in the
> >  case of Spectrum, having even more limited dev resources than
> >  Qubes'. I mean, if the Qubes folks could fix these issues without a
> >  huge effort, even if it meant rewriting all the inter-VM communication
> >  tools, they probably would. If they didn't, I assume this is because
> >  this is just a huge undertaking (as is the whole project), and they're
> >  busy with other work which has higher priority. I would assume that
> >  you will end up in exactly the same situation. 
> Maybe eventually, but the flexibility that comes with being a new
> project still gives us a significant opportunity to advance the state of
> the art before that happens.  At that point, maybe something else will
> come along to innovate free of all the technical debt Spectrum has
> acquired by then, and then the state of the art will advance even
> further.  Such is the nature of software development.
> 
> >       More generally, I'm wondering whether this
> >  projects' goals couldn't be
> >   better achieved by trying to work with the Qubes developers to
> >   integrate Nix. It may very well be that they would reject it for some
> >   reason, but then the logical next step would be to fork Qubes.  Have
> >   you reached out to the Qubes developers?   I've had the pleasure of speaking
> > with several Qubes developers on
> >  multiple occasions.  I also know that there is work being done to
> >  support NixOS templates in Qubes.    Do you have any link you can share to work on
> > Nix template being used in Qubes? 
> This was the last I heard of it:
> 
> https://hackmd.shackspace.de/qubes-nixos
> 
> >    As I see it,
> > though, the real benefit
> >  of Nix here is that it would allow defining the whole system in one
> >  single Nix configuration.  Doing this in Qubes would require big
> >  fundamental changes to how Qubes works.  I believe the idea has been
> >  brought up to the Qubes developers, and as I recall they were not keen.
> >  I believe there is room in this space for Qubes and Spectrum to coexist. 
> >  There's definitely a place for both efforts, but I'm just wondering if
> >  it would not be better to implement Spectrum's ideas while working
> >  more closely with Qubes. For example, creating a git branch or a fork
> >  that replaces Xen with KVM and integrates Nix. Now, that may very be
> >  not the best way to make progress on this project, because ramping up
> >  on the Qubes codebase will be an inefficient use of your time, or
> >  because you want to first experiment with some ideas in isolation, or
> >  for any other reason. However, the potential benefits of such a
> >  collaboration are, in my opinion, too big to pass on without strongly
> >  pursuing it. Just to name a few:
> > 
> >  - You will get feedback from top tier security experts
> >  - Qubes already has strong credibility which can be a huge driver of
> >    adoption, especially if your project will be endorsed by Qubes devs
> >  - You will be in a better position to integrate some of the tools of
> >    Qubes, which you likely would need to do, and it is less likely
> >    that changes in the Qubes tooling will break your project (if you
> >    will indeed integrate them)
> >  - You are less likely to be asked time and again "Why not Qubes"? :)
> > 
> >  So, why not start a public discussion in Qubes' mailing list on issue
> >  tracker to figure out what is needed to accomplish Spectrum's goals?
> > 
> >  It will probably turn out that you made the right decision by starting
> >  a separate project, but at the very least:
> >  - You'll may get attention from people who can contribute to Spectrum
> >  - The issues involved with be publicly documented and searchable for
> >    future generations 
> I think you maybe don't appreciate just how huge an undertaking this
> would be.  There is so much that would have to change about how Qubes
> works that I think you'd end up having to reimplement most of it
> anyway, but you'd be doing it bit by bit, never having the opportunity
> to consider the system as a whole.
> 
> At the end of the day I just don't believe that trying to shoehorn these
> changes into Qubes is the best way to make progress.  It might well be
> valuable to try that, but even so it would make much more sense for
> somebody who believes in that approach to dedicate the huge amount of
> effort required to attempt it, rather than me.  This could be another
> effort that could be pursued in parallel to my work on Spectrum.

The goal is not necessarily doing this work, but to better understand what it would require, which can guide the work on Spectrum, even if it won't share much with Qubes (since you are likely to run into some of the design decisions that Qubes had to make). Well, maybe you already figured this out. I know how Qubes works only superficially, so it may be obvious to more knowledgeable people. 
In any event, I personally would like to understand this better, as I'm interested in exploring the integration of Qubes and Nix. If you have any insights to share, it would be great, and I may also ask the Qubes devs.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-14 22:19       ` Michał "rysiek" Woźniak
@ 2020-06-15  1:59         ` infokiller ​
  0 siblings, 0 replies; 19+ messages in thread
From: infokiller ​ @ 2020-06-15  1:59 UTC (permalink / raw)
  To: discuss

Michał "rysiek" Woźniak wrote:
> On 6/14/20 9:27 PM, Alyssa Ross wrote:
> >    So, why not
> > start a public discussion in Qubes' mailing list on issue
> >  tracker to figure out what is needed to accomplish Spectrum's goals?
> > 
> >  It will probably turn out that you made the right decision by starting
> >  a separate project, but at the very least:
> >  - You'll may get attention from people who can contribute to Spectrum
> >  - The issues involved with be publicly documented and searchable for
> >    future generations  
> >  I think you maybe don't appreciate just how huge an undertaking this
> >  would be.  There is so much that would have to change about how Qubes
> >  works that I think you'd end up having to reimplement most of it
> >  anyway, but you'd be doing it bit by bit, never having the opportunity
> >  to consider the system as a whole. 
> Plus, SpectrumOS does not have to deal with backwards compatibility. If QubesOS
> developers were to start implementing these changes, they would constantly have
> to deal with trade-offs between ease of implementing them and the cost of
> breaking backwards compatibility.
Well, that's what major version changes are for. Qubes 5 could change to a Nix model if they wanted without worrying much about backwards compatibility. I assume that won't happen for other reasons, like having higher priority work, and lack of experience with Nix.

> 
> >   At the end of the day I just don't believe that
> > trying to shoehorn these
> >  changes into Qubes is the best way to make progress.  It might well be
> >  valuable to try that, but even so it would make much more sense for
> >  somebody who believes in that approach to dedicate the huge amount of
> >  effort required to attempt it, rather than me.  This could be another
> >  effort that could be pursued in parallel to my work on Spectrum. 
> Very much this.
> 
> --
> Best,
> r

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-14 21:13   ` Michael Raskin
  2020-06-15  1:33     ` infokiller ​
@ 2020-06-15 11:38     ` Michael Raskin
  2020-06-15 13:44       ` infokiller ​
  2020-06-15 14:42       ` Michael Raskin
  1 sibling, 2 replies; 19+ messages in thread
From: Michael Raskin @ 2020-06-15 11:38 UTC (permalink / raw)
  To: joweill, discuss

>> > resources than Qubes'. I mean, if the Qubes folks could fix these issues without a
>> > huge effort, even if it
>> > meant rewriting all the inter-VM communication tools, they probably would. If they
>> > didn't, I assume this is because this is just a huge undertaking (as is the whole
>> > project), and they're busy with other work which has higher priority. I would assume
>> > that you will end up in exactly the same situation. 
>> Note that SpectrumOS is going to make tradeoffs that are complete non-starters for Qubes.
>
>True, but I'm not sure this applies to making GUI tools less buggy, or having better documentation for CLI tools. 

Yes, it does apply. SpectrumOS is willing to accept quite a bit more of external code with good in-the-wild track record inside the trusted code base,
at least for _most_ tasks. So where Qubes needs to reimplement something with a completely different design (allowing minimisation of TCB), Spectrum
can (at least in the beginning, sometimes grudgingly) take the closest thing in existence and add only critically missing parts.

>> A wl_roots based tooling is seriously considered for the first full release, after all?????????
>
>Is using wl_roots a non-starter for Qubes?

Yes, and I hope it is a complete non-starter on the level of not being worth any discussion there.

I can only remind you, that Qubes has doubts about KVM, a widely used part of the Linux kernel, being sufficiently secure. Thety have the same stance
about half of the features of Xen, the hypervisor they do use.  This does make some things Spectrum plans to do for usability and performance much
harder to implement, as the underlying features are undesirable in the TCB.

Compared to this, wl_roots is _way_ more dangerous. This is a library which has segfaults in relatively normal use, and apparently the users do hit
these relatively frequently. Some of these seem to survive for months. I have not looked whether any of these are exploitable, but for the Qubes level
of requirements one should just assume it is. Notice that for Spectrum one could also reuse some kind of VNC code if wl_roots is eventually considered
too buggy. For Qubes even VNC libraries are far from good enough.

>> There is quite a bit of design space in the gap between ??????quite a bit more secure than
>> Firejail, with the ease of use around plain NixOS plus Firejail?????? and ??????less secure than
>> Qubes, but easier to manage??????.
>What do you mean by "quite a bit more secure than firejail"? isn't this side of the spectrum actually "firejail-like security"?

Firejail depends on namespaces, which still have some weird behaviours in some corner cases, there is a hope that VMs will be a simpler foundation.

>The way I see it, the following are the major points on the usability-security spectrum for running desktop Linux (or another desktop OS for that matter), starting from the best usability and worst
>security, and ending in the worst usability and best security:
>
>1. Run a regular Linux distro (some are better than others in providing quick security updates)
>2. Harden the system: sandbox processes, harden the kernel and important userspace libraries like libc, enforce MAC, use Wayland instead of X11, firewall, verified/secure boot, etc.

If you do not understand what you are doing well enough, Wayland as you use it might end up being less secure than X11, by the way.

>Most users, of course, don't bother and just use (1), which is actually fine in most cases.
>(2) gives pretty good usability, with the main issues related to sandboxing, since most Linux desktop apps were not built with sandboxing in mind, and the overall experience does not
>support it well (for example, there's no standard permission dialogs like in Android, where sandboxing works much better in practice).

Actually, if you write a few relatively reasonable wrappers around some kind of namespace-based sandboxing, usability problems kind of become quite
different from the normal ones (some UI flows are actually better when the choices are trimmed in advance??? and also suddenly a lot of things do not
need to be chosen uniformly at the entire-system level anymore). No idea how much effort is to make meaningful GUI permission dialogs. Android ones
are clearly not meaningful enough, of course.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-15 11:38     ` Michael Raskin
@ 2020-06-15 13:44       ` infokiller ​
  2020-06-15 14:06         ` Michał "rysiek" Woźniak
  2020-06-15 14:42       ` Michael Raskin
  1 sibling, 1 reply; 19+ messages in thread
From: infokiller ​ @ 2020-06-15 13:44 UTC (permalink / raw)
  To: discuss

Michael Raskin wrote:
> >     resources than Qubes'. I mean, if the Qubes folks
> > could fix these issues without a
> >  huge effort, even if it
> >  meant rewriting all the inter-VM communication tools, they probably would. If they
> >  didn't, I assume this is because this is just a huge undertaking (as is the whole
> >  project), and they're busy with other work which has higher priority. I would assume
> >  that you will end up in exactly the same situation.   Note that SpectrumOS is going
> > to make tradeoffs that are complete non-starters for Qubes. 
> > True, but I'm not sure this applies to making GUI tools less buggy, or having better
> > documentation for CLI tools.  
> Yes, it does apply. SpectrumOS is willing to accept quite a bit more of external code with
> good in-the-wild track record inside the trusted code base,
> at least for _most_ tasks. So where Qubes needs to reimplement something with a completely
> different design (allowing minimisation of TCB), Spectrum
> can (at least in the beginning, sometimes grudgingly) take the closest thing in existence
> and add only critically missing parts.
I disagree. Spectrum still needs to write its own GUI tools. Since the Qubes CLI tools are not buggy, presumably the bugs Alyssa ran into are not related to the Qubes design, but rather to GUI programming. As for the CLI tools, I'm really not sure if she can actually reuse any docs, or write less of them. AFAIK, most of the tools in question are related to inter-VM comms, which are not just out there in a fully documented form.
And even if it were the case that it would be possible to significantly reuse existing tools, it's still speculative at best to claim that this will overcome the clear disadvantage in development resources.
> 
> >    A wl_roots
> > based tooling is seriously considered for the first full release, after all���������
> > 
> > Is using wl_roots a non-starter for Qubes? 
> Yes, and I hope it is a complete non-starter on the level of not being worth any
> discussion there.
> 
> I can only remind you, that Qubes has doubts about KVM, a widely used part of the Linux
> kernel, being sufficiently secure. Thety have the same stance
> about half of the features of Xen, the hypervisor they do use.  This does make some things
> Spectrum plans to do for usability and performance much
> harder to implement, as the underlying features are undesirable in the TCB.
> 
> Compared to this, wl_roots is _way_ more dangerous. This is a library which has segfaults
> in relatively normal use, and apparently the users do hit
> these relatively frequently. Some of these seem to survive for months. I have not looked
> whether any of these are exploitable, but for the Qubes level
> of requirements one should just assume it is. Notice that for Spectrum one could also
> reuse some kind of VNC code if wl_roots is eventually considered
> too buggy. For Qubes even VNC libraries are far from good enough.
Well, Qubes does intend to experiment with Wayland [1], though possibly they could use smithay [2] or build their own, hopefully in a memory safe language.
And there's also work in Qubes on moving the GUI part from dom0, which will lower the risk related to the GUI.

[1] https://www.qubes-os.org/gsoc/#wayland-support-in-gui-agent-andor-gui-daemon
[2] https://github.com/Smithay/smithay
> 
> >    There is quite
> > a bit of design space in the gap between ������quite a bit more secure than
> >  Firejail, with the ease of use around plain NixOS plus Firejail������ and ������less
> > secure than
> >  Qubes, but easier to manage������. What do you mean by "quite a bit more
> > secure than firejail"? isn't this side of the spectrum actually
> > "firejail-like security"? 
> Firejail depends on namespaces, which still have some weird behaviours in some corner
> cases, there is a hope that VMs will be a simpler foundation.
I understand, but it sounded like this side of the spectrum should be "using NixOs, maybe with Firejail", in which case the security is Firejail-like.
> 
> >  The way I see it, the following are the major points on
> > the usability-security spectrum for running desktop Linux (or another desktop OS for that
> > matter), starting from the best usability and worst
> > security, and ending in the worst usability and best security:
> > 
> > 1. Run a regular Linux distro (some are better than others in providing quick security
> > updates)
> > 2. Harden the system: sandbox processes, harden the kernel and important userspace
> > libraries like libc, enforce MAC, use Wayland instead of X11, firewall, verified/secure
> > boot, etc. 
> If you do not understand what you are doing well enough, Wayland as you use it might end
> up being less secure than X11, by the way.
What do you mean?
> 
> >  Most users, of course, don't bother and just use
> > (1), which is actually fine in most cases.
> > (2) gives pretty good usability, with the main issues related to sandboxing, since most
> > Linux desktop apps were not built with sandboxing in mind, and the overall experience does
> > not
> > support it well (for example, there's no standard permission dialogs like in Android,
> > where sandboxing works much better in practice). 
> Actually, if you write a few relatively reasonable wrappers around some kind of
> namespace-based sandboxing, usability problems kind of become quite
> different from the normal ones (some UI flows are actually better when the choices are
> trimmed in advance��� and also suddenly a lot of things do not
> need to be chosen uniformly at the entire-system level anymore). 
I'm curious about these wrappers, could you elaborate?
> No idea how much effort
> is to make meaningful GUI permission dialogs. Android ones
> are clearly not meaningful enough, of course.
Android's permission system is far from perfect, but it also targets a very large userbase that doesn't care much about security (as is Windows). And it's still **much** better than desktop Linux.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-15 13:44       ` infokiller ​
@ 2020-06-15 14:06         ` Michał "rysiek" Woźniak
  2020-06-15 15:07           ` infokiller ​
  0 siblings, 1 reply; 19+ messages in thread
From: Michał "rysiek" Woźniak @ 2020-06-15 14:06 UTC (permalink / raw)
  To: discuss


[-- Attachment #1.1: Type: text/plain, Size: 2223 bytes --]

Hey,

On 6/15/20 1:44 PM, infokiller wrote:
> Michael Raskin wrote:
>>>     resources than Qubes'. I mean, if the Qubes folks
>>> could fix these issues without a
>>>  huge effort, even if it
>>>  meant rewriting all the inter-VM communication tools, they probably would. If they
>>>  didn't, I assume this is because this is just a huge undertaking (as is the whole
>>>  project), and they're busy with other work which has higher priority. I would assume
>>>  that you will end up in exactly the same situation.   Note that SpectrumOS is going
>>> to make tradeoffs that are complete non-starters for Qubes. 
>>> True, but I'm not sure this applies to making GUI tools less buggy, or having better
>>> documentation for CLI tools.  
>> Yes, it does apply. SpectrumOS is willing to accept quite a bit more of external code with
>> good in-the-wild track record inside the trusted code base,
>> at least for _most_ tasks. So where Qubes needs to reimplement something with a completely
>> different design (allowing minimisation of TCB), Spectrum
>> can (at least in the beginning, sometimes grudgingly) take the closest thing in existence
>> and add only critically missing parts.
> I disagree.

And you have all the right to.

However, it seems to me that the reasons behind SpectrumOS being done the way
it's done have been pretty extensively explained and documented in this thread.
At this point the discussion seems to focus on back-of-a-napkin estimates
regarding what is a more effective way of implementing certain things.

Clearly your estimates are different than those of others responding in this
thread. You might be right and we might be wrong, but the only way to test that
is to start implementing things one way or the other.

SpectrumOS made their estimations and arrived at a decision to do things one
particular way. You may disagree this is the best way to do things, but I feel
at this point a better way of making your point would be for you to start
implementing things the way you believe is more effective.

SpectrumOS is basically a one-person team. If you're right, you should be able
to overtake SpectrumOS development pretty quickly.

--
Best,
r


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 963 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-15 11:38     ` Michael Raskin
  2020-06-15 13:44       ` infokiller ​
@ 2020-06-15 14:42       ` Michael Raskin
  2020-06-15 15:29         ` infokiller ​
  1 sibling, 1 reply; 19+ messages in thread
From: Michael Raskin @ 2020-06-15 14:42 UTC (permalink / raw)
  To: joweill, discuss

>I disagree. Spectrum still needs to write its own GUI tools. 

There are some XDG tools that can be reused wholesale.

>> >  Qubes, but easier to manage??????????????????. What do you mean by "quite a bit more
>> > secure than firejail"? isn't this side of the spectrum actually
>> > "firejail-like security"? 
>> Firejail depends on namespaces, which still have some weird behaviours in some corner
>> cases, there is a hope that VMs will be a simpler foundation.
>I understand, but it sounded like this side of the spectrum should be "using NixOs, maybe with Firejail", in which case the security is Firejail-like.

SpectrumOS will use small VMs, not containers.

>> > 2. Harden the system: sandbox processes, harden the kernel and important userspace
>> > libraries like libc, enforce MAC, use Wayland instead of X11, firewall, verified/secure
>> > boot, etc. 
>> If you do not understand what you are doing well enough, Wayland as you use it might end
>> up being less secure than X11, by the way.
>What do you mean?

Well, most compositors allow clients quite a lot of things that theoretically should be 
permission-checked, so there is not as much good to overcome the drawbacks of a lot of code
being still a bit raw.

>> >  Most users, of course, don't bother and just use
>> > (1), which is actually fine in most cases.
>> > (2) gives pretty good usability, with the main issues related to sandboxing, since most
>> > Linux desktop apps were not built with sandboxing in mind, and the overall experience does
>> > not
>> > support it well (for example, there's no standard permission dialogs like in Android,
>> > where sandboxing works much better in practice). 
>> Actually, if you write a few relatively reasonable wrappers around some kind of
>> namespace-based sandboxing, usability problems kind of become quite
>> different from the normal ones (some UI flows are actually better when the choices are
>> trimmed in advance????????? and also suddenly a lot of things do not
>> need to be chosen uniformly at the entire-system level anymore). 
>I'm curious about these wrappers, could you elaborate?

Well, I run browser instances and PDF/image/video viewers inside nsjail, and the wrappers
_mainly_ just prepare a reasonably restricted access to give the program running inside 
nsjail. Of course if I bother to do all that, there is also use of single-use UIDs on top
of restrictions by mount namespaces.

It's not that much code, and in my case it is in Common Lisp.

And then it is just all the boring stuff that is annoying elsewhere like using different
resolv.conf for different applications and giving applications access only through proxy
and only picking from the files that the application should use and not navigating the
entire storage.

So I watch SpectrumOS mostly looking at the CrosVM work and when it will be sufficient 
for replacing containers and socket proxying with VMs and virtio-based socket proxying.

>> No idea how much effort
>> is to make meaningful GUI permission dialogs. Android ones
>> are clearly not meaningful enough, of course.
>Android's permission system is far from perfect, but it also targets a very large userbase that doesn't care much about security (as is Windows). And it's still **much** better than desktop Linux.

It is unclear that Android in practice (not how the intents should have been used) is better than
desktop Linux with Flatpack everywhere, let alone the unfortunately rare case of desktop Linux
where people _also_ use UID segregation. There is a chance that XDG-portal stuff ends up closer to
how intents should have been used than what we currently see on Android. And recently it looks like
Android is now going to give up the remaining appearances of being usable as a general-purpose
computing platform, but this seems not to be forced by the permission system design in any way.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-15 14:06         ` Michał "rysiek" Woźniak
@ 2020-06-15 15:07           ` infokiller ​
  0 siblings, 0 replies; 19+ messages in thread
From: infokiller ​ @ 2020-06-15 15:07 UTC (permalink / raw)
  To: discuss

Michał "rysiek" Woźniak wrote:
> Hey,
> 
> On 6/15/20 1:44 PM, infokiller wrote:
> >   Michael Raskin wrote:
> >       
> > resources than Qubes'. I mean, if the Qubes folks
> >  could fix these issues without a
> >   huge effort, even if it
> >   meant rewriting all the inter-VM communication tools, they probably would. If they
> >   didn't, I assume this is because this is just a huge undertaking (as is the whole
> >   project), and they're busy with other work which has higher priority. I would
> > assume
> >   that you will end up in exactly the same situation.   Note that SpectrumOS is going
> >  to make tradeoffs that are complete non-starters for Qubes. 
> >  True, but I'm not sure this applies to making GUI tools less buggy, or having better
> >  documentation for CLI tools.    Yes, it does apply. SpectrumOS is willing to accept
> > quite a bit more of external code with
> >  good in-the-wild track record inside the trusted code base,
> >  at least for _most_ tasks. So where Qubes needs to reimplement something with a
> > completely
> >  different design (allowing minimisation of TCB), Spectrum
> >  can (at least in the beginning, sometimes grudgingly) take the closest thing in
> > existence
> >  and add only critically missing parts.  I disagree. 
> And you have all the right to.
> 
> However, it seems to me that the reasons behind SpectrumOS being done the way
> it's done have been pretty extensively explained and documented in this thread.
> At this point the discussion seems to focus on back-of-a-napkin estimates
> regarding what is a more effective way of implementing certain things.
I was mainly responding to understand if I'm missing anything.
> 
> Clearly your estimates are different than those of others responding in this
> thread. You might be right and we might be wrong, but the only way to test that
> is to start implementing things one way or the other.
> 
> SpectrumOS made their estimations and arrived at a decision to do things one
> particular way. You may disagree this is the best way to do things, but I feel
> at this point a better way of making your point would be for you to start
> implementing things the way you believe is more effective.

I'm not trying to make any point, and I honestly don't have any stakes here. I'm trying to figure out why things are done the way they are.
My ultimate goal is to have a secure, performant, and easy to manage OS. And so, I would be very happy if SpectrumOS will be able to satisfy these requirements.

> 
> SpectrumOS is basically a one-person team. If you're right, you should be able
> to overtake SpectrumOS development pretty quickly.

I'm not saying integrating with Qubes is quick or easy: I'm arguing that it may be the better approach to reach the project goals in a sustainable way. 
Either way, I won't have much time to work on something like this anytime soon. That said, though I'd like to figure out what it involves, and if it's reasonable to expect I'll be able to make incremental progress as a side project.

> 
> --
> Best,
> r

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Comparison to Qubes OS
  2020-06-15 14:42       ` Michael Raskin
@ 2020-06-15 15:29         ` infokiller ​
  0 siblings, 0 replies; 19+ messages in thread
From: infokiller ​ @ 2020-06-15 15:29 UTC (permalink / raw)
  To: discuss

Michael Raskin wrote:
> >  I disagree. Spectrum still needs to write its own GUI
> > tools.  
> There are some XDG tools that can be reused wholesale.
> 
> >      Qubes, but easier to manage������������������. What
> > do you mean by "quite a bit more
> >  secure than firejail"? isn't this side of the spectrum actually
> >  "firejail-like security"?   Firejail depends on namespaces, which still
> > have some weird behaviours in some corner
> >  cases, there is a hope that VMs will be a simpler foundation. I understand, but it
> > sounded like this side of the spectrum should be "using NixOs, maybe with
> > Firejail", in which case the security is Firejail-like. 
> SpectrumOS will use small VMs, not containers.

I understand that: I was referring to a hypothetical system running NixOS with Firejail, which is lower security and higher usability than Spectrum/Qubes.

> 
> >     2. Harden the system: sandbox processes, harden the
> > kernel and important userspace
> >  libraries like libc, enforce MAC, use Wayland instead of X11, firewall, verified/secure
> >  boot, etc.   If you do not understand what you are doing well enough, Wayland as
> > you use it might end
> >  up being less secure than X11, by the way. What do you mean? 
> Well, most compositors allow clients quite a lot of things that theoretically should be 
> permission-checked, so there is not as much good to overcome the drawbacks of a lot of
> code
> being still a bit raw.
> 
> >      Most users, of course, don't bother and just use
> >  (1), which is actually fine in most cases.
> >  (2) gives pretty good usability, with the main issues related to sandboxing, since most
> >  Linux desktop apps were not built with sandboxing in mind, and the overall experience
> > does
> >  not
> >  support it well (for example, there's no standard permission dialogs like in
> > Android,
> >  where sandboxing works much better in practice).   Actually, if you write a few
> > relatively reasonable wrappers around some kind of
> >  namespace-based sandboxing, usability problems kind of become quite
> >  different from the normal ones (some UI flows are actually better when the choices are
> >  trimmed in advance��������� and also suddenly a lot of things do not
> >  need to be chosen uniformly at the entire-system level anymore).  I'm curious
> > about these wrappers, could you elaborate? 
> Well, I run browser instances and PDF/image/video viewers inside nsjail, and the wrappers
> _mainly_ just prepare a reasonably restricted access to give the program running inside 
> nsjail. Of course if I bother to do all that, there is also use of single-use UIDs on top
> of restrictions by mount namespaces.
> 
> It's not that much code, and in my case it is in Common Lisp.
> 
> And then it is just all the boring stuff that is annoying elsewhere like using different
> resolv.conf for different applications and giving applications access only through proxy
> and only picking from the files that the application should use and not navigating the
> entire storage.
Yeah, I find this is indeed the most annoying stuff when I'm using Firejail. It's especially annoying if I realize I want to open a file in the sandboxed app that I didn't whitelist, which means I rerun it (there may be a way to whitelist files after the app is already running, but I never bothered to check).
> 
> So I watch SpectrumOS mostly looking at the CrosVM work and when it will be sufficient 
> for replacing containers and socket proxying with VMs and virtio-based socket proxying.
> 
> >    No idea how
> > much effort
> >  is to make meaningful GUI permission dialogs. Android ones
> >  are clearly not meaningful enough, of course. Android's permission system is
> > far from perfect, but it also targets a very large userbase that doesn't care much
> > about security (as is Windows). And it's still **much** better than desktop Linux.
> > 
> It is unclear that Android in practice (not how the intents should have been used) is
> better than
> desktop Linux with Flatpack everywhere, let alone the unfortunately rare case of desktop
> Linux
> where people _also_ use UID segregation. There is a chance that XDG-portal stuff ends up
> closer to
> how intents should have been used than what we currently see on Android. And recently it
> looks like
> Android is now going to give up the remaining appearances of being usable as a
> general-purpose
> computing platform, but this seems not to be forced by the permission system design in any
> way.
I think Flatpak is a step in the right direction, but is still far from being everywhere, and has its own share of issues. It also doesn't solve the issue of apps that were not built with a permission system.
Android has other issues, of course, like very slow (it at all) security updates, but if you're using a recent Pixel you are probably much better off than using desktop Linux.

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2020-06-15 15:29 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-12 11:06 Comparison to Qubes OS joweill
2020-06-12 11:28 ` Michał "rysiek" Woźniak
2020-06-12 11:54   ` infokiller ​
2020-06-12 12:02     ` Michał "rysiek" Woźniak
2020-06-13 11:19       ` Alyssa Ross
2020-06-13 11:38 ` Alyssa Ross
2020-06-14 20:19   ` infokiller ​
2020-06-14 21:27     ` Alyssa Ross
2020-06-14 22:19       ` Michał "rysiek" Woźniak
2020-06-15  1:59         ` infokiller ​
2020-06-15  1:54       ` infokiller ​
2020-06-14 21:13   ` Michael Raskin
2020-06-15  1:33     ` infokiller ​
2020-06-15 11:38     ` Michael Raskin
2020-06-15 13:44       ` infokiller ​
2020-06-15 14:06         ` Michał "rysiek" Woźniak
2020-06-15 15:07           ` infokiller ​
2020-06-15 14:42       ` Michael Raskin
2020-06-15 15:29         ` infokiller ​

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).