# I2P

O Projeto de Internet Invisível (originalmente em inglês: Invisible Internet Project; I2P) é uma rede sobreposta e darknet que permite que as aplicações de software enviem e recebam mensagens para outros na rede e de forma segura, sob pseudônimos. Os usos incluem websites, blogs, sites de vendas online e transferência de arquivos. O software que permite a implementação dessa camada é chamado de roteador I2P e o computador rodando o roteador I2P é chamado de nó I2P. Este software é livre e aberto, sendo publicado sob múltiplas licenças.

## Implementação

I2P é um software beta desde 2003. A comunidade dos desenvolvedores reforçaram que erros podem ocorrer com o software e que ele não foi testado por pares suficientemente até esta data. No entanto, eles acreditam que o código está razoavelmente estável e bem desenvolvido e mais usuários podem ajudar no desenvolvimento da rede I2P.
A rede I2P é restritamente baseada em mensagens (como o Protocolo de Internet, IP), mas há APIs disponíveis para permitir streaming sobre a rede (assim como o protocolo TCP). Todas as comunicações são de ponta-a-ponta criptografadas (no total com quatro camadas de criptografia), e mesmo o destinatário tem sua identidade criptografada como um par de chaves públicas, assim nenhuma das pontas (remetente e destinatário) precisa divulgar seu endereço IP para se comunicar entre si ou com terceiros.
Muitos desenvolvedores do I2P também fizeram parte do Invisible IRC Project (IIP) e Freenet, há significativas diferenças entre os designers e conceitos. IIP é um servidor anônimo centralizado IRC. Freenat é uma rede resistente a censura que usa o armazenamento distribuído. I2P é uma rede ponta-a-ponta anônima distribuída e com o objetivo de rodar qualquer camada dos serviços tradicionais na rede, como: o sistema de armazenamento distribuído, proxy da rede, correio eletrônico e o DNS).
Muitos desses desenvolvedores do projeto I2P são conhecidos apenas por pseudônimos.

### Lançamentos

Versões I2P :
| Versão | Data de lançamento | Comentários |
| 0.9.11 | 02/08/2014 | Suporte para outproxy plugins, melhoras no uso de memória. |
| 0.9.12 | 03/31/2014 | Suporte para ECDSA e atualizações para Jetty 8. |
| 0.9.13 | 05/22/2014 | Melhorias e concertos para o SusiMail com roteamento usando firewall. |
| 0.9.14 | 07/26/2014 | Concertos criticos para XSS e venerabilidade para execução remota. |
| 0.9.14.1 | 08/09/2014 | Melhorias no I2PSnark e terminal console. |
| 0.9.15 | 09/20/2014 | Suporte preliminar às assinaturas Ed25519 do EdDSA. |
| 0.9.16 | 11/01/2014 | Suporte adicionado para roteamento com assinatura forte. |
| 0.9.17 | 11/30/2014 | Atualizações asssinadas e túneis ECDSA por padrão. |
| 0.9.18 | 02/22/2015 | Tempo de inicialização diminuído, latência reduzida usando o protocolo I2P. |
| 0.9.19 | 04/12/2015 | Vários concertos e melhorias na performance quando a rede está cheia. |
| 0.9.20 | 06/02/2015 | Concertos a falhas importantes, várias mudanças para aumentar a capacidade de esgotamento da rede. |
| 0.9.21 | 07/31/2015 | Várias modificações para aumentar a capacidade da rede, melhorar a eficiência quando a rede estiver cheia e uso de banda mais eficiente. |
| 0.9.22 | 09/12/2015 | Melhorias para I2PSnark que fica travado antes de sua completude, começou a migração de rota para a nova e mais resistente assinatura Ed25519. |
| 0.9.23 | 11/19/2015 | Acelerando o processo de produzir novas chaves de criptografia. |
| 0.9.24 | 01/27/2016 | Uma nova versão do SAM (v3.2) e várias melhorias de performance. Primeira versão a requerer o Java 7. |
| Versão estável atual: 0.9.25 | 03/22/2016 | Uma nova versão do SAM (v3.3), códigos visuais QR para compartilhar serviços escondidos, identificadores e famílias de roteamento. |

## Software

Já que o I2P é uma rede anônima, foi desenvolvida para ser usada por outros softwares como um canal de comunicação. E assim sendo há uma variedade de aplicações disponíveis ou em desenvolvimento que usam I2P internamente.

### Uso geral

* I2PTunnel é uma aplicação embarcada sobre o I2P que permite pacotes arbitrários TCP/IP, permitindo aplicações se comunicarem usando I2P apenas configurando um tunelamento o que pode ser acessado se conectado a portas predeterminadas no próprio SAM
* (Simple Anonymous Messaging) é um protocolo que permite uma aplicação escrita em qualquer linguagem se comunicar sobre o I2P, usando uma interface baseada em sockets sobre I2P.
* BOB (Basic Open Bridge) é um aplicativo menos complexo de roteamento similar ao "SAM".
* Orchid é um proxy plugin para Tor.

### Chat

* Qualquer cliente IRC pode funcionar sobre a rede I2P, se conectado a um servidor IRC no computador local se o mesmo estiver conectado a rede I2P.

### Troca de arquivos

* Vários programas permitem o uso do BitTorrent para funcionar sobre a rede I2P. Usuários não podem se conectar a um torrent não-I2P ou a pontos (peers) na rede torrent fora da rede I2P. I2PSnark, incluído no conjunto de instalação de I2P, é uma versão portada do cliente BitTorrent nomeada Snark. Vuze, formalmente conhecido como Azureus, é um cliente BitTorrent que inclui um plugin para I2P, permitindo anonimamente pela rede. Esse plugin ainda está em um estado inicial de desenvolvimento, no entanto, é já suficientemente estável.

### Email

* I2P-Bote é um software gratuito, totalmente distribuído e anônimo, um sistema de e-mail com um forte foco em segurança. Ele suporta múltiplos identificadores e não expõem seu e-mail. É considerado um software beta. I2P-Bote é acessível através da rede I2P ou usando protocolos tradicionais de e-mail (ex.: IMAP/SMTP). Todos os bote-mails são transparentemente criptografados ponta-a-ponta e assinados com a chave privada do remetente, assim removendo a necessidade de PGP ou outros softwares de criptografia de e-mails. I2P-Bote pode ser instalado como um plugin ao browser de sua preferência. I2P-Bote oferece anonimidade adicional ao permitir que o usuário de e-mails com atraso variável. Já que é descentralizado, não existe nenhum servidor de e-mails, diferentes e-mails vão para diferentes canais de comunicação e uma entidade central não pode rastrear todo o fluxo de mensagens entre dois usuários (mesmo que o conteúdo seja oculto). Mesmo na rede não é possível saber a identidade do destinatário e remetente, o destinatário e remetente saberão o identificador um do outro, mas não o endereço IP um do outro, já que tal informação fica oculta pela rede.