mara.kuens...@gmail.com wrote:
Not only do you have to assume that all sites you visit within the
same VM knows everything you did in there, but also you have to
assume they know all the passwords for all the other sites you visit
there and basically have full control over that VM
[...]
I think what would solve this dilemma is a custom dom0 browser layer.
The way this can work is as follows:
Hi Mara,
While I agree with you on your assumptions, I completely disagree on
your conclusion. What should actually solve this dilemma is to use
several AppVMs, each one dedicated to a different activity, or as I
prefer to refer it myself: to different sensitivity levels.
This way indeed, you can consider that a website at some sensitivity
level may have access to full information belonging to this same
sensitivity level, but if you design this correctly this should not be a
major issue.
So, first make a list of your different on-line activities and the
sensitivity of information stored / transmitted in each cases (if you
need some ideas, there was a very interesting article from Joanna
describing the process: you should quickly find and recognize it thanks
to the spaghetti-like diagram it contains ;) ).
Then, you may want to apply different setups to Firefox depending on the
needs and the trust level.
For instance:
- You may want to apply maximum paranoia on your random surf AppVM,
- You may want to be a bit more permissive in your shopping AppVM so
NoScript will not break a payment process right in the middle, leaving
you uncertain about how many times you will be charged.
- You may have a dedicated Firefox instance still having the infamous
Flash plugin installed when you need to access some websites requiring
it.
- Etc.
Decide how you may want to store your logins and passwords. Here are two
possible solutions, but there are other ones of course:
- Use (X)KeePass in a separated, isolated and dedicated AppVM. I suggest
you to create a "Web" or "Firefox" group, and then create a different
sub-group for each of you AppVM so everything stays clean and organized.
- Use Firefox integrated password management.
Before you scream, do not forget that all activity in this Firefox
will be limited to the same sensitivity level. For instance, you are in
your "Public forums" AppVM, someone posts a link to a third-party
website: you will *not* open this link in the same AppVM but instead
copy/paste it in your "Random surf" AppVM. Would this site be malicious
and steal your password database, it would miserably fail (without
mentioning Firefox "paranoid" settings in this AppVM).
The only way for someone to actually gets its hand on your Firefox
password database is to first hack the forum, and use it as a pivot to
then be able to hack your computer and get access to your file system.
At this point, installing a keylogger or a malicious Firefox extension
becomes just trivial, so avoiding to use Firefox password store will be
of no help and if you design your AppVMs correctly then all the efforts
deployed by the attacker will be done quite in vain since he will not
actually gain any new valuable information.
If you use Firefox password management, I would however still
recommend you to use the Secure Login extension
(https://addons.mozilla.org/en-US/firefox/addon/secure-login/) so
Firefox does not dumbly automatically fill any password field without
requiring any human intervention (I find it a shame it still acts this
way by default): this prevents you against online stealing of your
password store content and require the attacker to either exploit the
browser or get his hands on your file system.
The two are not exclusive. Actually, if you use Firefox password store
(and I find it really more convenient than doing a dozen Ctrl-Shift
thing each morning just to identify myself on random public websites,
but YMMV), I would strongly recommend to keep at least a backup of these
passwords in some password safe like (X)KeePass.
There are still a some other points you mention in your bullets I did
not addressed until now:
* Trying to visit a non-white-listed website
Basically, you are responsible of what you do with your own computer.
There are several Firefox modules (plus Qubes' firewall) which should
help you to ensure that you do not use an AppVM from a certain
sensitivity level to access websites belonging to other ones. Modules
like uMatrix or NoScript which allow to better control third-party
requests seem like a must here.
* You always use a new VM for each tab
It *may* be possible to implement a way to handle different AppVM in
different tabs instead of different windows, but I'm not sure to see any
real advantage of this.
If you have too many windows opened (which indeed happens very quickly
with Qubes), do not hesitate to use your windows manager feature to
handle them:
- Assign specific activities to your workspaces (or desktops) and name
them accordingly instead of keeping the default names (it is easier to
distribute and manage your opened windows between the "Web", "Work" and
"Personal" workspaces than the default "1", "2" and "3"). I moreover
recommend having a different set of shortcut per workspace, even if
there is sadly no standard way to do this in XFCE (see
https://askubuntu.com/questions/581913/can-i-set-up-my-xfce-workspaces-differently)
- Reduce or roll them: since the switch to XFCE, have you noticed that
using the mouse wheel on a window title bar you can roll it to save
space and avoid distraction? I find this feature really useful.
- Check your windows manager setting to adapt it to your taste. For
instance, personally I set it to not display reduced windows in the
Alt-Tab menu, so I can focus on the window I am currently working with.
* Each VM is disposable
I miss this feature too, if someone who is reading this can tell me how
to selectively make some AppVM to be volatile it would be helpful.
Some of my AppVM are used only for browsing and are not meant to store
anything locally (bookmark and history may be either
hardcoded/discarded, or saved remotely using the Sync feature). It would
be useful to have them volatile on a day-to-day basis, and turn them
non-volatile only to update Firefox's modules or save a change in its
settings.
* The browser gets installed after launch, so no kind of tracking can
take place here via installation UUIDs etc.
To be honest I did never investigated this, I'm not sure what the
concrete threats there are. If you really need to keep your identity
secret for some life-or-death related tasks, instead of generating new
UUID you really should just use the same UUID as a lot of other people
by using Qubes' bundled Whonix support: this will keep you blended in
the crowd.
Talking about missing features for web-browsing, I would love to see a
plugin or a solution allowing to open a link in another designated AppVM
(the "Random surf" VM or a disposable one) with just a right-click
option instead of the current "Right-Click, A, Ctrl-Shift-C, Alt-Tab,
Ctrl-T, Ctrl-Shift-C, Ctrl-C, Enter" sequence...
Best regards,
Simon.
--
You received this message because you are subscribed to the Google Groups
"qubes-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to qubes-users+unsubscr...@googlegroups.com.
To post to this group, send email to qubes-users@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/qubes-users/b4b39a993559e425698ee67927195766%40whitewinterwolf.com.
For more options, visit https://groups.google.com/d/optout.