* Wayback to some months ago for the download page [1]
* Confirm that the content presented matches the existing download content for the 0.12.1 release (or prior)
* Confirm that the content for the "0.11+ key" is the same [2]
* Confirm that the signed release for the 0.12.1 content is correct and valid
* Request that (full-length) key from a public GPG server
If you've done all of those things, it might be a good idea for you to sign that key and push it back up to a public GPG server - that help with web-of-trust, and somewhat legitimizes the key versus some arbitrary untrusted impostor. (I have done all of these steps, and signed with my key 9BB5251DE08569D4DEEA894C85D221C11DD01DF6)
[1] http://web.archive.org/web/20160109193420/https://bitcoin.or... [2] http://web.archive.org/web/20160109193420/https://bitcoin.or...
Keys should only be signed after establishing beyond resonable doubt that they belongs to the person indicated by the key. Since the userid of the key is usually a real name, checking the passport in person is one good way to accomplish that.
I would argue that by cross-referencing multiple sources I can establish beyond resonable doubt that a certain key indeed belongs to the person known to the community as Wladimir J. van der Laan. At the point where the person is sufficiently well known under a certain name it doesn't really matter if that's the name on their passport, since that's irrelevant for their public identity.
I can certify that this key is the same one that was used for the 0.12.1 release, and its content has been published on more than just the bitcoin.org website and more than just $TODAY.
I can see the same content on Reddit's /r/bitcoin wiki page or on Bitcoin Talk, with an identical signature. I would have to believe that either Bitcoin is already compromised, or that bitcoin.org, bitcointalk.org, reddit.com AND archive.org have all been hacked or coerced into changing content with accurate history intact.
Someone compromised the Bitcoin site > 4 months ago without it being discovered.
Someone continues to compromise the site today even after this public attention, since the same message is still there.
That same entity compromised my browser, curl, my Linux laptop, Windows desktop, Android phone and 3 different networks.
That same entity compromised Archive.org and Reddit 4+ months ago without being discovered.
That same entity created sockpuppet accounts to publicize the fact that this info was compromised and nobody discovered the discrepancy.
I don't believe that even the pre-Snowden NSA had all of those powers. If they did, fake signatures are probably the least of our problems.
It's no longer the original model of Person === Key that requires passport checks and face-to-face meetings. I would consider this better validation, in that it certifies real-world and historical usage.
Here's my alternate proposal: How difficult is it for the same attacker to create a fake passport and show up to a bitcoin meetup claiming to be this person?
Or, you know, for paranoia level 1000, your posts are the sockpuppet ;)
I'll agree this is all super unlikely and I'm not accusing you or anyone here of shenanigans. I'm just saying that signing keys shouldn't be taken lightly, because if people start getting sloppy then a lot of the trust in the web of trust is no longer water tight.
If I want to do this "properly" it's a lot of work. I'd get 3 or more independent VPN providers and run the test while connected to each, independently or in series. I'd run everything in a VM that I created from a verified source 5+ years ago on hardware from 10+ years ago[1]. I would have to categorize and confirm that every vulnerability in all software was either fixable via configuration, or couldn't contribute to remote compromise of the box. I'd run the test with and without Tor, hard-resetting the VM to its initial state for every variation and comparing the results across every run to detect abnormalities. I'd confirm the content at Archive, CommonCrawl, Yahoo, Google and at least one foreign provider, Yandex or Baidu or whoever else I could track down. I'd look for that same string in all places I could find it (web, newsgroups, torrents, friends, friends-of-friends), and confirm that neither those pages nor any linked pages contain invalidations, or if any of them contain further evidence to support the identity of said key. By "linked" I mean both links from those pages, and anything I could discover via search engine pointing to those pages independently. I'd go find some old torrents or archives of older versions of the binaries and/or signatures, and confirm that their content matches the published content. I'd confirm that the old key was in use before 0.11, and that the new key is indeed the one that signed release 0.11+. I'm sure there are some further steps I could take to invalidate any known or theorized attacks from state-level agencies, but at this point it's probably more difficult to fake than a GPG signature.
And obviously I'm a sockpuppet - nobody should listen to random strangers on the internet without verifying their identity as well! You could look at my keybase profile, but A) that's easy to fake and B) that's not the key I used to sign above - clearly something hinkey is going on. ;)
[0] https://chrome.google.com/webstore/detail/ext/apmlngnhgbnjpa... [1] https://libreboot.org/faq/#intel
Personally, I save level 3 signatures for people I know personally, and only if they show my their fingerprint on a trusted device.
(Mirroring TLDR into comments in case of DDOS or tampering with bitcoin.org's web page).
https://bitcoin.org/en/alert/2016-08-17-binary-safety shows:
We strongly recommend that you download that key, which should have a fingerprint of 01EA5486DE18A882D4C2684590C8019E36C2E964. You should securely verify the signature and hashes before running any Bitcoin Core binaries. This is the safest and most secure way of being confident that the binaries you’re running are the same ones created by the Core Developers.
Don't trust key 01EA5486DE18A882D4C2684590C8019E36C2E964. Only trust the legit one, 0F6A146532D869AEE438F74B6211AA3B00411886.
Be careful out there folks.
*******_Why would you even pre-announce this? Has it been compromised in the past?
Scratch that. Code up a brand new implementation, test it and deploy it to an air gapped network, and then nuke it from orbit. It's the only way to be sure. :)
Don't take chances with an unprotected computer. Only write your code on paper until it's production-ready. :)
The only way I'd write code is by biting a tip of finger until it bleeds heavily enough, then using that as a writing implement.