What is the correct procedure to download the official bitcoin client, and validate it was signed by the developers, and not infected with any malware by a man in the middle?
|
|
Jeff Garzik signs every release with his GPG key (also here). You can find release announcements (such as this one) on the SourceForge.net Bitcoin development list. To verify the signature on a release, obtain the key from the link above. Obtain the release announcement from the link above. Obtain the download from any source. Then point GPG at the release annoucement (or the signature block from it, including the BEGIN and END lines). GPG will ask what file you want to verify, pick any of the ones listed in the signature certificate. It will then tell you if the release is identical to the release Jeff Garzik signed. |
|||||||||||||||
|
|
Q: How can one download the bitcoin client securely? |
|||||||||||||
|
Now you want to know if you can trust that person. He has an account at Sourceforge and he has made a file available to you and you now have that file, and what you proved in step 5 is that you got the same file he made available, as opposed to a fake from someone on the Internet between you and Sourceforge. I just did this with version 0.7.1, and that person is Gavin Andresen. I have Kleopatra for Windows, so I looked up "Gavin Andresen" on the pgp.mit.edu certificate server, and found a certificate for him with "(CODE SIGNING KEY)" in the name. I imported it to Kleopatra and then verified that the checksum file I downloaded in step 3 was signed by the person who made that key (Anybody can make a key and pretend to be Gavin). But let's be paranoid... I could still have bad code because I might have downloaded an imposter's certificate, and had my connection hijacked for the download. So I Googled "Gavin Andresen certificate fingerprint" (without quotes) and found a page at https://bitcointalk.org/index.php?action=printpage;topic=69355.0 that displays the fingerprint of "Gavin"'s certificate, and it matches. With all this information, I assume I'm ok. If I didn't, I'd have to get the source and examine it, as Evil Spork explained. |
|||
|
|
|
Generally if you want it really secure you go to the official source, download it, inspect the code, then compile it yourself. Otherwise just check it versus the md5 hash or sha hash. |
|||||||||||||||||||||
|