205 lines
10 KiB
HTML
205 lines
10 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>I2P in Private Browsing Mode</title>
|
|
<link rel="stylesheet" type="text/css" href ="home.css" />
|
|
</head>
|
|
<h1>I2P in Private Browsing Mode(Firefox-Only)</h1>
|
|
|
|
<p>This is an <strong>Experimental</strong> webextension which introduces a set of new "Private
|
|
Browsing" modes to Firefox-based browsers(Supporting webextensions) that makes
|
|
it easier to configure a browser to use I2P securely and adds features for
|
|
making I2P applications easier to use. It does this by isolating I2P-specific
|
|
settings to Contextual Identities within Firefox, then loading them
|
|
automatically when the user requests them. It also adds convenience and
|
|
management features specific to I2P like protocol handlers and native messaging
|
|
systems.</p>
|
|
|
|
<h2>Installation(Cross-Platform):</h2>
|
|
|
|
<p>For desktop users this addon is available from addons.mozilla.org, where you
|
|
will be able to recive automatic updates:
|
|
https://addons.mozilla.org/en-US/firefox/addon/i2p-in-private-browsing/.</p>
|
|
|
|
<h2>Debian Installation:</h2>
|
|
|
|
<p>Should you prefer, it is possible to install this extension system-wide by
|
|
side-loading it into Debian. You can generate your own deb file by running the
|
|
command:</p>
|
|
|
|
<pre><code> make deb
|
|
</code></pre>
|
|
|
|
<p>and then you can install it with:</p>
|
|
|
|
<pre><code> sudo apt install ../i2psetproxy.js_*.deb
|
|
</code></pre>
|
|
|
|
<h2>Usage:</h2>
|
|
|
|
<ul>
|
|
<li>Basically, it "Just Works." After you install the plugin, browsing to an I2P
|
|
domain will automatically stop the current tab and re-open the I2P site in an
|
|
I2P Browser tab.</li>
|
|
<li>Besides that, four bookmarks are added to the "Bookmarks Toolbar," which
|
|
will take you to visit your Java I2P applications, or the "Simplified I2P
|
|
Landing Page" embedded in the plugin:</li>
|
|
<li><img src="lander.png" alt="Landing page" title="" /></li>
|
|
<li>Also, there's a menu for accessing I2P functionality while you're browsing.
|
|
It lets you control a few settings in a granular way.</li>
|
|
<li><img src="menu.png" alt="Menu" title="" /></li>
|
|
<li>You can re-enable WebRTC but force it to always use the proxy that is
|
|
enforced by the tab.</li>
|
|
<li>You can either force the browser to delete all history for I2P sites
|
|
immediately, or you can close all your I2P Browser tabs at once and delete
|
|
the history for I2P browsing when you're done.</li>
|
|
<li>That's all there is to it! Your browser is configured to safely use and
|
|
administer I2P</li>
|
|
</ul>
|
|
|
|
<h3>Features</h3>
|
|
|
|
<ul>
|
|
<li>[done] <strong>Provide</strong> a way to launch into an I2P-Specific contextual identity
|
|
(container). Intercept requests to .i2p domains and automatically route them
|
|
to the I2P container. Isolate the router console from other local
|
|
applications by automatically intercepting requests to the router console to
|
|
another container.</li>
|
|
<li><img src="i2psetproxy.js.png" alt="Visiting i2p-projekt.i2p" title="" /></li>
|
|
<li>[done] <strong>Indicate</strong> the I2P browser is in use visually. Find an
|
|
acceptable way to indicate it on Android.</li>
|
|
<li><img src="susimail.png" alt="Visiting webmail" title="" /></li>
|
|
<li>[done] <strong>Set</strong> the http proxy to use the local I2P proxy automatically.
|
|
Provide specific configuration for other types of I2P proxies(SOCKS,
|
|
isolating HTTP)</li>
|
|
<li>[done] <strong>Disable</strong> risky webRTC features/offer the option to re-enable
|
|
them with the proxy enforced.</li>
|
|
<li>[done] <strong>Change</strong> the color of the browser window to indicate that I2P is in
|
|
use</li>
|
|
<li><img src="i2ptunnel.png" alt="Visiting i2ptunnel" title="" /></li>
|
|
<li>[ready/broken/wip] <strong>Provide</strong> help in a variety of languages.</li>
|
|
<li>[wip] <strong>Monitor</strong> the health and readiness of the I2P router it is
|
|
instructed to use. Currently the plugin checks whether the HTTP Proxy is
|
|
working by fetching an image from "http://proxy.i2p" and displaying a result.
|
|
A work-in-progress binding to i2pcontrol is available in ./i2pcontrol, it is
|
|
inert at this time.</li>
|
|
<li>[Done] <strong>Handle</strong> router console applications under their own origins and
|
|
within their own contextual identity. (1) The router console is automatically
|
|
confined to it's own container tab. (2) Use a custom protocol handler to
|
|
place each i2p application/plugin under it's own origin, shortening router
|
|
console URL's and placing applications under their own origin.</li>
|
|
<li><img src="routerconsole.png" alt="Visiting routerconsole" title="" /></li>
|
|
<li>[wip] <strong>Handle Torrents</strong> by talking to i2psnark-rpc plugin and then
|
|
adding them directly into the Firefox downloads drop-downs, menus, etc. If I
|
|
can. Right now instead of talking to snark-rpc, it uses a web-based protocl
|
|
handler that simply auto-fills the torrent into i2psnark.</li>
|
|
<li><img src="i2psnark.png" alt="Visiting i2psnark" title="" /></li>
|
|
<li>[barely started] <strong>Isolate</strong> traffic by contextual identity to it's own HTTP
|
|
Proxy tunnel, each reflecting it's own pseudonymous identity within I2P. The
|
|
contextual identities. For now, the contextual identities used to manage
|
|
browsing are "I2P Browsing" and "Web Browsing" where I2P Browsing is capable
|
|
of using an outproxy but in the case of traffic destined for the clearnet
|
|
does not do header rewriting, and Web Browsing falls back to the Proxy
|
|
configured in Firefox. The I2P Browsing will be expanded to
|
|
<ul>
|
|
<li>I2P Amnesiac Browsing: Use for General Browsing, stores no history and
|
|
uses an HTTP Proxy with a very short tunnel-close timeout and no key-reuse.</li>
|
|
<li>I2P Social Networking: Use this for logging into social network accounts,
|
|
forums, and other interactive asynchronous public communication platforms
|
|
where your identity is behaviorally linkable. This has a very long
|
|
tunnel-close timeout and key-reuse until specifically invoked.</li>
|
|
<li>I2P Blogging: Use this for posting content to the web interface of your
|
|
blog or to other similar websites that you create content on.</li>
|
|
</ul></li>
|
|
<li><img src="clearweb.png" alt="Visiting clearweb" title="" /></li>
|
|
</ul>
|
|
|
|
<h3>Video</h3>
|
|
|
|
<ul>
|
|
<li><img src="i2psetproxy.js.gif" alt="Video of the plugin in action" title="" /></li>
|
|
</ul>
|
|
|
|
<h2>Documents</h2>
|
|
|
|
<ul>
|
|
<li><strong><a href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/download/docs/Browser.Design.Documentation.pdf">Browser Outline</a></strong>: This document is an outline of each of
|
|
the browser extension's feature panels in presentation form.</li>
|
|
<li><strong><a href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/download/docs/Landing.Page.Documentation.pdf">Smart Lander Design</a></strong>: This is the original outline of
|
|
the smart landing page which became the I2P home page within the browser and
|
|
the drop-down control panel.</li>
|
|
</ul>
|
|
|
|
<h2>Super Extra Important Background Info:</h2>
|
|
|
|
<p>This plugin's viability is directly related to the viability of Mozilla and
|
|
Tor's work on hardening Firefox itself and of particular interest are the
|
|
"Uplift" and "Fusion(Firefox Using Onions)" projects.</p>
|
|
|
|
<h3>Links about Project Uplift</h3>
|
|
|
|
<ul>
|
|
<li><a href="https://wiki.mozilla.org/Security/Tor_Uplift">Tor Uplift</a> is a project which
|
|
brings important features of the Tor Browser to the mainstream of Firefox
|
|
users by including patches from Tor Browser Bundle into Firefox where it is
|
|
appropriate.</li>
|
|
<li><a href="https://wiki.mozilla.org/Security/FirstPartyIsolation">First Party Isolation</a>
|
|
is a feature in Firefox and other browsers which keeps information from
|
|
leaking across first-party domains.</li>
|
|
<li><a href="https://wiki.mozilla.org/Security/Fingerprinting">Fingerprinting</a> is a
|
|
technique where a tracker attempts to extract unique information about a user
|
|
from a side-channel in order to create an identifier that can be used to
|
|
correlate the user across many sites.</li>
|
|
<li><a href="https://wiki.mozilla.org/Security/Fennec%2BTor_Project">Fennec</a> is Firefox
|
|
for Android and this link has some analysis of the privacy consequences of the
|
|
Android platform.</li>
|
|
<li><a href="https://wiki.mozilla.org/Security/Tor_Uplift/Tracking">Tracking</a> in Firefox
|
|
is surveyed here.</li>
|
|
</ul>
|
|
|
|
<p>Project uplift seems to have largely been accomplished?</p>
|
|
|
|
<h3>Links about Project Fusion</h3>
|
|
|
|
<ul>
|
|
<li><a href="https://wiki.mozilla.org/Security/Fusion">Project Fusion</a> or Firefox using
|
|
Onions is a joint Mozilla/Tor effort to create an enhanced Private Browsing
|
|
mode for Firefox which uses Tor.</li>
|
|
<li><a href="https://trac.torproject.org/projects/tor/wiki/org/meetings/2018Rome/Notes/FusionProject">Notes</a>
|
|
from a meeting about Fusion.</li>
|
|
<li><a href="https://blog.torproject.org/tor-heart-firefox">Tor at the Heart: Firefox</a> is
|
|
a blog about Tor and the relationship they have to Firefox re: TBB, Fusion.</li>
|
|
</ul>
|
|
|
|
<h2>The Old Version</h2>
|
|
|
|
<p>New versions of this extension create an I2P in Private Browsing mode instead.
|
|
Since this is a drastic change to the behavior of the old plugin, a new entry
|
|
for the new plugin has been made at a new location on addons.mozilla.org.</p>
|
|
|
|
<ul>
|
|
<li><p>This is the new version: <a href="https://addons.mozilla.org/en-US/firefox/addon/i2p-in-private-browsing/">[link]</a></p></li>
|
|
<li><p>This is the old version: <a href="https://addons.mozilla.org/en-US/firefox/addon/I2P-Proxy/">[link]</a></p></li>
|
|
</ul>
|
|
|
|
<h2>Android usage:</h2>
|
|
|
|
<p>Open the following link
|
|
<a href="https://github.com/eyedeekay/i2psetproxy.js/releases/">Github Releases Version</a>
|
|
in the browser you want to use for I2P. Firefox will warn you that it is about
|
|
to install an extension and indicate the permissions required. Read them over
|
|
and when you're ready, accept them. That's all it should take, your browser is
|
|
now configured to use I2P.</p>
|
|
|
|
<h3>Android addons.mozilla.org(Temporarily Disabled)</h3>
|
|
|
|
<p>If you would prefer to recieve automatic updates from AMO, the correct product
|
|
page for this plugin is
|
|
<a href="https://addons.mozilla.org/en-US/firefox/addon/i2p-in-private-browsing/">I2P In Private Browsing</a>.
|
|
This absolutely requires a working outproxy. If you want to avoid the use of AMO
|
|
for updates, you can download the identical plugin from this repository's
|
|
releases page. The latest AMO Plugin will always be identical to the latest
|
|
github release, except for the version number, which must be incremented for
|
|
submission to AMO.</p>
|
|
</html>
|