Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide GPG Signatures / SHA-256 Checksums for Downloads on signal.org #1689

Closed
rpkoller opened this issue Nov 3, 2017 · 53 comments
Closed

Comments

@rpkoller
Copy link

rpkoller commented Nov 3, 2017

Hi it would be neat if sha256 checksum could be provided on signal.org so the integrity of the downloaded of app archives could be validated. Cheers Ralf

@scottnonnenberg
Copy link
Contributor

Today you can look at binary digital signatures on OSX and Windows, and the apt install mechanism includes gpg signatures.

@rpkoller
Copy link
Author

rpkoller commented Nov 3, 2017

yep i know. but normally i prefer the sha256 or sha512 checksums of an archive over the OSX signing or in certain cases i check both. On the other hand is the developer ID application authority RIDDLE QUIET VENTURES, LLC the correct one? would make sense also to add the to be expected signage results in a support document on the website maybe?

@scottnonnenberg
Copy link
Contributor

Thanks a good idea, thanks. Yep, that is the correct signing name.

@mlsxlist
Copy link

mlsxlist commented Nov 3, 2017

@scottnonnenberg can you please provide the fingerprints for the keys that are used to sign the apt packages. I would like to verify the key via a second channel before adding it to my apt key store.

@scottnonnenberg
Copy link
Contributor

Funny. We had it in our alpha install instructions, but we thought it was too technical for the average user so we didn't put it on https://signal.org/download.

The gpg fingerprint is DBA3 6B51 81D0 C816 F630 E889 D980 A174 57F6 FB06.

@mlsxlist
Copy link

mlsxlist commented Nov 3, 2017

Thanks, @scottnonnenberg. Putting it to the download section as an optional step would be helpful for those who want to verify whom we trust.

@tasket
Copy link

tasket commented Nov 4, 2017

Would it also be too much to ask to send your key to a keyserver? That helps increase the level of confidence when verifying a key. I'm not seeing either Whisper Systems or "Riddle Quiet" in a key search.

@jonathancross
Copy link

jonathancross commented Nov 9, 2017

Pubkey for Open Whisper Systems <[email protected]> can be found here: https://sks-keyservers.net/pks/lookup?op=vindex&search=0xDBA36B5181D0C816F630E889D980A17457F6FB06

FYI: Here are the checksums for the files I downloaded:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

2017-11-09 23:56:30 CET
SHA256 Checksums for the files I downloaded:
Signal-mac-1.0.37.zip 5d066f8e3d544e085c513d28f021f0cf4c96b7ed823342e12ab4b155a08cb5e1
Signal-win-1.0.37.exe 79197f9615d14471f8ae7bff2a6ff2043fbcf5edc09f3f4ae22a5bb0c8947bd5
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEMsk361Pa9SImG35c2FeN+Op8zxsFAloE3UUACgkQ2FeN+Op8
zxv02Qf/SihNYzHMaj8FuU/znQzel02FsksqZZkMoQ6BDmv4Z947iQhUE4bJql82
jrSRqoNYnWyc6YFmVg4NPcoatA8iOPCXSWd9DFho1tuWtngeQwABD/giMc9TaiLb
wS7gnsLxEP3luc6bko2q2HIpZ5dbv2BeRRtg+jqRhlzBn30bOhSRcmlSGtXYS5KX
J19r8LN1wfYunJ5rgrpw/e9LfWBc2z8emTIt5QEPbVyN+SnJaEWlpHOXZQzVtnY/
Lu29RrzYNGmOTCjIDtoxOPuLNLq4OQqj8ZFkpZLr2ov8+QmR2lK13i5HBhP8iluk
YLBstCi5TjjGWLzD17udrq/FU4e0KA==
=0mMD
-----END PGP SIGNATURE-----

@MrPaz
Copy link

MrPaz commented Jan 9, 2018

^^ thanks.

I totally agree, developer GPG fingerprints and signed releases or checksum files should be provided on the downloads page as standard practice. Maybe even write a tutorial for less technical users, like Tor or Tails has. If the average user doesn't want to verify the integrity of their downloads, fine, but I think most of the privacy minded individuals (probably your largest audience) certainly do.

Great product. All the best.

