I've been using Qubes OS for more than a month now and want to share my experience with you all. This small review will be targeted for those who are thinking about trying Qubes OS but also a review of the concept and the operating system itself.
For those who don't know anything about Qubes I highly recommend you watch the video which you can find here: https://www.qubes-os.org/tour/
The installation process was fairly easy in my opinion. Typical Debian installation where you choose language, timezone, keymap and then how you want to install the operating system on your harddrive. I chose to install over my whole drive encrypted with LVM. One nice feature was that the harddrive was overwritten with random data before installation to remove leftover data from previous installations.
After a successful installation you need to reboot the computer to later configure on how you want to use Qubes. If you call yourself an expert you will need to create templates(VM's) on your own, but the default setup is a few VM's created for you such as work, web, untrusted and disposal.
A normal user can use the default settings and still get good security and understanding of the concept. The key to good security is well-made default settings so great work by the Qubes team on that point!
Understanding the concept
Qubes is not like any other operating system and as long as you understand why it works the way it does you will be very well protected.
Qubes uses virtualization to isolate different applications so they can't work together if you don't choose them to. This means that your web browser will be in a separate environment than your file browser.
So let's say that there's an exploit for Firefox on a website that you visited and the exploit successfully executed commands on your computer. In this horrible case you will be protected because the exploit will not be able to access other parts of your system, like your private photos, work browser or your code that you worked hard on all summer.
Of course you need to separate the applications accordingly and this might be hard to figure out. I think therefore the default settings is perfect for everyone but when you feel comfortable with the system you can narrow the attack surface down even further and create VM's for many more applications such as; PDF-reader, media(movies and music), a VM when you're traveling and so on.
When everything is set up
When you understand how Qubes works and how you get as secure as you can be there will still be some limitations, and guidelines you should follow. Because Qubes uses virtualization you need a pretty powerful computer due to the heavy requirements, so you can't really create as many VM's as you may wish and have them running all the time. For me, I had a Lenovo T440s with 8Gb of RAM so I could create around 10 VM's before it started to become pretty slow.
You may be thinking why you should have so many VM's running and that's a good question! The thing about the concept is that the more you isolate your applications the more security you get. But there's a limit, and there will most definitely always be.
This also means that you don't need to follow the security guidelines. If you want, you can have one VM for everything(don't do this!). And this is where I think Qubes can be better, or at least the concept itself. If we instead rely on the OS rather than the user, we could transparently isolate process in VM's with default strict settings and when the user - for example - need to access the Internet the user need to set a rule for that VM.
My personal experience with Qubes
When I first installed Qubes I got strange graphical glitches in some VM's, mostly when resizing
windows VM's but after a reinstall the problem was gone. Can't really tell why because I did not change any settings but maybe the installer did something different.
After the second install everything worked just fine. I was able to install my favourite programs in the VM's that I wanted and I could create my own VM's very easily. You can choose to use Debian or Fedora as template but you can even customize this by having your own images. I tried with Slackware and it worked just fine!
After I played around I found something that really was "my thing" and that was that different VM's had different internet connections. I could specify which VPN I wanted to use in my VM's or if I wanted to use Tor, I2P or just plain nothing! Here's a picture of that:
When everything was set up as I wanted it the whole thing felt a little unstable for my taste. Small things started to annoy me such as the network-panel disappear randomly, some VM's were not responsive when trying to shut them down and the clipboard was very slow(you can copy between VM's).
But other than these [small] things the experience was pretty good. I felt really secure and the OS is user friendly. It does have a learning curve, but that's security in a nutshell.
I do think this concept is the future of security. We have sandboxes but that's not the same thing. Also, if you can escape the sandbox there's no more protection. Although sandboxes are pretty user friendly, Qubes succeeds to make virtualization user friendly, and that is something the team should be very proud over!
I hope that this will be the standardization on how we build operating systems in the future but hopefully more transparent.