Opened 5 years ago

Last modified 2 years ago

#1362 accepted enhancement

Bote-mail.i2p-internet gateway

Reported by: user Owned by: str4d
Priority: minor Milestone: eventually
Component: other Version:
Keywords: I2P-Bote privacy Cc:
Parent Tickets:


A gateway for mails between internet, mail.i2p and Bote.
ideally open-source and freely available so in the event of it going down, alternatvies need not reimplemented, but can easily be set up by volunteers with the required ressources.

Subtickets (add)

Change History (6)

comment:1 Changed 5 years ago by str4d

On the gateway side, the IMAP and SMTP interfaces make this easier to implement.

On the client side, the trivial case is already deployed: users can add a gateway EmailDestination to their Bote client's settings, and emails with non-EmailDestination recipients will be sent to the gateway.

The trivial case does not account for several issues:

  • Making the gateway known is hard. It could be hard-coded into the source, but that is inflexible. For desktop I2P-Bote, it could be possible to use e.g. Seedless as a gateway distribution channel.
  • Gateways "hobble" the perceived security of Bote. If a user sends Bote emails to a non-Bote address, they have none of the regular security properties of Bote emails (wrt hidden metadata etc.). This is of particular importance when an email is sent to both a Bote address and a non-Bote address.
    • Part of the solution to this is UI-based: making sure the users understand that Bote is strongest when used for Bote-internal communication.
    • But it might be possible to partly mitigate this in the client, for example by integrating PGP into Bote, and requiring that non-Bote addresses have a corresponding PGP public key. Then after sending the email to Bote addresses, the content of the email could be PGP-encrypted before sending to the gateway for forwarding. This would not protect metadata, but would provide a halfway-house to increase interoperability with existing systems.
    • Likewise, Bote clients could perhaps "render" their public key as a PGP key (or have a PGP key linked to their Destination), and transparently strip out PGP encryption from received emails (which would enable encrypted replies via the gateway).

comment:2 Changed 5 years ago by user

very good remarks.
I don't know how big PGP implementations are. so if it'S easy to integrate and does not bloat Bote too much and keeps it maintanable, then icluding PGP would not be bad.
But otoh PGP is widely used and the user likely has it installed on his system anyway.
And a receiver on the internet might really not have PGP, and all that the sender wants is send an anonymous mail to him, caring only about being anon, not about the content of the mail.
Metadata could also be minimized in that kind to a minimum, like omitting sent time - to be discussed.

In case a mail is sent to various destinataries, the sender would likely want to set the others into BCC so that not the entire internt surveillance industry knows with whom you (that anon identity) are communicating with.
So the UI warning about lack of encryption and about visible metadata, to both the gateway itself and internet surveillance could suffice. I like the wording of "Bote is strongest when used for Bote-internal communication". :)

comment:3 Changed 4 years ago by str4d

  • Keywords I2P-Bote privacy added
  • Milestone 0.9.16 deleted

I have recently migrated I2P-Bote's address crypto to use the JCA for ECC and AES, instead of BouncyCastle directly. This means that I2P-Bote will now be bundled with the full BouncyCastle crypto provider (instead of the ECC-only stripped-down classes), and it would be trivial to also bundle the BouncyCastle OpenPGP implementation. It would increase the package size, but the full BC provider has already done that :-P

I have a rough draft idea of how this gateway would operate, which I am discussing with postman. Details will follow once we have something worth posting.

Last edited 4 years ago by str4d (previous) (diff)

comment:4 Changed 3 years ago by str4d

  • Milestone set to eventually
  • Status changed from new to open
  • Type changed from task to enhancement

comment:5 Changed 2 years ago by str4d

  • Owner changed from postman to str4d
  • Status changed from open to accepted

comment:6 Changed 2 years ago by str4d

Migrated to - I will close these tickets as things are resolved rather than right now, but please make future comments on GitHub?.

Note: See TracTickets for help on using tickets.