@jonathancross
Copy link

For v1.1.0 :

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

2018-01-14 22:00:30 CET
SHA256 Checksums for the files I downloaded:

92f8bd610a5d83110d64842cad4c23b246f17c55be7f2143fb83090e112563a5  Signal-Desktop-1.1.0.tar.gz
123a39c13d8845d5d0def1f2a939326251854090c5cbe81005daaad44d45e3de  Signal-Desktop-1.1.0.zip
d96f7557d91ecdc73c19fff5488d0f5cb315ae3b8a06cde201191e856142f197  signal-desktop-mac-1.1.0.zip
685d37a74902d8359d53bd2078078ad95d0cb5076b5873d36f1436ad5567e89b  signal-desktop-win-1.1.0.exe

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEMsk361Pa9SImG35c2FeN+Op8zxsFAlpbxOoACgkQ2FeN+Op8
zxsb1Qf/XTkFUOZBA5lFlc2LQYPOSNU7KR7EXJKK+NRGkunVe2nlP0CKJnwTbNJO
MVmFl5jNUmO93eqbeSKae9SGLLp2gcdBl7ratEDt02+/l7yosXkRImXJqcPsUw2O
uhjzMb1vCCDUZd+qaH2ZHZJ0bMJ/rmsckg5bFv4f5oXHVt9hdrC+h4lkfT4/sQB4
9Q3FNPEgZ3hKdTs/87Ss+4zYX5Hz3QgIflq1ZKrOMgnmOHJwF21v/+X91ZA70Lpb
42dXNSpQrgCzJTwt/LeZpkdSzE/qf+tFibNyU+PT5W9wz7Y4XuscBt3FAdupSYmv
KLzrayWhwumninDhf51G7Md/i1z05w==
=Nk/v
-----END PGP SIGNATURE-----

@jonathancross
Copy link

Looks like the Chrome app has reached EOL.

@scottnonnenberg Can you please confirm these are correct for v1.5.1:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

87f413f3927a2595db1d9a0fa58f870a4dd46a08237d2d1789e94cbfa6479a14  Signal-Desktop-1.5.1.tar.gz
7af6d9200f10e08ed8fb64d83f3d922b54731c3c2bf3f11be93758914f4107e9  Signal-Desktop-1.5.1.zip
49ffc33d54c99074605f225eb65f11124769c4d9e448ee60631d79d92e54b7f2  signal-desktop-mac-1.5.1.zip
0e006237304ed9d013e91fbda2a0f1b63a70fdff48b4262a6b28110146e22934  signal-desktop-win-1.5.1.exe
-----BEGIN PGP SIGNATURE-----

iQEyBAEBCgAdFiEEMsk361Pa9SImG35c2FeN+Op8zxsFAlqYSREACgkQ2FeN+Op8
zxu6ewf4hMzXfBPAU70fTJ0QNhd44XfENGMZ7W4I4lKO9XSI4WHjutxElaB90WGw
Wt0Wiep575EmOqLvvm/Jy54yfVJh0qdu7KUNRCKvZoTtDkPQ7E/lKhOBLbwwkjkj
RvoNl10DHt7p7rv4+u4ygIu/zRroxtYmQMJof1oFWlOJf60Fh3VeCF4n94nbSnwe
65oWJ192MCXDapxoPnKDZyXSaF9ORJHZjl/MaffqQSlOf1Ityny2AW5rW+srKrdI
2gP1tlaSO0F9AqiZ+WnJE0DcGX8WdHZp8+Z5Dbk6jWNIj/o9GUuNPzhk2xQKMAmn
SiWAe4uocX49UGKKs9q5ZIwNyKwF
=1cIS
-----END PGP SIGNATURE-----

Any chance you could start providing a signature like this when you tag a release?

@gasi-signal gasi-signal changed the title Suggestion: Provide sha256 checksums for the downloads on signal.org Provide GPG Signatures / SHA-256 Checksums for Downloads on signal.org Mar 19, 2018
@Klaasvaak
Copy link

I see the latest version for Mac is 1.7.0. I wanted to download it. But can't find a checksum on the website. Would it be possible to add a link to all checksums at the bottom of the download page?

@beerisgood
Copy link

