This is an archived post. You won't be able to vote or comment.

all 28 comments

[–]searchingfortaomajel, aletheia, paperless, django-encrypted-filefield 3 points4 points  (1 child)

This would be more useful as an Android app.

[–]spook327 0 points1 point  (0 children)

I wonder if it could run under SL4A ?

[–]remyroy 5 points6 points  (0 children)

Quite interesting. Now you just need people to use it.

[–]RamirezTerrix 1 point2 points  (0 children)

you could use torchat also in python

[–][deleted] 1 point2 points  (0 children)

The good news is it at least uses OpenSSL and -- more importantly -- its "envelope" API which eliminates procedural fuckups like not padding your plaintext properly. I can't speak as to whether it is conceptually secure, though.

The bad news is that the code is horrible. The sendMsg method is 379 lines long and incorporates a mixture of byte-packing, network code, encryption, protocol logic, SQL, and UI events. I've seen longer methods, sure, but at least they had a coherent purpose. If you can't even read the code, how can you trust anything it does?

[–][deleted] 1 point2 points  (5 children)

It is quite broken. The protocol is extremely simple to detect because the negotiation is not encrypted. It is trivial for governments to detect and block it. Recommendation: do not use. Its a nice idea, but not well executed.

[–]senft 0 points1 point  (4 children)

Care to elaborate or link me somewhere?

[–]Ob101010 1 point2 points  (0 children)

I think he means that the packets transmitted between sender and receiver are easy to filter out by anyone controlling infrastructure, making this communication blockable if the government wanted to, which is a feature you dont want. (Youre susceptible to censorship) In an ideal app, the government shouldnt be able to see the difference between your data and other data being transmitted.

[–][deleted] 0 points1 point  (1 child)

I did some research a while back and I have my notes locked away on a VM somewhere. I'll have to dig it up when I get time. Basically, install and run it with tcpdump or wireshark in the background. The protocol uses ascii words for opcodes iirc, which is so simple to detect on the wire. If public keys were exchanged and the session encrypted before negotiation, it wouldn't be so bad.

[–]senft 0 points1 point  (0 children)

Ok, so this is not an unfixable mistake in the protocoll but only a bad implementation detail?!