# Verify the virtual machine images using Windows

### From Whonix

Support Status stable
Difficulty easy
Maintainer 0brand
Support Support

# Verify Whonix Images in Windows using Gpg4win

GnuPG is a complete and free implementation of OpenPGP that allows users to encrypt and sign data and communications. Gpg4win is a graphical front end for GnuPG that is used for file and email encryption in Windows. The verification process for the Whonix images begins with securely downloading and verifying the gpg4win package. Once completed users can use GPG from the command-line to verify the Whonix ™ images.

## Overview

The following guide provides steps to:

1. Import the Intevation CA certificate.
2. Install SignTool.
5. Verify the Whonix images.

## Import the Intevation CA Certificate

Intevation, the company that hosts GnuPG does not maintain a secure TLS site for gpg4win.[1] To mitigate the threat from attackers using a man-in-the-middle attack to provide users with a forged version of GnuPG. Intevation offers a self-signed certificate which is again, secured by a certificate signed by GeoTrust. This certificate can be easily downloaded and imported.

Before placing Trust in CA certificates understand the risks associated with the Fallible Certificate Authority Model.

• Browse to https://ssl.intevation.deRight-click on "Intevation Root CA 2016"Right-click OK.

Next, import the certificate.

• Right-click Intevation-Root-CA-2016 fileInstall CertificateRight-click Open"check" Local MachineRight-click Next"check" Automatically select the certificate store based on the type of certificateRight-click NextRight-click Finish.

When successful the Certificate Import Wizard will show "The import was successful". Click "OK" to exit.

## Install SignTools

The following instructions install SignTool in Windows 10 (stable release). For earlier Windows releases (Windows XP, Vista, 7 and 8) users can install SignTool by substituting the corresponding SDK Installer found in the Windows SDK archives for the Windows 10 SDK installer in the below instructions.

SignTools is a Windows command-line tool that uses Authenticode to digitally sign files and verify both signatures in files and time stamp files. SignTool is available as part of Mirosoft Windows SDK, which can be can be installed in just a few easy steps. Once installed it can be used to verify the gpg4win package before installation.

• Right-click Downloading The InstallerRight-click SaveRight-click Run.

• Right-click Continuechoose PATHC:\Users\<user_name>\Downloads\Windows Kits\<windows_version>\WindowsSKDRight-click Next.

Figure: Choose SDK installation path

The Windows SDK installer provides a number of different packages that can be installed. The only package needed for gpg4win verification is Windows SDK Signing Tools for Desktop Apps (SignTools). Be mindful that earlier SDK version packages may be named differently from later SDK versions. For example, the package that contains SignTool in SDK for Windows 8.1 is named Windows Software Developmental Kit. This differs from the corresponding package in Windows 10.

Figure: Select SignTools package

Once the box to the corresponding package is "checked", right-click Download. Once installation is complete the installer can be closed.

The Intevation self-signed certificate will allow gpg4win to be securely downloaded and SignTool can then be used to verify the authenticity of the gpg4win package itself.

Note: To simplify the SignTool verification process be sure to download gpg4win package to the Downloads directory.

1. Download the gpg4win package by first browsing to https://files.gpg4win.org

Next, scroll down and download the latest version of gpg4win and the corresponding signature. At the time of writing (July 02 2019) gpg4win-3.1.9.exe was the latest version. Since the Intevation CA certificate has been imported no errors should be encountered when the gpg4win package is downloaded.

2. The gpg4win package can be verified by running SignTool from the command prompt.

To open a command prompt, in the Windows Start Menu, run.

cmd.exe

cd C:\Users\<your_user_name>\Downloads

Then verify the gpg4win package using SignTool.

signtool verify /pa gpg4win-3-1.9.exe

The following output shows a successful gpg4win verification.

Figure: Successful verification

If verification fails delete the gpg4win package and repeat the download and verification process again.

Since all Whonix ™ releases are signed with the same key, it is unnecessary to verify the key every time a new release is announced. Trust in the key might gradually increase over time, but cryptographic signatures must still be verified every time a new release is downloaded.

This page is strongly related to the Placing Trust in Whonix ™ page.

Note: With the exception of step 1 all commands should be run from C:\Users\<user_name\Downloads

1. If not already completed, have GnuPG initialize your user data folder.

gpg --fingerprint

patrick.asc

4. Check fingerprints/owners without importing anything.

gpg --keyid-format long --with-fingerprint patrick.asc

5. Verify the output. The output should be identical to the following.

pub  4096R/8D66066A2EEACCDA 2014-01-16 Patrick Schleizer <adrelanos@riseup.net>
Key fingerprint = 916B 8D99 C38E AF5E 8ADC  7A2A 8D66 066A 2EEA CCDA
sub  4096R/3B1E6942CE998547 2014-01-16 [expires: 2021-04-17]
sub  4096R/10FDAC53119B3FD6 2014-01-16 [expires: 2021-04-17]
sub  4096R/CB8D50BB77BB3C48 2014-01-16 [expires: 2021-04-17]


6. Import the key.

gpg --import patrick.asc

The output should confirm the key was imported.

gpg: key 8D66066A2EEACCDA: 86 signatures not checked due to missing keys
gpg: key 8D66066A2EEACCDA: public key "Patrick Schleizer <adrelanos@riseup.net>" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: no ultimately trusted keys found