beerisgood commented May 26, 2018

No checksum nor GPG sig available on https://signal.org/download/

@ezredd
Copy link

ezredd commented Oct 25, 2018

i cannot install the desktop version for macos because there is not checksum provided for the 1.17.1 release version. All i find on the github is a yml file containing the signature of a beta version but that does not match the zip file i download from https://signal.org/download/ so i don't feel i can safely install this application

@jonathancross
Copy link

jonathancross commented Oct 25, 2018

Release v1.17.1

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

ac9317206f61e82c7f490d76af088712693a8b20431e469334374a521f22c702  Signal-Desktop-1.17.1.tar.gz
014356aed94c1cc27915bae1234bee46ab685ea66c6302c043c639f71a0b446c  Signal-Desktop-1.17.1.zip
9921c93b2aa2fea9acc77a232ac6fb6378cca3aad2700e2c9df2a81e457db088  signal-desktop-mac-1.17.1.zip
262e10792c492dbe89b451f4b52100aacd7ea227dbd4817ad1c737e032e29580  signal-desktop-win-1.17.1.exe

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEMsk361Pa9SImG35c2FeN+Op8zxsFAlvRne8ACgkQ2FeN+Op8
zxvcewgAr5x/D2CJGaxopB6yzOMKzeS/7HxgUtlj9qgU9DT3DsDdaR/GTUeT3TNo
99zVGJfuA9YFwwD49GkV3daARRo4FGD9FmLRVeUvWRD1vHsVIMVvX31+tCe62kQn
rCPedKYqRX1MVGPIZ7cRdDGqavpZeKc12DJh24tqLtEeVzHkVEueAc3SliKU2KbS
7gx/s+JWDuKw8MQ7VxabORCLUxRylbN1dzPSyJf/2o2S9nnYehoHmoZBsb2SaatV
b6XAfFsBjTOHoXaWtN9E3/X+wzVM51SmWz3lWIUPe3nqEyQ+Sl8KqX9fEvSxkSGX
MxqAQ1y81eX2UxaFGsWI1zXreevGSQ==
=vjEW
-----END PGP SIGNATURE-----

Edit: fixed link to tag.

@daviewales
Copy link

@jonathancross Can we get some updated checksums for 1.18.0?

@jonathancross
Copy link

jonathancross commented Nov 19, 2018

Release v1.18.0 and legacy v0.48.1:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

8cd667e9e82b700bc80c47df9f815598317017a2b2a2e99b08ce5ac9b45d5764  Signal-Desktop-0.48.1.tar.gz
f609dc94cbfe78a87b855aba8ffbf5f9bb05ae9d59bbf3fe0a41dbbac49f726e  Signal-Desktop-0.48.1.zip
db0adab206282504ce2ed768f0365f13db06d7a144bedb36cfe55f6d6777db59  Signal-Desktop-1.18.0.tar.gz
946967b4cc4aaff92fea106cb2a1356adfad6ef036eb59516f90fe66a37db56d  Signal-Desktop-1.18.0.zip
75a5e10e6819fe7dbad6a6161040caa846c25d25e86782287c0a88b482729dd6  signal-desktop-mac-1.18.0.zip
2c400c7ae449e51d161ce60998fa8f5fae8647b35668d70f5443501601aed9bc  signal-desktop-mac-1.18.0-import.zip
162d059d43aebc92b78194b52488351c713e3a3959682872bc07883cf93c51ec  signal-desktop-win-1.18.0.exe
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEMsk361Pa9SImG35c2FeN+Op8zxsFAlv4KNYACgkQ2FeN+Op8
zxunSAf7B9YvqzaVeToqDKOhr1QWDGUNhG9ZguYms4ltVACEj9MxC0xiljigkZ6S
0aWjz49C5ZF7BI6QOGU7M4IxLYVhDToMmJazoOCTer5ReTxc8anBG4QOOcWc8Jb3
l+3/G2nvkRHPZE3O7E1TdTlpJOdX8wjgv2+Scnin6SSbnrx3cJS5SHjCKGB98Q9h
CmbHvxidEOxayIKPU09Ge5pLJyFargpYjoBPsJNUhDCH1xPUQuc6y0kK1dBr1Vc0
ZF7qekZ4SEf8AHy70edshJlfIAXtTkUQ0OqCr8uH2d7C+3COeFl+17WvMtLZYaj5
wjL59W7DAvzdmbnyPUoBaxIMPh0n5Q==
=Mv9D
-----END PGP SIGNATURE-----

