The Invisible Internet Project
What is I2P?
The Invisible Internet Project (I2P) is a fully encrypted private network layer that has been developed with privacy and security by design in order to provide protection for your activity, location and your identity. The software ships with a router that connects you to the network and applications for sharing, communicating and building.
I2P Cares About Privacy
I2P hides the server from the user and the user from the server. All I2P traffic is internal to the I2P network. Traffic inside I2P does not interact with the Internet directly. It is a layer on top of the Internet. It uses encrypted unidirectional tunnels between you and your peers. No one can see where traffic is coming from, where it is going, or what the contents are. Additionally I2P offers resistance to pattern recognition and blocking by censors. Because the network relies on peers to route traffic, location blocking is also reduced.
How to Connect to the I2P Network
The Invisible Internet Project provides software to download that connects you to the network. In addition to the network privacy benefits, I2P provides an application layer that allows people to use and create familiar apps for daily use. I2P provides its own unique DNS so that you can self host or mirror content on the network. You can create and own your own platform that you can add to the I2P directory or only invite your friends. The I2P network functions the same way the Internet does. When you download the I2P software, it includes everything you need to connect, share, and create privately.
An Overview of the Network
I2P uses cryptography to achieve a variety of properties for the tunnels it builds and the communications it transports. I2P tunnels use transports, NTCP2 and SSU, to hide the nature of the traffic being transported over it. Connections are encrypted from router-to-router, and from client-to-client(end-to-end). Forward-secrecy is provided for all connections. Because I2P is cryptographically addressed, I2P addresses are self-authenticating and only belong to the user who generated them.
I2P is a secure and traffic protecting Internet-like layer. The network is made up of peers ("routers") and unidirectional inbound and outbound virtual tunnels. Routers communicate with each other using protocols built on existing transport mechanisms (TCP, UDP, etc), passing messages. Client applications have their own cryptographic identifier ("Destination") which enables it to send and receive messages. These clients can connect to any router and authorize the temporary allocation ("lease") of some tunnels that will be used for sending and receiving messages through the network. I2P has its own internal network database (using a modification of the Kademlia DHT) for distributing routing and contact information securely.
About Decentralization and I2P
The I2P network is almost completely decentralized, with exception to what are called "Reseed Servers," which is how you first join the network. This is to deal with the DHT ( Distributed Hash Table ) bootstrap problem. Basically, there's not a good and reliable way to get out of running at least one permanent bootstrap node that non-network users can find to get started. Once you're connected to the network, you only discover peers by building "exploratory" tunnels, but to make your initial connection, you need to get a peer set from somewhere. The reseed servers, which you can see listed on http://127.0.0.1:7657/configreseed in the Java I2P router, provide you with those peers. You then connect to them with the I2P router until you find one who you can reach and build exploratory tunnels through. Reseed servers can tell that you bootstrapped from them, but nothing else about your traffic on the I2P network.
I see IP addresses of all other I2P nodes in the router console. Does that mean my IP address is visible by others?
Yes, this is how a fully distributed peer-to-peer network works. Every node participates in routing packets for others, so your IP address must be known to establish connections. While the fact that your computer runs I2P is public, nobody can see your activities in it. You can't say if a user behind this IP address is sharing files, hosting a website, doing research or just running a node to contribute bandwidth to the project.
What I2P Does Not Do
The I2P network does not officially "Exit" traffic. It has outproxies to the Internet run by volunteers, which are centralized services. I2P is primarily a hidden service network and outproxying is not an official function, nor is it advised. The privacy benefits you get from participating in the the I2P network come from remaining in the network and not accessing the internet. I2P recommends that you use Tor Browser or a trusted VPN when you want to browse the Internet privately.
Comparisons
There are a great many other applications and projects working on anonymous communication and I2P has been inspired by much of their efforts. This is not a comprehensive list of anonymity resources - both freehaven's Anonymity Bibliography and GNUnet's related projects serve that purpose well. That said, a few systems stand out for further comparison. The following have individual comparison pages:
The I2P Software
When you install the I2P software made available at geti2p.net, you are actually installing an I2P router and an accompanying bundle of basic applications. The I2P Java distribution is the first I2P software gateway and has been actively developed since 2003.
The applications are made available through a webUI, which listens at 127.0.0.1:7657, and the main page of which is called the “Router Console,” where you monitor the health of your connection to the network and access applications to use on the network.
What is included:
The Set Up Wizard: When you download the I2P software, a set up wizard will guide you through a few configuration steps while your router is making its first connections to the network. This happens the same way that your home router connects you to the Internet. During the set up process, you will be given the option to test your bandwidth and set your bandwidth limits in order to ensure a good connection as a network peer.
The I2P Router Console: Here is where you can see your network connections and information about your router. You will be able to see how many peers you have, and other information that will help if you need to troubleshoot. You can stop and start the router as well. You will see the applications that the software includes, as well as links to some community forums and sites on the I2P network. You will receive news when there is a a new software release, and will be able to download the latest version here as well. Additionally, you can find shortcuts to other available applications. The console is customizable and includes a default light theme with a dark theme option.
SusiMail: SusiMail is a secure email client. It is primarily intended for use with Postman’s email servers inside of the I2P network . It is designed to avoid leaking information about email use to other networks. SusiMail is bridged so it can send and receive email from the internet as well. Occasionally you may see some services like Gmail classifying it as spam, which you can correct in your Internet email service providers settings.
I2PSnark (geti2p.net): Snark is an I2P network only BitTorrent client. It never makes a connection to a peer over any other network.
The Address Book (geti2p.net): This is a locally-defined list of human-readable addresses ( ie: i2p-projekt.i2p) and corresponding I2P addresses.(udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna.b32.i2p) It integrates with other applications to allow you to use those human-readable addresses in place of those I2P addresses. It is more similar to a hosts file or a contact list than a network database or a DNS service. There is no recognized global namespace, you decide what any given .i2p domain maps to in the end.
The QR Code Generator: Besides the Address Book, I2P addresses can be shared by converting them into QR codes and scanning them with a camera. This is especially useful for Android devices.
I2P Hidden Services Manager (geti2p.net): This is a general-purpose adapter for forwarding services ( ie SSH ) into I2P and proxying client requests to and from I2P. It provides a variety of “Tunnel Types” which are able to do advance filtering of traffic before it reaches I2P.
Applications Outside I2P to use with I2P
Mozilla Firefox (geti2p.net): A web browser with advanced privacy and security features, this is the best browser to configure to browse I2P sites.
Chromium (geti2p.net): A web browser developed by Google that is the Open-Source base of Google Chrome, this is sometimes used as an alternative to Firefox.
BiglyBT (biglybt.com): A Feature-Rich bittorrent client including I2P support and the unique ability to “Bridge” regular torrents in-to I2P so people can download them anonymously.
OpenSSH (openssh.com): OpenSSH is a popular program used by systems administrators to remotely administer a server, or to provide “Shell” accounts for users on the server.
Git (geti2p.net)/Gitlab (geti2p.net): Git is a source-code control tool which is distributed, and often recommends a fork-first workflow. Hosting source code on I2P is an important activity, so Gitlab-specific instructions are available for all to use.
Debian (debian.org) and Ubuntu (ubuntu.com) GNU/Linux: It is possible to obtain packages for Debian and Ubuntu GNU/Linux over I2P using apt-transport-i2p (i2pgit.org) and apt-transport-i2phttp (i2pgit.org). In the future, a bittorrent-based transport may also be developed.
Applications for Developers to create new things
The SAM API Bridge (geti2p.net): The SAM API is a language-independent API for writing applications that are I2P-native by communicating with the local I2P router. It can provide Streaming-like capabilities, Anonymous Datagrams, or Repliable Datagrams.
The BOB API Bridge (geti2p.net): This is a deprecated technology, BOB users should migrate to SAM if it is possible for them to do so.
The I2CP API (geti2p.net): Not strictly an application, this is how Java applications communicate with the I2P router to set up tunnels, generate and manage keys, and communicate with other peers on the network.
Available for the following systems
Windows
Mac OS X
Linux
Debian and Ubuntu
Android
(post is archived)