[archived] Previous, now Deprecated Whonix Windows Installer Testing

Great developments! I can imagine how frustration tolerant someone has to be for development on the Windows platform.

The installer downloads Whonix images from whonix.org during installation or are them built into the installer?

I am not sure, it depends on the answer of my above question. Let’s see.

I assume downloaded images:
For automated verification, you’d have to bundle my key within the installer. Users would trust you, verify your key, verify your installer and then your installer takes over (comes with my key) and verifies the downloaded Whonix images. However… Automated gpg verification is hard to get right:
( GitHub - Kicksecure/gpg-bash-lib: gpg file verification bash library, addresses comprehensive threat model, that covers file name tampering, indefinite freeze, rollback, endless data attacks, etc. )

And you would require gpg installed.

To simplify this, may I recommend the following?

  • gpg verify Whonix images when you, the developer downloads it for installer maintenance purposes
  • create sha256 or sha512 checksums of the images, include them into the installer, verify them using the installer
  • (also, signed sha256 and sha512 checksum files are available on download.whonix.org)

If images are integrated into Windows installer:
Then users only have to verify your installer. No need for the installer to automatically verify the integrated Whonix images.

I’d say for the initial release, keep it a bit more verbose. Once all issues are ironed out, hide it (if there can be a command line switch or even a small checkbox or so to re-enable them in case should debugging be required).

Good day,

Are already delivered with it to make deployment in unsafe/uncontrolled enviroments easier.

I see.

Ok. My initial concept was actually meant to automate that step to (i.e. bundle GPG with the signature for the installer, run it in the background and hand over to the installer once it received the go-ahead) since most “Windows-users” aren’t really used to doing things like it. That’s why I am slightly anxious about whether an attacker might have the capabilities of changing this “verification-part” on the fly…

Maybe a good idea would be to, rather than bundle the verification and the installer together, thus making manipluation of both easier, delivering the two seperatley, while still being smpler than doing it yourself. What I mean by this is the following: The user first downloads the installer as usual. He then downloads a second, seperate .exe. This .exe would have to be put in the same folder as the “Install Whonix.exe” and once executed would run a portable version of GPG with the signed and verificated keys already bundled. It then outputs “OK!” or “File corrupted! Download again” giving the user a tangible and simple way to verify the installer.

For now however, I feel like I should finish designing the “UI/Launcher/whatever”. Will technically likely still use this old, functional code as a base though with a (slightly) better appearance: Creating a custom UI for VBox the fast way - Whonix Windows GUI - #3 by Ego

Sure.

Can no be downloaded from here: MEGA Sadly, like mentioned above, Github decided to time out.

Have a nice day,

Ego

1 Like

The hard part remains. Users would have to gpg verify your installer. There is nothing you can do to improve that situation on the Whonix installer level. [[Improvements are possible on operating system / browser level. For browser, metalink would help. Etc. off-topic]]

Maybe a good idea would be to, rather than bundle the verification and the installer together, thus making manipluation of both easier, delivering the two seperatley, while still being smpler than doing it yourself. What I mean by this is the following: The user first downloads the installer as usual. He then downloads a second, seperate .exe. This .exe would have to be put in the same folder as the “Install Whonix.exe” and once executed would run a portable version of GPG with the signed and verificated keys already bundled. It then outputs “OK!” or “File corrupted! Download again” giving the user a tangible and simple way to verify the installer.

That makes things more complicated. Defeats the purpose of the easy installer. And adds no security. Users who download the windows installer could receive a compromised version to begin with. So they have to verify that one. From there, there is no more need for Whonix image verifications that are integrated in the installer. If users received a compromised copy of the installer, that compromised installer could also fool the integrated verification.

Where the automated verification could make sense is within the Windows installer build process. But even then, perhaps have it verified automatically, but continue manually after reading gpg’s output. I’d say that is low priority if things work for you as they currently are.

For now however, I feel like I should finish designing the “UI/Launcher/whatever”. Will technically likely still use this old, functional code as a base though with a (slightly) better appearance: Creating a custom UI for VBox the fast way - Whonix Windows GUI - #3 by Ego

Looks good to me. We can use that as initial release to get the foot into the door. It’s a HUGE improvement so or so. And it can still be improved after initial testing and feedback.

Good day,

Ok, I can see and understand where you are comming from in regards to the verification. Leaving it up to the user is likely the best solution, espcially when keeping the fact in mind that Windows isn’t the best enviroment for critical communication in the first place.

Ok, great. Will tomorrow (hopefully) be able to upload a new build which should include this basic version.

For a more presentable version I was thinking about something like this:

This would give users easy access to the WS and GW and tell them what’s currently running.

Have a nice day,

Ego

1 Like

That looks good!. What would emergency stop do? What’s under advanced?

Good day,

“Emergency stop” would have a similar functionality to the “FDE emergency feature” proposed by @HulaHoop here: Full Disk Encryption (FDE) Emergency Shutdown Feature - Testing Requested shutting down both machines instantaneously.

By clicking “advanced” the standard VirtualBox User Interface would be opened giving an user more control.

Have a nice day,

Ego

Ego:

“Emergency stop” would have a similar functionality to the “FDE emergency feature” proposed by @HulaHoop here: Full Disk Encryption (FDE) Emergency Shutdown Feature - Testing Requested shutting down both machines instantaneously.

