I know this tiresome argument comes up every time Signal is mentioned, but there's an elephant there that seems relevant.
An totalitarian state would not need to run a packet inspecting firewall to find out who is using Signal. They have this information already in the plaintext SMS Signal broadcasts in order to collect verified phone numbers of their users. It is most likely in their power to turn off cell service for these endpoints, or even locate them and let the security service round them up.
It's a great service in many ways, but if you are revolting an authoritarian state, it's something to be careful of. At the very least, please be mindful of this and take care of yourself.
Not in Iran. Not during demonstrations. Not in Kurdish-dominated areas. You can narrow it down as much as you'd like.
And while you'd think that senseless violence against civilians do not scale, times of civil protests in totalitarian regimes is not good time to be naive.
Shutting down routing for the entire country is pretty much par for the course. There's not such thing as collateral damage when the regime itself gets scared.
Not in places like Cuba, where I know first hand, people who participated in the protest in July 11th where charged based on the apps the police and G2(Cuban FSB) found in their phones.
> Arresting people for having Signal installed is not a scalable approach for a totalitarian state.
Not all of those are in the same country, though, and it’s worth thinking about how the install base would change after a particular country banned an app. The first time someone gets an official warning a lot of people are going to say “not worth it”.
I find your focus on totalitarian left peculiar. It's not like they were somehow unique - plenty of totalitarian regimes of all kinds have arrested and executed countless people for whatever.
A few random examples:
* Ottoman genocide of Armenians, on ethnic/religious grounds. The Ottoman Three Pashas regime was as far from left as possible, but plenty totalitarian.
* US internment of "foreign elements", including those with US citizenship, during both World Wars. US was never even center-left, let alone farther, and totalitarian is a stretch. Less bad than the other examples here, but still.
* The many White and Red terrors in the Interwar and post-WW2 years, where vague association was guilt and execution.
* Of course Jews, Roma, Gypsy, dissident in Nazi concentration camps.
* The Herero and Namaqua genocide by the rightist totalitarian-ish Imperial Germany.
* UK mass internment of Boers. Not leftist, not really totalitarian.
Need i go on? Why did you feel the need to pain totalitarian leftist as worse than any other totalitarians?
Your attempt to invalidate a statement with a another set of information is not useful. During the 1900s the left killed people on a scale never seen before in human history. I suppose I do question the psychological need you have to run defense for the left...
> Your attempt to invalidate a statement with a another set of information is not useful
Unless that information makes the statement seem extremely biased, which it does?
> During the 1900s the left killed people on a scale never seen before in human history
And during the 1900s totalitarian rightist killed people on a scale never before seen in human history. Industrial murder factories, with brutal precision, murdering thousands per day by the trainload, with an assembly line of transportation, robbing, murder through poison gas, cremation? Never has humanity sunken so low. Brutal ad-hoc genocides of people murdering another group with their hands due to hatred or misinformation or whatever is more understandable and explainable than cold blooded mechanised precision mass murder on an industrial scale.
Famines due to ethnic cleansing, stupidity, mismanagement and ignorance are aplenty. The Bengali famine is comparable to the Holodomor in scale and reasons, even if the Holodomor was probably more intentional. Nobody has done what the Nazis did at that scale.
So yes, it's extremely stupid to single out totalitarian leftist regimes for their crimes against humanity, as if it's a uniquely leftist thing. It's obvious the people doing that have an anti-left agenda, which is honestly just being stupid.
The USSR, China, Cambodia, Vietnam... it looks like you're mistaking scale with events of lesser time frames and "singular" locations (i.e. Auschwitz, Treblinka, and so on under the Nazis).
I wonder why you feel that it is necessary to attempt to be insulting?
The common factor in mass state murder is militant Facism. There's no right or left, there's a willingness to commit mass-murder and a violent takeover of the state. It's incontrovertible that democide was one of the worst forces of the 20th century, but bizarre and dangerous to associate it with some one-dimensional "left/right" projection of 21st century identity politics.
Pol Pot, Mao, Hitler - these are figureheads that became objects of popular worship. If Monarchies were a thing, they would have been monarchs. If Theocracies were a thing, they would have been theocrats. If corporations were a thing, they would have been admirable profiteers.
I had guessed you were going to drop the ‘Nazis were socialist’ line, and there it is! The ‘National Socialist German Worker’s Party’ were about as socialist as the Democratic People’s Republic of Korea is democratic (that is, not at all…)
"the left"? You have to be joking! Even US cold war-era anti-communist propaganda wasn't lying this blatantly. Mass incarceration, execution, etc. are a "skill" of all totalitarian regimes, no matter what social/economic policy they happen to support. The church in the middle ages, kings in the era of absolutism, the Axis powers during WWII, regimes of warlords past and present, the various religious states that are doing the bulk of it today... all of these regimes censored, imprisoned and executed their opponents and few could be considered "left".
The original comment was entirely arbitrarily limited to the 1900s, and as it brought "the left" into the discussion unprompted, I can only assume this was done intentionally to justify specifically going after left regimes. So firstly, I don't see why a counter-argument should stick to this arbitrary time frame, and secondly, some of my examples do in fact apply to this time frame too.
> They have this information already in the plaintext SMS Signal broadcasts in order to collect verified phone numbers of their users.
This assumes one is using the phone number attached to the handset running Signal as their Signal number. Personally, I don't do this: I have used Google Voice and even a basic Twilio number that sends SMS messages to me via Email to register a number with Signal. There are many reasons to do it this way, not least of which is that I can publish my Signal number without needing to worry about people direct-calling my phone. Until Signal drops the requirement for a phone number (verified by SMS) to spin up service, this is the most secure way to use Signal.
I'm fairly confident that about 99+% of people that actually do anti-government shit have ever had the opportunity to use Google Voice or set up a Twilio number. (And one of the reasons for that is that these are mostly US & friends only services.)
"Governments can easily correlate GV numbers to mobile devices."
Google Voice doesn't need to be installed on a mobile device. I have my Google Voice accounts (yes, multiple) set to forward SMS to me via email.
"I personally no longer trust Signal. Moxie's departure stinks like a canary."
I never really trusted Moxie to begin with but events like this make me wonder all the more if Signal is really being run from Fort Meade. Fortunately for me I used Signal as my "non-secure" messaging platform and use other messenger options for secure comms.
"Moxie" just seemed so hilariously stereotypical in the first place I could not help but think it was all BS. The name, his style, his online blogs.....maybe he just wants to craft a certain type of image but it seemed a little too perfectly matched to the type of person who would create a free, easy to use and super secure messenger.
Personally I really liked Wickr Messenger (no phone number required) but they were recently acquired by AWS :-(
edit:
Also looking up Wickr now it seems like they ended up specializing in providing secure messaging FOR the government (and even are the only ones to pass some NSA specific test) so maybe that was not the best choice.....
Use a truly disposable service like https://yoursecretnumber.com instead of Google Voice. This gives you a number with an OCN type of Wireless as well, instead of one that shows up as IPES (IP enabled Service Provider) or CLEC like Bandwidth.com and nearly all VoIP numbers.
That's what a security model is for, the best you can do is difficult security/privacy not absolute or perfect.
I don't get this "totalitarian state" b.s., subverting legitimate government's policies seems silly and dangerous. If I was a dictator or something I would have people's phone's searched randomly by street cops, if they see signal then you are a subverter and a traitor so off with your head. I can't imagine security against that.
Security and privacy against nation state actors are one thing but against your nation state actor is a whole different ball game.
Security against random searches is easy. There are plenty of ways to hide an app behind something innocuous, e.g. requiring a particular input sequence known only to the user to open the app.
It's a simple way of running something quickly and without touching the rest of your system (if you already have Docker installed)
Anyway, the proxy is just an nginx with a custom config file. You can check that file and just add it yourself to an nginx you manage, probably with little changes.
I'm also confused about the Docker hate here. The daemon itself is lightweight and the Docker-ized process(es), once running, have negligible overhead compared to running them natively.
I didn't look at the image size but you might be paying a ~100 MB storage penalty to bundle dependencies.
It's actually more than negligible, docker containerization tends to impose limits, tracking, and network overhead on processes, which all have some overhead and penalty on performance.
On beefcake supreme machines it's just usually not significant enough to worry about, because the perceived benefits outweigh the downsides.
There is some performance overhead from the configuration Docker uses for the containers, as well as some of the historical behaviour (not sure if they still apply)
- if you use docker nat, it about doubles connection time, if you only have extremely short connections this can be quite visible.
- If you need FS access, this can come at a high cost depending on your usage pattern, docker’s layered FS is not cheap.
- Finally Docker enables features which don’t come for free and which you may not be enabling separately e.g. seccomp (this can result in a 15+% performance hit in the worst case)
What if you're running on an ARM VPS? Now there are 2 binaries. What if you're running e.g. Alpine? Now you need 4. Which init system do you provide startup scripts for? You need an install script too. And what if you just want to try it on your Windows/Mac computer? Need to manually set up a VM.
Meanwhile, you can just install Docker, which you might already have if you do self-hosting often, and run one command. The overhead of containers is tiny, so you really won't notice it. Bonus points for using Podman, which doesn't even have a daemon.
Whenever I see a docker compose based install, it's clear that the installation wasn't thought through very well. Inevitably, these installs are more complicated and less reliable than a finished product.
They already know people who are trying to access signal without a proxy, so I don't think this would make a significant difference. Also note that from the Signal Blog post above:
----
The Signal client establishes a normal TLS connection with the proxy, and the proxy simply forwards any bytes it receives to the actual Signal service. Any non-Signal traffic is blocked. Additionally, the Signal client still negotiates its standard TLS connection with the Signal endpoints through the tunnel.
This means that in addition to the end-to-end encryption that protects everything in Signal, all traffic remains opaque to the proxy operator.
It doesn't seem to be the same situation with tor exit nodes, where your node is automatically on the system. Here, it looks like people have to actively use your proxy; it tells people who run a proxy to share a URL with their friends.
And that brings the difficulty of letting your proxy be known to legitimate interested people if your iranian social presence is non-existent. I ran a Tor node (not an exit one) in Germany back in the days (it was to help iranian people).
A regime that has survived 40 years facing constant adversary and the majority of time under sanctions should be competent enough at internal security.
And the people that are protesting and hurting right now are not the most tech savvy one - so expect a lot of naivete about opsec. I doubt that the majority of them even know signal exists.
Does starting the proxy automatically add it to some proxy list that gets (partially) distributed to users or does running a proxy like this only help if I distribute the proxy to people?
Would some network analysis then not clearly indicate the social graph of people by virtue of connecting the dots of who connects to which proxy domain?
Why didn't this come out when China blocked Signal? And what is Signal doing about China blocking Signal's phone verification system? Can't talk to my parents-in-law in China now without installing that spyware WeChat.
I mean, unfair to put expectations on Signal to solve problems (especially right away). It could be that the solution didn't occur to someone until recently.
They've had years to get rid of of needing a phone number and they've talked about it for years. It's arguably a bigger issue for many that internet blocking, as that can be trivially worked around with a VPN or proxy.
Signal seems to have had the proxy for a while. I'm guessing that China blocked them, they started developing this, released it, Iran blocked them, they signal boost this feature off the back of the second blockage.
I wonder why they use nginx, and not Caddy or similar. Some service, which would handle all the certificate stuff natively, without having to deal with an extra script for certificates and without having to ensure that certbot runs from time to time.
Trying to understand the rationale here. So Iran are blocking WhatsApp and other messaging services by blacklisting IPs or filtering the traffic? Is the idea that people will connect to random proxy nodes for signal that will circumvent this blocking?
Edit: as a follow up question. Do the people of Iran need messaging access to people outside of Iran or more likely their friends and family within Iran. Most of these messaging services are centralised so blocking them means cutting off communication within the country as well. Maybe they'd benefit from running private messaging servers themselves?
I think that just sort of says, hey share this signal.tube link or use a hashtag on a public channel like Twitter. When they say DM or use a private channel to distribute it my question is, what are those channels? What if those are also blocked?
> Section 560.540 of the Iranian Transactions and Sanctions Regulations (ITSR), 31 C.F.R. Part 560, authorizes the exportation from the United States or by U.S. persons, wherever located, to persons in Iran of certain publicly available, no-cost services incident to the exchange of personal communications over the Internet and certain publicly available, no-cost software necessary to enable such services.
Usually legal jurisdiction goes with geography. There are Exceptions (crimes against humanity, sex tourism things). If you host it outside Iran and you are outside Iran, then it’s just a theoretical crime?
extra territorial example: it may be a crime to do things/speak ill of a foreign government. If you lived there you’d get arrested. What if you did this while sitting in your bedroom overseas?
This doesn't seem accurate. US Citizens/Residents/People who travel into the US who do many types of business with Iran can get into legal trouble. The person you are responding to is asking if that would apply here.
Ah in that situation, your trouble would be with the Iranian government when you travel back to Iran? Of course countries can generally pass laws that do anything (they can execute people no?). In western legal tradition extra territoriality is reserved for special situations. In places like Iran where the rule of law is weak it does not apply.
But then in that sense Iran can do whatever it wants once they get their hands on you, laws or not
Sadly, that's not how American sanctions, or law in general work. They claim extraterritorial jurisdiction over the whole world, and whoever and wherever you are, you might get in trouble with them for violating their sanctions or laws. FFS they give themselves the right to invade any country that dares put their war criminals on trial.
E.g. BNP Paribas, a French bank, were fined for doing business in Iran. A Ukrainian was extradited from Poland to the US for hosting a pirate website.
Exportation of software or services to facilitate personal communications of Iranian citizens is allowed under a general license as long as it is provided at no cost. General license means it does not need to be applied for.
As a slight aside one would think that running a proxy you'd want to install Docker so you're getting the latest bits. Considering compose is now a plugin and base repos are often way behind on Docker versions I always point people to leverage the convenience script that Docker provides [0].
Could you detail how? Slack/iOS didn't accept my `https://signal.tube/#{redacted}` address in the Proxy Address field. Do I just enter my server's IP address?
I know Android is much more popular in Iran, but I wanted to give my friends instructions for both platforms, just in case.
Oh, lol, you just enter your domain name as the proxy address. Neat! (Or you just click that URL and it bounces you into the Signal app. I assume the only different between the iOS and Android versions here is that the Android version can capture that request before it goes to the browser, which is probably more secure from a government/firewall perspective.)
just a guess, but maybe it has something to do with the fact that the link is never actually handled externally? as in, the signal.tube domain is never resolved, it may as well just be a string
used https://freedns.afraid.org/ to create a dns record and then followed the signal guide on rocky linux 8 with podman and podman-compose (requires some tuning).
If people in Iran could find themselves in trouble for using Signal I'd strongly advise they avoid it and look for some other solution.
Ever since Signal started collecting and permanently storing sensitive user data in the cloud (your name, photo, number, a list of everyone you contact using Signal) it's become much more dangerous for people who want to protect themselves and the people they are in contact with. Because Signal insists on keeping your contacts in the cloud it's possible in some cases for someone to collect a list of your contacts simply by brute forcing a 4 digit pin.
It would be horrible to end up in trouble or see your friends and family hurt because Signal wasn't forthcoming about the fact that they were collecting your info and keeping it on their servers.
> Ever since Signal started collecting and permanently storing sensitive user data in the cloud (your name, photo, number, a list of everyone you contact using Signal)
None of this FUD is true. None of the information you listed is collected or stored by Signal. You can verify this yourself by looking at the various government warrants and subpoenas, and Signal's responses: https://signal.org/bigbrother/
> None of the information you listed is collected or stored by Signal.
That's a lie. I don't blame you for not knowing the truth though, Signal has gone to some trouble to make things unclear, but reality is reality.
Signal has the data, but they've set up their system in a way that would require either an exploit (we've already seen examples of these) or a brute force attack to get the data requested and it's doubtful that a standard subpoena would compel them to use those methods. That said, it does leave the data vulnerable to the NSA or any other three letter agency who is willing to employ those types of methods. Signal would surely not be posting about any national security letters they were handed on their website.
Similarly anyone who can guess or brute force a four digit pin could also get the data of some users. I've posted other links with more information on all of this further down, you can check my recent comments for them, but here's this to get you started.
Problem solved as long as you're threat model doesn't include three letter agencies within in the US and you don't mind that a company you're supposed to trust. and which promotes themselves to people whose freedom and or lives are on the line, isn't honest with their users about the risks of using their service.
The very first line of their privacy policy reads: "Signal is designed to never collect or store any sensitive information." which is demonstrable false. They've ignored requests to update it. (https://community.signalusers.org/t/can-signal-please-update...) I don't think you need to be "paranoid" to suspect it's probably better not to use their software when your privacy/security is critical to safety of yourself or your loved ones.
>Ever since Signal started collecting and permanently storing sensitive user data in the cloud (your name, photo, number, a list of everyone you contact using Signal.
It was a long time ago. If you're a signal user and you're only hearing about this now, that should tell you all you need to know about how trustworthy the service is.
There were a lot of users upset about it at the time (myself included), but their protests went largely ignored. Tellingly, they've refused to update their privacy policy to reflect their new data collection practices. Personally, I take that as a huge dead canary.
In Signal, Contacts’ multiple phone numbers are strictly computed each into its hashed value before only hashes of contacts being store on Signal. You can always turn that off via “Settings->Chat->Share Contact with iOS/Android” option (and it is recommended but it puts the onus of adding contacts on you, which is fine for OpSec mode). Failure to turn that off and you also get that “surprise” User just joined Signal message.
Metadata of you being stored on Signal server can be just a single user ID and heavily-ratchet encrypted before sent over network. But you would have to clear/omit your primary self contact info at OS level also.
Avatar Photo of you is problematic. Easiest not to use it in the first place. Turn off “Settings->Chat->Use System Contact Photos” option as well.
once settings are done, relevancy of PIN is reduced to (rubber-hose) OpSec and remaining forensic footprint (outside of User ID) to just within your Phone and others’ phone (and not the server, much less over network).
Turn everything off under “Settings->Privacy->Advanced” except “Circumvention” and only this one under extreme Internet duress.
What is painfully clear is while the cleartext content of your message is never stored on Signal server in any form at most states and never has your key to these content (a good thing), the association with other User ID remains forensically extractable, which is why burner phones are most helpful there there. This is where “timer” for deleting message can protect you even further (less the phone falls into the hand of an adversary within that period before timed message deletion).
If you do not mind the obtuse associativity with others, this app is excellent in keeping the actual content of your conservation off of and away from servers, network, and nation-states outside of said phones involved. Which is just fine for me and my family and close friends.
If you are striving for absolute anonymous in the area of association with others, I weakly recommended Telegram but the message is plain as day and can be read by nation-state simply because Telegram holds the encryption keys of yours.
> Contacts are strictly computed into a hashed value before only hashes of contacts being store on Signal.
Wait, are you saying only a hash is ever sent to signal's servers and stored there? How then are you able to install signal on a totally new device and have your contacts downloaded to it? You seem to think this is about contact discovery, but the data collection was about contact recovery. I've got links in other comments that describe this usage.
Data is uploaded as soon as you set a pin or opt out of setting one. If you do disable "everything" under “Settings->Privacy->Advanced” is all of the data that has been uploaded to the cloud then deleted?
And setting PIN? It’s kept within the phone’s secured memory (but NOT stored properly in the secured memory of desktops’ three main OSes).
PIN is Not easy to extract in phone OSes, digital forensically or not, except perhaps with a rubber hose.
Sure, PIN may not delayed at bad guesses. But PIN is only there to prevent casual borrower from changing Signal preference or prevent some form of evil-maid tactic.
Signal PIN is not designed nor intended to be a prevention mean during interrogation but to keep those settings in maximum privacy mode. This PIN is an excellent complement to OpSec array of protections while using Signal app.
It asked up front if you want Signal to access contact at install time.
If you say yea, then only a hashed value of each phone number found in each contact is sent. Nothing else from each and all of your contacts in your contact address book.
If you say no, then nothing of contact address book is looked at.
In a new phone, typically contact address book is empty.
If backup is restored at new phone, then it becomes important to ensure that you say no at Signal install time when prompted and asked for permission to access your contact address book.
Okay, so you're saying that if I install signal and don't give it access to my contacts (at the OS level) then when I manually add contacts in Signal itself, those never get uploaded to SVR or to storage service as anything other than a hash and those contacts can no longer be recovered in Signal using SVR?
Correction. ONLY the contacts WITHIN Signal contact address book is used.
Signal contact address book is wholly kept separate from your phone OS contact address book, even when you say yes to permission to share the OS contact address book.
If you say no to the sharing of contact, then ONLY those contacts created WITHIN Signal’s own contact address book would have each Signal contact’s phone number as numerically big-hashed (within your own phone), then only those hash value of your limited Signal contact address book would be (naturally) sent to Signal server.
This is why I said “if you don’t mind the obtuse associativity”. And that is OK for most OpSec.
What is most important here is whatever you typed, only that other contact’s phone would be able to see this, no place else. That is, until the adversary gets their hand on one of the phone before its timed message deletion period.
As to the SVR and a defined PIN that activates this, this is really an “ultra-bleeding-edge super nation-state” issue. Not many can crack the SVR (outside a few professors of cybersecurity).
In the short term, preserving association seems paramount over the longer-term required to crack SVR … regularly.
I’m using PIN (and thusly SVR) because most of my contacts within Signal contact address book are named with family nicknames). So, SVR is filled with avatar, phone, last access, creation time, and its computed hash UserID values is that weak point but SVR is not that weak enough to prevent its practical usage for near-perfect message content anonymity. That’s why I ask family members not to bother with avatar and keeping real name off of OS primary user contact info.
If you are pushing the envelope of OpSec, then disabling PIN is fine too.
It doesn’t matter as long as the phone is not in the hand of adversary but steps above will make it harder, forensically.
If I were in Iran, disabling the pin seems like the best bet. Doing that would still cause my data to uploaded to storage service, but the only people who could access it at that point would be Signal employees or some three letter agency in the US. Same with any data you allow to be uploaded via private contact discovery.
It seems like the real problem for someone in Iran would be SVR since if you were suspected of breaking the law they could brute force your pin and get a list of your contacts then go after them. Well, I'd also consider it a problem that signal will promote itself to people whose freedom/lives are at risk without being upfront and very clear about the risks.
The very first line of their privacy policy is "Signal is designed to never collect or store any sensitive information." which is a lie, and the details surrounding this change to start collecting user sensitive data in the cloud was communicated so poorly that to this day many (most?) users are entirely unaware it's taking place, or uncertain about how it works. See for example: https://old.reddit.com/r/signal/comments/htmzrr/psa_disablin... and the OP in that thread. I can't imagine a larger red flag.
That's why I suspect that signal is telling its users as loudly as they can the service is compromised. although I do wish they'd stop promoting the app to highly vulnerable people who are at real risk if their contacts are discovered.
That’s some lazy FUD. But even if that were true and the contacts weren’t encrypted and PIN entry not rate limited: What do you propose as an alternative?
It's true. I've provided some relevant links elsewhere in this discussion.
As for alternatives, I really don't know enough about the situation in Iran to say what would be safe. After they stated collecting data I personally switched to Jami for secure communications, but I'm not a whistleblower or a journalist or a freedom fighter or anything and to be honest, I haven't found anything as polished as Signal that handles both secure messaging and plain old SMS/MMS. I was a fan. It's been years and I'm still hugely disappointed.
I know this tiresome argument comes up every time Signal is mentioned, but there's an elephant there that seems relevant.
An totalitarian state would not need to run a packet inspecting firewall to find out who is using Signal. They have this information already in the plaintext SMS Signal broadcasts in order to collect verified phone numbers of their users. It is most likely in their power to turn off cell service for these endpoints, or even locate them and let the security service round them up.
It's a great service in many ways, but if you are revolting an authoritarian state, it's something to be careful of. At the very least, please be mindful of this and take care of yourself.
Signal has 100 million installs on Android alone. Arresting people for having Signal installed is not a scalable approach for a totalitarian state.
Not in Iran. Not during demonstrations. Not in Kurdish-dominated areas. You can narrow it down as much as you'd like.
And while you'd think that senseless violence against civilians do not scale, times of civil protests in totalitarian regimes is not good time to be naive.
Shutting down routing for the entire country is pretty much par for the course. There's not such thing as collateral damage when the regime itself gets scared.
Not in places like Cuba, where I know first hand, people who participated in the protest in July 11th where charged based on the apps the police and G2(Cuban FSB) found in their phones.
> Arresting people for having Signal installed is not a scalable approach for a totalitarian state.
Not all of those are in the same country, though, and it’s worth thinking about how the install base would change after a particular country banned an app. The first time someone gets an official warning a lot of people are going to say “not worth it”.
No, but banning them from the cell network is.
Then you can go off network... https://berty.tech
Messaging over… Bluetooth?
I find your focus on totalitarian left peculiar. It's not like they were somehow unique - plenty of totalitarian regimes of all kinds have arrested and executed countless people for whatever.
A few random examples:
* Ottoman genocide of Armenians, on ethnic/religious grounds. The Ottoman Three Pashas regime was as far from left as possible, but plenty totalitarian.
* US internment of "foreign elements", including those with US citizenship, during both World Wars. US was never even center-left, let alone farther, and totalitarian is a stretch. Less bad than the other examples here, but still.
* The many White and Red terrors in the Interwar and post-WW2 years, where vague association was guilt and execution.
* Of course Jews, Roma, Gypsy, dissident in Nazi concentration camps.
* The Herero and Namaqua genocide by the rightist totalitarian-ish Imperial Germany.
* UK mass internment of Boers. Not leftist, not really totalitarian.
Need i go on? Why did you feel the need to pain totalitarian leftist as worse than any other totalitarians?
Your attempt to invalidate a statement with a another set of information is not useful. During the 1900s the left killed people on a scale never seen before in human history. I suppose I do question the psychological need you have to run defense for the left...
> Your attempt to invalidate a statement with a another set of information is not useful
Unless that information makes the statement seem extremely biased, which it does?
> During the 1900s the left killed people on a scale never seen before in human history
And during the 1900s totalitarian rightist killed people on a scale never before seen in human history. Industrial murder factories, with brutal precision, murdering thousands per day by the trainload, with an assembly line of transportation, robbing, murder through poison gas, cremation? Never has humanity sunken so low. Brutal ad-hoc genocides of people murdering another group with their hands due to hatred or misinformation or whatever is more understandable and explainable than cold blooded mechanised precision mass murder on an industrial scale.
Famines due to ethnic cleansing, stupidity, mismanagement and ignorance are aplenty. The Bengali famine is comparable to the Holodomor in scale and reasons, even if the Holodomor was probably more intentional. Nobody has done what the Nazis did at that scale.
So yes, it's extremely stupid to single out totalitarian leftist regimes for their crimes against humanity, as if it's a uniquely leftist thing. It's obvious the people doing that have an anti-left agenda, which is honestly just being stupid.
The USSR, China, Cambodia, Vietnam... it looks like you're mistaking scale with events of lesser time frames and "singular" locations (i.e. Auschwitz, Treblinka, and so on under the Nazis).
I wonder why you feel that it is necessary to attempt to be insulting?
The common factor in mass state murder is militant Facism. There's no right or left, there's a willingness to commit mass-murder and a violent takeover of the state. It's incontrovertible that democide was one of the worst forces of the 20th century, but bizarre and dangerous to associate it with some one-dimensional "left/right" projection of 21st century identity politics.
Pol Pot, Mao, Hitler - these are figureheads that became objects of popular worship. If Monarchies were a thing, they would have been monarchs. If Theocracies were a thing, they would have been theocrats. If corporations were a thing, they would have been admirable profiteers.
Violent self-righteousness is just that.
I had guessed you were going to drop the ‘Nazis were socialist’ line, and there it is! The ‘National Socialist German Worker’s Party’ were about as socialist as the Democratic People’s Republic of Korea is democratic (that is, not at all…)
"the left"? You have to be joking! Even US cold war-era anti-communist propaganda wasn't lying this blatantly. Mass incarceration, execution, etc. are a "skill" of all totalitarian regimes, no matter what social/economic policy they happen to support. The church in the middle ages, kings in the era of absolutism, the Axis powers during WWII, regimes of warlords past and present, the various religious states that are doing the bulk of it today... all of these regimes censored, imprisoned and executed their opponents and few could be considered "left".
> throughout the 1900s
You chose to ignore that, blathering on about the middle ages is off-topic.
The original comment was entirely arbitrarily limited to the 1900s, and as it brought "the left" into the discussion unprompted, I can only assume this was done intentionally to justify specifically going after left regimes. So firstly, I don't see why a counter-argument should stick to this arbitrary time frame, and secondly, some of my examples do in fact apply to this time frame too.
Like I said to the other chap, I do question the psychological need you have to run defense for the left...
> They have this information already in the plaintext SMS Signal broadcasts in order to collect verified phone numbers of their users.
This assumes one is using the phone number attached to the handset running Signal as their Signal number. Personally, I don't do this: I have used Google Voice and even a basic Twilio number that sends SMS messages to me via Email to register a number with Signal. There are many reasons to do it this way, not least of which is that I can publish my Signal number without needing to worry about people direct-calling my phone. Until Signal drops the requirement for a phone number (verified by SMS) to spin up service, this is the most secure way to use Signal.
I'm fairly confident that about 99+% of people that actually do anti-government shit have ever had the opportunity to use Google Voice or set up a Twilio number. (And one of the reasons for that is that these are mostly US & friends only services.)
Governments can easily correlate GV numbers to mobile devices. I personally no longer trust Signal. Moxie's departure stinks like a canary.
"Governments can easily correlate GV numbers to mobile devices."
Google Voice doesn't need to be installed on a mobile device. I have my Google Voice accounts (yes, multiple) set to forward SMS to me via email.
"I personally no longer trust Signal. Moxie's departure stinks like a canary."
I never really trusted Moxie to begin with but events like this make me wonder all the more if Signal is really being run from Fort Meade. Fortunately for me I used Signal as my "non-secure" messaging platform and use other messenger options for secure comms.
> ...events like this make me wonder all the more if Signal is really being run from Fort Meade.
Which events are you referring to here?
"Moxie" just seemed so hilariously stereotypical in the first place I could not help but think it was all BS. The name, his style, his online blogs.....maybe he just wants to craft a certain type of image but it seemed a little too perfectly matched to the type of person who would create a free, easy to use and super secure messenger.
Personally I really liked Wickr Messenger (no phone number required) but they were recently acquired by AWS :-(
edit: Also looking up Wickr now it seems like they ended up specializing in providing secure messaging FOR the government (and even are the only ones to pass some NSA specific test) so maybe that was not the best choice.....
Use a truly disposable service like https://yoursecretnumber.com instead of Google Voice. This gives you a number with an OCN type of Wireless as well, instead of one that shows up as IPES (IP enabled Service Provider) or CLEC like Bandwidth.com and nearly all VoIP numbers.
The state probably knows who signed up to use Signal, Whatsapp, Viber or some other service back when it was legal to do so. So what?
Signal have been promising vaguely to move away from using phone numbers for... A really long time now.
That's what a security model is for, the best you can do is difficult security/privacy not absolute or perfect.
I don't get this "totalitarian state" b.s., subverting legitimate government's policies seems silly and dangerous. If I was a dictator or something I would have people's phone's searched randomly by street cops, if they see signal then you are a subverter and a traitor so off with your head. I can't imagine security against that.
Security and privacy against nation state actors are one thing but against your nation state actor is a whole different ball game.
Security against random searches is easy. There are plenty of ways to hide an app behind something innocuous, e.g. requiring a particular input sequence known only to the user to open the app.
Plausible deniability is what you mean. It is until it isn't (if it is scanned by something "smart" or purpose made).
Ya, that's right, but there are cryptographically secure forms of plausible deniability, commonly known as "deniable encryption": https://en.wikipedia.org/wiki/Deniable_encryption
Why do I need Docker for such a simple task? From their blog:
> The proxy is extremely lightweight. An inexpensive and tiny VPS can easily handle hundreds of concurrent users. Here’s how to make it work:
I'm sorry but installing Docker on a tiny VPS last time I checked wasn't any light at all.It's a simple way of running something quickly and without touching the rest of your system (if you already have Docker installed)
Anyway, the proxy is just an nginx with a custom config file. You can check that file and just add it yourself to an nginx you manage, probably with little changes.
https://github.com/signalapp/Signal-TLS-Proxy/blob/main/data...
It's a bit odd to use a custom docker image, rather than the one maintained by nginx Inc though:
https://github.com/signalapp/Signal-TLS-Proxy/blob/main/ngin...
Vs
https://github.com/nginxinc/docker-nginx
For one, this is 5 versions behind (1.18 vs 1.23).
In general seems caddy or haproxy might be a better fit - but nginx is a perfectly fine choice I suppose.
> It's a simple way of running something quickly and without touching the rest of your system
Providing a statically linked binary is even simpler, without all that extra complexity that comes with docker.
This project wraps existing software (e.g. nginx) to function. It's not as simple as providing a binary.
I'm also confused about the Docker hate here. The daemon itself is lightweight and the Docker-ized process(es), once running, have negligible overhead compared to running them natively.
I didn't look at the image size but you might be paying a ~100 MB storage penalty to bundle dependencies.
For my fedora people,I just want to remind them that whenever anyone says docker, you can safely use podman (or at least that is the goal).
It won't be rootless in this case as far as I know because you will need privileged ports 80 and 443 but good habit in general.
You can allow unprivileged apps to use privileged ports, its just a simple sysctl edit.
It's actually more than negligible, docker containerization tends to impose limits, tracking, and network overhead on processes, which all have some overhead and penalty on performance.
On beefcake supreme machines it's just usually not significant enough to worry about, because the perceived benefits outweigh the downsides.
Docker images are just tarballs no? There’s almost no overhead at runtime. Of course you could fork it
There is some performance overhead from the configuration Docker uses for the containers, as well as some of the historical behaviour (not sure if they still apply)
- if you use docker nat, it about doubles connection time, if you only have extremely short connections this can be quite visible.
- If you need FS access, this can come at a high cost depending on your usage pattern, docker’s layered FS is not cheap.
- Finally Docker enables features which don’t come for free and which you may not be enabling separately e.g. seccomp (this can result in a 15+% performance hit in the worst case)
I've put Docker onto small VPSes. It's no hassle. The heavy part is Nginx. Adding the container on top won't be making much difference to the size.
pretty sure you can run docker on a $5 vps with plenty of headroom left
could it be done leaner? sure
is it worth it if it raises the barrier of entry of getting people to run the proxy? doubtful
A single statically linked binary would not raise the barrier of entry. Quite the opposite.
What if you're running on an ARM VPS? Now there are 2 binaries. What if you're running e.g. Alpine? Now you need 4. Which init system do you provide startup scripts for? You need an install script too. And what if you just want to try it on your Windows/Mac computer? Need to manually set up a VM.
Meanwhile, you can just install Docker, which you might already have if you do self-hosting often, and run one command. The overhead of containers is tiny, so you really won't notice it. Bonus points for using Podman, which doesn't even have a daemon.
But you also need to provide a systemd service for it. And statically linked against glibc or musl?
you need to provide a systemd service for a docker image as well, the restrt policies leave a lot to be desired for a host that itself can restart.
glibc doesn't support static linking, so it's probably going to be musl. Running a musl binary on an otherwise glibc system isn't an issue.
> Why do I need Docker for such a simple task?
Containers are more consistent and have less side effects than packages.
> I'm sorry but installing Docker on a tiny VPS last time I checked wasn't any light at all.
There's very little overhead and it takes a one liner[1] to install it.
[1]: curl -sSL https://get.docker.com/ | sh
Whenever I see a docker compose based install, it's clear that the installation wasn't thought through very well. Inevitably, these installs are more complicated and less reliable than a finished product.
Do you have any data to back up your claim about the overhead of using Docker?
just installed it in lxc without docker... works like a charm.
time > compute resources. Docker up/compose and on with your day.
stood up a Signal proxy on a VM with the following specs:
- Single core 1GHz CPU - 640 MB RAM - 10 GB storage ( default size )
I'd say docker is pretty light.
Context https://signal.org/blog/run-a-proxy/
Thank you! This would be a much better link than the github repo.
There are so many project READMEs out there that never bother to explain what the code is or does, it's frustrating.
Couldn't it be a problem that Iran or someone else with connections to the regime run a proxy themselves to find people using Signal?
They already know people who are trying to access signal without a proxy, so I don't think this would make a significant difference. Also note that from the Signal Blog post above:
----
The Signal client establishes a normal TLS connection with the proxy, and the proxy simply forwards any bytes it receives to the actual Signal service. Any non-Signal traffic is blocked. Additionally, the Signal client still negotiates its standard TLS connection with the Signal endpoints through the tunnel.
This means that in addition to the end-to-end encryption that protects everything in Signal, all traffic remains opaque to the proxy operator.
----
It doesn't seem to be the same situation with tor exit nodes, where your node is automatically on the system. Here, it looks like people have to actively use your proxy; it tells people who run a proxy to share a URL with their friends.
Probably helpful context: [Help people in Iran reconnect to Signal – a request to our community] https://signal.org/blog/run-a-proxy/
And that brings the difficulty of letting your proxy be known to legitimate interested people if your iranian social presence is non-existent. I ran a Tor node (not an exit one) in Germany back in the days (it was to help iranian people).
Yes. It's always a cat and mouse game. Whether they are actually smart enough to think of it is a different question.
A regime that has survived 40 years facing constant adversary and the majority of time under sanctions should be competent enough at internal security.
And the people that are protesting and hurting right now are not the most tech savvy one - so expect a lot of naivete about opsec. I doubt that the majority of them even know signal exists.
Does starting the proxy automatically add it to some proxy list that gets (partially) distributed to users or does running a proxy like this only help if I distribute the proxy to people?
Would some network analysis then not clearly indicate the social graph of people by virtue of connecting the dots of who connects to which proxy domain?
You have to distribute it yourself, there's no automatic distribution on Signal's part.
Why didn't this come out when China blocked Signal? And what is Signal doing about China blocking Signal's phone verification system? Can't talk to my parents-in-law in China now without installing that spyware WeChat.
I mean, unfair to put expectations on Signal to solve problems (especially right away). It could be that the solution didn't occur to someone until recently.
They've had years to get rid of of needing a phone number and they've talked about it for years. It's arguably a bigger issue for many that internet blocking, as that can be trivially worked around with a VPN or proxy.
Signal seems to have had the proxy for a while. I'm guessing that China blocked them, they started developing this, released it, Iran blocked them, they signal boost this feature off the back of the second blockage.
I wonder why they use nginx, and not Caddy or similar. Some service, which would handle all the certificate stuff natively, without having to deal with an extra script for certificates and without having to ensure that certbot runs from time to time.
Trying to understand the rationale here. So Iran are blocking WhatsApp and other messaging services by blacklisting IPs or filtering the traffic? Is the idea that people will connect to random proxy nodes for signal that will circumvent this blocking?
Edit: as a follow up question. Do the people of Iran need messaging access to people outside of Iran or more likely their friends and family within Iran. Most of these messaging services are centralised so blocking them means cutting off communication within the country as well. Maybe they'd benefit from running private messaging servers themselves?
Yup family or friends abroad can run the proxy. Its not straightforward for govt to find the proxies if their addresses are privately shared.
How do you tell them the proxy exists?
This is discussed in the blog post (which probably should have been linked instead of the git repo) https://signal.org/blog/run-a-proxy/
I think that just sort of says, hey share this signal.tube link or use a hashtag on a public channel like Twitter. When they say DM or use a private channel to distribute it my question is, what are those channels? What if those are also blocked?
maybe this is a moot question, but if there is an embargo on iran and you host a proxy like that, are you, as an american, not commiting a crime?
The way I understand it people need special licenses in order to operate in iran (meta) and therfore the probability of being sued is very high?
Some user on reddit claims that there is a carveout for proxies like these in the US: https://www.reddit.com/r/technology/comments/xlhe0k/comment/...
The Treasury source they cite (https://home.treasury.gov/news/press-releases/sm0322) seems to check out:
> Section 560.540 of the Iranian Transactions and Sanctions Regulations (ITSR), 31 C.F.R. Part 560, authorizes the exportation from the United States or by U.S. persons, wherever located, to persons in Iran of certain publicly available, no-cost services incident to the exchange of personal communications over the Internet and certain publicly available, no-cost software necessary to enable such services.
Usually legal jurisdiction goes with geography. There are Exceptions (crimes against humanity, sex tourism things). If you host it outside Iran and you are outside Iran, then it’s just a theoretical crime?
extra territorial example: it may be a crime to do things/speak ill of a foreign government. If you lived there you’d get arrested. What if you did this while sitting in your bedroom overseas?
This doesn't seem accurate. US Citizens/Residents/People who travel into the US who do many types of business with Iran can get into legal trouble. The person you are responding to is asking if that would apply here.
Ah in that situation, your trouble would be with the Iranian government when you travel back to Iran? Of course countries can generally pass laws that do anything (they can execute people no?). In western legal tradition extra territoriality is reserved for special situations. In places like Iran where the rule of law is weak it does not apply.
But then in that sense Iran can do whatever it wants once they get their hands on you, laws or not
They are saying American law prohibits it.
Sadly, that's not how American sanctions, or law in general work. They claim extraterritorial jurisdiction over the whole world, and whoever and wherever you are, you might get in trouble with them for violating their sanctions or laws. FFS they give themselves the right to invade any country that dares put their war criminals on trial.
E.g. BNP Paribas, a French bank, were fined for doing business in Iran. A Ukrainian was extradited from Poland to the US for hosting a pirate website.
Exportation of software or services to facilitate personal communications of Iranian citizens is allowed under a general license as long as it is provided at no cost. General license means it does not need to be applied for.
As a slight aside one would think that running a proxy you'd want to install Docker so you're getting the latest bits. Considering compose is now a plugin and base repos are often way behind on Docker versions I always point people to leverage the convenience script that Docker provides [0].
[0] https://get.docker.com
Is there a technical reason why this only works on Android and not iOS?
iOS is not widely available/popular in Iran so it shouldn't be a problem here: https://gs.statcounter.com/os-market-share/mobile/iran
It works on iOS, you just have to add the proxy manually via settings.
Could you detail how? Slack/iOS didn't accept my `https://signal.tube/#{redacted}` address in the Proxy Address field. Do I just enter my server's IP address?
I know Android is much more popular in Iran, but I wanted to give my friends instructions for both platforms, just in case.
Oh, lol, you just enter your domain name as the proxy address. Neat! (Or you just click that URL and it bounces you into the Signal app. I assume the only different between the iOS and Android versions here is that the Android version can capture that request before it goes to the browser, which is probably more secure from a government/firewall perspective.)
just a guess, but maybe it has something to do with the fact that the link is never actually handled externally? as in, the signal.tube domain is never resolved, it may as well just be a string
used https://freedns.afraid.org/ to create a dns record and then followed the signal guide on rocky linux 8 with podman and podman-compose (requires some tuning).
hope this might help someone: https://signal.tube/#testnotest.mooo.com
Can anyone here give quick example how would how this on a server already having Apache on port 80 and 443? Can this be proxies through Apache?
If people in Iran could find themselves in trouble for using Signal I'd strongly advise they avoid it and look for some other solution.
Ever since Signal started collecting and permanently storing sensitive user data in the cloud (your name, photo, number, a list of everyone you contact using Signal) it's become much more dangerous for people who want to protect themselves and the people they are in contact with. Because Signal insists on keeping your contacts in the cloud it's possible in some cases for someone to collect a list of your contacts simply by brute forcing a 4 digit pin.
It would be horrible to end up in trouble or see your friends and family hurt because Signal wasn't forthcoming about the fact that they were collecting your info and keeping it on their servers.
> Ever since Signal started collecting and permanently storing sensitive user data in the cloud (your name, photo, number, a list of everyone you contact using Signal)
None of this FUD is true. None of the information you listed is collected or stored by Signal. You can verify this yourself by looking at the various government warrants and subpoenas, and Signal's responses: https://signal.org/bigbrother/
> None of the information you listed is collected or stored by Signal.
That's a lie. I don't blame you for not knowing the truth though, Signal has gone to some trouble to make things unclear, but reality is reality.
Signal has the data, but they've set up their system in a way that would require either an exploit (we've already seen examples of these) or a brute force attack to get the data requested and it's doubtful that a standard subpoena would compel them to use those methods. That said, it does leave the data vulnerable to the NSA or any other three letter agency who is willing to employ those types of methods. Signal would surely not be posting about any national security letters they were handed on their website.
Similarly anyone who can guess or brute force a four digit pin could also get the data of some users. I've posted other links with more information on all of this further down, you can check my recent comments for them, but here's this to get you started.
https://www.vice.com/en/article/pkyzek/signal-new-pin-featur...
if you're paranoid don't use a 4 digit PIN. use a passphrase. problem solved
Problem solved as long as you're threat model doesn't include three letter agencies within in the US and you don't mind that a company you're supposed to trust. and which promotes themselves to people whose freedom and or lives are on the line, isn't honest with their users about the risks of using their service.
The very first line of their privacy policy reads: "Signal is designed to never collect or store any sensitive information." which is demonstrable false. They've ignored requests to update it. (https://community.signalusers.org/t/can-signal-please-update...) I don't think you need to be "paranoid" to suspect it's probably better not to use their software when your privacy/security is critical to safety of yourself or your loved ones.
>Ever since Signal started collecting and permanently storing sensitive user data in the cloud (your name, photo, number, a list of everyone you contact using Signal.
Since when?
It was a long time ago. If you're a signal user and you're only hearing about this now, that should tell you all you need to know about how trustworthy the service is.
There were a lot of users upset about it at the time (myself included), but their protests went largely ignored. Tellingly, they've refused to update their privacy policy to reflect their new data collection practices. Personally, I take that as a huge dead canary.
https://community.signalusers.org/t/proper-secure-value-secu...
https://community.signalusers.org/t/sgx-cacheout-sgaxe-attac...
https://community.signalusers.org/t/dont-want-pin-dont-want-...
Whoa!
In Signal, Contacts’ multiple phone numbers are strictly computed each into its hashed value before only hashes of contacts being store on Signal. You can always turn that off via “Settings->Chat->Share Contact with iOS/Android” option (and it is recommended but it puts the onus of adding contacts on you, which is fine for OpSec mode). Failure to turn that off and you also get that “surprise” User just joined Signal message.
Metadata of you being stored on Signal server can be just a single user ID and heavily-ratchet encrypted before sent over network. But you would have to clear/omit your primary self contact info at OS level also.
Avatar Photo of you is problematic. Easiest not to use it in the first place. Turn off “Settings->Chat->Use System Contact Photos” option as well.
once settings are done, relevancy of PIN is reduced to (rubber-hose) OpSec and remaining forensic footprint (outside of User ID) to just within your Phone and others’ phone (and not the server, much less over network).
Turn everything off under “Settings->Privacy->Advanced” except “Circumvention” and only this one under extreme Internet duress.
What is painfully clear is while the cleartext content of your message is never stored on Signal server in any form at most states and never has your key to these content (a good thing), the association with other User ID remains forensically extractable, which is why burner phones are most helpful there there. This is where “timer” for deleting message can protect you even further (less the phone falls into the hand of an adversary within that period before timed message deletion).
If you do not mind the obtuse associativity with others, this app is excellent in keeping the actual content of your conservation off of and away from servers, network, and nation-states outside of said phones involved. Which is just fine for me and my family and close friends.
If you are striving for absolute anonymous in the area of association with others, I weakly recommended Telegram but the message is plain as day and can be read by nation-state simply because Telegram holds the encryption keys of yours.
In short, you have only one choice:
- near-absolute anonymity of message content
- near-absolute anonymity of association
It remains a hard problem.
> Contacts are strictly computed into a hashed value before only hashes of contacts being store on Signal.
Wait, are you saying only a hash is ever sent to signal's servers and stored there? How then are you able to install signal on a totally new device and have your contacts downloaded to it? You seem to think this is about contact discovery, but the data collection was about contact recovery. I've got links in other comments that describe this usage.
Data is uploaded as soon as you set a pin or opt out of setting one. If you do disable "everything" under “Settings->Privacy->Advanced” is all of the data that has been uploaded to the cloud then deleted?
And setting PIN? It’s kept within the phone’s secured memory (but NOT stored properly in the secured memory of desktops’ three main OSes).
PIN is Not easy to extract in phone OSes, digital forensically or not, except perhaps with a rubber hose.
Sure, PIN may not delayed at bad guesses. But PIN is only there to prevent casual borrower from changing Signal preference or prevent some form of evil-maid tactic.
Signal PIN is not designed nor intended to be a prevention mean during interrogation but to keep those settings in maximum privacy mode. This PIN is an excellent complement to OpSec array of protections while using Signal app.
By the virtue of having OS-based contact.
Which is why you disable contact.
It asked up front if you want Signal to access contact at install time.
If you say yea, then only a hashed value of each phone number found in each contact is sent. Nothing else from each and all of your contacts in your contact address book.
If you say no, then nothing of contact address book is looked at.
In a new phone, typically contact address book is empty.
If backup is restored at new phone, then it becomes important to ensure that you say no at Signal install time when prompted and asked for permission to access your contact address book.
Okay, so you're saying that if I install signal and don't give it access to my contacts (at the OS level) then when I manually add contacts in Signal itself, those never get uploaded to SVR or to storage service as anything other than a hash and those contacts can no longer be recovered in Signal using SVR?
For example see:
https://community.signalusers.org/t/faq-signal-pin-svr-kbs-s...
https://community.signalusers.org/t/what-contact-info-does-t...
I haven't seen that documented anywhere. Do you have a source?
Correction. ONLY the contacts WITHIN Signal contact address book is used.
Signal contact address book is wholly kept separate from your phone OS contact address book, even when you say yes to permission to share the OS contact address book.
If you say no to the sharing of contact, then ONLY those contacts created WITHIN Signal’s own contact address book would have each Signal contact’s phone number as numerically big-hashed (within your own phone), then only those hash value of your limited Signal contact address book would be (naturally) sent to Signal server.
This is why I said “if you don’t mind the obtuse associativity”. And that is OK for most OpSec.
What is most important here is whatever you typed, only that other contact’s phone would be able to see this, no place else. That is, until the adversary gets their hand on one of the phone before its timed message deletion period.
This is all in the source code here
https://github.com/signalapp/Signal-Android
As to the SVR and a defined PIN that activates this, this is really an “ultra-bleeding-edge super nation-state” issue. Not many can crack the SVR (outside a few professors of cybersecurity).
In the short term, preserving association seems paramount over the longer-term required to crack SVR … regularly.
I’m using PIN (and thusly SVR) because most of my contacts within Signal contact address book are named with family nicknames). So, SVR is filled with avatar, phone, last access, creation time, and its computed hash UserID values is that weak point but SVR is not that weak enough to prevent its practical usage for near-perfect message content anonymity. That’s why I ask family members not to bother with avatar and keeping real name off of OS primary user contact info.
If you are pushing the envelope of OpSec, then disabling PIN is fine too.
It doesn’t matter as long as the phone is not in the hand of adversary but steps above will make it harder, forensically.
https://blog.cryptographyengineering.com/2020/07/10/a-few-th...
If I were in Iran, disabling the pin seems like the best bet. Doing that would still cause my data to uploaded to storage service, but the only people who could access it at that point would be Signal employees or some three letter agency in the US. Same with any data you allow to be uploaded via private contact discovery.
It seems like the real problem for someone in Iran would be SVR since if you were suspected of breaking the law they could brute force your pin and get a list of your contacts then go after them. Well, I'd also consider it a problem that signal will promote itself to people whose freedom/lives are at risk without being upfront and very clear about the risks.
The very first line of their privacy policy is "Signal is designed to never collect or store any sensitive information." which is a lie, and the details surrounding this change to start collecting user sensitive data in the cloud was communicated so poorly that to this day many (most?) users are entirely unaware it's taking place, or uncertain about how it works. See for example: https://old.reddit.com/r/signal/comments/htmzrr/psa_disablin... and the OP in that thread. I can't imagine a larger red flag. That's why I suspect that signal is telling its users as loudly as they can the service is compromised. although I do wish they'd stop promoting the app to highly vulnerable people who are at real risk if their contacts are discovered.
As to “Settings->Privacy->Advanced”, the un-intuitive part is disabling everything maximizes your privacy.
That’s some lazy FUD. But even if that were true and the contacts weren’t encrypted and PIN entry not rate limited: What do you propose as an alternative?
It's true. I've provided some relevant links elsewhere in this discussion.
As for alternatives, I really don't know enough about the situation in Iran to say what would be safe. After they stated collecting data I personally switched to Jami for secure communications, but I'm not a whistleblower or a journalist or a freedom fighter or anything and to be honest, I haven't found anything as polished as Signal that handles both secure messaging and plain old SMS/MMS. I was a fan. It's been years and I'm still hugely disappointed.