-
-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve Bridge Selection #46
Comments
Yes. Here are some additional things I was thinking about, since I started to work on this already and compare it with what we currently have:
|
Here's a video walkthrough of the design for manual bridge options in Orbot. I've removed 'smart connect' from the list of options. However, the notes expressed above may not be considered. Also, please note — there is no concept of managing custom bridges in Orbot Android right now. Orbot-Manual.Bridge.Selection_Oct2022.mp4 |
Another question: What's with the built-in Obfs4 bridges? These aren't very helpful, when it comes to censorship circumvention of nation-state players, because they're mostly blocked in these counries. But when it comes to libraries and companies, which just do Deep-Packet-Inspection and block plain Tor traffic, they're pretty helpful, because they're high-bandwidth. |
Another error state: Hint: We could send them to the area of the Orbot app inside the Settings app, where users can change their opinion about if they want to grant camera access... |
Re CAPTCHA: These do not load instantly. Currently we show a modal spinner. User's can only go back, nothing else. All other elements are greyed out. Any changes? |
There's now also a Telegram bot: https://tb-manual.torproject.org/bridges/ |
I made a screencast from the simulator which shows, what I implemented until now. Note:
Work left for you, @cstiens:
Work left for me:
Simulator.Screen.Recording.-.iPhone.SE.@.iOS.15.5.-.2023-01-18.at.13.48.38.mp4 |
@tladesignz It's looking great! I will have a deeper review of the questions in this issue and the implementation and provide further feedback. |
I agree with this mentality and approach. I have a couple of things to note: We had removed email due to the understanding that entering a captcha to request the bridges would give you the same type of information. ie. If you're requesting a bridge from Tor, you will get the same bridge lines if you get them directly from the app via captcha or if you request them over email. @tladesignz Is that correct? I love the addition of Telegram! It is useful for people discovering the Telegram bot. Previously the thinking was that you would receive from Telegram, then copy/paste in. I like having this approach as well. 👍👍👍
Noted.
@tladesignz What do you mean here? Last question. What is Snowflake (AMP rendezvous)? |
They give you the same type of information. But not necessarily the same information. You probably get different Obfs4 bridges. Same with the Telegram bot. It's not about different information, though, but about different ways of reaching the user. The rdsys (formerly MOAT) interface ("Get bridges from Tor") is a HTTP API. It is secured via a technique called "domain fronting", meaning, if a censor wants to block access, they need to block access for a lot of other things at the same time. (That's why it's also termed "collateral freedom".) So, it becomes more and more viable to actually block all access. But when this happens, access via email may still be possible.
Sure, that's what you need to do: copy and paste. But people need to actually know about it. And then find it. I don't see a reason why we shouldn't help with that.
Maybe you want to change the order of things in the list? That's what I meant.
In Snowflake, the actual connections between you and the first Tor node are routed via a volunteer's computer. But to find a volunteer, there's a broker server. You need to talk to that one first, and the broker will find a volunteer for you. Again, domain fronting is used to tunnel through a censor's firewall. (See above.) But there's another option to reach the broker server: Google AMP cache. When the Fastly domain front (currently used) gets blocked, you might still be able to reach the Google AMP cache and use Snowflake this way. We might consider adding that to the list of things to try in smart connect, btw. We cannot tell Snowflake to automatically switch over on its own, however. The Snowflake client code needs to get restarted with a different configuration. It cannot use both at the same time. That's why we need to offer it for manual configuration. The very constrained users (and the folks who like to play a lot) should be able to try every means possible. And it's also good, when people distribute themselves. |
@tladesignz I took a pass at the order and copy. See below. After going through this, I so badly want to group things and nest options. But... in order to try to keep it simple and get this pushed, this works. The method for ordering is based on a combination of what's easy to get and most likely to work (ie. what are currently more resilient bridges). ... Acknowledging that that's a tough call to make and is likely to change. Direct Connection Snowflake (original) Snowflake (AMP) Bridge from Tor (obsf4) via Telegram Bridge from Tor (obsf4) after Capchta Built-in Bridge (obsf4) Bridge from Tor (obsf4) via email Custom Bridge |
Perhaps "Bridge from Tor (obsf4) after Capchta" should be "Request a new bridge from Tor" I think the word "Capchta" is strange to use for many reasons, and perhaps doesn't translate well? I also question putting in the email or telegram choices as separate options in the list here. In the "custom bridge" sectio, we could indicate that bridges can be requested via these methods, and provide some information on how to do that. |
Thanks for the feedback! Yeah. I had used captcha because I was trying to give an indication of 'how' you get these things. What it takes. ie. 'you have to send and email', you need to solve a captcha, etc. perhaps solving a captcha is trivial and doesn't need to be called out though.
Good feedback. This was the leaning I was having as well.. in regards to grouping items. |
Based on my understanding of bridges, I made a sketch on how I would make bridge recommendations if I were doing a basic Tor training for people from multiple regions. This is what I'd like to be able to communicate in the view where people are choosing their own bridge. If people don't have the technical background, it's helpful to give an indication of what's most likely to work (strong, stronger, strongest) and how easy it is to get them (colors). |
Two updates:
This solution can allow us to ditch the 2 button UI we had originally planned for return use. |
Woah? That's not what I understood. Why should we ditch the "Smart Connect"? That is a really good idea! |
We wouldn't ditch it. We would run it the first time. Then on return use, you would run it from this 'Choose How To Connect' view. ... But, I guess we don't get the full benefits by doing it in this view, huh? Like it would only tell you what Tor thinks. But it wouldn't try other methods afterward if the recommendation didn't work. Or maybe it could. We would essentially try the Tor recommendation. Then if that didn't work, prompt the user to ask if they want to app to run Smart Connect / connect whichever way possible. It seems we might loose the magic by requiring more steps and breaking the process up. We should discuss on a call. If we keep the Smart Connect option on the home screen for return use, here's another way we could do it. Screen.Recording.2023-03-03.at.12.23.02.PM.mov |
Yes, exactly. It's not the same thing.
That really sounds annoying for both the programmer and the user. It's complicated to implement and it also complicates things for the user. It actually hides the smart connect feature and then makes it more cumbersome to use.
Yeah, that's what I wanted to suggest, too. If you don't like 2 big buttons of the same size, then do a checkbox or different button sizes. |
Recapping from the scrum discussion..
Last, we keep the option to run Smart Connect in the home view on return use. We move away from the 2 button approach and use the checkbox instead. |
I would like to find a way to use smart connect without it being a big checkbox option on the main screen. Seems like maybe if the current option the user has selected fails, we can prompt them to "try another way?" and then smart conncect kicks in. I really like the "Ask Tor" option, and how you have implemented it on iOS @tladesignz - very clear and useful. |
We've discussed adding this in—the fall-back to smart connect if the current method doesn't work. I think the prompt to the user is really important in this case. This is not implemented on iOS yet. Because we need a design cycle first. From our discussions, having the smart connect very accessible (in one tap) remains important. Otherwise, we're costing the user time and friction to connect. They may not know if the current method will work, and want to run smart connect right away. @tladesignz anything else to add here from our conversations this week? |
One more thing to add, we will run usability tests on the Connect view and Choose How to Connect view in our workshops in Mexico. They will have people who are new to Tor and familiar with Tor. |
@cstiens and I discussed this at length. I don't see any other sensible way. Things to consider:
=> We need to help the users help themselves, and otherwise stay out of the way. Providing three obvious options
Seems like the most sensible thing for me to do in this case.
Thanks. We had that for a year or something. This is just @cstiens new UI. |
I like the new UI. |
My naive high-level goal with this Orbot re-design was to simpllify things, and somehow it feels like we haven't. |
I'd definitely say we improved things. I'd also say, we simplified things for users. Esp. the smart connect feature is a big step forward, and the reorganisation of transport options is, too, very much. However, true security is complicated and its complexities cannot be hidden away without degrading it. The way, Tor is architected, even less so. Don't kid yourself: If you now think "But Signal can!", think twice. They only achieve this simplicity, because they basically ignore authentication. But encryption without authentication only protects you 1/3 of the way. Anyway, simplification in itself is not a sensible goal: Only clever simplification can be. But if that's unachievable, stupid simplification (aka. just dropping options) is not a great replacement. |
@tladesignz We have screens for the full workflows of using customs bridges and getting a bridge from Tor. I think there are some additional considerations based on our recent conversations in #39. I'll review and provide a design update and the full UI.
The text was updated successfully, but these errors were encountered: