logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git

Signal.md (11941B)


  1. ---
  2. date: 2018-08-08
  3. layout: post
  4. title: I don't trust Signal
  5. tags: [privacy]
  6. ---
  7. Occasionally when Signal is in the press and getting a lot of favorable
  8. discussion, I feel the need to step into various forums, IRC channels, and so
  9. on, and explain why I don't trust Signal. Let's do a blog post instead.
  10. Off the bat, let me explain that I expect a tool which claims to be secure to
  11. actually be secure. I don't view "but that makes it harder for the average
  12. person" as an acceptable excuse. If Edward Snowden and Bruce Schneier are going
  13. to spout the virtues of the app, I expect it to *actually* be secure when it
  14. matters - when vulnerable people using it to encrypt sensitive communications
  15. are targeted by smart and powerful adversaries.
  16. Making promises about security without explaining the tradeoffs you made in
  17. order to appeal to the average user is unethical. Tradeoffs are necessary - but
  18. self-serving tradeoffs are not, and it's your responsibility to clearly explain
  19. the drawbacks and advantages of the tradeoffs you make. If you make broad and
  20. inaccurate statements about your communications product being "secure", then
  21. when the political prisoners who believed you are being tortured and hanged,
  22. it's on you. The stakes are serious. Let me explain why I don't think Signal
  23. takes them seriously.
  24. ## Google Play
  25. Why do I make a big deal out of Google Play and Google Play Services? Well, some
  26. people might trust Google, the company. But up against nation states, it's no
  27. contest - Google has ties to the NSA, has been served secret subpoenas, and is
  28. literally the world's largest machine designed for harvesting and analyzing
  29. private information about their users. Here's what Google Play Services
  30. *actually* is: **a rootkit**. Google Play Services lets Google do silent
  31. background updates on apps on your phone and give them any permission they want.
  32. Having Google Play Services on your phone means your phone is not secure.[^1]
  33. [^1]: "But how is AOSP any better?" This is a common strawman counter-argument. Fact: There is empirical evidence which shows that Google Play Services does silent updates and can obtain any permission on your phone: a rootkit. There is no empirical evidence to suggest AOSP has similar functionality.
  34. For the longest time, Signal wouldn't work without Google Play Services, but
  35. Moxie (the founder of Open Whisper Systems and maintainer of Signal) finally
  36. fixed this in 2017. There was also a long time when Signal was only available on
  37. the Google Play Store. Today, you can [download the APK directly from
  38. signal.org](https://signal.org/android/apk/), but... well, we'll
  39. get to that in a minute.
  40. ## F-Droid
  41. There's an alternative to the Play Store for Android.
  42. [F-Droid](https://f-droid.org) is an open source app "store" (repository would
  43. be a better term here) which only includes open source apps (which Signal
  44. thankfully is). By no means does Signal have to *only* be distributed through
  45. F-Droid - it's certainly a compelling alternative. This has been proposed, and
  46. Moxie has [definitively shut the discussion
  47. down](https://github.com/signalapp/Signal-Android/issues/127). Admittedly this
  48. is from 2013, but his points and the arguments against them haven't changed. Let
  49. me quote some of his positions and my rebuttals:
  50. >No upgrade channel. Timely and automatic updates are perhaps the most
  51. >effective security feature we could ask for, and not having them would be a
  52. >real blow for the project.
  53. F-Droid supports updates. If you're concerned about moving your updates quickly
  54. through the (minimal) bureaucracy of F-Droid, you can always run your own
  55. repository. Maybe this is a lot of work?[^2] I wonder how the workload compares
  56. to [animated gif search][gif-shit], a very important feature for security
  57. concious users. I bet that [50 million dollar donation][big-bucks] could help,
  58. given how many people operate F-Droid repositories on a budget of $0.
  59. [^2]: No, it's not.
  60. [gif-shit]: https://signal.org/blog/signal-and-giphy-update/
  61. [big-bucks]: https://signal.org/blog/signal-foundation/
  62. >No app scanning. The nice thing about market is the server-side APK scanning
  63. >and signature validation they do. If you start distributing APKs around the
  64. >internet, it's a reversion back to the PC security model and all of the
  65. >malware problems that came with it.
  66. Try searching the Google Play Store for "flashlight" and look at the permissions
  67. of the top 5 apps that come up. All of them are harvesting and selling the
  68. personal information of their users to advertisers. Is this some kind of joke?
  69. F-Droid is a curated repository, like Linux distributions. Google Play is a
  70. malware distributor. Packages on F-Droid are reviewed by a human being and are
  71. [cryptographically signed](https://f-droid.org/en/docs/Signing_Process/). If you
  72. run your own F-Droid repo this is even less of a concern.
  73. I'm not going to address all of Moxie's points here, because there's a deeper
  74. problem to consider. I'll get into more detail shortly. You can read the
  75. 6-year-old threads tearing Moxie's arguments apart over and over again until
  76. GitHub added the feature to lock threads, if you want to see a more in-depth
  77. rebuttal.
  78. ## The APK direct download
  79. Last year Moxie added an official APK download to signal.org. He said this was
  80. up for "[harm reduction][harm-reduction]", to avoid people using unofficial
  81. builds they find around the net. The download page is covered in warnings
  82. telling you that it's for advanced users only, it's insecure, would you please
  83. go to the Google Play store you stupid user. I wonder, has Moxie considered
  84. communicating to people the risks of using the Google Play version?[^3]
  85. [^3]: Probably not, because that wouldn't be self-serving. But I'm getting ahead of myself.
  86. [harm-reduction]: https://github.com/signalapp/Signal-Android/issues/127#issuecomment-286223680
  87. The APK direct download doesn't even accomplish the stated goal of "harm
  88. reduction". The user has to manually verify the checksum, and figure out how to
  89. do it on a phone, no less. A checksum isn't a signature, by the way - if your
  90. government- or workplace- or abusive-spouse-installed certificate authority gets
  91. in the way they can replace the APK *and* its checksum with whatever they want.
  92. The app has to update itself, using a similarly insecure mechanism. F-Droid
  93. handles updates and actually signs their packages. This is a no brainer, Moxie,
  94. why haven't you put Signal on F-Droid yet?
  95. ## Why is Signal like this?
  96. So if you don't like all of this, if you don't like how Moxie approaches these
  97. issues, if you want to use something else, what do you do?
  98. Moxie knows about everything I've said in this article. He's a very smart guy
  99. and I am under no illusions that he doesn't understand everything I've put
  100. forth. I don't think that Moxie makes these choices because he thinks they're
  101. the right thing to do. He makes arguments which don't hold up, derails threads,
  102. leans on logical fallacies, and loops back around to long-debunked positions
  103. when he runs out of ideas. I think this is deliberate. An open source software
  104. team reads this article as a list of things they can improve on and gets
  105. started. Moxie reads this and prepares for war. Moxie can't come out and
  106. say it openly, but he's made the decisions he has made because they serve his
  107. own interests.
  108. Lots of organizations which are pretending they don't make self-serving decisions at
  109. their customer's expense rely on argumentative strategies like Moxie does. If
  110. you can put together an argument which on the surface appears reasonable, but
  111. requires in-depth discussion to debunk, passerby will be reassured that your
  112. position is correct, and that the dissenters are just trolls. They won't have
  113. time to read the lengthy discussion which demonstrates that your conclusions
  114. are wrong, especially if you draw the discussion out like Moxie does. It can be
  115. hard to distinguish these from genuine positions held by the person you're
  116. talking to, but when it conveniently allows them to make self-serving plays,
  117. it's a big red flag.
  118. This is a strong accusation, I know. The thing which convinced me of its truth
  119. is Signal's centralized design and hostile attitude towards forks. In open
  120. source, when a project is making decisions and running things in a way you don't
  121. like, you can always fork the project. This is one of the fundamental rights
  122. granted to you by open source. It has a side effect Moxie doesn't want, however.
  123. It reduces his power over the project. Moxie has a clever solution to this:
  124. centralized servers and trademarks.
  125. ## Trust, federation, and peer-to-peer chat
  126. Truly secure systems do not require you to trust the service provider. This is
  127. the point of end-to-end encryption. But we have to trust that Moxie is running
  128. the server software he says he is. We have to trust that he isn't writing down a
  129. list of people we've talked to, when, and how often. We have to trust not only
  130. that Moxie is trustworthy, but given that Open Whisper Systems is based in San
  131. Francisco we have to trust that he hasn't received a national security letter,
  132. too (by the way, Signal doesn't have a warrant canary). Moxie can *tell* us he
  133. doesn't store these things, but he could. **Truly secure systems don't require
  134. trust**.
  135. There are a couple of ways to solve this problem, which can be used in tandem.
  136. We can stop Signal from knowing when we're talking to each other by using
  137. peer-to-peer chats. This has some significant drawbacks, namely that both users
  138. have to be online at the same time for their messages to be delivered to each
  139. other. You can still fall back to peer-to-server-to-peer when one peer is
  140. offline, however. But this isn't the most important of the two solutions.
  141. The most important change is federation. Federated services are like email, in
  142. that Alice can send an email from gmail.com to Bob's yahoo.com address. I should
  143. be able to stand up a Signal server, on my own hardware where I am in control of
  144. the logs, and communicate freely with other Signal servers, including Open
  145. Whisper's servers. This distributes the security risks across hundreds of
  146. operators in many countries with various data extradition laws. This turns what
  147. would today be easy for the United States government to break and makes it much,
  148. much more difficult. Federation would also open the possibility for bridging the
  149. gap with several other open source secure chat platforms to all talk on the same
  150. federated network - which would spur competition and be a great move for users
  151. of all chat platforms.
  152. Moxie forbids you from distributing branded builds of the Signal app, and if you
  153. rebrand he forbids you from using the official Open Whisper servers. Because his
  154. servers don't federate, that means that users of Signal forks *cannot talk to
  155. Signal users*. This is a truly genius move. No fork of Signal[^4] to date has
  156. ever gained any traction, and never will, because you can't talk to any Signal
  157. users with them. In fact, there are no third-party applications which can
  158. interact with Signal users in any way. Moxie can write as many blog posts which
  159. appeal to wispy ideals and "moving ecosystems" as he wants[^5], but those are
  160. all *really* convenient excuses for an argument which allows him to design
  161. systems which serve his own interests.
  162. [^4]: See [LibreSignal](https://github.com/LibreSignal/LibreSignal) and [Silence](https://github.com/SilenceIM/Silence#silence-), particularly [this thread](https://github.com/LibreSignal/LibreSignal/issues/37#issuecomment-217211165).
  163. [^5]: See [Reflections: The ecosystem is moving](https://signal.org/blog/the-ecosystem-is-moving/). Yes, that's the unedited title.
  164. No doubt these are non-trivial problems to solve. But I have *personally* been
  165. involved in open source projects which have collectively solved similarly
  166. difficult problems a thousand times over with a combined budget on the order of
  167. tens of thousands of dollars.
  168. What were you going to do with that 50 million dollars again?