Verifying Commotion Downloads

What is a signature and why should I check it?


How do you know that the Commotion software you have is really the one we made? Depending on your situation, some person or entity might try to get you to download a fake version of Commotion. And if you're running a fake version of Commotion, not only is your security in jeopardy, but so is the security of everyone on your Commotion network.

An attacker could try a variety of attacks to get you to download a fake version of Commotion. For example, he could trick you into thinking some other website is a great place to download Commotion. That's why you should always download Commotion from https://commotionwireless.net/. The https part means there's encryption and authentication between your browser and the website, making it much harder for the attacker to modify your download. But it's not perfect. Depending on where you live, the Commotion website may not be accessible to you. Large companies sometimes force employees to use a modified browser, so the company can listen in on all their browsing. There have even been examples of attackers who have the ability to trick your browser into thinking you're talking to a website with https when you're not.

Some software sites, including Commotion, list md5 hashes alongside the software on their website, so users can verify that they downloaded the file without any errors. These "checksums" help you answer the question "Did I download this file correctly from whoever sent it to me?" They do a good job at making sure you didn't have any random errors in your download, but they don't help you figure out whether you were downloading it from the attacker. The better question to answer is: "Is this file that I just downloaded the file that Commotion intended me to get?"

Where do I get the signatures and the keys that made them?


Each file on our download page is accompanied by a signature, which you can download by clicking on the seal icon () next to the image name.

The signature file will have the same name as the image file, but with the extension ".asc". These .asc files are GPG signatures. They allow you to verify the file you've downloaded is exactly the one that we intended you to get. For example, openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin is accompanied by openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin.asc.

Below are instructions for how to verify these signatures, depending on your operating system.

Windows


You need to have GnuPG installed before you can verify signatures. Download it from http://gpg4win.org/download.html.

Once it's installed, use GnuPG to import the Commotion Developer signing key. Since GnuPG for Windows is a command-line tool, you will need to use cmd.exe. Unless you edit your PATH environment variable, you will need to tell Windows the full path to the GnuPG program. If you installed GnuPG with the default values, the path should be something like this: C:\Program Files\Gnu\GnuPg\gpg.exe.

"C:\Program Files\Gnu\GnuPg\gpg.exe" --keyserver x-hkp://pool.sks-keyservers.net --recv-keys 0xD01D01F1 After importing the key, you can verify that the fingerprint is correct:</p>

"C:\Program Files\Gnu\GnuPg\gpg.exe" --fingerprint 0xD01D01F1

You should see:

pub   4096R/D01D01F1 2013-05-17
Key fingerprint = 55A5 25F8 EFE5 7820 BA2A 40F7 D3F5 4B1E D01D 01F1
uid                  Commotion Developers (Master Signing Key) &lt;commotion-dev@lists.chambana.net&gt;
sub   4096R/AC84AB94 2013-05-17

To verify the signature of the file you downloaded, you will need to download the ".asc" file as well. Assuming you downloaded the file and its signature to your Desktop, run:

"C:\Program Files\Gnu\GnuPg\gpg.exe" --verify C:\Users\Alice\Desktop\openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin.asc C:\Users\Alice\Desktop\openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin

The output should say "Good signature":

gpg: Signature made Thu 23 May 2013 09:24:14 PM EDT using RSA key ID D01D01F1
gpg: Good signature from "Commotion Developers (Master Signing Key) &lt;commotion-dev@lists.chambana.net&gt;"
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: 55A5 25F8 EFE5 7820 BA2A 40F7 D3F5 4B1E D01D 01F1

Notice that there is a warning because you haven't assigned a trust index to this person. This means that GnuPG verified that the key made that signature, but it's up to you to decide if that key really belongs to the developer. The best method is to meet the developer in person and exchange key fingerprints.

Mac OS X


You need to have GnuPG installed before you can verify signatures. You can install it from http://www.gpgtools.org/.

Once it's installed, use GnuPG to import the Commotion Developer signing key. Import the key (0xD01D01F1) by starting the terminal (under "Applications") and typing:

gpg --keyserver x-hkp://pool.sks-keyservers.net --recv-keys 0xD01D01F1

After importing the key, you can verify that the fingerprint is correct:

gpg --fingerprint 0xD01D01F1

You should see:

pub   4096R/D01D01F1 2013-05-17
Key fingerprint = 55A5 25F8 EFE5 7820 BA2A 40F7 D3F5 4B1E D01D 01F1
uid                 Commotion Developers (Master Signing Key) &lt;commotion-dev@lists.chambana.net&gt;
sub   4096R/AC84AB94 2013-05-17

To verify the signature of the file you downloaded, you will need to download the ".asc" file as well. Assuming you downloaded the file and its signature to your Desktop, run:

gpg --verify /Users/Alice/openwrt-ar71xx-generic-ubnt-bullet-m-squashfs-factory.bin{.asc,}

The output should say "Good signature":

gpg: Signature made Thu 23 May 2013 09:24:14 PM EDT using RSA key ID D01D01F1
gpg: Good signature from "Commotion Developers (Master Signing Key) &lt;commotion-dev@lists.chambana.net&gt;"
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: 55A5 25F8 EFE5 7820 BA2A 40F7 D3F5 4B1E D01D 01F1

Notice that there is a warning because you haven't assigned a trust index to this person. This means that GnuPG verified that the key made that signature, but it's up to you to decide if that key really belongs to the developer. The best method is to meet the developer in person and exchange key fingerprints.

Linux


Most Linux distributions come with gpg pre-installed, so users who want to verify their Commotion download can just follow along with the instructions above for "Mac OS X".

See http://www.gnupg.org/documentation/ to learn more about GPG.


This tutorial borrows heavily from documentation created by the Tor Project.