Sounds useful. Perhaps rename that and make an emergency shutdown of the
whole system?

By clicking “advanced” the standard VirtualBox User Interface would be opened giving an user more controll.

Ok.

Good day,

Sure, how about perhaps naming it “Shut down host”? Though something I didn’t account for would be accidentally clicking it and losing progress. Maybe having some kind of “safety switch” might help…

Have a nice day,

Ego

Or we do it unix style. Do one thing and do it well. Leave that feature out?

And combine it with apple style. Leave out all buttons and have just one start button that starts both VMs and one stop button, that stops both VMs.

Plus the a smaller advanced button to open the usual virtualbox interface. I guess we’ll not be able to avoid exposing the virtualbox interface anytime soon since it still is required for many actions.


This thread moved to the staff section? Why?


As for finding testers of the installer, I suggest creating a Whonix blog post?

Good day,

Sure, would be possible as well. This would be how it currently looks though a more simple style would also have advantages:

Sure, can do that as well.

Explained in the first post:

This is just so some testing can be done before we’d publish this officially. To catch any obvious bugs.

Once this “launcher” has been finalized, I’d like to be able to deploy this “installer” immediately which is why finding bugs now is rather advantageous.

Have a nice day,

Ego

1 Like

Good day,

So something like this perhaps as a new base design:

Have a nice day,

Ego

1 Like

Yes, that looks as simple as possible! :slight_smile:

Good day,

Ok, great, am currently sitting on it.

Have a nice day,

Ego

1 Like

Good day,

Since I didn’t change “that much” between the version currently uploaded and the newest build (other than adding the now “finished” launcher and fixing a bug which lead to the uninstaller not being able to remove the virtualbox.msi files) I have uploaded the three files necessary to run the “launcher” seperatley to save time: MEGA

Simply drop these three files in the same folder in which “Whonix for Windows” has been installed and everything, including start menu and search integration should work.

I will of course upload the complete and corrected version including source to Github (hopefully without crashing this time) as well.

Have a nice day,

Ego

P.S.: Just saw I forgot to mention but .NET Framework 4 is needed to run Whonix.exe. According to Microsoft, it is currently installed on over 70% of all PC’s, though I’m of course still looking into ways of getting it to run with .NET Framework 2.0 which has been included with every Windows since XP.

1 Like

Good day,

I seem to reach a “presentable build” quite rapidly actually. Since I currently only have access to my Surface, I created dozens of different VMs in order to simulate as many systems and configurations as possible and I feel confident in saying that there shouldn’t be any too glaring bugs in the current build. I even managed to shave about 300MB of the file size by improving the compression employed. Verbose/Showing the command line while running certain external processes has also been “turned off”.

That being said, I’m currently in a bit of legal jungle in regards to whether including certain parts of the .NET Framework is actually compliant with GPL because, despite .NET actually being MIT for the most part, this does still seem to be something of a minefield in terms of copyright law, etc. Sadly excluding those aforementioned parts is hardly an option at the current time. The same reason is also why I still can’t “skip/automate” the “Oracle Certificate Import Process” which thus needs to be manually accepted by the user. Hopefully I’ll get a concrete answer on that as soon as possible.

After that is sorted out I’ll do a final compile and upload everything to Github.

Have a nice day,

Ego

1 Like

I am currently struggling to get Windows to work since I doubt anyone else in the staff forum has Windows.

Good day,

No problem, I am confident in saying that I’ve been able to simulate enough configurations (different read/write speed, RAM, GPU, assigned processors, versions of Windows, …) to say that there shouldn’t be anything do problematic in the newest build, other than the whole .NET quandary and one bug/problem in regards to the UI. Specifically, that the most recent version employs a simple “IF/ELSE” approach, rather than being based on a process based one. That could lead to problems if a user decides to either close the VMs on its own or start them via the VirtualBox-UI, as then “my UI” displays the wrong button.

Have a nice day,

Ego

1 Like

That’s good. I got a lot on my plate currently. I am happy if we can move to public testing, skipping me. Do you have Whonix blog account already?

Good day,

I currently don’t to be honest. I’d have to get the entire “thing” on Github first anyways. Sadly takes quite a long time due to the fact that the internet I currently have access isn’t really that fast.

Have a nice day,

Ego

1 Like

Good day,

Well, seeing how my last comment on getting this to Github is already over a month old, I should probably start working a bit more continuously on the projects I start. Anyways, have rewritten, simplified and recompiled this project now and thus tried pushing it to Github.

Well…

I’ve exceeded their data limits, which is why I was forced to migrate this project to GitLab. You may find it here (sourcecode will be added soon): https://gitlab.com/EgoBits1/Whonix-Installer/blob/master/Whonix-Installer.exe

All in all though, I feel like the current version is usable and stable enough for a public release. I even compiled it on a fresh EC2, so there is no way my clogged up hard drive could have had any negative impact on it (as has sadly happend in the past).

The only I’d need for it now, would be the content of the legal disclaimer at the beginning of the installer. Should I simply copy the one we currently display when importing Whonix? I am not certain what legal ramifications there could be to guard against, so this is something which should definetly be discussed beforehand. Once we’ve dealt with that, this should be ready for release.

Have a nice day,

Ego

1 Like