Firestr: encrypted P2P chat and Lua application platform
mempko.com
mempko.com
There's one based on IPFS and blockchain that's a distributed video sharing app, like Youtube: https://github.com/eris-ltd/2gather
And there are some other decentralized / alternative Internet projects listed here (including Firestr): https://github.com/redecentralize/alternative-internet/blob/...
d7:address24:udp://192.168.0.100:60602:id36:8158a718-a69b-4551-afc6-a5d42d1651854
:name9:fannytown4:pkey800:
-----BEGIN PUBLIC KEY-----
<key gibberish>
-----END PUBLIC KEY-----
;15:mempko.com:8080ZDc6YWRkcmVzczIzOnVkcDovLzE5Mi4xNjguMS43Mzo2MjcyMjppZDM2OjkxZmIz MGNkLWM0MzUtNGZhNi1hNzYxLTFkMWZlZGExYTg4ODQ6bmFtZTEzOm1lbXBrby1s YXB0b3A0OnBrZXk4MDA6LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQ0lq QU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF4UXp5czVBem1z NU9OdGFWOGdMdgpONDVTY2RzUVN5aytUeDVRaEFEVFBtZXVqNWowMEZzcFBQbjFk RGNXOTlFNGRjYXJ0VlNKNDVDSnJhYnRScHRkCk1xak5rWnV2R2VhcytOaTZldGJj ZVFzekZ3MGc0OURZSkIrWkpvcmxDL0l6TEI3UkRCdXJzSDFIRnltQjYwYk8KZmtQ aEJkdGRPWjRucXZJWGMvU3l4cDZXWjNEUGRrVFlRSlVwYXpJWi9nOVRZWkNubk9B V010eSs4c21LTlBSWgo3a3FxSXk5N1NEejErS2cyWnBFMDJwT05WeWJKWEY1eWpu QlJtY2dKQ2hWb3diZGNwZVAzMU15UUR0UW1FNDFWCkN4MlQ4cFkyN0h3NW9ndFZj Yk1wZGJHbzFuRzVmOUowdmdWcFVhMndldlVjNWgvTHFDZnM3WkJNcEVhczlhei8K Um9ET2UvRVBTSkJYOWhmZHo5VXVRcUZlV3ExbGsvekJlQTRSWGJJTUxRR1d4ei8w eWpsNEtRR0g5dVNueVB3UgpjQURvYXdRYUVheDRoUDFKcVg4K3JDNURpdG01MEhq TnRMb0liQVZMZ3RGMG5DU1VoUFZOSndHOGtBTTM1cVFLCjdURnZXQlpXbEkxRGdo Y1dVWkRoTmpFTDZCaFpRenlNR1hIT3U0WnQzamFVWXFyd0VQTDJXQTdMRWVSNUlT VnMKQWozNUdLdmxJeStab3haeFBkWjFCYy9wc0hJVERVM0lpTUdWdGE2TGhTb1Nw T2xBMmkvVCsvSXlVcnR2eitNaAorZ0J6QVVsRkJ2a1NGd04wNmtpZXpzRituR2I0 TS9RZGpZOTd0bnRvOUEyQytJNDdpc3FHL1RTOHlTOXdzd2NtCmxtUGRNdWJKcjVt Ri9qL09CUHNEcURFQ0F3RUFBUT09Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQo7 MTU6bWVtcGtvLmNvbTo4MDgw
"Secure: Fire★ encrypts your connection, so the only people who see what you're working on are those you want to."
It says that the connection is encrypted, which sounds like SSL/TLS?
If you're still considering protocols, I'd consider the TextSecure V2 protocol. The documentation isn't crazy in-depth, but it's a really neat protocol that offers forwards and future security.
https://github.com/WhisperSystems/TextSecure/wiki/ProtocolV2
If you want another, simpler transport that works better for more connected scenarios, like this one, ask trevp who did that: he has a very promising-looking one in the design phase.
If I can give any advice: security doesn't make a good afterthought, especially when encryption was the first word you mentioned. It's a foundational feature; treat it as one. Pick primitives that make the best, most solid foundations you can get, and do your best to make sure you can rely on them. As for the rest, extensibility needs careful thought: it can be easy to extend yourself into vulnerabilities.
Best of luck. You have an interesting project. I might keep an eye on it.
There are some aspects to security that I took that extend to the code. It is written using design by contract, where if a contract fails, the program quits immediately. Security should extend beyond the protocol.
As I mentioned previously, long term I won't be using a handrolled protocol, which has obvious problems. This software is alpha and I hope to migrate before 1.0
libotr is a very good implementation of OTR (in c) [1]. I don't think performance would be a big issue on modern hardware. OTR does offer future deniability in case one of the parties gets compromised. I didn't see the same guaranty in telehash (I might have missed it).
I think they are both fine platforms but I'm far from being an expert. For anyone who is interested in the documentation I was referring to: telehash [2] and OTR [3].
[1]https://otr.cypherpunks.ca/index.php#downloads [2]https://github.com/telehash/telehash.org/blob/master/v3/spec... [3]https://otr.cypherpunks.ca/Protocol-v3-4.0.0.html
I just created one:
ZDc6YWRkcmVzczI0OnVkcDovLzEwLjE4MS4xNC4yMjk6NjA2MDI6aWQzNjo5NDBh NTVmYS1jOTM0LTRkYTItOTBjNS02NTVlY2QyZWQwYjY0Om5hbWUxNDphZGFtLmll cnltZW5rbzQ6cGtleTgwMDotLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQpNSUlD SWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXY3YStvc3RP UHIrTUo0bno1Um5KCjZTWTkrWDJNaVBTRkVmbEFDcFJLaWIyMyt4T0hJNDlaYXBk WThmQTAyV2NUVlVjdzBmNmpvL0sySSthNFd0V3cKeWFmNVRDY1lEdjVLaW5RNU9N UU1wc2xrMkxxTFRmRGt2M3AzT3p2NDBFUEExNFRUb09ha3VkQTNyZTdxMDVvdgpF clF2dnlQVkc4YzZQbHM1NjFmZ2ZoUlk2M0dJL2ZTUiszSzA1TThvTFkvb0ZDZ1Bp UDQydVVkbW5BMGdEZjU0CnV2STg4c1V6d3hhbE5jU2p4U0swTGpHWjUrQ1FpSzRm TU5xbk9reW0rT3VQbUpSakdDMTBLZWEwWkdqVmdLSGMKT3FSTUJhNWxiZ25zS3R4 WVM0aDdTRnp6Ym1GZG8zNUN6M29OSHQxYmtPc3RtblNwa0RhWUlyUC83Z2tnUEps dQpSSzlMWFA5dzBQNlRPQlVOVCtUWnhxTzdibHNMb2g3SHU0WmxyeTZSS1RPWk9B ZnFNOU9ZbVpIbFlIUU1CLzJYCjZCaVNhK3Q0MUYrek5YYURPSUYyemh4bm1EcHBn M0lWOGlxL0dBUGs2a1BSdjJtZ0szYWd5Z2NhQlhPdE13VDMKWnhCRWNacklpSjhu STE5YTZoVW9jQUNPanNEOGFCRW5Yb2U5c3MyN01PZ282Y0lHLzV1Z2RrUzBwMXlF UnJCVgpRcXJZR09iM0hUakQ3SkdMOUczbFJ1a0JmQWhucHZHSm5yWE1BRzh3OGdi QmtKZVRIcTV1eWNBdkhBaERmNkR4CkZIM1hPWHdaZENlVThxeGRMMjQxblNJaFMr WCtaU3lrQk51cENKUlhkQm9CemlBVHFvdVFEdjJTSlRTZDBRQ1kKRVN4Mk9iUlBX V2lDbzFQQTFnd2V5cUVDQXdFQUFRPT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0t CjsxNTptZW1wa28uY29tOjgwODA=
I've created a github gist with my public key and a signature. Now people can see that gist and verify that the keyholder posted the signature via my github account. People can fork the gist and put their own signature in. Now I can easily list the forks of my gist and get a list of public keys that are cryptographically linked to certain github accounts.
ZDc6YWRkcmVzczIyOnVkcDovLzE5Mi4xNjguMS44OjYwNjAyOmlkMzY6ZWRiZmI5 OTgtOWExZi00MGIwLTkxZjctZDVkNzM4ZmQwNGY2NDpuYW1lNTphdG1hbjQ6cGtl eTgwMDotLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQpNSUlDSWpBTkJna3Foa2lH OXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTEzZ3FZU3JNSFlOQUNoVGY4N2Q5 CitGam96eEJnalBpT09QcnFuNHllNjdSdGl2aFlBWURCeGYxMi9YUjIzZGxPSG9i dkJ4aGZBc0pxVVJVZ0lTMmcKSlJzajZGWWRFZGd5YnFoME5EbzRnNXQrRi9qYk1Z bFF5eWtITWNCSGw4RmRjcWZhNllrenR0K2xBSFNYdnppbwovNWluQnZEUDJuYW1I TW11WC9Pb0hIZzRHQ0NkSjdGSi9NSWlIa2ZPV0h0bVEzdTJYdmNDWEd4MXptVjJS OGR5CmovU0RkNDNqdytsTCtOZTZRMENWaVZ1VFdKRTZHM2RQTEY4Y202eHg5SWl5 c1Q4cHlnaXdVYTc0Q3pscDFpWTcKVldvR0ZRY0RQYzZPTSszUHovZ0gvTkpGUlVE bUJMdWNJd3JmUkJFY3h4b0FxRS9od0p1enZZR0QvNGdlL3YwVAo3Z1lLOW9QMG0w WVdPa1RpRGgwQkQ0R0xXMkE5Q3h3UnRMRlpWWDBPZVN5S2paTXVXWTVCV3ZOaktz QnZONHdQCnFWR09HLzRXallDR3RBQUkvaFV3S3ZPZmRyWlVQcVV6SGQyZWU4ZjFt MGkwckloWElYODFwWDl0a3Bpd0dRMUoKSW1HMlZkK3NJUzFCd0MyekJYbkpuOWx2 MUdicE5nZDZMTUFsa1hTZFJSZXlDQ21tM2o2b3BpckJpaVlieW1sRgpuVlRVR0FW QVVlblZOMThkZzNsditXUmwvdmRSdFV2L0luUmxCVDEvaWUrb3QrblJ6LzJSV292 YXY3T2Z4VjlUCk10MjBRMkRRTkJWYzJxazVzWHVKdklTcWQ3Y0xiWXFwcUFROG5Q dG9kelFJTUJkSnNta2ErU0Y0eVhFeVV3S2IKbVdZT0VGKzExbFRJUDh4OEJ0dHNE Uk1DQXdFQUFRPT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCjsxNTptZW1wa28u Y29tOjgwODA=
Let's play!
I also disagree that you always need mobile for everything. This seems geared toward communicating and collaborating, so yes mobile would be a must for mass adoption. But if it's geared toward devs or professional work that's not necessarily true.