session-foundation / session-android

A private messenger for Android.
https://getsession.org
GNU General Public License v3.0
25 stars 1 forks source link

[BUG] Session is blocked in Russia #30

Open keybreak opened 3 months ago

keybreak commented 3 months ago

Code of conduct

Self-training on how to write a bug report

Is there an existing issue for this?

Current Behavior

I have a friend living in Russia, he's not very tech (GitHub) savvy, so i'd have to be a mediator for him.

Since yesterday both Android and Linux Session can not connect to network, path is always red and rotating. And, unfortunately, looks like it's censorship ministry of Russia started blocking Session, just like recently they did with Signal (btw it's censorship circumvention toggle seems to work against it), because when running through VPN / Orbot on Android he says it can connect.

That is a big problem, since Session / lokinet network suppose to circumvent censorship and bring freedom against this kind of tyranny.

We need some sort of working circumvention mechanism ASAP, i suggest looking into something like Tor's webtunnel, as it seems to work perfectly so far inside China, Russia and Iran against Tor blockade.

Expected Behavior

No response

Steps To Reproduce

No response

Android Version

No response

Session Version

1.19.1 (3795)

Anything else?

No response

keybreak commented 3 months ago

Here's Russian forum that specialises on censorship circumvention, hopefully their findings will help to debug it further: https://ntc.party/t/%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BC%D0%B5%D1%81%D1%81%D0%B5%D0%BD%D0%B4%D0%B6%D0%B5%D1%80%D0%B0-session/9223

Use some russian-english translator.

Blocked "by IP" (TCP/TLS connection hangs)

(c) @ValdikSS

qdhj commented 2 months ago

+1. Session is heavily blocked in russia and does not work without VPN (I am myself from Russia and it does not work for me, also I've heard that from like five friends). This should be a good-first-issue, because 1) it ruins the idea of session anti-censorship 2) it stops russians who really need the app right now from using it 3) people are massively deleting the app and moving to alternatives, and sometimes it means not even simplex, but some whatsapp bullshit

1e100 commented 2 months ago

Yeah, I recommended it to my friends in Russia after the founder of Telegram ended up in jail in France (with a soldering iron up his rectum, no doubt), and was surprised to discover that this "anti censorship" messenger is fully nuked from the orbit in Russia, probably using the same DPI filter as Signal.

keybreak commented 2 months ago

Yeah, I recommended it to my friends in Russia

Same, i did so long ago for anyone who was wise and willing to listen, because of war intensification, knowing full well it will be extremely hard for any free speech in there....was very disappointed to find out Session was so easily blocked by IP.

@KeeJef That should be priority number 1 right now, because otherwise Session reputation will fade very quickly...well it already does, and it's sad to see :frowning:

No amount of twitter / youtube PR / marketing would help to mitigate blockade of people's friends and relatives, you know. :rofl:

1e100 commented 2 months ago

Yeah for that matter after TikTok gets blocked here in the US it's only a matter of time before the government tries to ban everything it can't monitor and surveil. So while it's not an immediate need (for the US and other increasingly autocratic Western countries such as the UK, Australia, Germany and France), I think implementing extreme censorship resistance would be a worthwhile goal in the long run.

KeeJef commented 2 months ago

I'm aware of the blocking of Session that is ongoing in Russia and other countries. Session has plans to make make the app censorship-resistant out of the box moving forward to resolve these issues. It's a challenging problem to solve, especially when censorship occurs at the Service Node level, as Service Node IPs need to be advertised to Session clients for them to connect to the network and store or route messages. Censors can gather and block all Service Node IP addresses to prevent access to the network. This generally cant be resolved by adding DPI protections or changing the traffic signature of the application, as its the actual IPs of the network being blocked.

There are several approaches Session is considering to address this issue, including:

In saying this the current focus of the Session team is on the following issues:

  1. Reducing crashes.
  2. Fixing issues related to sending messages and attachments.
  3. Reducing ANRs (App Not Responding) and freezes.
  4. Overhauling closed groups implementation and unifying strings across platforms.

The Session team believes these areas require the most immediate attention. If existing, non censored users can't use the app in a functional way, Session will have trouble growing. Once these issues are resolved, the team can start focusing on expanding the reach of Session to users in more censored countries.

keybreak commented 2 months ago

Thx for finally acknowledging the problem, it's much appreciated :+1:

Client support for domain fronting and other censorship evasion techniques.

Sounds like a good long-term plan, Tor's webtunnel style.

P.S. I've though priorities would be something like:

  1. Session token
  2. Anti-censorship

But then again, who am i to judge...everything is important, all at once, maybe not groups as much though :joy:

qdhj commented 2 months ago

Probably one of the most effective & straightforward solution to the problem would be to add the ability to use a Tor-bridge on the first hop?

keybreak commented 2 months ago

Probably one of the most effective & straightforward solution to the problem would be to add the ability to use a Tor-bridge on the first hop?

Definitely not, because Tor is blocked in Russia too (without bridges)...so it would just add more complexity and another dependency that is complex enough.

It's best to do it all in-house, since lokinet is also onion-network anyway, Session should strengthen it directly.