Output 86 signatures.

The above "86 signatures not checked due to missing keys" can be safely ignored since it does not relate to the signing key itself.

If the Whonix ™ signing key was already imported in the past, the output should confirm the key is unchanged.

gpg: key 2EEACCDA: "Patrick Schleizer <adrelanos@riseup.net>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1


Output trusted keys.

If the following message appears at the end of the output.

gpg: no ultimately trusted keys found


Analyze the other messages as usual. This extra message does not relate to the Whonix ™ signing key itself, but instead usually means the user has not created an OpenPGP key yet, which is of no importance when verifying virtual machine images.

## Verify the Whonix ™ Images

If not already completed download both Whonix.ova image and the corresponding OpenGPG signature which will be used to verify the image. Both the signature and .ova image should be downloaded into the same directory.

Then, start the cryptographic verification, it can take several minutes.

In Windows command prompt, change to the directory with the Whonix.ova and corresponding signature file.

cd C:\Users\<user_name>\<directory_name>

Next, verify the Whonix.ova image.

gpg --verify-options show-notations --verify Whonix*.ova.asc Whonix*.ova

If the Virtual Machine image is correct the output will tell you that the signature is good.

gpg: Signature made Mon 19 Jan 2015 11:45:41 PM CET using RSA key ID 77BB3C48
gpg: Good signature from "Patrick Schleizer <adrelanos@riseup.net>" [unknown]
gpg: Signature notation: issuer-fpr@notations.openpgp.fifthhorseman.net=6E979B28A6F37C43BE30AFA1CB8D50BB77BB3C48
gpg: Signature notation: file@name=Whonix-Gateway-15.0.0.4.9.ova
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 916B 8D99 C38E AF5E 8ADC  7A2A 8D66 066A 2EEA CCDA
Subkey fingerprint: 6E97 9B28 A6F3 7C43 BE30  AFA1 CB8D 50BB 77BB 3C48

This might be followed by a warning saying:

gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.


This message does not alter the validity of the signature related to the downloaded key. Rather, this warning refers to the level of trust placed in the Whonix signing key and the web of trust. To remove this warning, the Whonix signing key must be personally signed with your own key.

Check the GPG signature timestamp makes sense. For example, if you previously saw a signature from 2018 and now see a signature from 2017, then this might be a targeted rollback (downgrade) or indefinite freeze attack. [3]

The first line includes the signature creation timestamp. Example.

gpg: Signature made Mon 19 Jan 2015 11:45:41 PM CET using RSA key ID 77BB3C48


Note: OpenPGP signatures sign files, but not file names. [4]

To help you check, that the file name has not been tampered with, beginning from Whonix ™ version 9.6 and above, by convention, the file@name OpenPGP notation includes the file name.

## Troubleshooting

#### SignTool is not recognized as an internal or external command, operable program or batch file

This error means the SignTool executable is not accessible through cmd.exe.A common cause for this error is SignTool was not installed in the users PATH. To fix this issue add signtool.exe to your system PATH.[5]

Note: This solution is temporary and works only until you close the command prompt. When the command prompt is restarted signtool.exe must be added to the system PATH again.

1. Open a command prompt.

In the Windows Start menu, run.

cmd.exe

2. Add the path to signtool.exe to your system PATH.

The default installation path for signtool.exe .

x86 systems:  C:\Program Files (x86)\Windows Kits\<windows_version>\bin\x86
x64 systems:  C:\Program Files (x86)\Windows Kits\<windows_version>\bin\x64


Run following command to add "path\to\signtool.exe" to your system PATH. Also be sure to add the Windows version to the path.

set PATH="path to signtool.ext";%PATH%

For example, the following command adds the path for a x64 system.

set PATH="C:\Program Files (x86)\Windows Kits\<windows_version>\bin\x64";%PATH%

Figure: SignTool not recognized

#### 'SignTool' A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider

This error message will be received if the /pa switch is not used with SignTool. This is because the default SignTool verify some_file.exe command uses the Windows Driver Verification Policy. [6] In order for the file to verify properly the /pa switch must be used so SignTool uses the Default Authentication Verification Policy.

Figure: Root certificate error

#### Encountering GPG Errors

When a GPG error is encountered, first try a web search for the relevant error. The security stackexchange website can also help to resolve GPG problems. Describe the problem thoroughly, but be sure it is GPG-related and not specific to Whonix ™.

More help resources are available on the Support page.

# Footnotes

1. See: Getting a GnuPG version for Windows in a secure way: https://lists.torproject.org/pipermail/tor-talk/2013-August/029256.html
2. curl --tlsv1.2 --proto =https --max-time 180 --output ~/patrick.asc https://www.whonix.org/patrick.asc
3. As defined by TUF: Attacks and Weaknesses:
4. http://lists.gnupg.org/pipermail/gnupg-users/2015-January/052185.html
5. See stackoverflow for more on this. [1]

No user support in comments. See Support. Comments will be deleted after some time. Specifically after comments have been addressed in form of wiki enhancements. See Wiki Comments Policy.

Whonix welcomes all comments. If you do not want to be anonymous, register or log in. It is free.

Random News:

Do you wonder why Whonix will always be free? Check out Why Whonix is Freedom Software.

https | (forcing) onion

Follow: Twitter | Facebook | gab.ai | Stay Tuned | Whonix News