A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | AF | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Q1 (August, Sept, Oct 2017) | Q2 (Nov, Dec 2017 - January 2018) | Q3 (Feb, March, April 2018) | Q4 (May, June, July 2018) | Q5 (August, Sept, Oct 2018) | Q6 (Nov, Dec 2018 - Jan 2019) | Q7 (Feb, March, April 2019) | Q7 (May, June, July 2019) | Q8 (August, Sept, Oct 2019) | Q9 (Nov, Dec 2019 ) | Post-Project | ||||||||||||||||||||||
2 | Month 1 - august | Month 2 - setp | Month 3 - oct | Month 4 -nov | Month 5 - dec | Month 6 | Month 7 | Month 8 | Month 9 | Month 10 | Month 11 | Month 12 | Month 13 | Month 14 | Month 15 | Month 16 | Month 17 | Month 18 | Month 19 | Month 20 | Month 21 | Month 22 | Month 23 | Month 24 | Month 25 | Month 26 | Month 27 | Month 28 | Month 29 | ||||
3 | Objective O1: Build a Tor Browser for Android to empower mobile users to safely, anonymously, and securely interact with Internet resources and services. | ||||||||||||||||||||||||||||||||
4 | Activity O1.1 Build a Tor Browser for Android with functionality, build processes, release schedules, security, censorship circumvention, and usability in parity with desktop Tor Browser.(Includes adding Tor Launcher and updating to latest FF ESR.) | Port Torbutton; research cross- compilation options Research state of Orfox. | Port Torbutton Start integrating Tor Browser for Android into build system | Review installation/user stats from Play Store. Review network connections/ country. Review Play Store usability feedback. | Port Torbutton finish build integration. | Fix reproducibility issues. | Review network connections/ country. Review Play Store usability feedback. Review installation/user stats from Play Store. | Get first alpha releases out and integrate feedback Check Google Play Store for app availability | Check Google Play Store for app availability Work on integrating feedback from users Further bundle refinement | Check Google Play Store for app availability. Review installation/user stats from Play Store. Confirm concurrent desktop/mobile releases. Review network connections/country. Review Play Store usability feedback. | Check Google Play Store for app availability Bug fixing | Check Google Play Store for app availability Bug fixing | Check Google Play Store for app availability. Confirm concurrent desktop/mobile releases. Review network connections/country. Review installation/user stats from Play Store. Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | |||||||||||
5 | Activity O1.2 Research and possibly develop Android-specific fingerprinting defenses for Tor Browser for Android. | Audit/prioritize mobile patch needs. | Review/ prioritize work tickets for mobile browser. | Test fingerprinting defenses. | Release patches | Release patches | Test fingerprinting defenses. | Release patches | Release patches | Test fingerprinting defenses. | Release patches | Release patches | Test fingerprinting defenses. | ||||||||||||||||||||
6 | Activity O1.3: Work with Mozilla to merge built defenses back into Firefox Mobile. | Upstream patches and help getting them integrated | Upstream patches and help getting them integrated | Review Moz. Bug Tracker for submission status. | Upstream patches and help getting them integrated | Upstream patches and help getting them integrated | Review Moz. Bug Tracker for submission status. | Upstream patches and help getting them integrated | Upstream patches and help getting them integrated | Review Moz. Bug Tracker for submission status. | Upstream patches and help getting them integrated | Upstream patches and help getting them integrated | Review Moz. Bug Tracker for submission status. | Review Moz. Bug Tracker for submission status. | Review Moz. Bug Tracker for submission status. | Review Moz. Bug Tracker for submission status. | Review Moz. Bug Tracker for submission status. | Review Moz. Bug Tracker for submission status. | Review Moz. Bug Tracker for submission status. | ||||||||||||||
7 | Objective O2: Specifically lower the barriers to secure, anonymous interactions for mobile users with limited bandwidth, slow networks, and low-power devices. | ||||||||||||||||||||||||||||||||
8 | Activity O2.1 Enable standalone use of Tor Browser for Android without separate Orbot installation. | Port Tor Launcher. | Port Tor Launcher. | Investigate Orbot functionality | Fix Orbot bugs that prevent integration | Port Tor Launcher and integrate Orbot | Bug fixing | Bug fixing | Test confirm integrated browser connection to Tor. | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | ||||||||||||||||||||
9 | O2.2 Improve usability of the Tor Browser for Android, relative to Orfox, including anti-censorship bridges. | Complete in-app terminology and language updates. | Reduce steps and increase progress visibility in Tor Network connections. | Bug fixing | Bug fixing | Add opt-in automation for bridge selection. | Bug fixing | Bug fixing | Bug fixing | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | |||||||||||||||||||||
10 | Activity O2.3 Improve software architecture to reduce app size, reduce processing overhead (related to speed and power consumption), and increase app stability on low-RAM devices. | All developers able to use OrFox begin doing so, for first-hand experience. Informal survey of app providers and users to confirm felt bottlenecks. Review Play Store usability feedback. | Instrument Tor to report wake/sleep, CPU requirements. Collate results; draft requirements; identify other needed instrumentation. | Instrument Tor to report new relevant metrics. Test network speed (downloads, Shadow). Identify resource/performance bottlenecks for mobile users. | Development: reduce resource/performance bottlenecks. | Development: reduce resource/performance bottlenecks. | Development: reduce resource/performance bottlenecks. Test network speed (downloads, Shadow). Review Play Store usability feedback. | Based on 6-month results, re-identify bottlenecks. Bugfixing and follow-ups as needed on earlier development. Continue to identify/reduce. | Development: reduce resource/performance bottlenecks. Bugfixing and follow-ups as needed on earlier development. | Development: reduce resource/performance bottlenecks. Software bugfix and follow-up, as needed. Test network speed (downloads, Shadow). Review Play Store usability feedback. | If any unexpected bottlenecks found in last round of testing, solve them. Bugfixing and follow-ups as needed on earlier development. | Development: Continue clean-up and testing. | Test network speed (downloads, Shadow). Review Play Store usability feedback. Continue clean-up and testing; identify areas for future work. | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | Review Play Store usability feedback. | |||||||||||
11 | Activity O2.4 Improve the Tor Network’s controller interface to allow mobile apps to better control bandwidth and battery use. | Contact application developers; informal survey; gather requirements | Collate results; draft requirements. | Complete first round of design proposals Stability/stress testing. | Development: create interface code; make it stable (not functional yet) | Development: improve, debug interface code. | Stability/stress testing. Finalize interface. | Contact application developers; promote use of interface. Development: improve actual control of bandwidth/CPU. | Development: improve actual control over bandwidth/cpu | Stability/stress testing. Development: improve actual control over bandwidth/cpu | Development: improve actual control over bandwidth/cpu | Bugfixing and follow-ups as needed on earlier development. | Stability/stress testing. Clean-up; testing; identify areas for future work. | Prep-outreach to app developers for feedback on error reporting | Prep-report based on feedback from app developers | Prep-outreach to app developers for feedback on error reporting | Prep-report based on feedback from app developers | Prep-outreach to app developers for feedback on error reporting | Prep-report based on feedback from app developers | Prep-outreach to app developers for feedback on error reporting | Prep-report based on feedback from app developers | Prep-outreach to app developers for feedback on error reporting | |||||||||||
12 | Activity O2.5 Enable better reporting of network and connection errors to apps that use Tor Network. | Contact application developers; informal survey; gather requirements | Collate results; draft requirements. | Complete first round of design proposals. Confirm network error reporting (per release). | Feedback from application developers; confirm acceptance | Development: create interface code; make it stable. | Confirm network error reporting (per release). Development: improve, debug interface code. | Finalize interface code. Begin porting management / error logic to new interface code Begin experimental application integration with new API. | Continue porting management / error logic to new interface code: reach usable minimum version. | Confirm network error reporting (per release). Testing, debugging. | Revisions as needed, based on experience with integration. Continued testing, debugging, integration. | Revisions as needed, based on experience with integration. Continued testing, debugging, integration. | Confirm network error reporting (per release). Clean-up; testing; identify areas for future work. | Prep-outreach to app developers for feedback on error reporting | Prep-report based on feedback from app developers | Prep-outreach to app developers for feedback on error reporting | Prep-report based on feedback from app developers | Prep-outreach to app developers for feedback on error reporting | Prep-report based on feedback from app developers | Prep-outreach to app developers for feedback on error reporting | Prep-report based on feedback from app developers | Prep-outreach to app developers for feedback on error reporting | |||||||||||
13 | Objective O3: Restructure sections of the Tor network codebase to enable developers to build censorship-resistant mobile apps that run on Tor. | ||||||||||||||||||||||||||||||||
14 | Activity 03.1: Redesign our module interactions and their documentation. | Begin writing documentation as described in June 2018 below. Write up design document explaining unknowns for Rust dependencies in Tor | Draft of planned modularization design: sketch the ideal set of modules that we'd like to have, and how they should interact. Build an object model of Tor as it SHOULD be, and of how it actually is. Both should be public and documented. | Finish "low-hanging-fruit" from original draft | Further improvements and simplifications, based on planned designs and developer feedback. | Further improvements and simplifications, based on planned designs and developer feedback. | Further improvements and simplifications, based on planned designs and developer feedback. | Further improvements and simplifications, based on planned designs and developer feedback. | Further improvements and simplifications, based on planned designs and developer feedback. | ||||||||||||||||||||||||
15 | Activity 03.2: Refactor modules, making them more resilient and segregated. | Identify factors that make some areas easier to modularize than others- i.e, test coverage, well-defined apis, isolated dependenices, etc.] Identify easiest areas ('low-hanging fruit') to improve modular separation Identify modules that should be optional. | Begin work on "low-hanging fruit" items from earlier drafts | Finish "low-hanging-fruit" from original draft | Directory authority functionality is optional at compile-time. Many relay-only modules are optional. | All relay-only modules are optional. Initial support for in-process pluggable transports, if desired. | Further module refcactoring; more modules optional, based on application-developer feedback. | Further module refcactoring; more modules optional, based on application-developer feedback. | Further module refcactoring; more modules optional, based on application-developer feedback. | Further module refcactoring; more modules optional, based on application-developer feedback. | |||||||||||||||||||||||
16 | Activity 03.3: Create and deploy a system to incorporate modules written in higher-level languages. | Tor 0.3.3 ships, with some components optionally in Rust | Tor 0.3.4 ships, with more components modularized and optionally in Rust. | IF NO BLOCKERS ARE IDENTIFIED, 0.3.5 is the first Tor version to build with Rust by default. It remains optional. Directory authority operation is written in Rust. | Apr 2019: - IF NO BLOCKERS ARE IDENTIFIED, 0.3.6 is the first Tor version to depend on Rust. | Based on previous experience, more modules written in rust, and/or more blocking issues resolved | Based on previous experience, more modules written in rust, and/or more blocking issues resolved | Based on previous experience, more modules written in rust, and/or all blocking issues resolved | |||||||||||||||||||||||||
17 | Activity 03.4: Create a system for isolating existing modules into separate processes. | Begin work on list described in Month 11 below. | Complete a list of underlying abstractions we will need to better factor our code. This might be message-passing; publish/subscribe; reference-counting with weak-references; top-level deferred jobs; futures; or who knows what else. Identify where we can possibly leverage Rust features or external Rust crates for these underlying abstractions. | Have tools written to confirm how well Tor conforms (or doesn't) to intended modularization | Complete design writeup for multi-process isolation design, including abstractions, target modules, and threat models. This design must include plans for handling mobile platforms correctly. | Backend implementations for multiprocess isolation are complete and well-documented. | Multiprocess isolation in use for at least one target module (e.g., parsing, key management, etc) | ||||||||||||||||||||||||||
18 | |||||||||||||||||||||||||||||||||
19 | |||||||||||||||||||||||||||||||||
20 | |||||||||||||||||||||||||||||||||
21 | |||||||||||||||||||||||||||||||||
22 | |||||||||||||||||||||||||||||||||
23 | |||||||||||||||||||||||||||||||||
24 | |||||||||||||||||||||||||||||||||
25 | |||||||||||||||||||||||||||||||||
26 | |||||||||||||||||||||||||||||||||
27 | |||||||||||||||||||||||||||||||||
28 | |||||||||||||||||||||||||||||||||
29 | |||||||||||||||||||||||||||||||||
30 | |||||||||||||||||||||||||||||||||
31 | |||||||||||||||||||||||||||||||||
32 | |||||||||||||||||||||||||||||||||
33 | |||||||||||||||||||||||||||||||||
34 | |||||||||||||||||||||||||||||||||
35 | |||||||||||||||||||||||||||||||||
36 | |||||||||||||||||||||||||||||||||
37 | |||||||||||||||||||||||||||||||||
38 | |||||||||||||||||||||||||||||||||
39 | |||||||||||||||||||||||||||||||||
40 | |||||||||||||||||||||||||||||||||
41 | |||||||||||||||||||||||||||||||||
42 | |||||||||||||||||||||||||||||||||
43 | |||||||||||||||||||||||||||||||||
44 | |||||||||||||||||||||||||||||||||
45 | |||||||||||||||||||||||||||||||||
46 | |||||||||||||||||||||||||||||||||
47 | |||||||||||||||||||||||||||||||||
48 | |||||||||||||||||||||||||||||||||
49 | |||||||||||||||||||||||||||||||||
50 | |||||||||||||||||||||||||||||||||
51 | |||||||||||||||||||||||||||||||||
52 | |||||||||||||||||||||||||||||||||
53 | |||||||||||||||||||||||||||||||||
54 | |||||||||||||||||||||||||||||||||
55 | |||||||||||||||||||||||||||||||||
56 | |||||||||||||||||||||||||||||||||
57 | |||||||||||||||||||||||||||||||||
58 | |||||||||||||||||||||||||||||||||
59 | |||||||||||||||||||||||||||||||||
60 | |||||||||||||||||||||||||||||||||
61 | |||||||||||||||||||||||||||||||||
62 | |||||||||||||||||||||||||||||||||
63 | |||||||||||||||||||||||||||||||||
64 | |||||||||||||||||||||||||||||||||
65 | |||||||||||||||||||||||||||||||||
66 | |||||||||||||||||||||||||||||||||
67 | |||||||||||||||||||||||||||||||||
68 | |||||||||||||||||||||||||||||||||
69 | |||||||||||||||||||||||||||||||||
70 | |||||||||||||||||||||||||||||||||
71 | |||||||||||||||||||||||||||||||||
72 | |||||||||||||||||||||||||||||||||
73 | |||||||||||||||||||||||||||||||||
74 | |||||||||||||||||||||||||||||||||
75 | |||||||||||||||||||||||||||||||||
76 | |||||||||||||||||||||||||||||||||
77 | |||||||||||||||||||||||||||||||||
78 | |||||||||||||||||||||||||||||||||
79 | |||||||||||||||||||||||||||||||||
80 | |||||||||||||||||||||||||||||||||
81 | |||||||||||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||||||||
83 | |||||||||||||||||||||||||||||||||
84 | |||||||||||||||||||||||||||||||||
85 | |||||||||||||||||||||||||||||||||
86 | |||||||||||||||||||||||||||||||||
87 | |||||||||||||||||||||||||||||||||
88 | |||||||||||||||||||||||||||||||||
89 | |||||||||||||||||||||||||||||||||
90 | |||||||||||||||||||||||||||||||||
91 | |||||||||||||||||||||||||||||||||
92 | |||||||||||||||||||||||||||||||||
93 | |||||||||||||||||||||||||||||||||
94 | |||||||||||||||||||||||||||||||||
95 | |||||||||||||||||||||||||||||||||
96 | |||||||||||||||||||||||||||||||||
97 | |||||||||||||||||||||||||||||||||
98 | |||||||||||||||||||||||||||||||||
99 | |||||||||||||||||||||||||||||||||
100 |