Edit: Added in a new "import" version I discovered "signal-desktop-mac-1.18.0-import.zip".

@daviewales
Copy link

Thanks!

@daviewales
Copy link

Release v1.18.1

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

I downloaded and hashed the following files from https://signal.org/download/ and https://updates.signal.org/desktop/signal-desktop-mac-1.18.1-import.zip
These were the hashes as of 30/11/2018 (I am not a Signal developer, so I cannot verify that these are the original files.)

87c2f42e3a99ffb6446779c4b0ae3323dfac7257203057479dbbc46283f59576  signal-desktop-mac-1.18.1-import.zip
e467abdb5f4b5b550778a5120ac3a540ef273967fede0628acceb5deba7cbc9f  signal-desktop-mac-1.18.1.zip
8770346efde4829ae627d807fa605d59577e1d3c106c9979e7f873fe80aa9b4a  signal-desktop-win-1.18.1.exe
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEE14pHd8lD5jj1kizybWNXgUb0oWYFAlwA+aEACgkQbWNXgUb0
oWa+1Af/e0y29Nkoyzd1XHnLAhk0VyAZlr2T3EVyp6yCnBirxj3HftJO06xRwUcn
JNZ1GzwfNIWO19OzPov1mwu1hU2HiIybP9LzqzNJIT8rRPy0hRe7dYheHa6OSUws
wL2KhF4AxqfbjEu0ffR08qJ/aKh4FL3JppVdjw0REdc2bvq2N30m2fijHrYOI+aC
FiR1lthAOyl3TAPpXpI4xjOSPvthC3fHaqFMtr+c2qNUbQQ069ZuO1t/M1EkcaQd
tKIPC9iBUG+4WassKHo+TUkTWeZC6niRFQXu+bDLVlRZ0HQd4AEXDKSfaLAFlx/e
lo1LYxWWqpIUaVFmZUtfa7fCzQ2X4w==
=mvk6
-----END PGP SIGNATURE-----

@joeminicucci
Copy link

Still waiting on official checksums for the developers. Would it really kill you guys to add this to your CI pipeline? Please go the extra inch if you really care about the security of your users

@MrPaz
Copy link

MrPaz commented Dec 12, 2018

checksums / sigs for 1.19?

more than a year since this issue was raised, and developers are still not putting these out with each new release. on encryption software. takes what, 5 minutes? I don't get it.

@jonathancross
Copy link

@MrPaz @joeminicucci Please help crowd source a bit of security here by providing your own PGP-signed hashes. You can also verify mine and those from @daviewales (just give it a 👍 if correct)

@daviewales
Copy link

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Unofficial signed shasums for 1.19 as of 14:02 14/12/2018 AEST
51b3f4c69049177087daa8269cdd206c5fb96dffeb2fa2378c6235ec8d658c42  signal-desktop-mac-1.19.0.zip
5abaa6277c8a1beecc1cb217b73a08b6cd06a24633a2e458d2d9980ae0c38f80  signal-desktop-win-1.19.0.exe
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEE14pHd8lD5jj1kizybWNXgUb0oWYFAlwTHWUACgkQbWNXgUb0
oWZClwf/c0AYcBgK6EYiY+PQ0h2wLBo+3mr+TxLFMyS5EdyprLjR0FIuufdADihv
N1vExVuntqB/YE0eLWxj9uco6DIcZflpeIAb+22e6oi08vAM1Uxmx/3hSg34LQa5
jYWuKz6OJ8JYr9Ww4/qMH1VgdxY4k0OtTz+wHhxHZNtY83f5Me0OjS7j44TYcxru
zJh3Em78aNHQH70wGsv91pLRNUHBv4w05dHtMqL2OfryYf4wUBFgYmKunMff6r5T
nhVDKyPIf6qRuu30UQTd280SleGqhpJrIcniY5GgWuHMOjP0wd61t+ALOHJp/f0W
NuJ/f8+GBNCW9M+UlZCkweu3QnokEg==
=yOre
-----END PGP SIGNATURE-----

