Go to file
Kevin Froman e658da13be * Added full utf-8 support via base85
* removed connection established message, apps can send that themselves (yam util does)
2020-04-30 14:44:31 -05:00
src * Added full utf-8 support via base85 2020-04-30 14:44:31 -05:00
tests * Added full utf-8 support via base85 2020-04-30 14:44:31 -05:00
.gitignore updated gitignore 2020-04-23 04:29:35 -05:00
.travis.yml added tor build dependencies apt install 2020-04-23 04:55:39 -05:00
CHANGELOG.md * Added full utf-8 support via base85 2020-04-30 14:44:31 -05:00
LICENSE initial commit 2020-04-16 06:41:49 -05:00
Makefile added stuff for CI 2020-04-23 04:36:55 -05:00
README.md added stream.py, still need func to add to stream 2020-04-29 01:41:29 -05:00
dummy.png fixes and added images 2020-04-20 06:15:19 -05:00
logo.png improved readme# 2020-04-25 03:16:34 -05:00
no-dummy.png fixes and added images 2020-04-20 06:15:19 -05:00
requirements.in added stuff for CI 2020-04-23 04:34:51 -05:00
requirements.txt added stuff for CI 2020-04-23 04:34:51 -05:00
run_tests.sh initial commit 2020-04-16 06:41:49 -05:00
setup.cfg initial commit 2020-04-16 06:41:49 -05:00
setup.py * Added full utf-8 support via base85 2020-04-30 14:44:31 -05:00

README.md

Build Status

Only you and the person you're talking to should know the details of the conversation. This includes metadata.

This is a Python library to share data anonymously and securely* with limited traffic metadata. It is designed for generic byte streaming over a private tunnel, using Tor onion services..

This library is meant to be used by other libraries or applications, however a script 'yam' is included to enable basic CLI instant messaging.

* The ID one connects to a host with must be shared via a secure (private, authenticated) channel.

install 📥

$ pip install youandme

You also need a recent Tor daemon in executable path. 0.4 Tor is what is tested. https://www.torproject.org/download/tor/

basic chat usage 💬

$ yam.py host

This will start a bare-bones CLI-based chat and output an address to be given to a friend.

The friend connects:

$ yam.py conn --address <address>

purpose 🧑‍🤝‍🧑

In normal socket connections, Eve can see when Alex and Bob communicate and the size of their communications.

This library sends continuous streams of data (null bytes) even when no information is being communicated, in order to increase unobservability of transmission times and packet sizes.

Anonymity and encryption is provided via Tor onion services, though this library could easily be adapted to use plaintext (and encryption by an application) or another relay like I2P.

security 🔒

As stated above, this library does no authentication. However, if the ID is shared privately and safely, the tunnel will have roughly the security of a Tor v3 onion service, with increased metadata unobservability.

That said, one should not rely on any software when the stakes are too high.

what an attacker sees in a normal Tor connection

what an attacker sees in a youandme connection

Limitations + Road map

This project will forever follow the KISS principle, but these two three will be addressed.

  • Multi-byte character support (full utf-8 support)
  • Tor bridge support
  • Support non-anonymous hidden services. Mainly useful for certain development needs