7 ms·
> As for Signal it’s at least open source, but there’s no way to check that the client I’m using, or my friend is using, actually matches that source code. Thi
by mjg59 5y ago
> As for Signal it’s at least open source, but there’s no way to check that the client I’m using, or my friend is using, actually matches that source code.
This is… not true? Signal builds are reproducible. You can verify that the apk in the app store corresponds to a specific point in git history, and if you don't trust Google you can sideload that.
> Even if there was it’s irrelevant. Centralized infrastructure can claim to provide privacy but can never provide control: they can openly alter the deal at any time and I’d be forced to continue using it, if I couldn’t get my friends to switch to something else.
If you're using Signal because of the E2E properties, and Signal unilaterally changes its behaviour, you are absolutely not forced to continue using it. If you do wish to continue communicating with people who are using Signal, you're still able to reappraise what you feel comfortable saying now you know that the behaviour has changed.
The claim that "Signal encryption doesn’t actually work" just seems inaccurate. We can verify that Signal has the properties it claims it has. "Signal encryption could stop working" would be true - the client could absolutely just choose to start sending everything in plaintext, but we're not relying on a centralised group to make that claim! Anyone can look at the commits to Signal and flag that the claimed properties no longer apply.
- mike_hearn 5y ago"You can verify that the apk in the app store corresponds to a specific point in git history" Is there an easy way to get a direct HTTPS download link from the Play Store? The app itself certainly doesn't let you get the direct APK, or if it does then this must be a very obscure or new feature because I've been using Android for years and never seen it. My understanding is that the Play Store protocol is quite complicated. Even if you can get such a link: • It's not the case for iOS. • It's not the case for WhatsApp. • You have to repeat the process for every update, of which there are many. • You don't know what version other people are running, which also matters. Consider group chats! This is really something possible only in theory, not something normal users can actually do, hence the threshold signing/auditing proposal. The claim that "Signal encryption doesn’t actually work" just seems inaccurate I see a bunch of people getting hung up on this point. It's missing the forest for the trees. Encryption in which you rely on your adversary to encrypt messages for you is conceptually broken. It doesn't matter if the encryption scheme works in theory in another context, in that context it's a failed setup. The example of WhatsApp (which uses the Signal encryption scheme) makes this clear: the Signal protocol in the abstract prevents the adversary learning when the same message is sent twice. In the most important concrete instantiation it actually doesn't: Facebook simply changed the client to expose that information unencrypted, and there's nothing anyone can do about it. Signal could do the same for their own network tomorrow, and given the ideological trends in the Bay Area perhaps they will. Or maybe they already did for some people? We have no way to know, only faith. "If you do wish to continue communicating with people who are using Signal, you're still able to reappraise what you feel comfortable saying now you know that the behaviour has changed." I think you're agreeing with me. The point of encryption is to turn the infrastructure provider into a "dumb pipe" that doesn't have opinions on what you think. If one day Signal or WhatsApp change the deal - as indeed Facebook did in 2019 - and you suddenly have to care what random Facebook employees think - then we can no longer really claim the service is end-to-end encrypted.
- mjg59 5y ago> Is there an easy way to get a direct HTTPS download link from the Play Store? Easy? No. But you can grab the apk from any number of third party download sites and verify the signature, and you can also just download it from https://signal.org/android/apk/ https://signal.org/android/apk/ . Unless you've installed something via the Play Store, Android won't autoupdate it. > • It's not the case for iOS. It's still not hard to obtain iOS packages and verify their contents - it's definitely not as straightforward to use those as it is to sideload updates for Android, but it's still possible to verify that the binary matches the source, and you only need one person to notice. > • It's not the case for WhatsApp. Your claim was "Signal encryption doesn’t actually work". WhatsApp uses a whole bunch of Signal, but it's not Signal. This is like claiming that the IoT device I found that uses Signal in the backend but has all the key material in an unprotected Firebase bucket tells us anything about the security of Signal. > • You have to repeat the process for every update, of which there are many. No, someone has to. And that's something that could be automated. > • You don't know what version other people are running, which also matters. Consider group chats! If your position is "We should have infrastructure that makes it easy for third parties to audit Signal updates correspond to the source code", I absolutely agree! But we can build that with what currently exists, Signal's centralised infrastructure does nothing to prevent that. > Encryption in which you rely on your adversary to encrypt messages for you is conceptually broken. Every time someone sends an encrypted message, they're relying on a huge stack of technology that's largely outside their control. If my keyboard becomes untrustworthy, my guarantees are gone. If my video driver becomes untrustworthy, I'm in a bad place. Using any form of technology implies placing some trust in an awfully large set of people. On a daily basis, we're relying on an awful lot of faith. The Signal devs have gone out of their way to make it easier to verify whether that faith is misplaced or not. But: > We have no way to know, only faith. We literally do have a way to know. We can dump every Signal APK installed on every phone and determine whether they match the source. It wouldn't be easy, but it could be done. > If one day Signal or WhatsApp change the deal… then we can no longer really claim the service is end-to-end encrypted. Signal doesn't appear to have changed the deal, so it seems like you're saying we can currently claim that it's end-to-end encrypted?
- mike_hearn 5y ago
- lowwave 5y ago>This is… not true? Signal builds are reproducible. You can verify that the apk in the app store corresponds to a specific point in git history, and if you don't trust Google you can sideload that. A better way to verify this is latest Signal build in F-Droid? Last time I checked it is behind quit few version. If Signal can satisfy the F-Droid build check to be open and free, then it is legit. Most people don't have time to go through the git commit to verify the build.
- thelittleone 5y agoAgree though making it faster or more convenient would be a benefit. But I disagree that most people don't have time to check. It's just inconvenient or not important enough for those who choose not to.
- input_sh 5y agoI don't think Signal was ever on F-Droid? IIRC its code does contain some proprietary blobs and Signal doesn't want non-official clients to connect to their servers, so it'd be against Signal's wishes to have a fork on F-Droid without those proprietary blobs. They do offer an apk on their website though.
- medstrom 5y agoThe F-Droid issue mentioned nothing about blobs as I recall, the reason was they want to be able to push security updates in a timely manner. F-Droid makes it far too easy for people to keep using an old version.
- MrDresden 5y agoI use Signal, and am not saying that they are doing anything shady. But that argument would make for a convenient smokescreen if they were.
- lowwave 5y ago>F-Droid makes it far too easy for people to keep using an old version. Being open/free is to allow people to have any version they chose. I've pushed both in App Store and Google Play Store, if the software is truly free/open it shouldn't be hard to publish it on F-Droid. The problem is when there are mixxed proprietary code in the project then F-Droid tend to reject it.
- herodoturtle 5y ago> You can verify that the apk in the app store corresponds to a specific point in git history Heya thanks for your comment. Would you mind expanding on what the above means? For the App Store newbies here - myself included :-)
- capableweb 5y agoReproducible builds refers to the process where a binary/package can be verified that it been built from a specific commit (for example). If the build process is reproducible, it means that every time you build the project, the output is always the same (idempotent). So Signal can publish a binary + a hash + which commit it been built from, and you should be able to checkout that commit, build the project, and once built, both binaries should be exactly the same (the hash for both should be the same). Not only helpful in being able to verify that the binaries people publish are without 3rd part modifications, but also helpful in debugging and some other scenarios. More info here: https://reproducible-builds.org/ https://reproducible-builds.org/ Although, on iOS I think reproducible builds are mostly useless (for the use case of verifying the binaries) as you can't download the binary straight from the App Store nor can you inspect installed binaries on your iPhone (AFAIK).
- throwawaycrylto 5y ago
- herodoturtle 5y agoThis was really insightful - thank you!
- searchableguy 5y ago> Signal builds are reproducible. You can verify that the apk in the app store corresponds to a specific point in git history, and if you don't trust Google you can sideload that. Actually, for both the commercial app stores - you cannot. Google requires app bundles where they package different APK for devices and sign it using their keys for new apps from 2021, August.
- mjg59 5y agoGoogle is pushing towards that, but for apps that already exist you can absolutely still upload stuff signed with your own keys.
- doublerebel 5y agoGoogle is far more than 'pushing': currently any app added after August 2021 is required to let Google manage the keys. I expect it's a just a matter of time before it applies to all apps. Really disappointing that they are using their market position to completely ruin developers' ability to provide security. Source: I have been developing on Android since Android 1.0. Also see https://stackoverflow.com/questions/68710048/no-opt-out-option-from-app-signing-in-google-play-console https://stackoverflow.com/questions/68710048/no-opt-out-opti...
- mrweasel 5y agoHow does reproducible builds help you verify that you friends don’t have compromised builds installed? I haven’t used Signal, so I don’t know, but is there some way for your client to verify the client on the other end? Knowing that your client isn’t compromised is pointless if you friend can’t/won’t do verification on their end.
- deleted 5y ago[deleted]
- brazzy 5y agoEven if you could verify the client on the other end, that doesn't help you if the OS that client runs on is compromised because your friend carelessly allowed macros in an office document.
- dmw1 5y agoThis isn't something you can reasonably protect against and I don't even see this as a purely technical problem. Even if you could verify Signal, what about the OS being compromised, the phone being lost or a shoulder surfer reading the message? Even if I tell a friend a secret over dinner I can't 100% verify that they are not going to tell someone else. So some degree of trust in the other party is required. If you can't trust the person to take the technical steps needed to secure the information, why do you trust them to not just share your secret the old fashioned way?
- Klasiaster 5y agoRight, but the point about the closed server infrastructure still stands, though, and you have to blindly trust them not to collect data about you or interfere with your message delivery, compared to a possible decentralized system.
- deleted 5y ago[deleted]
- hiq 5y ago> you have to blindly trust them not to collect data about you Why blindly trust them if you can inspect the client, like you easily can with Signal? It's all about how you choose to update your client and which due diligence you want to apply, and for this a decentralized system doesn't help.
- Klasiaster 5y agoThis is about the server which is not open source and even if it was you wouldn't know if they actually run that code without modifications
- hiq 5y ago> This is about the server which is not open source The Signal server implementation is mostly open-source, and some users managed to run their own instance. > you wouldn't know if they actually run that code without modifications That's the point of SGX, but even without it, most guarantees you get from the Signal protocol come from the clients. E.g. you don't need to know what the server is running to ensure that the content of your messages is not leaking. Other than that, being decentralized on its own doesn't magically solve the metadata problem. Signal leaks less metadata than most messengers, including decentralized ones.
- wb14123 5y agoYeah the logic of the article seems absurd to me. The hypothetical problem applies to any client. If the open source software Signal cannot be trusted, how do you trust any other software you are using? It’s not the software problem , it’s the problem of the build and distribution of the software. As mentioned in other comments, you can use trusted build and distribution channel. The worst you can do is to build by your own if you want to be really safe. I have done that and it’s not so hard .
- Melting_Harps 5y agoPreface: No one, and I mean no one should take anything Mike Hearn has to say as credible, the guy is up there with Ver in terms of being persona non-grata for his blatant incompetence. His words seethe with a sense (and rejection) of wanting to be relevant, but as he proved with his 'rage quit' not only were his constant forks failures, but Bitcoin has survived all the attacks since he left proving he never could project anything accurately. Web3, a boomerism in terms of indexing the internet as they see it, is hapless fad that people who don't or can't see that the current model of the internet is fundamentally broken and instead want to patch instead of fix the rot. Kazakhstan has shown how hastily this centralized cesspool, that relies on spying and data collection, can be turned off. Which has been seen time and again since the uprising in the the Arab Spring. The Internet infrastructure as it currently exists is THE problem, and it is that needs to be corrected. I think as technologists we have to accept that using a centralized blockchain, which ETH is, built on a horrible language (Solidity) has not and cannot bring about the progress Vitalik or anyone else has fantasized and sold many people on. To date, whether it be the DAO hack or 2.0 or whatever, all we see is how centralized systems make failure an inevitability rather than a possibility. What I hope is that Starlink and Starship make it possible for new types of uncensorable ISPs get created that do not rely on these archaic models that rely on backbones out in the Ocean that are readily prone to attacks by adversaries that can be shut off at will [0] and rely on Nation-States to operate as a despot or regime sees fit. That alone, beyond Mars colonization, should be enough for people to celebrate Spacex's success! 0: https://news.sky.com/story/russian-submarines-threatening-undersea-network-of-internet-cables-says-uk-defence-chief-sir-tony-radakin-12511437 https://news.sky.com/story/russian-submarines-threatening-un...