-
Notifications
You must be signed in to change notification settings - Fork 6
/
index.html
420 lines (420 loc) · 21.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="assets/style.css">
<title>firefox.profile.i2p</title>
</head>
<body>
<div id="intro" class="top">
<h1>firefox.profile.i2p</h1>
<p><a href=
"https://build.snapcraft.io/user/eyedeekay/firefox.profile.i2p"><img src=
"https://build.snapcraft.io/badge/eyedeekay/firefox.profile.i2p.svg" alt=
"Snap Status" title=""></a> <a href=
"https://travis-ci.com/eyedeekay/firefox.profile.i2p"><img src=
"https://travis-ci.com/eyedeekay/firefox.profile.i2p.svg?branch=master"
alt="Travis-CI .dmg Status" title=""></a></p>
<p><a href="https://snapcraft.io/i2pbrowser"><img src=
"https://snapcraft.io/static/images/badges/en/snap-store-black.svg" alt=
"Get it from the Snap Store" title=""></a></p>
<h2>What it is</h2>
<p><em>*Attention: *</em> If you're on Windows, this is probably
<em>not</em> the browser you're looking for. <a href=
"https://geti2p.net/en/download/firefox">An official one is now available
from the i2p website</a>. It is largely the same as this one, but supports
multiple languages and has more focus on the needs of Windows users. This
is still a reasonable choice for a Linux I2P Browser.</p>
<p>This is a set of tools for major Desktop computing platforms(Windows,
Mac OSX, and Linux) which automatically configures a Firefox browser for
use with i2p. It attempts to minimize the amount of user interaction that
is required to get the browser up and running correctly. It requires an i2p
router and either a Firefox or Tor Browser to run.</p>
<p>To the end of simplicity, it attempts to make use of standard, familiar
installation procedures for each of these platforms. The Windows package is
just a regular installer.exe/uninstaller.exe pair. You download either
Firefox or the Tor Browser Bundle and install it first. Then you <a href=
"https://github.com/eyedeekay/firefox.profile.i2p/releases/download/current/install-i2pbrowser.exe">
download the installer from the github releases</a>, and run it. It will
place two items on the start menu and two shortcuts on the desktop, any of
which will launch a browser pre-configured to use i2p.</p>
<p>On OSX, the goal is to create a .dmg application image but I'm stalled
here for the moment while I wait for more access to an OSX machine.</p>
<p>On GNU/Linux it's more of a collection of tools for a variety of package
managers. Ubuntu users will probably find the snap package most convenient.
It just bundles Firefox and the scripts that make sure the configuration is
correct together in their little snap package and runs it from inside the
container. There are also a variety of other options for other
platforms.</p>
<p>What it configures is a profile for Firefox, set up to use i2p, with an
accompanying launcher for easy use. It also comes pre-configured to disable
certain features that may weaken the anonymity that i2p provides, and with
NoScript and HTTPS Everywhere.</p>
<p>For more information, see: <a href="DETAILS.md">DETAILS.md</a></p>
<p>Much of this is ready for interested parties to test, but it's still
just being tested and the rough edges are still being figured out. Use at
your own risk.</p>
<p>For now, the testing release page is here: <a href=
"https://github.com/eyedeekay/firefox.profile.i2p/releases/tag/current">Github
Releases</a> where the Windows installer has been made available. The
"current" release will always track the newest working version. Numbered
releases are the latest version that I'm testing. There's not really a
coherent rationale to the version numbers yet. I move them when I add a
feature to make sure I know what to uninstall.</p>
<ul>
<li>
<a href="https://github.com/eyedeekay/firefox.profile.i2p">Source
Code:</a>
</li>
</ul>
<h2>Coarse Changelog/Roadmap</h2>
<ul>
<li>Current == 0.05</li>
<li>0.x Intitial configuration,</li>
<li>0.01x Wrapper-launcher for Windows/Firefox, Whonix browser for Debian
Derivs</li>
<li>0.02x Improved Reliability</li>
<li>0.03x Reddit to-do list, i2prouter integration, Tor Browser Bundle
integration for Windows</li>
<li>0.04x Additional packaging, snap, dmg, deb metapackage</li>
<li>0.05x Tor Browser Bundle integration for OSX, torbrowser-launcher
integration for Linux, Internationalization</li>
<li>0.06x (Planned) Finalize packaging, User-readiness, automate
fingerprint measurements, automate hostile testing.</li>
<li>0.07x (Planned) Control Plugin, additional plugin evaluation(Font
fingerprint mitigations? Perhaps an "Expert Bundle" with uMatrix?)</li>
<li>0.08x (Planned) Android port, build-from-source</li>
<li>0.09x (Planned) Selenium-based browser tests, Update services</li>
<li>0.10x (Planned) No known bugs. Best-case scenario for current i2p
browsers using Firefox or TBB.</li>
</ul>
<h3>Donate</h3>
<ul>
<li>
XMR:43V6cTZrUfAb9JD6Dmn3vjdT9XxLbiE27D1kaoehb359ACaHs8191mR4RsJH7hGjRTiAoSwFQAVdsCBToXXPAqTMDdP2bZB</li>
<li>BTC:159M8MEUwhTzE9RXmcZxtigKaEjgfwRbHt</li>
<li>ETH:0x2c7F38c592938915C263a51b4AC078bf91F47C5D</li>
<li>(These are to me, not the i2p project)</li>
</ul>
</div>
<h1 class="windows lowlight">Windows Setup</h1>
<div id="windows" class="highlight">
<h3 class="windows">Automatic Setup (Recommended, Windows) <a href=
"WINDOWS.md">Standalone guide</a></h3>
<ol>
<li>Install the Firefox web browser. You can download it from <a href=
"https://www.mozilla.org/en-US/firefox/new/">Mozilla's web site</a>. <em>
Alternatively, if you're using the latest testing version of the
profile,</em> <em>it will use a Tor Browser if one is found in a
default location,</em> which you can get from the <a href=
"https://www.torproject.org/projects/torbrowser.html.en">Tor Browser
Bundle download page</a>. This may provide additional security.
</li>
<li>Download the i2p Firefox profile installer, install-i2pbrowser.exe,
from <a href=
"https://github.com/eyedeekay/firefox.profile.i2p/releases/download/current/install-i2pbrowser.exe">
This releases page</a> and run it. If Firefox was not detected in the
default location, then you will be offered a menu to select it in a
custom location.
</li>
<li>To start Firefox with the i2p Browsing profile, click the shortcut to
"I2PBrowser-Launcher" or "Private Browsing-I2PBrowser-Launcher" from your
Start Menu or your Desktop.</li>
</ol>
<h3 class="windows">Run-From-Zip (Alternative, Windows)</h3>
<ol>
<li>Install the Firefox web browser. You can download it from <a href=
"https://www.mozilla.org/en-US/firefox/new/">Mozilla's web site</a>. The
browser <em>must</em> be installed in a default location selected by the
Firefox installer for this to work. This version does work with Tor
Browser yet.
</li>
<li>Download the i2p Firefox profile zip bundle, i2pbrowser-windows.zip,
from <a href=
"https://github.com/eyedeekay/firefox.profile.i2p/releases/download/current/i2pbrowser-windows.zip">
This releases page</a>
</li>
<li>To start Firefox with the i2p Browsing profile, double-click the
i2pbrower.bat script.</li>
</ol>
</div>
<h1 class="osx lowlight">OSX Setup</h1>
<div id="osx" class="highlight">
<h3 class="osx">Automatic Setup (OSX) <a href="MACOSX.md">Standalone
guide</a></h3>
<p><strong>Entirely Untested.</strong> I've managed to build .dmg files
that contain the scripts annd the profile. They <em>should</em> work, but
until I get a Mac, I won't know for sure. To generate one on a Mac, install
create-dmg from brew and run</p>
<pre><code> make osx
</code></pre>
<ol>
<li>Install the Firefox Web Browser from <a href=
"https://www.mozilla.org/en-US/firefox/new/">Mozilla's web site</a>. This
version doesn't integrate with a Tor Browser Bundle yet.
</li>
<li>Install the .dmg file you generated with make.</li>
<li>Launch the I2PBrowser.sh script.</li>
</ol>
</div>
<h1 class="linux lowlight">Linux Setup</h1>
<div id="linux" class="highlight">
<h3 class="linux">Automatic Setup <a href="LINUX.md">Standalone guide</a>
(Debian, Ubuntu, apt-based with Firefox-ESR)</h3>
<p>A pre-built deb(for now, crudely generated with checkinstall) is able to
configure an i2p browser on Debian-based distributions as long as they
package Firefox, NoScript, and HTTPS-Everywhere. This deb simply configures
system-firefox with alternate defaults and configures launchers to use them
with. Note that in this configuration, Firefox will also have the system
plugins installed in Debian.</p>
<ol>
<li>Download the i2pbrowser-helper .deb package from the <a href=
"https://github.com/eyedeekay/firefox.profile.i2p/releases">releases
page</a>.
</li>
<li>Double-click the newly downloaded .deb file and install it.</li>
<li>
<p>Run I2PBrowser.sh and/or I2PBrowser-Private.sh to launch Firefox
with the i2p browsing profile.</p>
<pre><code>#! /bin/sh
wget -c https://github.com/eyedeekay/firefox.profile.i2p/releases/download/0.04/i2pbrowser-helper_all.deb
sudo apt-get install ./i2pbrowser-helper_all.deb
</code></pre>
</li>
</ol>
<h3 class="linux">Building a .deb with Checkinstall</h3>
<p>If you don't want to trust the deb I generated, then it's also very
simple to generate your own from this source code.</p>
<ol>
<li>Install git, make, and checkinstall</li>
<li>Clone this repository and change to the newly created directory</li>
<li>run 'make debfirefox'</li>
<li>
<p>Install the generated package.</p>
<pre><code># /bin/sh
sudo apt-get install git make checkinstall
git clone https://github.com/eyedeekay/firefox.profile.i2p && cd firefox.profile.i2p
make debfirefox
i2pbrowser-helper_all.deb
sudo apt-get install ./i2pbrowser-helper_all.deb
</code></pre>
</li>
</ol>
<h3 class="linux">Snap Setup <a href="LINUX.md">Standalone guide</a>
(Cross-Distribution)</h3>
<p>The latest snap can be installed from edge and has desktop shortcuts.
<a href="https://snapcraft.io/i2pbrowser"><img src=
"https://snapcraft.io/static/images/badges/en/snap-store-black.svg" alt=
"Get it from the Snap Store" title=""></a></p>
<ol>
<li>Open a terminal and run: 'snap install --edge i2pbrowser'</li>
<li>
<p>Run the shortcut from your application menu or /snap/bin/i2pbrowser
from a terminal.</p>
<pre><code>#! /bin/sh
snap install --edge i2pbrowser
/snap/bin/i2pbrowser
</code></pre>
</li>
</ol>
<p>It's not likely that integrating a snap with Tor Browser will be
possible unless Tor Browser becomes available as a snap, which seems
unlikely. I can think of some things that <em>might</em> work but none
are... perfectly clear to me. Auto-updating of the profile via the install
script isn't possible in the snap, <em>but</em> snapcraft.io seems to get
updates about ~9 minutes after this repository does. That means a s simple
'snapcraft refresh --edge i2pbrowser' will automatically update the profile
for you.</p>
<h3 class="linux">Make Setup <a href="LINUX.md">Standalone guide</a>
(Cross-Distribution)</h3>
<ol>
<li>Install the firefox-esr browser from your distribution or from
Mozilla's web site. Be sure to place it into your PATH as firefox, for
example, /usr/bin/firefox.</li>
<li>Download the GNU/Linux zip bundle from the releases page and unpack
it.</li>
<li>
<p>Run the following make targets:</p>
<pre><code>#! /bin/sh
make recopy-linux
sudo make install
</code></pre>
</li>
</ol>
<p>When it's done, you can run 'I2PBrowser.sh' to start the i2p browser
profile.</p>
<h3 class="linux">Docker Setup <a href="LINUX.md">Standalone guide</a>
(Linux, probably OSX, Windows?)</h3>
<p>Linux and Mac OSX users can run the browser within a Docker container.
This image uses an entirely un-official upstream image of the Tor Browser
Bundle from Dockerhub, also authored by me. Should you wish to build it
yourself, instructions can be found below. However, if you wish to run the
i2p Browser from the Docker Hub and have i2p installed on the host, you may
simply:</p>
<pre><code> docker run --rm -i -t \
-e DISPLAY=:0 \
--net host \
--name i2p-browser \
--volume /tmp/.X11-unix:/tmp/.X11-unix:ro \
eyedeekay/firefox.profile.i2p
</code></pre>
<p>To launch a Tor Browser configured with this profile from the
terminal.</p>
<p>In order to examine or build the upstream package locally, see: <a href=
"https://github.com/eyedeekay/tbb-docker">eyedeekay/tbb-docker</a>.</p>
<p>If you have trouble connecting the Dockerized application to the X
server, you may need to authorize the Docker user to access the X
server.</p>
<pre><code> xhost +"local:docker@"
</code></pre>
<h3 class="linux">Manual Setup (Various Linuxes) <a href=
"LINUX.md">Standalone guide</a> (Debian-Derived distros see Footnote
#2)</h3>
<p><em>NOTE: I'm probably going to add an apparmor profile to this setup
for optional</em> <em>installation.</em></p>
<ol>
<li>Install Firefox-ESR via the method preferred by your Linux
distribution.</li>
<li>Download the i2pbrowser-gnulinux.zip from here. If you prefer, an
identical i2pbrowser-gnulinux.tar.gz is also available.</li>
<li>Extract it.</li>
<li>Run ./install.sh install from within the extracted folder.
Alternatively, run ./install.sh run to run entirely from within the
current directory.</li>
</ol>
<p>If you want to just copy-paste some commands into your terminal, you
could:</p>
<pre><code> #! /bin/sh
curl https://github.com/eyedeekay/firefox.profile.i2p/releases/download/current/i2pbrowser-gnulinux.tar.gz --output i2pbrowser-gnulinux.tar.gz
tar xvzf i2pbrowser-gnulinux.tar.gz
cd i2pbrowser-gnulinux
./install.sh install
</code></pre>
<p>Once you've run "./install.sh install" you can safely delete the profile
folder if you wish. Alternatively, you could choose to run from the
downloaded profile directory by running "./install.sh run" or "./install.sh
private" instead. This will always start in Private Browsing mode, and if
you delete the download folder, you will need to re-download it to run the
browser from the directory again.</p>
<p>Here's some more information about how to use the install script:</p>
<pre><code> usage:
./install.sh install # install the profile and browser launcher
./install.sh uninstall # remove the profile and browser launcher
./install.sh alias # configure a .bash_alias to launch the browser
./install.sh usage # show this usage message
./install.sh update # update the profile
./install.sh run # run from this directory without installing
firefox --no-remote --profile "$DIR/.firefox.profile.i2p.default" about:blank $1
./install.sh private # run in private mode from this directory without installing
firefox --no-remote --profile "$DIR/.firefox.profile.i2p.private" --private about:blank $1
./install.sh debug # run with debugger from this directory without installing
firefox --jsconsole --devtools --no-remote --profile "$DIR/.firefox.profile.i2p.debug" --private about:blank $1
</code></pre>
</div>
<h1 class="notes lowlight">Notes/Appendix</h1>
<div id="notes" class="highlight">
<h4 class="notes">Screenshots</h4>
<ul>
<li><strong>check.kovri.i2p:</strong></li>
</ul>
<p><img src="images/firefox.profile.i2p.png" alt=
"Figure D: check.kovri.i2p results" title=""></p>
<ul>
<li><strong>valve/fingerprintjs</strong></li>
</ul>
<p><img src="images/firefox.profile.i2p.fingerprint.png" alt=
"Figure E: Browser Fingerprint" title=""></p>
<h4 class="notes">Footnotes <a href="NOTES.md">Download these
notes</a></h4>
<h5>Differences from Tor Browser</h5>
<p>TL:DR There is no security slider, and to compensate for this issue, the
Browser is configured to enable fewer features by default. It also can't do
stuff like notify you about your browser window size.</p>
<p>This browser takes cues from the Tor Browser, which is also a reasonable
choice for an i2p browser, but it has some absolutely critical differences
from the Tor Browser which will probably not come into play, but which you
should be aware of. First, there is no Torbutton, which means that this
browser lacks the coarse global controls of sensitive browser features that
the Torbutton provides to the Tor Browser Bundle. In order to deal with
this issue the default NoScript configuration is more restrictive.</p>
</div>
<h1 class="whonix lowlight">Whonix Setup(Advanced)</h1>
<div id="whonix" class="highlight">
<h5 class="whonix">Debian/Ubuntu users can use Whonix stretch-testng i2p
browser launcher</h5>
<p>If you are using Debian or Ubuntu, or probably any other up-to-date
apt-based Linux distribution, there's another option which may you may
prefer. In order to do this, one must add the Whonix apt package repository
to your package sources, and install their tb-starter package from their
stretch-testing repository. Don't worry, I'll take you through it
step-by-step.</p>
<p><strong>This guide is intended for users who are aware of the
implications of using</strong> <strong>third-party repositories on their
Debian-based Linux PC's.</strong> In particular, Whonix is designed to
pro-actively prevent certain kinds of attacks from affecting the user, and
their packages sometimes overwrite things like hosts files and such with
versions suitable for the Whonix threat model. While I currently use the
following packages successfully on both Debian and Ubuntu Linux at this
time, I cannot guarantee that they will work for everyone's specific
configuration.</p>
<p>First, you'll need to obtain and install the Whonix package signing
keys. This will allow you to be sure that you are obtaining the correct
package from the repository automatically.</p>
<p><code>sh sudo apt-key --keyring /etc/apt/trusted.gpg.d/whonix.gpg adv
--keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys
916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA</code></p>
<p>Next, you need to tell apt, the package manager, where to look for the
packages in question. The i2p browser is still in stretch-testers, so that
is the version we will be using. 'main' means that the profile is Free
Software per the Debian Free Software Guidelines.</p>
<p><code>sh echo 'deb http://deb.whonix.org stretch-testers main' | tee
/etc/apt/sources.list.d/whonix-testing.list # apt-transport-* season to
taste</code></p>
<p>Now, you must tell apt to update it's list of available packages so it
becomes aware of the Tor Browser packages.</p>
<p><code>sh sudo apt-get update</code></p>
<p>Finally, install tb-starter and tb-updater.</p>
<p><code>sh sudo apt-get install tb-starter tb-updater</code></p>
<p>The last step is to run update-i2pbrowser. This will pre-configure the
i2p browser on your system.</p>
<p><code>sh update-i2pbrowser</code></p>
<p>If for some reason, update-i2pbrowser doesn't work(Usually this is in
the absence of Tor on the system) you may run</p>
<p><code>sh update-i2pbrowser --devbuildpassthrough</code></p>
<p>instead.</p>
<p>Finally, you need to add the following lines to the bottom of
/etc/i2pbrowser.d/31_i2p_default.conf.</p>
<pre><code> # /etc/i2pbrowser.d/31_i2p_default.conf
TOR_HIDE_UPDATE_CHECK_UI=1
TOR_NO_DISPLAY_NETWORK_SETTINGS=1
TOR_HIDE_BROWSER_LOGO=1
TOR_SKIP_LAUNCH=1
TOR_SKIP_CONTROLPORTTEST=1
</code></pre>
<p>Or, you can just run these commands, now that you know what they do:</p>
<pre><code> #! /bin/sh
sudo apt-key --keyring /etc/apt/trusted.gpg.d/whonix.gpg adv --keyserver hkp://ipv4.pool.sks-keyservers.net:80 --recv-keys 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA
echo 'deb http://deb.whonix.org stretch-testers main' | tee /etc/apt/sources.list.d/whonix-testing.list # apt-transport-* season to taste
sudo apt-get update
sudo apt-get install tb-starter tb-updater
update-i2pbrowser
</code></pre>
</div>
<h1 class="finger lowlight">Browser Testing</h1>
<div id="finger" class="highlight">
<h1 class="finger">Browser Security Testing:</h1>
<ul>
<li>
<p><strong>master:</strong>
3dpwhxxcp47t7h6pnejm5hw7ymv56ywee3zdhct2sbctubsb3yra.b32.i2p</p>
</li>
<li>
<p><strong>fingerprinter:</strong>
qsagwif55g5gxsnka6r5ewuna6gokme2nv64s4zofl4hhuuqnd4q.b32.i2p</p>
</li>
</ul>
</div>
<script type="text/javascript" src="assets/script.js"></script>
</body>
</html>