[tor-dev] GSoC 2017 - unMessage: a privacy enhanced instant messenger

Felipe Dau dau at riseup.net
Tue Mar 28 19:23:16 UTC 2017


Hello,

I am a Computer Engineering student at the Federal Technological
University of Parana in Brazil and I would like to present you a
peer-to-peer privacy enhanced instant messenger called unMessage [0].
I have been working on it for a while with David Andersen [1] (my
advisor) and we have recently released an alpha version which should
be easy for developers to install and test.

It uses the Double Ratchet Algorithm [2] for encryption, Onion
Services for transport metadata minimization, its own protocol for
application metadata minimization, and as a result, provides private
and anonymous conversations. It currently has basic features such as
message exchange, user authentication and we very recently enabled
voice chat using the Opus codec [3] for constant bitrate encoding.
unMessage is a Python application that mainly uses pyaxo's [4]
implementation of Double Ratchet Algorithm and txtorcon's [5]
implementation of the Tor Control Protocol.

Since its current (alpha) release, we have been discussing it with
Patrick Schleizer [6] and HulaHoop [7] from Whonix [8], who are making
great contributions to help us test it, as well as suggesting new
features and improvements. We are also working to run it on Whonix
(which will also allow it to be run on Tails) with help from
meejah [9] by adding a new feature to txtorcon to make unMessage (and
all the apps that use txtorcon) "Control Port Filter friendly".

As we believe unMessage has potential to become a great privacy
enhancing app with a code that is simple, readable and therefore easy
to maintain, Patrick suggested that I submitted a proposal to have
unMessage as one of the GSoC projects. We expect to implement fixes,
improvements and features from our discussions in order to turn it
into a maintainable, feature-rich and useful app which the community
can benefit from.

There are currently some "developer centered" tasks I can work on
such as:

- Create a test suite (with pytest)
- Make unMessage's own functions/methods behave like a Twisted API
  should
- Use automat for its finite-state machines
- Make use of a logging tool
- Improve comments/document the code

As well as some "user centered" tasks:

- Whonix/Tails support
- Improve the GUI and CLI
- File transfer
- Use a friendlier approach for users to handle keys instead of
  the current base32/64 encodings
- Connect/launch Tor automatically depending on what is available
- Offline messages

(All the other ones can be found in the issue tracker [10])

My intention with this post is not only to present unMessage to
tor-dev but also see if someone is interested in mentoring me as it
is not one of the official ideas but hopefully sounds like a good
project. If someone gets interested, please let me know so that we can
discuss which tasks would be interesting for this project and I am
able to write a proposal.

Thanks!
-Felipe

[0]: https://github.com/AnemoneLabs/unmessage
[1]: https://github.com/rxcomm
[2]: https://whispersystems.org/docs/specifications/doubleratchet
[3]: https://opus-codec.org
[4]: https://github.com/anemonelabs/pyaxo
[5]: https://github.com/meejah/txtorcon
[6]: https://github.com/adrelanos
[7]: https://github.com/HulaHoopWhonix
[8]: https://whonix.org
[9]: https://github.com/meejah
[10]: https://github.com/AnemoneLabs/unmessage/issues
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: Digital signature
URL: <http://lists.torproject.org/pipermail/tor-dev/attachments/20170328/11635010/attachment.sig>


More information about the tor-dev mailing list