Code Signing - Signing our binaries and setup files.
I wanted to collect the information we have on code signing as well as open the discussion for it.
The bitcoin binaries, setup.exe files and .app files are all signed by the Bitcoin Foundation.
Below is Bitcoin 0.13.2 windows setup.exe
Now check out some of these interesting links
We can also use our own PGP keys to sign the binaries, we’d have to post our public keys in order for people to be able to verify the authenticity of the application.
Doing the above can prove we built/compiled the code to some degree but it does not help us with the below
The above link shows two screen shots from windows and mac - the screen shots show what happens when an unsigned app runs on Windows and OSX.
I guess now we discuss
I think at least for windows, the popup still will show asking for allowance to install the binary, but it will show the user named in the key instead of ‘unknown’
As apple has a really strict policy on it’s software, I’m not sure, if the message will disappear.
One solutution could be to use app store to host the application. That would mean, someone has to register as developer and ‘own’ the binary.
It’s the same for Android, where I have registered as Developer for the Android wallet.
For I found some information about code signing here.
A comparison of different certificate options are also available on that site.
Even the open source certificate costs $14, the Microsoft one $183
Of course we could go for self signed certificates. Then the popup window still would show, but the user could compare the fingerprint of the certificate with on we publish either in the forum or on the website.
Thanks @Aciddude for compiling an update on all the work you’ve done researching binary signing.
The links and discussion will be useful for other developers with the same issues. We have serious issue of defining which is our release version, I see binary signing, and the way we allocate that, as essential for ongoing security of the core FTC wallet.
I like the Gitian idea, we can use the Launchpad build to be the same as the OpenSuse build to prove our binaries. It’s another good reason to get the Ubuntu PPA / build on Launchpad set up.
Bitcoin security warning