GSoC 2020: Snowflake Proxy on Mobile
This blog post is about the project I worked on and my experience with Tor under GSoC 2020. After spending a lot of time understanding organizational goals, writing a proposal that aligns with these goals, I eagerly awaited the result of GSoC’s application – a nerve-wracking experience. I’m sure every student who submitted a proposal can relate to this experience. Getting selected to work on the proposal was a fantastic feeling, and knowing that I was going to work for a big and exciting organization like Tor added to the thrill.
I am very fortunate to have worked with the Tor Project’s anti-censorship team this summer; I worked on Snowflake Proxy on Mobile. The Wiki gives an elaborate sketch about the project; The gist is that this project allows users to run a Snowflake proxy on Android, which helps users in censored countries access Tor. The project is not yet ready for release; some UI/UX work and testing remain to be done, and we hope to wrap up this work over the next few months. If anyone wants to try it out, the URLs point to the local testing environment (Snowbox) for development. It will work if you change the URL to the right broker; they can be changed using the app’s settings, eliminating the need to tweak the code.
The project is the proxy component of the Snowflake circumvention system. This pluggable transport has been under development by Tor for quite some time now. Snowflake’s idea is for volunteers to spin up short-lived proxies that Tor users use to circumvent censorship. There already is a large set of volunteer proxies, and this mobile version further adds to this blizzard of Snowflakes.
Feel free to provide feedback, report issues, and voice ideas using the project’s issues page.
My Experience with the Tor Project
Tor’s community is very welcoming; all the Tor core developers are down to earth, humble, and easy to approach for any technical difficulty. Any interested person can barge into their IRC channels and ask any question, and either the developers or the fellow folks in the community would answer our questions.
The anti-censorship team often hosts a reading group to discuss research papers. This is an excellent and exciting opportunity for a student to learn some great topics related to security, which I enjoyed a great deal. Additionally, the team schedules meetings every week, using an anti-censorship team pad that contains reading group schedules, meeting schedules, and updates. Other teams at Tor have similar pads. It’s good to see what all developers are working on, and if there is any chance I could get involved, I will find it there.
Whenever there is a possibility, I got involved in any other project developments at Tor, mainly anti-censorship projects. The developers answered all my queries. It can be tiresome to explain a project to a newbie. Still, they did, with elaborate mails, that would get me started in the development process.
I am certainly planning on sticking around to get involved in development whenever I can, and I will continue to work on the GSoC project. In my opinion, every student should be encouraged to work on open source projects by which they learn from the best developers with years of experience, and when one makes a merge request, the community will do a code review allowing the student to improve their code in the future. Additionally, it promotes open source work.
A huge thanks to Google for making this possible and for encouraging students and projects. My mentors Cecylia (cohosh) and Philipp (phw) were immensely helpful while working on the project and got me involved in other projects at Tor. Finally, thanks to the Tor Project and the Digital Impact Alliance (umbrella organization in GSoC) as a whole for choosing me and making this a significant milestone in my career.