473 sats \ 41 replies \ @Natalia 24 Feb \ on: The Curious Case of Digital Signatures crypto
practice 2. verifying the Electrum Wallet
- found the public key from https://github.com/spesmilo/electrum/blob/master/pubkeys/ThomasV.asc
Imported the key, also there are other devs are listed on the site.
- verified the file.
one thing really strange is that when I tried this again, it says
-
I can't find the SHA256 to continue š³
- found the public key from https://github.com/spesmilo/electrum/blob/master/pubkeys/ThomasV.asc
Imported the key, also there are other devs are listed on the site.
Good, I think using Github as the source of trust is okay. But remember: the more sources that say that this is indeed the correct key, the better!
one thing really strange is that when I tried this again, it saysgpg: can't open 'electrum-4.5.3.dmg.asc': No such file or directory gpg: verify signatures failed: No such file or directory
Mhh, and you are sure you didn't (remove) the file? Did you run
gpg --verify
in the correct folder?
- I can't find the SHA256 to continue š³
If the software you downloaded was signed, then you don't need separate hashes. The signature contains the hash to verify integrity. I can tell from your comment that this is the case for Electrum since the signature is named
electrum-4.5.3.dmg.asc
and the software is in electrum-4.5.3.dmg
.Sparrow Wallet was just a special case where not the software was signed but the hashes. Then you need to run another command (
sha256sum --check <hashfile> --ignore-missing
) to verify the software.I mentioned that I don't know why Craig did it like this, I only had an educated guess:
ConclusionSo what we just did was to basically verify the authenticity and integrity of the file that contained the hashes for all binaries withgpg --verify
. When the hashes could be trusted, we could use them to make sure that the software was not tampered with. But why not simply provide a digital signature for the binary itself?I actually don't know. But my educated guess is that it's related to convenience. Instead of providing a signature for every binary, the hashes are signed. Usingsha256sum --check
with--ignore-missing
then simply ignores all files that don't exist. So I am basically guessing that there is no way to do something similar with digital signatures. Maybe someone knows more?
reply
wait, so when the software was signed all you need to do is finding the correct public key ( the more sources suggesting the same key the better ), and then verify the asc? that's all?
reply
Yes. The "asc" is the (detached) signature.
The hardest part is verifying the public key but most people just skip that lol
reply
how hard can it be, all you need to do is to search. š
reply
To be fair, I think if the instructions mention to import the key from a site like Keybase like Sparrow does, I think it's fine. Most important thing is to not import the public key from the same site you received everything else and I think if people just follow instructions, they automatically do that.
It just makes me feel uneasy if people are not aware that this is important. The why's and so on.
reply
It just makes me feel uneasy if people are not aware that this is important.
like @DarthCoin say - education is key š
reply
Haha yes. Like a secret key hidden in plain sight.
reply
is my understanding correct?
the logic behind this is the dev uses his private key to sign the signature ( asc ) which then hash the software.
reply
reply
agree, and some of them are quite hard to search, e.g. Mullvad VPN, I couldn't find it in other places besides their site, madness.
updated
github āļø https://github.com/mullvad/mullvadvpn-app/releases/tag/2023.6
reply
updated github āļø https://github.com/mullvad/mullvadvpn-app/releases/tag/2023.6
I don't see a key fingerprint there š
reply
MullvadVPN-2023.6.pkg.asc
š
why the devs are making things to tricky, is it really meant for people to verify! or just trust.
I have to do that myself, still figuring things out around PGP keys
same, I'm verifying all the software that I use, good things is I don't use many.