Revision bb4f9069

View differences:

orfox-spec.txt
5 5
- The Orfox code is currently almost the exact replica of Fennec and the build instructions can be found at https://wiki.mozilla.org/Mobile/Fennec/Android#Building_Fennec. Once successfully built, this source produces a folder named android_eclipse which is where the main Fennec Browser app code is present.
6 6

  
7 7
2. Proposed Changes
8
- The aim of Orfox is to match the specs of the tor browser bundle for the desktop. We plan on making it an almost exact replica of the desktop app in order to provide a similar user experience to people who have been using the desktop browser. This newly implemented browser would hopefully be a replacement application to the current Orweb app that we have.
8
- The aim of Orfox is to match the specs of the tor browser bundle for the desktop. 
9
We plan on making it an almost exact replica of the desktop app in order to provide 
10
a similar user experience to people who have been using the desktop browser. 
11
This newly implemented browser would hopefully be a replacement application to 
12
the current Orweb app that we have.
13

  
14
We will match the Tor Browser design and re-use code/patches when at all possible:
15
https://www.torproject.org/projects/torbrowser/design/
9 16

  
10 17
Match Tor Browser Desktop spec:
11 18
- Bundling Add-ons: HTTPS Everywhere, No Script, Clean Exit
......
21 28
5. Positives
22 29
- The vulnerabilities seen at http://xordern.net/ip-leakage-of-mobile-tor-browsers.html are not seen on Orfox.
23 30

  
24
******
25

  
26
Here are the privacy-enhancing preferences that are on by default:
27

  
28
Match Tor Browser "generic" user-agent:
29

  
30
    setUserAgent("Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20100101 Firefox/17.0","en-us,en;q=0.5");
31

  
32
Turn on proxying to local Tor / Orbot proxying by default:
33

  
34
    PrefsHelper.setPref("network.proxy.type",1); //manual proxy settings
35

  
36
    PrefsHelper.setPref("network.proxy.http","localhost"); //manual proxy settings
37
    PrefsHelper.setPref("network.proxy.http_port",8118); //manual proxy settings
38

  
39
    PrefsHelper.setPref("network.proxy.socks","localhost"); //manual proxy settings
40
    PrefsHelper.setPref("network.proxy.socks_port",9050); //manual proxy settings
41
    PrefsHelper.setPref("network.proxy.socks_version",5); //manual proxy settings
42
    PrefsHelper.setPref("network.proxy.socks_remote_dns",true); //make sure dns is remote
43
        
44
//turn off any DNS optimization outside of standard flow
45
	PrefsHelper.setPref("network.dns.disablePrefetch",true);
46
	PrefsHelper.setPref("network.dns.disablePrefetchFromHTTPS",true);
47

  
48

  
49
Disable dish cacheing:
50

  
51
            PrefsHelper.setPref("browser.cache.disk.enable",false);
52
            PrefsHelper.setPref("browser.cache.memory.enable",true); 
53

  
54
            PrefsHelper.setPref("browser.cache.disk.capacity",0);
55

  
56
Ensure data is cleared on shutdown:
57

  
58
            PrefsHelper.setPref("privacy.clearOnShutdown.cache",true);
59
            PrefsHelper.setPref("privacy.clearOnShutdown.cookies",true);
60
            PrefsHelper.setPref("privacy.clearOnShutdown.downloads",true);
61
            PrefsHelper.setPref("privacy.clearOnShutdown.formdata",true);
62
            PrefsHelper.setPref("privacy.clearOnShutdown.history",true);
63
            PrefsHelper.setPref("privacy.clearOnShutdown.offlineApps",true);
64
            PrefsHelper.setPref("privacy.clearOnShutdown.passwords",true);
65
            PrefsHelper.setPref("privacy.clearOnShutdown.sessions",true);
66
            PrefsHelper.setPref("privacy.clearOnShutdown.siteSettings",true);
67

  
68
Do Not Track!
69

  
70
            PrefsHelper.setPref("privacy.donottrackheader.enabled",false);
71
            PrefsHelper.setPref("privacy.donottrackheader.value",1);
72

  
73
Disable 3rd party cookies:
74
	
75
	    PrefsHelper.setPref("network.cookie.cookieBehavior", 1);
76

  
77
Don't send a referrer: PrefsHelper.setPref("network.http.sendRefererHeader", 0);
78

  
79
Make sure certificates are up-to-date:
80
		PrefsHelper.setPref("security.OCSP.require", true); 
81
		PrefsHelper.setPref("security.checkloaduri",true);
82

  
83
Don't display mixed content (i.e. not secure content on a secure page)
84
	PrefsHelper.setPref("security.mixed_content.block_display_content", true);
85

  
86
Disable peer-to-peer WebRTC leak:
87
	PrefsHelper.setPref("media.peerconnection.enabled",false); //webrtc disabled
88

  
89
Disable ciphersuites that are not safe:
90 31

  
91
            //disable rc4
92
            PrefsHelper.setPref("security.ssl3.ecdh_ecdsa_rc4_128_sha",false);
93
            PrefsHelper.setPref("security.ssl3.ecdh_rsa_rc4_128_sha",false);
94
            PrefsHelper.setPref("security.ssl3.ecdhe_ecdsa_rc4_128_sha",false);
95
            PrefsHelper.setPref("security.ssl3.ecdhe_rsa_rc4_128_sha",false);
96
            PrefsHelper.setPref("security.ssl3.rsa_rc4_128_md5",false);
97
            PrefsHelper.setPref("security.ssl3.rsa_rc4_128_sha",false);

Also available in: Unified diff