21 ms·
I made a distributed, anonymous network for online discussion
It's called Aether: it's a distributed, anonymous and decentralized public space where you can discuss without revealing your identity or being eavesdropped. It has no servers, and it's unblockable.
I wanted to see what HN thought of it—sorry to take your time if out of topic.
Download it here: http://www.getaether.net
A speakerdeck slide introducing Aether:
https://speakerdeck.com/nehbit/aether-a-decentralised-online-public-space
Check out the bitcoin topic! I posted it on reddit earlier today, and there's been some discussion starting up there.
Source code is here: https://github.com/nehbit/aether-public/
What do you think?
- cordite 13y agoI wish the slides were more descriptive of how it functioned. Although I use mac, the lack of linux seems to be something that should be worked on.
- rolleiflex 13y agoI tried to produce Debian and Ubuntu builds, it's mostly working. But the GUI framework I'm using (Qt) has serious problems with tray icons on Debian arch (on Debian, a black line appears instead of icon at tray bar, on Ubuntu, the tray icon appears on the left of the top bar, above Ubuntu's main menu) so I am waiting for them to fix their bugs. Otherwise, it's working out of the box. For more information, here's a totally non-polished, detailed text about how it works. https://dl.dropboxusercontent.com/u/5815330/aether.spec.v0.2.html https://dl.dropboxusercontent.com/u/5815330/aether.spec.v0.2...
- cordite 13y agoThanks! This should satisfy my interest.
- kristopolous 13y agoI'll see if I can get around to helping you with that. Linux software is ok with copious debugging to the terminal and an ugly UI - it will fit in well.
- ThePinion 13y agoSo the only problem is with tray icons? I'd like to test this, but I only have a Linux OS at the moment. Can we get a .deb if we promise to not complain about anything wrong? :)
- rolleiflex 13y agoHey there, I could certainly get you linux binaries if you agree to be my linux beta tester :). The issue with tray icon is that it's pretty critical to application's existence, in that the app needs to stay in the background as long as the computer is open. It's a daemon, essentially. Without a functioning tray icon, it's impossible to shut down the application other than via kill [pid] or another way via shell. If you are interested, please email me (in my HN profile). I'm definitely interested in maintaining Linux binaries or help people maintain them.
- andrewcooke 13y agohow does it know who else to talk to? it seems that by saying things are anonymous you punt on all questions of identity? so there's no way to know that you are joining the forum you expect? another way of saying the above - despite the encryption there's no protection against mitm, right? it uses tls so it's just direct connections? so you're identified by your ip? you say (iirc) that keys are automatically regenerated and not verified. so it's really anonymous (not pseudonymous). so there's no way to be sure two comments are by the same person? even in the same discussion? since the encryption is useless (mitm) yet you're not actually anonymous to an attacker (ip) it seems to combine the worst parts of insecure software with the worst parts of forums (no reliable identities). [edit: sorry, updated the above slightly. ok, so there's some forwarding of messages which makes people more anonymous if an attacker doesn't see all the network. pre-snowden that might have seemed worth something.]
- rolleiflex 13y ago> how does it know who else to talk to? There is a bootstrap node, which you connect to at the beginning of your first boot. Connecting to that node gets you a list of posts and a a list of nodes, like every other sync with any other node. You can opt out of connecting to boostrap node if you have a friend you know to be currently online, and putting his / her ip:port at the settings page of the onboarding. >it seems that by saying things are anonymous you punt on all questions of identity? so there's no way to know that you are joining the forum you expect? The forums only exist as names, there is no way to have two forums with the same name, they will automatically be merged. (There is two bitcoin topics currently, that's a corner case I'm fixing now) But there is no way to know who you are actually talking to, yes. I'm planning to add public key authentication in the future at the point I am reasonably confident the core stack is working reliably and there is sufficient interest. > it uses tls so it's just direct connections? so you're identified by your ip? Yes, it's only direct connections, but when you connect to someone, it also gives you posts from other people the guy you connected to have upvoted. You're identified by your node id, which can hold multiple users. It's probably more correct to say it identifies computers, rather than people. But it's easy to change, just delete the userprofile.json and you'll automatically produce a new one.
- darkhorn 13y agoI was unable to run the installer because I don't have administrative rights. It would be better without need for administrative rights.
- rolleiflex 13y agoThat's a prerequisite for the installer package I'm using (Inno Setup) unfortunately. I'll try to get around that.
- hershel 13y agoDefinitely an interesting project. >> The basic idea is quite simple: if Alice likes a post written by Bob, Alice will upvote it, and thus will start to distribute that post, too, increasing Carol’s chances of coming across Bob’s post. If i get it correctly , your protocol leaks votes data. Assume i'm an attacker connected to Alice. I now know what she voted for. I gather all her voted posts, and can build pretty decent profile of her and probably uncover some of her messages with some more complexity.
- rolleiflex 13y agoVote data is public. That's the only way I can determine what to distribute. I don't get how you can guess what Alice wrote out of her votes, though?
- hershel 13y agoOk. Vote data is public. People usually vote their stuff. You gather all the posts that been voted by alice. You use text analysis software to group those posts into buckets with the same author. If you can do this across a large span of the network you get buckets of anonymous authors and voting patterns. Alice's bucket is the one where everything is upvoted(most likely). That's one way. It's hard to counteract. Even if your software just counteracted this while using something like TOR to supply the rest of the anonimity, it would be pretty cool. Another way: Tap the internet. Gather a list of nodes connected to alice. Connect your nodes to all those nodes. Watch whether message X is first delivered to your nodes from alice or from someone else. If it's first from alice, you got her. Statistically this will catch her at least some times. Anyway,don't get discouraged. anonimity is hard. really hard.
- rolleiflex 13y agoTwo very good points. As you said, Tor can handle the first, but the second is much like the 51% attack on Bitcoin. In any case, if you have a possible solution to the second, I would be glad to have a coffee with you.
- bcl 13y ago* You need to describe how it actually works. Describe the network protocol well enough that someone can re-implement it in their own favorite language. * Your license sucks. Restricting modified code from connecting to the network tells me that your network protocol is fragile and exploitable * How is your system better than Tor and a hidden service?
- rolleiflex 13y ago1) On its way. I'll be launching a protocol spec for anyone to implement their own client. 2) The license is very temporary. I'll switch to an OSS certified license soon. 3) Hidden services still need server resources. This is closer to Bittorrent than Tor.
- sleepybrett 13y agocough http://labs.bittorrent.com/experiments/bittorrent-chat.html http://labs.bittorrent.com/experiments/bittorrent-chat.html
- comex 13y agoNeither open source nor a documented protocol, which makes it entirely unsuitable for many users.
- maaku 13y agoHave you seen Retroshare?
- GhotiFish 13y agoI have. I was very disappointed with it because it was such an utterly massive application to be running in the background all the time. It was 2007 and it was consuming 300MB of ram, that was just not acceptable. Maybe more tolerable now, but still bad.
- RexRollman 13y agoI don't personally believe that anything is unblockable or untraceable. If data can find its way back to you, then you can be found (although it might be very hard).
- rolleiflex 13y agoYou're correct. This just makes harder. These documents are written for laymen, it would be an asterisk-fest otherwise.
- WeMull 13y agoHence the logo?
- morgante 13y agoNicely done. Your demo at DemoDays was pretty cool (http://demodays.co/ http://demodays.co/).
- rolleiflex 13y agoThanks! I need to fix my weird accent, though.
- mbubb 13y agoHmmm - I didn't see the talk on that page... Is there a link?
- rolleiflex 13y agoIt happened a few hours ago. It should turn up in a few days, I think? I'm also waiting for that.
- ksrm 13y agoHow does this compare to bitmessage?
- mmagin 13y agoIs this like Freenet, but less general-purpose?
- rolleiflex 13y agoYes. I'm specifically trying to create a safe, secure and anonymous discussion platform, not a darknet.
- e12e 13y agoLooks interesting. I see you build on webkit among other things -- what are the messages? json docouments? Any provision for attachments? Any range for size of messages (eg: a 700mb attachment -- would that make sense with this)?
- rolleiflex 13y agoMessages are JSON, limited to 65536 characters. (This is a limitation of AMP protocol in Twisted I am using). There are no attachments. This is a text–only protocol. I'm trying to minimize the bandwidth requirements of running Aether.
- mbubb 13y agoI like it - it installed easily enough on Mac. I started browsing around. I really do not have a quibble with the application itself - nor the intended use. Thank you for it I am enjoying playing around with it and am following the project on github. Echoing others I would definately fix the license issue - and do that sooner than later. I have a tangental interest - forgive me if the following is off topic. The last line from the deck: "It requires zero infrastructure" and similar statements in the website got me thinking along a theme. I get that this is a distributed application with encrypted transmission - but it does imply an infrastructure. Once you need an IP; you need a network. I can see lots of applications for this - beyond the reddit/bittorrent model, this would be really useful - aftermath of a hurricane / natural disaster - Occupy wallstreet style demonstrations - Cory Doctorow "Little brother" scenario - etc - any situation where you want ad hoc, encrypted community the problem with those situations is exactly that there is no infrastructure (or not a trusted infrastructure). Locally (for me) there are projects like http://www.milemesh.com/ http://www.milemesh.com/ to try and make sure there are networks for emergency situations. But what if you don't wnat to use an official or semi-official network? Are there distibuted, ad hoc network projects that would work well with this?
- rolleiflex 13y agoThanks for the interest. > Echoing others I would definately fix the license issue - and do that sooner than later. Agreed. > The last line from the deck: "It requires zero infrastructure" and similar statements in the website got me thinking along a theme. Zero infrastructure except a working internet connection. But far as I know those mesh networks also work over IP (at least they seem to) so Aether should have no problems working over a mesh network. The infrastructure need not be trusted— the current Internet infrastructure is not trusted, and it works fine for most applications if used with HTTPS. Aether isn't too different, I'm literally encrypting with the same encryption suite (TLSv1) even.
- zacwitte 13y agoCan't be opened because it's from an unidentified developer https://www.dropbox.com/s/7mnb2gng6a66b9y/Screenshot%202013-11-23%2020.57.48.png https://www.dropbox.com/s/7mnb2gng6a66b9y/Screenshot%202013-...
- rolleiflex 13y agoFollow the instructions on the dmg. After you drag it to Applications, go to Applications and right click on Aether, then select open. It will then allow you to go through.
- ohmygodel 13y agoI think it's cool that you're making usable security software. I do worry that "usable" has gotten more thought than "security", and providing a system that doesn't deliver the security it promises could be worse than not having the software at all. It may end up conveniently serving up those at most risk to their adversaries. As others have noted, anonymity is hard to get right, and the approach here has some serious flaws: 1. It seems that the pseudonymous author of posts can easily be determined by connecting a bunch of Sybils (i.e. multiple clients) to as many other peers as possible and observing who is the first to send new posts by the target pseudonym. And you really can't have a forum without pseudonyms. Users will create them on their own (by including a nickname in their posts) even if you don't build it in. 2. There is an easy so-called "intersection attack" in which the sets of users that are connected at any given time a pseudonymous entity posts are intersected. The actual author will always be present, and the other participants won't be static, and so eventually only the author will remain in the intersection. 3. There is no apparent protocol obfuscation. Despite the use of TLS, the protocol traffic patterns of this new protocol are likely to be highly identifying. They can then be easily confirmed by an active attacker directly connecting to the suspected participant. In addition, it doesn't seem that the list of participants is protected, and so an adversary can just connect to the network to discover who to block or punish. Tor will not solve the problem here if users have to be able to receive incoming connections. And if you're using Tor, then you are relying on an external system that has censorship issues of its own (e.g. access from China is currently extremely limited) and does rely on servers. 4. The bootstrap IPs can obviously be easily blocked. 5. The votes are not anonymous, which is unlikely to be clear to users and which are nearly as sensitive as authorship itself. 6. Denial-of-service here is as simple as flooding the network with "forwarded" posts and votes. Here are some suggestions for designing a system that is secure and that people can trust as being secure: 1. Write a white paper describing the design! This is not a detailed protocol spec - it's a description of how the protocol works at a higher level along with arguments establishing its security properties. This allows others to understand and critique the design. 2. Check out some of the related system designs [0-6]. They have had to deal with the same issues, and you can learn from them. You can get all these papers and more at <http://freehaven.net/anonbib/> http://freehaven.net/anonbib/>. As you can see at that site, people have been thinking about these issues for a while and have figured out a lot! 3. Submit your white paper to a computer security conference. Even if it doesn't get in, you will get feedback from experts. As it is currently, I wouldn't trust my communication to this system. You really need a large and diverse user base to provide anonymity, and so you will have to work at convincing people that this is something they can trust. Good luck! [0] "Membership-concealing overlay networks" by Vasserman et al. CCS09 [1] "Crowds: anonymity for Web transactions" by Reiter and Rubin. TISSEC 1998. [2] "Freenet: A Distributed Anonymous Information Storage and Retrieval System" by Clarke et al. PET 2000. [3] "Traffic Analysis: Protocols, Attacks, Design Issues and Open Problems" by Jean-François Raymond. PET 2000. [4] "ScrambleSuit: A Polymorphic Network Protocol to Circumvent Censorship" by Winter et al. WPES 2013. [5] "Drac: An Architecture for Anonymous Low-Volume Communications" by Danezis et al. PETS 2010. [6] "Tor: The Second-Generation Onion Router" by Dingledine et al. USENIX Security 2004.
- ohmygeek 13y agoI am no security expert but this sounds interesting. I'd love to know how I can compile it from source (Maybe add it to the github README?)
- alixaxel 13y agoNo Linux version?