The Invisible Internet Project (I2P) is an anonymous network layer (implemented as a mix network) that allows for censorship-resistant, peer-to-peer communication. Anonymous connections are achieved by encrypting the user's traffic (by using end-to-end encryption), and sending it through a volunteer-run network of roughly 55,000 computers distributed around the world. Given the high number of possible paths the traffic can transit, a third party watching a full connection is unlikely. The software that implements this layer is called an "I2P router", and a computer running I2P is called an "I2P node". I2P is free and open sourced, and is published under multiple licenses.
I2P is beta software since 2003, when it started as a fork of Freenet. The software's developers emphasize that bugs are likey to occur in the beta version and that peer review has been insufficient to date. However, they believe the code is now reasonably stable and well-developed, and more exposure can help the development of I2P.
The network is strictly message-based, like IP, but a library is available to allow reliable streaming communication on top of it (similar to TCP, although from version 0.6, a new UDP-based SSU transport is used). All communication is end-to-end encrypted (in total, four layers of encryption are used when sending a message) through garlic routing, and even the end points ("destinations") are cryptographic identifiers (essentially a pair of public keys), so that neither senders nor recipients of messages need to reveal their IP address to the other side or to third-party observers.
Many developers of I2P are known only under pseudonyms. While the previous main developer, jrandom, is currently on hiatus, others, such as zzz, killyourtv, and Complication have continued to lead development efforts, and are assisted by numerous contributors.
A new version of SAM (v3.2) and numerous bug fixes and efficiency improvements. The first release to require Java 7.
Old version, no longer maintained: 0.9.25
A new version of SAM (v3.3), QR codes for sharing hidden services, identicons and router families.
Old version, no longer maintained: 0.9.26
Major upgrade to the native crypto library, a new addressbook subscription protocol with signatures, and major improvements to the Debian/Ubuntu packaging.
Old version, no longer maintained: 0.9.27
Improvements in IPv6 transports, SSU peer testing, and hidden mode.
Old version, no longer maintained: 0.9.28
Updates for a number of bundled software, fixes for IPv6 peer testing, improvements to detect and block potentially malicious peers. Preliminary fixes for Java 9.
Old version, no longer maintained: 0.9.29
Support for NTP over IPv6, preliminary Docker support, translated main pages. We now pass same-origin Referrer headers through the HTTP proxy. There are more fixes for Java 9, although we do not yet recommend Java 9 for general use.
Old version, no longer maintained: 0.9.30
Support for Debian Stretch and Ubuntu Zesty, upgraded to Jetty 9 and Tomcat 8, support for the migration of old DSA-SHA1 hidden services to the EdDSA signature type.
Old version, no longer maintained: 0.9.31
Refreshed the router console to improve readability, improved accessibility and cross-browser support, and general tidying up.
Old version, no longer maintained: 0.9.32
0.9.32 contains a number of fixes in the router console and associated webapps (addressbook, i2psnark, and susimail). We have also changed the way we handle configured hostnames for published router infos, to eliminate some network enumeration attacks via DNS. Added some checks in the console to resist rebinding attacks.
Old version, no longer maintained: 0.9.33
0.9.33 contains bug fixes for i2psnark, i2ptunnel, streaming, and SusiMail. Updates for reseed proxying, and default rate limiting.
Old version, no longer maintained: 0.9.34
0.9.34 contains bug fixes for i2ptunnel, router console, SusiMail, routing and transport along with Changes to SusiMail and UPnP.
Old version, no longer maintained: 0.9.35
0.9.35 adds support for folders in SusiMail, and a new SSL Wizard for setting up HTTPS on your Hidden Service website.
Old version, no longer maintained: 0.9.36
0.9.36 implements a new, more secure transport protocol called NTCP2. It is disabled by default, but you may enable it for testing. NTCP2 will be enabled in the next release.
Old version, no longer maintained: 0.9.37
0.9.37 enables the faster, more secure transport protocol called NTCP2.
Old version, no longer maintained: 0.9.38
0.9.38 includes a new first-install wizard with a bandwidth tester. We've added support for the latest GeoIP database format. There's a new Firefox profile installer and a new, native Mac OSX installer on our website. Work continues on supporting the new "LS2" netdb format.
Old version, no longer maintained: 0.9.39
0.9.39 includes extensive changes for the new network database types (proposal 123). We've bundled the i2pcontrol plugin as a webapp to support development of RPC applications. There are numerous performance improvements and bug fixes.
Old version, no longer maintained: 0.9.40
0.9.40 includes support for the new encrypted leaseset format. We disabled the old NTCP 1 transport protocol. There's a new SusiDNS import feature, and a new scripted filtering mechanism for incoming connections.
Old version, no longer maintained: 0.9.41
0.9.41 continues the work to implement new features for proposal 123, including per-client authentication for encrypted leasesets. The console has an updated I2P logo and several new icons. We've updated the Linux installer.
Old version, no longer maintained: 0.9.42
0.9.42 continues the work to make I2P faster and more reliable. It includes several changes to speed up our UDP transport. We have split up the configuration files to enable future work for more modular packaging. We continue work to implement new proposals for faster and more secure encryption. There are, of course, a lot of bug fixes also.
Old version, no longer maintained: 0.9.43
0.9.43 release continues work on stronger security and privacy features and performance improvements. Our implementation of the new leaseset specification (LS2) is now complete. We are beginning our implementation of stronger and faster end-to-end encryption (proposal 144) for a future release. Several IPv6 address detection issues have been fixed, and there of course are several other bug fixes.
Old version, no longer maintained: 0.9.44
0.9.44 contains an important fix for a denial of service issue in hidden services handling of new encryption types.
0.9.47 enables new encryption for some services, now requires Java 8 and Sybil analysis and blocking is now enabled by default.
Current stable version:0.9.48
0.9.48 enables new encryption for most services, has significant performance improvements.
I2P 0.9.31-0 router console
Since I2P is an anonymous network layer, it is designed so other software can use it for anonymous communication. As such, there are a variety of tools currently available for I2P or in development.
The I2P router is controlled through the router console, which is a web frontend accessed through a web browser.
I2PTunnel is an application embedded into I2P that allows arbitrary TCP/IP applications to communicate over I2P by setting up "tunnels" which can be accessed by connecting to pre-determined ports on localhost.
SAM (Simple Anonymous Messaging) is a protocol which allows a client application written in any programming language to communicate over I2P, by using a socket-based interface to the I2P router.
BOB (Basic Open Bridge) is a less complex app to router protocol similar to "SAM"
Any IRC client made for the Internet Relay Chat can work, once connected to the I2P IRC server (on localhost).
Several programs provide BitTorrent functionality for use within the I2P network. Users cannot connect to non-I2P torrents or peers from within I2P, nor can they connect to I2P torrents or peers from outside I2P.I2PSnark, included in the I2P install package, is a port of the BitTorrent client named Snark.Vuze, formerly known as Azureus, is a BitTorrent client that includes a plugin for I2P, allowing anonymous swarming through this network. This plugin is still in an early stage of development, however it is already fairly stable. I2P-BT is a BitTorrent client for I2P that allows anonymous swarming for file sharing. This client is a modified version of the original BitTorrent 3.4.2 program which runs on MS Windows and most dialects of Unix in a GUI and command-line environment. It was developed by the individual known as 'duck' on I2P in cooperation with 'smeghead'. It is no longer being actively developed; however, there is a small effort to upgrade the I2P-BT client up to par with the BitTorrent 4.0 release. I2PRufus is an I2P port of the Rufus BitTorrent client.Robert (P2P Software) is the most actively maintained I2PRufus fork. XD is a standalone BitTorrent client written in Go.
Two Kad network clients exist for the I2P network, iMule and Nachtblitz. iMule (invisible Mule) is a port of eMule for I2P network. iMule has not been developed since 2013. iMule is made for anonymous file sharing. In contrast to other eDonkey clients, iMule only uses the Kademlia for proceeding to connect through I2P network, so no servers are needed. Nachtblitz is a custom client built on the .NET Framework. The latest version is 1.4.27, released on March 23, 2016. Nachtblitz includes a time lock to disable the software one year after its release date.
I2Phex is a port of the popular Gnutella client Phex to I2P. It is stable and fairly functional.
Tahoe-LAFS has been ported to I2P. This allows for files to be anonymously stored in Tahoe-LAFS grids.
MuWire is a file-sharing program inspired by the LimeWire Gnutella client that works atop the I2P network.
Bridging to Clearnet
Currently, Vuze is the only torrent clients that makes clearnet (connections not through I2P) torrents available on I2P and vice versa, by using a plugin that connects them to the I2P network. Depending on the client settings, torrents from the internet can be made available on I2P (via announcements to I2P's DHT network) and torrents from I2P can be made available to the internet. For this reason, torrents previously published only on I2P can be made available to the entire Internet, and users of I2P can often download popular content from the Internet while maintaining the anonymity of I2P.
A screenshot of the inbox of I2P-Bote.
I2P-Bote(github) is a free, fully decentralized and distributed anonymous email system with a strong focus on security. It supports multiple identities and does not expose email metadata. As of 2015[update], it is still considered beta software. I2P-Bote is accessible via the I2P web console interface or using standard email protocols (i.e. IMAP/SMTP). All bote-mails are transparently end-to-end encrypted and signed by the sender's private key, thus removing the need for PGP or other email encryption software. I2P-Bote offers additional anonymity by allowing for the use of mail relays with variable length delays. Since it is decentralized, there is no centralized email server that could correlate different email identities as communicating with each other (i.e. profiling). Even the nodes relaying the mails do not know the sender, and apart from sender and receiver, only the end of the high-latency mail route and the storing nodes will know to whom (which I2P-Bote address – the user's IP address is still hidden by I2P) the mail is destined. The original sender could have gone offline long before the email becomes available to the recipient. No account registration is necessary, all you have to do in order to use it is create a new identity. I2P-Bote can be installed as an I2P plugin .
I2P also has a free pseudonymous e-mail service run by an individual called Postman. Susimail is a web-based email client intended primarily for use with Postman's mail servers, and is designed with security and anonymity in mind. Susimail was created to address privacy concerns in using these servers directly using traditional email clients, such as leaking the user's hostname while communicating with the SMTP server. It is currently included in the default I2P distribution, and can be accessed through the I2P router console web interface. Mail.i2p can contact both I2P email users and public internet email users.
I2P-Messenger is a simple Qt-based, serverless, end-to-end-encrypted instant messenger for I2P. No servers can log the user's conversations. No ISP can log with whom the user chats, when, or for how long. As it is serverless, it can make use of I2P's end-to-end encryption, preventing any node between two parties from having access to the plain text. I2P-Messenger can be used for fully anonymous instant communication with persons the user doesn't even know, or, alternatively, to communicate securely and untraceably with friends, family members, or colleagues. In addition to messaging, file transfer is also supported.
I2P-Talk is another simple instant messenger incompatible with I2P-Messenger, but having the same security properties
Syndie is a content distribution application, suitable for blogs, newsgroups, forums and small media attachments. Syndie is designed for network resilience. It supports connections to I2P, the Tor network (Syndie does not support Socks proxies, workaround needed for Tor access), Freenet and the regular internet. Server connections are intermittent, and support higher-latency communications. Connections can be made to any number of known servers. Content is spread efficiently using a Gossip protocol.
Aktie is an anonymous file sharing and distributed Web of trust forums system. Aktie can connect to I2P with its internal router or use an external router. To fight spam, "hash payments" (proof of CPU work) is computed for every published item.
I2PBerry is a Linux distribution which can be used as a router to encrypt and route network traffic through the I2P network.
i2pd is a light-weight I2P router written in C++, stripping the excessive applications such as e-mail, torrents, and others that can be regarded as bloat.
Kovri is an I2P router written in C++. It was forked from i2pd following developer disagreements. Kovri's primary purpose is to integrate with the cryptocurrencyMonero to send new transaction information over I2P, making it much more difficult to find which node is the origin of a transaction request. Those using the Kovri router will be running full I2P routers that contribute to the I2P network the same way the current Java router does. This project is expected to benefit both the Monero and I2P communities, since it will allow for greater privacy in Monero, and it should increase the number of nodes on the I2P network.
The Privacy Solutions project
The Privacy Solutions project, a new organization that develops and maintains I2P software, launched several new development efforts designed to enhance the privacy, security, and anonymity for users, based on I2P protocols and technology.
Release builds of an I2P Router application for Android can be found on the Google Play store under The Privacy Solutions Project's Google Play account or on an F-Droid repository hosted by the developers.
Nightweb is an Android application that utilizes I2P and Bittorrent to share blog posts, photos, and other similar content. It can also be run as a desktop application. It is no longer in development.
Some cryptocurrencies that support I2P are listed below.
I2P's mascot, itoopie, who is looking through a magnifying glass.
Eepsites are websites that are hosted anonymously within the I2P network. Eepsite names end in .i2p, such as ugha.i2p or forum.i2p. EepProxy can locate these sites through the cryptographic identifier keys stored in the hosts.txt file found within the I2P program directory. Typically, I2P is required to access these eepsites.
'I2p' is a pseudo-top-level domain which is only valid within the I2P overlay network scope. .i2pnames are resolved by browsers by submitting requests to EepProxy which will resolve names to an I2P peer key and will handle data transfers over the I2P network while remaining transparent to the browser.
The EepProxy program handles all communication between the browser and any eepsite. It functions as a proxy server that can be used by any web browser.
Peers, I2P nodes
Other machines using I2P that are connected to user's machine within the network. Each machine within the network shares the routing and forwarding of encrypted packets.
Every ten minutes, a connection is established between the user's machine and another peer. Data to and from the user, along with the data for other peers (routed through the user's machine), pass through these tunnels and are forwarded to their final destination (may include more jumps).
A 2017 study examining how forensic investigators might exploit vulnerabilities in I2P software to gather useful evidence indicated that a seized machine which had been running I2P router software may hold unencrypted local data that could be useful to law enforcement. Records of which eepsites a user of a later-seized machine was interested in may also be inferred. The study identified a "trusted" I2P domain registrar ("NO.i2p") which appeared to have been abandoned by its administrator, and which the study identified as a potential target for law enforcement takeover. It alternatively suggested waiting for NO.i2p's server to fail, only to social engineer the I2P community into moving to a phony replacement. Another suggestion the study proposed was to register a mirror version of a target website under an identical domain.
David Dagon presenting at the first I2Pcon.
From August 15, 2015 to August 16, 2015 the first I2P convention was held in Toronto, Ontario. The conference was hosted by a local hackerspace, Hacklab. The conference featured presentations from I2P developers and security researchers.
August 15, 2015 mainly had presentations on the past growth of the I2P network, a talk on what happens when companies sell people's personal information, and a round-table discussion on general privacy and security topics. The day ended with a CryptoParty, which helped to introduce new users to installing I2P, sending secure emails with I2P-Bote, and using I2P along with Vuze.
August 16, 2015 had more technical discussions than the previous day. The talks focused on how to dissuade bad-actors from using the network, how I2P has worked computer connection limits, how to do application development using I2P, and the development of the Android version. This day ended with a development meeting.