Verify Your Downloads!
When we download software, we need to verify two things: The integrity of the software we have just downloaded. The authenticity of the package. Checking these two things will ensure that the download went well, and that the software is authentic (and not malware, for example). For the impatient, here is the process assuming that we have downloaded: A software package we want to use, in the example software.pkg A file containing the reference hash; in the example, software.pkg.sha256 A file containing the signature of the Software Author; in the example, software.sig The public keys of the Software Author; in the example, author.gpg $ sha256sum -c software.pkg.sha256 # 1. Check the download integrity $ gpg --import author.gpg # 2a) Import downloaded public keys $ gpg --keyserver hkp://<server> \ --search-keys <shortID> # 2b) Import public keys from a server $ gpg --verify software.sig software.pkg # 3) Verify signatures $ gpg --list-public-keys --with-sig-check # 4) If needed, check web of trust These commands, why we run them, how they work, and how we should understand them, are discussed next. All the commands are Linux-specific, but information on Windows equivalents can be found in plenty of sites and I will probably write other post in the next few days. ...