Split-Browser Bookmarks, Logins & Browsers

Oof, well before y’all turn to some tricky file syncing setups (there’s also the logins directory tree to worry about…) feel free to give the latest, very minimalist commit (not yet released in a package update Edit: released as qubes-split-browser-0.15.0, which is in the contrib current-testing repo) a try instead. It allows you to choose the disposable side dynamically, even if there’s just one persistent qube.

Dynamically choosing different browser configurations within one -dvm is going to be more complicated and tbh I don’t know when I’ll get around to implementing that.

1 Like

Why it’s not feasible (at least for me) to manually set non-tor-dvm-template (debian-11-minimal-dvm or fedora-35-dvm namely) on the fly (just as we can switch netVMs on the fly) in order to start Firefox, while persistent split-browser VM is up so we could get both browsers started in parallel from 2 dispVMs (one based on whonix-ws-dvm, and the other based on debian-11-minimal-dvm/fedora-35-dvm)?
What happens is that Tor Browser is started in disp1 and after switching to debian-11-minimal-dvm-template in surfer-settings-advanced-defaultDVM, disp2 based on it is started, but Firefox not, and disp2 is immediately shutdown (same for fedora-35-dvm).

In fact, based on my testing, I cannot reproduce your problem. I can switch the default_dispvm back and forth, each dispVM is working flawlessly with split-browser functions, respectively and simultaneously.

The x-www-browser stuff that @tzwcfq wrote about is completely unrelated to Split Browser, as @augsch pointed out. Don’t do any of that.

So you haven’t actually configured your Firefox -dvm to use Firefox for Split Browser yet. (If you run split-browser in a terminal in your persistent qube, there’ll probably be an error message from the disposable side complaining that Tor Browser is missing, which would be why disp2 immediately shuts down.)

Try this in your Firefox -dvm to configure it:

sudo mkdir -p /usr/local/etc/split-browser-disp
sudo ln -s /etc/split-browser-disp/22-firefox.bash.EXAMPLE /usr/local/etc/split-browser-disp/22-firefox.bash
1 Like

BTW have you seen my split-keepassXC guide?

Link

Bridging KeePassXC to Split Browser’s login system on the persistent side (not to the potentially malicious disposable side, where the browser runs) is another one of those eternal TODOs…

I think we need a KeepassXC fork with tag-based access control :frowning:

I’m not so worried about that aspect. It’s always possible to compartmentalize with multiple vault qubes.

What does worry me is using the vanilla, bidirectional KeePassXC protocol across a trust boundary. That protocol’s gotta be at least somewhat complex - is it documented somewhere? - and I’d be surprised if its implementation was already perfectly fit to withstand our unusual threat model, where an exploited browser might try to attack the vault by sending malformed data in order to extract all credentials. Or in the worst case, to execute arbitrary code and e.g. gain persistence by then using the vault as a foothold from which to launch exploits in the other direction, against every new disposable browser instance.

Indeed. I doubt this attack vector was in KeepassXC developer’s mind :frowning:

Thanks a bunch for this tip. It would be probably good to include it in your Github readme file, since obviously no one here didn’t know about the necessity of such a linking.
It’s a shame some kind of importing bookmarks doesn’t exist.

I have manually extracted links from my bookmarks.html file and imported it to tsv file in Calc and now I have all the bookmarks.
Regarding logins, for now I’d prefer to have them in my KeepasssXC in vault and manually copy pasting usernames and passwords. I just don’t feel safe enough to have them in a clear text file in some other AppVM.

Thanks once again for the great work here @rustybird

I found it helpful to have a way to easily delete some lines of the bookmark. Is it possible to add this function, using dmenu that’s triggered by Alt+B? I can’t imagine a way to do this. Thanks.

What does it look like? Can probably make a Python script to convert it in my free time.

+1. Only way I know so far is to manually edit the file in the offline vm.

That would be great, indeed. I’m not sure I understand your question. It’s a bookmarks.html exported from my browser?

I was asking if you could post a snippet (with random sites) of what the file looks like because I’ve never exported it. Or tell me which browser you exported from so I can replicate it.

Probably better to convert from Firefox’s / Tor Browser’s .json bookmark backup format (instead of from the legacy .html format). Here’s a first attempt at this: split-browser-bookmark-json2tsv

This is one of the things that will hopefully be solved any day now™ by the addition of a hook system - quote from an older PM:

I’m currently working on a generic “hook hotkey” feature (maybe assigned to Ctrl-!). The rough idea is that it would pop up a dmenu window where e.g. foo bar baz can be entered to launch the command ~/.local/share/split-browser/hooks/foo 'bar baz' with […] $SB_URL and $SB_TITLE of the active tab.

For example, an included hook could unbookmark the active tab’s URL (after confirmation).

Ah, OK, thanks for clarifying. Here’s a sample

<DL><p>
    <HR>    <HR>    <DT><H3 ADD_DATE="xxxxxxxxxx" LAST_MODIFIED="xxxxxx" PERSONAL_TOOLBAR_FOLDER="true">Bookmarks Toolbar</H3>
    <DL><p>
        <DT><H3 ADD_DATE="xxxxxxx" LAST_MODIFIED="xxxxx">Bookmarks bar</H3>
        <DL><p>
            <DT><H3 ADD_DATE="xxxxxxxx" LAST_MODIFIED="xxxxxx">Computers</H3>
            <DL><p>
                <DT><H3 ADD_DATE="xxxxxxxx" LAST_MODIFIED="xxxxxxx">Hardware</H3>
                <DL><p>
                    <DT><H3 ADD_DATE="xxxxxx" LAST_MODIFIED="xxxxx">Upgrade</H3>
                    <DL><p>
                        <DT><A HREF="https://ark.intel.com/compare/xxxxx" ADD_DATE="xxxxx" LAST_MODIFIED="xxxxxx">Intel® Product Specification Comparison</A>
                        <DT><A HREF="https://ark.intel.com/compare/xxxxxxx" ADD_DATE="xxxxxx" LAST_MODIFIED="xxxxxxx" ICON_URI="fake-favicon-uri:https://ark.intel.com/compare/xxxxxx" ICON="data:image/png;base64,xxxxxxxx
		    </DL><p>
...

Is there some way, in the persistent VM, to display the bookmarks?

Every command I try simply tries to open a disposable (and the disposable immediately shuts down).

Displaying the bookmarks in the persistent VM is normally triggered by just pressing Alt-b in the DisposableVM’s browser.

If you want that same bookmarks window triggered from the persistent VM, the command is split-browser-bookmark get. To be able to open a website from that, you also have have to tell it which currently running Split Browser instance to use:

SB_CMD_INPUT=/run/split-browser/cmd-... split-browser-bookmark get
1 Like