Go to file
2019-09-25 00:52:16 -04:00
2019-06-19 10:44:17 -04:00
2019-11-11 21:01:52 -05:00
2019-11-11 21:02:38 -05:00
2019-12-24 16:51:38 -05:00
2019-12-24 11:21:07 -05:00
2019-11-12 00:11:52 -05:00
2019-12-24 16:51:38 -05:00
2019-10-17 00:00:55 -04:00
2019-11-11 21:02:38 -05:00
2019-12-24 16:51:38 -05:00
2019-12-24 16:51:38 -05:00
2019-11-28 18:43:32 -05:00
2019-10-16 19:10:24 -04:00
2019-11-12 00:11:52 -05:00
2019-11-12 00:14:11 -05:00
2019-11-12 00:14:11 -05:00
2019-12-24 16:50:47 -05:00
2019-12-24 16:51:38 -05:00
2019-12-24 16:46:51 -05:00
2019-02-05 09:41:47 -05:00
2019-12-24 16:46:51 -05:00
2019-12-24 16:51:38 -05:00
2019-12-24 16:50:47 -05:00
2019-11-12 00:21:35 -05:00
2019-12-24 11:21:07 -05:00
2019-11-12 00:14:11 -05:00

i2psetproxy.js

This is an Experimental 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.

Installation(Cross-Platform):

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/.

Debian Installation:

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:

    make deb

and then you can install it with:

    sudo apt install ../i2psetproxy.js_*.deb

Usage:

  • 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.
  • 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:
  • Landing page
  • Also, there's a menu for accessing I2P functionality while you're browsing. It lets you control a few settings in a granular way.
  • Menu
  • You can re-enable WebRTC but force it to always use the proxy that is enforced by the tab.
  • 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.
  • That's all there is to it! Your browser is configured to safely use and administer I2P

Features

  • [done] Provide 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.
  • Visiting i2p-projekt.i2p
  • [done] Indicate the I2P browser is in use visually. Find an acceptable way to indicate it on Android.
  • Visiting webmail
  • [done] Set the http proxy to use the local I2P proxy automatically. Provide specific configuration for other types of I2P proxies(SOCKS, isolating HTTP)
  • [done] Disable risky webRTC features/offer the option to re-enable them with the proxy enforced.
  • [done] Change the color of the browser window to indicate that I2P is in use
  • Visiting i2ptunnel
  • [ready/broken/wip] Provide help in a variety of languages.
  • [wip] Monitor 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.
  • [Done] Handle 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.
  • Visiting routerconsole
  • [wip] Handle Torrents 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.
  • Visiting i2psnark
  • [barely started] Isolate 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
    • 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.
    • 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.
    • I2P Blogging: Use this for posting content to the web interface of your blog or to other similar websites that you create content on.
  • Visiting clearweb

Video

  • Video of the plugin in action

Documents

  • Browser Outline: This document is an outline of each of the browser extension's feature panels in presentation form.
  • Smart Lander Design: 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.

Super Extra Important Background Info:

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.

Project uplift seems to have largely been accomplished?

The Old Version

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.

  • This is the new version: [link]

  • This is the old version: [link]

Android usage:

Open the following link Github Releases Version 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.

Android addons.mozilla.org(Temporarily Disabled)

If you would prefer to recieve automatic updates from AMO, the correct product page for this plugin is I2P In Private Browsing. 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.

Description
This is an Experimental 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.
Readme MIT 22 MiB
Languages
JavaScript 58.7%
HTML 29.7%
Makefile 6.7%
CSS 4.6%
Shell 0.3%