README.md 5.16 KB
Newer Older
Gaba's avatar
Gaba committed
1
# Tor's Hackweek
Gaba's avatar
Gaba committed
2

Gaba's avatar
Gaba committed
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
This repository is being used to document and coordinate current hackweek at Tor. Old hackweek's documentation will be archived in 'archived' folder in the same repository.

## Next Hackweek: March 29th to April 2nd - 2021

When: Monday March 29th to Friday April 2nd - starts each day at 1300UTC.
Where: irc & BBB links will be available for the projects

This hackweek aims to promote small projects that can be finished in 5 days. We will have a list of projects proposed by people from the Tor community. We will do a call for help for people to join each of those projects. Each group will meet during the week and work on its specific project. At the end of the week (on Friday) we will have a DEMO day where each group will present their work.

Each project will list this information:
 - Project/team name
 - Pad for the team (the pad will have all this info + BBB link)
 - Main point of contact for the project/team (timezone you are in)
 - Summary of the work you want to do
 - Skills you need (for example, someone who knows onionperf, designer, translator,
code in rust - things like this)

Gaba's avatar
Gaba committed
20
21
22
23
# LOUNGE space

This BBB room will be open through the week. We will have the welcome/opening session here on Monday as well as the demo day on Friday.

Gaba's avatar
Gaba committed
24
ROOM: https://tor.meet.coop/gab-nh2-ybd-hye
Gaba's avatar
Gaba committed
25
26
27
28
29
30
31
32
33
34
35
36
37
38

## Monday Opening Session

1. Logistics.
  . main link with information
  . information about lounge every day
  . information about demo day
2. Each group present their project.
3. Each group will go to their meeting place (BBB or irc or whatever else they may choose).
4. There will be a "lounge" space for people to drop in during the week in case there are questions or comments, etc.

## Friday DEMO Day

1. Each group demo their work.
Gaba's avatar
Gaba committed
39
40
41
42

# PROJECTS/GROUPS

1 Torify signal-cli with torsocks
Gaba's avatar
Gaba committed
43
- Pad: https://pad.riseup.net/p/2021-hackweek-signal-cli
Gaba's avatar
Gaba committed
44
45
46
47
48
49
- Contact: jnewsome and/or dgoulet
- Summary: Work through blocking bugs for getting signal-cli working with torsocks. Interesting because signal is being blocked in some locales (Iran).
- Skills: C. Maybe familiarity with libc, LD_PRELOAD


2 Prometheus alerts for anti-censorship metrics
Gaba's avatar
Gaba committed
50
- Pad: https://pad.riseup.net/p/2021-hackweek-prometheus-alerts
Gaba's avatar
Gaba committed
51
52
53
54
55
- Contact: cohosh (maybe anarcat?)
- Summary: We have BridgeDB exporting prometheus metrics so far, and we could implement this for Snowflake. It would be great if we could get alerts when usage changes to notify us of possible censorship events. Somewhat related, it would also be nice to get alerts when default bridge usage drops off suddenly or directly connecting Tor users from different regions.
- Skills: maybe Go (for changes to snowflake), maybe Python for other services, some sysadmin experience to figure out how to do the alerts, metrics pipeline experience.

3 Prototype network-namespace-based torsocks
Gaba's avatar
Gaba committed
56
- Pad: https://pad.riseup.net/p/2021-hackweek-network-namespace
Gaba's avatar
Gaba committed
57
58
59
60
61
- Contact: jnewsome and/or dgoulet
- Summary: Use network namespaces (or maybe something else?) to run target software in an environment where it can't talk to the real network; it can only talk to the tor socks port and/or some "shim" adapter. Might be able to remove or lessen dependence on LD_PRELOAD (which isn't available everywhere, can be "escaped", and can be a bit fragile). If we continued to use LD_PRELOAD could at least be used to prevent accidental connections to the real network.
- Skills: C, familiarity with network namespaces and/or LD_PRELOAD would be helpful. New code could potentially be written in Rust.

4 Add support for UDP sockets over onion services, possibly with enabling support for WebRTC in Tor Browser
Gaba's avatar
Gaba committed
62
- Pad: https://pad.riseup.net/p/2021-hackweek-udp
Gaba's avatar
Gaba committed
63
64
65
66
67
68
69
70
71
72
73
- Contact: sysrqb (UTC-5(-ish))
- Skills: C/C++, familiar with tor and/or Firefox and/or webrtc
- Goal: Present Hack Week results via Tor Browser on BBB
- Intermediate Tor steps:
  - Add support for relaying UDP datagrams
  - Add support for configuring UDP onion services
- Intermediate Tor Browser steps:
  - Enable WebRTC
  - ?

5 Visualize Tor metrics's data in ways that it can be useful for community
Gaba's avatar
Gaba committed
74
- Pad: https://pad.riseup.net/p/2021-hackweek-metrics-viz
Gaba's avatar
Gaba committed
75
76
77
78
79
- Contact: gus and gaba (UTC-3)
- Skills: data visualization
- Summary: The goal is to have a dashboard with Tor usage per country in a way that is easy to see big changes happening. Right now we need to select each country to see the Tor usage. It would be good to have a way to see all the countries and the onews where usage is increasing (via bridge and direct connection)

6 Prototype Rust+Arti-based HTTP frontend cache for directory authorities
Gaba's avatar
Gaba committed
80
- Pad: https://pad.riseup.net/p/2021-hackweek-arti
Gaba's avatar
Gaba committed
81
82
83
- Contact: nickm (UTC-5)
- Skills: Rust hacking experience helpful.
- Summary: Directory authorities are under a lot of unnecessary load from excessive download requests.  We have other projects in mind to reduce those requests, but one workaround is to add a frontend cache in front of one or more of the authorities' HTTP ports.  With this project we'll write a Rust server use Arti's download and validation code to fetch directory information from an authority, and expose that information via a set of HTTP requests.  With luck, our code will be reuseable in the future when relays or authorities are rewritten in Rust.