I2P ( abbreviation from English. I nvisible i nternet p roject , IIP , I 2 P - project "Invisible Internet ") - an anonymous computer network .
| I2P | |
|---|---|
| Type of | Decentralized Anonymous Overlay Network |
| Developer | I2P Development Team |
| Written on | Java |
| operating system | Cross-platform software |
| Interface languages | , , , and |
| First edition | 2003 year |
| Hardware platform | |
| Latest version | |
| condition | active |
| License | Public Domain , BSD , GPL , MIT , Artistic License [one] |
| Website | geti2p.net/ru/ |
The I2P network is overlay , stable (disconnecting the node will not affect the functioning of the network), anonymous (it is impossible or difficult to determine the IP address of the node) and decentralized [3] (without a central server ). When transferring data between network nodes, encryption is used .
Inside the I2P network, you can place any service (or service) ( forum , blog , file sharing , email , instant messaging system ( chat ), file sharing system , VoIP , etc.) while maintaining the anonymity of the server. The I2P network has http servers ; site addresses are in the pseudo- domain space “.i2p”. Peer-to-peer (P2P) networks can be built on top of I2P networks , for example, BitTorrent , eDonkey , Kad , Gnutella , etc.
Content
Overview
I2P is an anonymous self-organizing distributed network that uses a modified DHT Kademlia , but differs in that it stores hashed host addresses , encrypted AES IP addresses , as well as public encryption keys , and the connections on the Network database are also encrypted. The network provides applications with a transport mechanism for anonymous and secure message forwarding to each other [4] . Although the I2P network sets the main task in determining the transmission path of the packets , thanks to the Streaming lib library , their delivery is also implemented in the originally specified sequence without errors, losses and duplication, which makes it possible [5] to use IP telephony , Internet radio , IP -TV , video conferencing and other streaming protocols and services.
Inside the I2P network, there is its own directory of sites , electronic libraries , as well as torrent trackers . In addition, there are gateways for accessing the I2P network directly from the Internet, created specifically for users who, for various reasons, cannot install the “Invisible Internet Project” software on a computer [5] .
Network Features
The I2P network is characterized by the use of encryption mechanisms, P2P architecture and variable intermediaries (hopes). This method involves increasing the complexity of de-anonymization, MITM attacks and makes packet replacement transparent to the user completely impossible.
Currently, the network element is a kind of implementation of ordinary DNS servers . It differs from the usual DNS in the following things [6] :
- to determine the hash of the recipient, a local address base is used [7] .
- the base of addresses is periodically updated from the name servers, while in traditional DNS the address is determined by a request to it (however, caching has been performed in some operating systems and browsers).
- Subdomains are not tied to the parent domain, however, the address subscription provider is free to restrict the registration of subdomains by permission of the parent domain.
- multiple name servers can be used. In the official implementation of the router, conflicts are resolved according to the “first come, first served” scheme, but it is worth noting that the hash amounts of the recipient explicitly specified by the user in the address bases “privatehosts” and “userhosts” go first - that is, they have a greater impact than subscriptions.
- since the network is peer-to-peer , addresses are hashes that the addressee's hopes (intermediaries) use to address the addressee's intermediaries.
- name servers are located inside the peer-to-peer network, although it is technically possible to update the database from the outside.
- most name servers, in contrast to external name registrars , currently do not require domain registration fees in their database. The main criterion is the availability of the server by the hash of the recipient.
- after the creation of a tunnel for data transmission, its lifetime does not exceed 10 minutes.
- To create a data transmission tunnel, a unique sequence of nodes is selected each time.
Since the network is peer-to-peer and decentralized, the speed and reliability of the network directly depends on the participation of people in the transmission of other people's traffic.
To access I2P, you need to install a router program on your computer, which (de) encrypts, (once) compresses the traffic and sends it to peers in I2P. To work with intranet sites, you must configure the browser to send HTTP packets to a router listening on a specific port . To access the external Internet through I2P, it is necessary to use proxies from within I2P (outproxy), which are currently few. Also, internal sites on the I2P network are accessible from the external Internet through a proxy server [7] .
I2P Network Encryption
The network was originally designed taking into account the assumption that all intermediate nodes are compromised or malicious, therefore a number of active measures were introduced to counter it [8] .
All traffic on the network is encrypted from the sender to the recipient. In total, when sending a message, four levels of encryption are used (pass-through, garlic , tunnel , as well as transport level encryption ), before encryption, a small random number of random bytes is automatically added to each network packet to further impersonate the transmitted information and make it difficult to analyze content and block transmitted network packets. As network addresses, cryptographic identifiers are used , which are public cryptographic keys. IP addresses in the I2P network are never used anywhere and never, therefore, it is not possible to determine the true address of any node on the network [5] . Each network application on a computer builds for itself separate encrypted, anonymous tunnels. Tunnels are mainly of a one-way type (outgoing traffic goes through some tunnels, and incoming traffic through others) - the direction, length, and also which application or service created these tunnels is extremely difficult to figure out [5] . All transmitted network packets tend to diverge across several different tunnels, which makes senseless attempts to listen to and analyze using a sniffer a passing data stream . Also, there is a periodic change (every 10 minutes) of already created tunnels to new ones, with new digital signatures and encryption keys (digital signatures and encryption keys, of course, each tunnel has its own). For these reasons, there is no need [5] to worry about application programs providing encryption of their traffic. If there is a lack of confidence in encrypting programs that have closed source code (such as Skype ), it is possible to solve the problem with IP telephony programs (such as Ekiga ) that transmit traffic in the clear. In any case, the I2P network will carry out four-level encryption of all packets and will secure the transmission / reception of all data [5] .
In the I2P network, all packets are encrypted on the sender side and decrypted only on the recipient side, while none of the intermediate participants in the exchange can intercept the decrypted data and none of the participants knows who the sender is and who the recipient is, since the packet transmitting node can be the sender, or it can be the same intermediate node, and the next node that needs to send this packet can be the recipient, or it can also be the same intermediate node, find out the end points from ravitelya and receiver intermediate node can not, just as it can not find out what happened to the newly transferred to the next node package - if he handled it, or transferred somewhere further, it is impossible to find out [5] .
In I2P networks (for different levels and protocols) the following systems and methods of encryption and signature are used [5] :
- 256 bit AES CBC mode with PKCS # 5;
- 2048 bit El Gamal Scheme ;
- 2048 bit Diffie-Hellman Algorithm ;
- 1024 bit DSA ;
- 256 bit HMAC - Algorithm for enhancing the cryptographic strength of other cryptographic algorithms ;
- 256 bit Hashing SHA256 .
I2P Network History
The I2P project was launched in 2003 to support those interested in a new, uncensored, anonymous means of communication and dissemination of information. I2P is an attempt to create a secure decentralized anonymous network with a short response time and the properties of autonomy, fault tolerance and scalability. The ultimate challenge is the ability to function in harsh environments, even under pressure from organizations with significant financial or political resources. All aspects of the network are available as source code and are free. This allows users to make sure that the software does exactly what it says, and makes it easier for third-party developers to improve network protection from persistent attempts to restrict free communication [9] .
Many of the I2P development team previously participated in IIP projects and Freenet . But, unlike the latter, the “Invisible Internet Project” is an anonymous peer-to-peer distributed communication environment that any traditional network services and protocols , such as email , IRC , HTTP , Telnet , and distributed applications like databases can work with , Squid, and DNS [10] .
Since mid-2013, I2Pd , an alternative open source client for the i2p network, written in the C ++ programming language with differences in the encryption approach, has been actively developed, a team of independent developers is working on it. A brief list of differences from the official client: smaller application size, complete absence of third-party programs in the official assembly, significantly less functionality, integration with C ++ applications, ease of use and installation, inconvenience to configure, economical use of computer resources, as well as higher speed online.
Existing Vulnerabilities
Substitution of nodes
This method of attacking a network can be implemented with a fairly small use of resources (for a successful attack, you need to capture only about 2% of all network nodes). However, this method limits the attack capabilities to capture 20% of all floodfills of the network [11] .
To carry out an attack, an attacker must replace serviceable network nodes (which are already active in it) with compromised ones. To do this, it is necessary to disable serviceable nodes, while replacing them with your own. The attacker should replace the hosts on the main hosts (configured as manual ). It is worth noting that the disabling of the working nodes of the network is not a prerequisite for an attack - the routers of the nodes in the network are ordinary computers of users, therefore they do not always participate in the network, and the nodes are disconnected when the router is rebooted (for example, when updating the software). The network itself does not connect new nodes until new participants are required or there is no shortage of resources. Therefore, for easier replacement of nodes, it is enough to wait until one of the nodes is disconnected from the network, taking its place with its own node [11] .
To speed up the process, along with the expectation of an independent disconnection of one of the nodes from the node replacement network, an attacker can cause an overflow of the task stack at work nodes (the so-called job lag). It consists in conducting a DoS attack on the node. The attacker needs to create many new tunnels through the attacked node in order to further fill his task line with continuous requests through each tunnel. In this case, there is a large delay in the execution of tasks, and the node excludes itself from the floodfill list [11] .
Intercepting the entire tunnel
Tunnels are used in the I2P network [12] :
Tunnels are chains of routers through which messages are transmitted. Tunnels are outgoing and incoming. Outbox is intended to hide the location of the sender, and inbox - the recipient.
In this case, the initial and final position of the tunnel is known only to the recipient and the sender. The remaining nodes of the tunnel know only the next node for data transmission. However, such [ what? ] the judgment is erroneous - in fact, information about the recipient and sender is transmitted along with the message itself in the IP packet (since the data is transmitted over a regular insecure channel). Thus, when gaining control of one of the intermediate nodes, the attacker can obtain information about both ends of the tunnel. The next actions of the attacker can be both the interception of the receiver and / or sender, and the capture of intermediate nodes [12] .
Such a problem is partially resolved by increasing the length of the tunnel, but it greatly slows down the operation of the network for messaging. At the moment, the network uses three-step tunnels, which makes this type of attack practically applicable, since any network node captured by an attacker causes a potential loss of all transmitted packets, but also a starting point for starting an attack on message recipients / senders through this node. Moreover, if a network node is a server or resource controlled by an attacker, then all the tunnels passing through this node are at risk of information hacking / interception [12] .
Exclude Attack
This attack exploits I2P vulnerabilities that are caused by the presence of the properties of P2P networks in this network, namely: unstable operating time of network routers (which are ordinary computers of network participants), as well as some tunneling rules [12] :
- a quota of 10 minutes for the existence of the tunnel;
- the impossibility of the node participating twice in the same tunnel;
- the rule of constructing a unique sequence of nodes for each tunnel;
To conduct an attack, an attacker compiles a list of network routers that are potentially nodes for a tunnel with an attacked end node (the attacked node itself is not included in the list). Next, the attacker begins to send continuous requests to the attacked node in order to find out the time intervals when the router is online. In the case of an active node (current state: “online”), the attacker checks the prepared list of nodes in order to search for inactive nodes among them by sending out one-time requests to each of them. If during the survey of a specific node the response was not received (current state: “offline”), then the router is excluded from the list of nodes. Similar actions are carried out in the opposite case: if the attacked node is inactive, the currently active nodes are excluded from the list. Thus, in the end, the list will consist of constantly active routers. The next stage of eliminating nodes from the list will be the operation of the tunnel construction rules described above: tunnel routers included in the LeaseSet [13] of the attacked node are excluded; the quota for the running hours of the tunnel is also taken into account [12] .
Evaluation of the speed of this method: it will take about 7 days of the algorithm to search 5 thousand nodes of the preliminary list [12] .
Sybil attack
To conduct an attack such as "Sybil attack" just one attacker is enough and a small amount of resources is required. This method provides the ability to capture control over multiple floodfill nodes in a specific area of the key space . Since the attacker cannot quickly launch compromised nodes into the network (for example, using exclusion attacks), this method differs from others in the absence of control over a specific node (without being its owner). In this case, the attacker can generate a large number of node identifiers locally, and then select the most suitable ones for use (those that are closer than any healthy node in the database) [11] .
It takes some time for this attack to bring results, since when connecting a new node to the network, it takes about an hour for this node to process information about other network nodes [11] .
This attack can be used, for example, to block access to network nodes to certain information (for example, a key that points to a node with a specific service). Having compromised the nearest neighbors of a particular node, it is possible to ensure that when accessing this node for the network service address, a request for service uncertainty is returned ahead of time ( original, not knowing the resource) [11] .
The main applications available for use within the I2P network
Below is a list of [14] .
- Susimail ( http: // localhost: 7657 / susimail / susimail ) - mail client
- SusiDNS ( http: // localhost: 7657 / susidns / index.jsp ) - DNS client
- I2Psnark ( http: // localhost: 7657 / i2psnark ) - torrent client
- eepsite ( http: // localhost: 7658 ) - secure websites accessible only on the I2P network through eepProxy .
- I2PTunnel ( http: // localhost: 7657 / i2ptunnel / index.jsp ) is an integrated program in I2P that allows various TCP / IP services to communicate over I2P using tunnels
- http: // localhost: 7657 / tunnels.jsp - tunnel monitoring
- iMule is a free anonymous file sharing network client that uses anonymous connections using the I2P network and the Kad network.
- Floodfill router - routers that have a fully up-to-date NetDB database or close to the current one. They are priority candidates for tunnel nodes. To obtain Floodfill status, it is necessary to support updating the site database to the current one.
- XD is an autonomous bittorrent client for the i2p network. It works through SAM bridge, including with i2pd. [fifteen]
See also
- Anonymous Networks
- Kad network
- Tor
Notes
- ↑ Licenses of I2P software - I2P . Official site of the I2P project. - List of licenses for various I2P software components. Date of treatment March 16, 2014.
- ↑ https://geti2p.net/en/blog/post/2019/07/02/0.9.41-Release
- ↑ Chip Magazine 11/2013, p. 53
- ↑ Anonymity on the Internet // ComputerPress : journal. - 2010. - No. 9 .
- ↑ 1 2 3 4 5 6 7 8 Denis Kolisnichenko. Anonymity and security on the Internet: from the "teapot" to the user. - BHV-Petersburg, 2011 .-- S. 44, 46, 47. - 240 p. - ISBN 978-5-9775-0363-1 .
- ↑ John Snow. Anonymous hosting through I2P: practical tips on using a crypto network . Xakep.ru (July 7, 2011).
- ↑ 1 2 Juan Pablo Timpanaro, Isabelle Chrisment, Olivier Festor. Monitoring the I2P network // INRIA Nancy-Grand Est. - Henri Poincar´e University, France, 2011. - S. 5-7 .
- ↑ Adrian Crenshaw. Darknets and hidden servers: Identifying the true IP / network identity of I2P service hosts // In the Proceedings of Black Hat 2011. - Washington, DC, 2011.
- ↑ Lars Schimmer. Peer Profiling and Selection in the I2P Anonymous Network. - 2011.
- ↑ DeI Abou-Tair, L. Pimenidis, J. Schomburg, B. Westermann. Usability Inspection of Anonymity Networks. - Technical University of Dresden. - 2009. - 76 p. - ISBN ISSN 1430-211X.
- ↑ 1 2 3 4 5 6 Christoph Egger, Johannes Schlumberger, Christopher Kruegel, Giovanni Vigna. 3.2 Sybil attack; 3.3 Eclipse attack // Practical Attacks Against the I2P Network . - 16th International Symposium on Research in Attacks, Intrusions and Defenses (RAID 2013), 2013-10. - S. 8-9.
- ↑ 1 2 3 4 5 6 John Snow. We reveal the secrets of the I2P network . Xakep.ru (September 4, 2014).
- ↑ Juan Pablo Timpanaro, Isabelle Chrisment, Olivier Festor. I2P's Usage Characterization // Research Report RR-7844. - INRIA Nancy-Grand Est, France: Henri Poincaré University, 2011.
- ↑ Andrey Komarov (komarov@gameland.ru). Beyond Invisibility: New Methods for Preserving Ingonito on the Internet // Game Land Publishing House: Journal. - 2008. - No. 120 .
- ↑ XD is a stand-alone torrent client for the i2p network , Web Of Dark - we are the Darknet Speaker (September 6, 2017).
Links
- Official site of the I2P project (Russian)
- Ways to deanonymize eepsite
- Anonymous hosting through I2P: practical tips for using the crypto network - an article in the Hacker magazine.
- We reveal the secrets of the I2P network - an article in the Hacker magazine.
- The I2P protocol stack and a little about TOR - A chapter from Yu. A. Semenov’s book “Telecommunication technologies - telecommunication technologies” devoted to the I2P protocol stack and its comparison with the Tor network.
- I2P Guide for Beginners .
- Video Calling System and Browser for I2P network - Video report at CEE-SECR 2013 (Central and Eastern European Software Engineering Conference in Russia) .