@jonathancross
Copy link

I got the same checksums as @daviewales for v1.19.0 (and added in signal-desktop-mac-1.19.0-import.zip):

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256


v1.19.0
ea66d1a535e2e8201bb70213568f838abce0ed9618369a1929ff5a9d5c0bb76a  signal-desktop-mac-1.19.0-import.zip
51b3f4c69049177087daa8269cdd206c5fb96dffeb2fa2378c6235ec8d658c42  signal-desktop-mac-1.19.0.zip
5abaa6277c8a1beecc1cb217b73a08b6cd06a24633a2e458d2d9980ae0c38f80  signal-desktop-win-1.19.0.exe
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEMsk361Pa9SImG35c2FeN+Op8zxsFAlwWVLsACgkQ2FeN+Op8
zxtLXAf/ZcVPFLKh+1UTSbmAo0P6dwiPjGjZ8fZdQw5EM9n+Jio4hvYsYlpiu/iT
X1hKzc6r198uKuOjHhEgh1PHzoUHXc4yZeJNDJGduMQMb90seKkrEPilmM223kei
veQFXV6tatbHCq5SqVsy5iK6ZnZsPxIFLtjblVq5oDkHHJuWds0pRpfMY9f53kZg
jzm7H9+mwGjR1CSfKpc6igRufniVjvHbG/UicLccpxz58CEt+e21MNr8K1Iau7qK
TLl/0OClrs/m0Ompqmm+XLMdb/a7AxhTZo0QnsQd5aaFe2Yw1Coa1K40yBOcFAUT
3EHTZhc2fICSSn8LQfOBskoqao32AQ==
=V6BL
-----END PGP SIGNATURE-----

@protist
Copy link

protist commented Feb 6, 2019

Apparently, this issue is preventing signal from being packaged in the official Arch Linux repositories.

@JohnTheLearner
Copy link

JohnTheLearner commented Aug 15, 2019

@scottnonnenberg-signal thoughts on the earlier requests above to simply provide checksums, or a link to another page with them, on https://signal.org/download for the security-conscious user? It seems posting this for all OS's at a release should be some low-hanging fruit.

As a signal desktop user on Mac (can't w/ confidence on RPM-based linux), I think the only way to verify files downloaded (other than by something like codesign --verify --verbose /Applications/Signal.app) is to download a beta and compare against a checksum found in another file (beta yml) downloaded (over secure protocol, albeit), but without a posted hash for that intermediate yml file.

Thanks for your efforts - love the product and the new features (emoji search, etc.), but would like to have more confidence in the files downloaded.

@jerlich
Copy link

jerlich commented Nov 18, 2019

Something like Anaconda does would be really nice.

@jonathancross
Copy link

A gpg signature is far better than a checksum listed on a website (those do not provide any additional security).
Signatures have all the certainty of a hash (that is technically what is signed) -- and it also indicate who specifically signed off on that hash.

The Web Of Trust can be used to identify the key.

@daviewales
Copy link

Exactly. Anyone sophisticated enough to upload malicious binaries to the Signal website is sophisticated enough to upload the hash of the malicious binaries to the Signal website.

Signing the files using either the Web of Trust (GPG) or trusted certificate authorities is the only way to guarantee that the files were approved by members of the Signal team. The advantage of GPG is that you don't have to trust certificate authorities. The disadvantage of GPG is that not many people have a sufficiently complete Web of Trust. Another advantage of the Web of Trust is that it is decentralised, which makes it harder for hostile governments to control it.

However, even if your web of trust is incomplete, you can at least have the assurance that the signing key has not changed since you first downloaded it. If the same signing key is valid over a long period of time, it increases one's confidence.

@jerlich
Copy link

jerlich commented Nov 19, 2019

Exactly. Anyone sophisticated enough to upload malicious binaries to the Signal website is sophisticated enough to upload the hash of the malicious binaries to the Signal website

Sorry if this is naive, but isn't there a case where the malicious binaries are not uploaded to signal but my ISP (maybe in a country with state run ISPs) replaces the binary on the way down? In this case the sha256 would not match the website. I'm not denying that the gpg signed hash is better. It obviously is. Just asking a technical question. (I have spent some time reading on https and man-in-the-middle and it seems that there are possible scenarios).

@daviewales
Copy link

Imagine the worst case scenario: Your ISP forces you to install a root certificate so they can monitor and intercept (Man in the Middle) even your encrypted https traffic. This is the only way they could replace the signal binary in transit. If they can replace the Signal binary in transit, they can also replace the hash page in transit.

The reason that GPG can escape this kind of problem is that the you can build the Web of Trust 'out of band', or offline. If I have seen and signed your GPG key with my GPG key, there is no way for any signed message from you to be faked. The only option is for the malicious third-party to obtain a copy of your private key, which should ideally be stored offline, and encrypted with a strong password.

@JohnTheLearner
Copy link

isn't there a case where the malicious binaries are not uploaded to signal but my ISP

@jerlich yes - to your general question. Keep in mind caching where a site will allow caching downstream (at the ISP, etc. level). There are cache poisoning, etc. attacks where exactly what you're saying can happen - the downstream caching proxy can somehow contain the wrong, or a malicious, version of the file. There are different ways for this to be setup, but the file can, at the surface, look as if it came from the originally requested site instead of an intermediate cache. Again - impetus to use some kind of out-of-band encryption/verification that @daviewales alluded-to.

@fanvyr
Copy link

fanvyr commented Feb 29, 2020

This thread is older, i know. But for me still an open case.

Anybody ever listened to Jack Rhysider's podcast "Darknet Diaries"?

I know, just some rumors, but there are more and more cases, where the Signal App was replaced with a trojan one.. example: Episode 38 - Dark Caracal

Having then no quick view / way to go to verify the integrity is really bad...

Can we somehow help out?
We could build a details page with a webhook-realease pipeline..?

@scottnonnenberg-signal
Copy link
Contributor

We have an existing, cryptographically strong mechanism for verifying updates:

const publicKey = hexToBinary(getFromConfig('updatesPublicKey'));
const verified = await verifySignature(updateFilePath, version, publicKey);

That's probably your best bet for verifying that builds are trustworthy. If you need .sig files for Linux .deb files we could probably start generating them.

@fanvyr
Copy link

fanvyr commented Feb 29, 2020

Well that's good for updates, but not really for a first-installation...

That's probably your best bet for verifying that builds are trustworthy. If you need .sig files for Linux .deb files we could probably start generating them.

Currently for mac.. but providing it in general would really be nice

@scottnonnenberg-signal
Copy link
Contributor

@fanvyr Should be useful for new installations as well. You can pull down the build and the .sig file next to it, then validate them. For both Mac and Windows.

@fanvyr
Copy link

fanvyr commented Feb 29, 2020

Ah awesome, let me check that out. Missed that.

@rpkoller
Copy link
Author

rpkoller commented Mar 18, 2020

@scottnonnenberg-signal sorry for the probably naive question but where those .sig files could be found? would it be possible to validate the downloads of the desktop applications provided on signal.org with those .sig files as well? or is it only possible to validate the source files and you have to compile the app on your own afterwards?

@scottnonnenberg-signal
Copy link
Contributor

@rpkoller For example, the most recent macOS build has a sig: https://updates.signal.org/desktop/signal-desktop-mac-1.32.1.zip.sig. We don't generate a .sig file for the .dmg, because only the .zip file is used for updates.

@rpkoller
Copy link
Author

@scottnonnenberg-signal ah thanks scott didn't know that! but i ran into one follow up question. :/ what is the signing key then used generating the sig file? Was unable to find any on the signal.org website. Tried to verify the zip file with the pub key found on the keyserver by Curt Brune (Signal Artifact Signing) there but that seems not to be the right one which generated the sig file.

@jonathancross
Copy link

With PGP we have a way to establish the correct signing key (meeting in person, Web of Trust, etc) -- How can we establish the correct signing key in this workflow?

@scottnonnenberg-signal
Copy link
Contributor

The public key for our updates key pair is here:

"updatesPublicKey": "fd7dd3de7149dc0a127909fee7de0f7620ddd0de061b37a2c303e37de802a401",

@jonathancross
Copy link

jonathancross commented Mar 18, 2020

Putting on my tinfoil hat...

Why should we simply trust GitHub Inc (and everyone who has access to the infrastructure -- officially and unofficially) and DigiCert Inc (and everyone there), etc that this is the correct key? It is unlikely that I am seeing a different key, sig and zip file than others here, but completely possible.

Looking at the history of that file, I see that a GH user called @scottnonnenberg added the file and signed their commits. Then later @scottnonnenberg-signal added this key in question with an unsigned commit: c8ea2e9#diff-1e9c3d615e9ebaaaa3669b4c2fd87d00

That commit could have been added by malware on your system, a GitHub employee, and many others. It could even be that I am the only one seeing this particular key.

I understand this might sound outlandish, but such a scenario is exactly the type of thing Signal devs should consider if making a tool that challenges the surveillance state. A MITM attack like this would absolutely be used against high value targets. It would be nice if there was at least an attempt to mitigate such attacks using basic, well-known tools such as gpg.

@rpkoller
Copy link
Author

rpkoller commented Apr 9, 2020

@scottnonnenberg-signal hmmm somehow i am unable to manage to import that public key you've mentioned in #1689 (comment) into my gpg keychain. so the next step verifying the recent zip archive with the according sig file. :/

@jonathancross
Copy link

... i am unable to manage to import that public key ... into my gpg keychain.

@rpkoller - It is not a gpg key.
They still refuse to sign with a gpg key and instead suggest we rely on signatures from this code signing key (which was added to github in an unsigned commit by a similar, but different user name)
:-(

@rpkoller
Copy link
Author

rpkoller commented Apr 9, 2020

@jonathancross ahhh now i slightly grasp your remark in #1689 (comment) ... but github even supports gpg signage of commits :/ i suppose that would be more trustworthy in comparison to the procedure with github internal system ... and out of curiosity how you are able to verify the releases in the current setup? searched all over the documentation but either found gpg related stuff or how to commit but not how to verify the results?

@Hiraki99
Copy link

The public key for our updates key pair is here:

"updatesPublicKey": "fd7dd3de7149dc0a127909fee7de0f7620ddd0de061b37a2c303e37de802a401",

Hey man, how to gen .sig file when build release update new version for signal desktop

@jonathancross
Copy link

@thinh185 that quote has nothing to do with OpenPGP .sig files. It is about a codesigning key. Your question about generating your own sig files doesn't make any sense to me.

@cfoster
Copy link

cfoster commented Jul 2, 2020

Given the EncroChat hack. I would suggest this Issue has become more urgent.

This also goes for the client verifying that downloaded automatic upgrades are signed by the Signal Code Signing key (If this is not happening already).

If the Signal Domain (or even computer issuing the binaries) was compromised and dodgy binaries go flying out, that's the end of Signal, full stop, forever. All users kiss Signal goodbye.

@neman-pcas
Copy link

There will be a flood of new Signal users as a result of Facebook's Whatsapp privacy policy change taking effect 2021-02-08. People leaving Whatsapp for privacy reasons are more likely to be interested in the security of their replacement solution. The Signal Windows app download page doesn't provide any kind of checksum details. Wasn't able to find them on download pages for other OSen either.

@Mansarde
Copy link

+1 for having signed hashes available for releases.

@fletch31337
Copy link

+1 too. Checksums and most importantly, GPG signatures.

Doing this for new releases allows us to be more confident from the get-go, since we can then trust the updates too.

Seriously guys this is basic security 101 - WTF?????
I don't mean to be negative, but it is a no-brainer. There are likely people out there, who may be dealing with state actors as adversaries whose very lives may be at stake. If these people trust Signal to be sufficiently secure, we owe it to them to allow the binaries to be verified.

If you think putting the signature files up for download is going to scare people off because it is too technical, then put it on a separate page like the stand-alone APK file download is.

@burt23
Copy link

burt23 commented Sep 30, 2024

Please reopen this issue. It's 2024 and there are still no clear and simple ways to easily verify the integrity of these downloads. The resistance on the topic makes be seriously doubt the integrity of Signal. I love the app, but this wreaks of bad intent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests