[ANet-devel] Re: I'm *SO* impressed by FreeNet!
Status: Abandoned
Brought to you by:
benad
From: Dale T. <dal...@88...> - 2000-12-06 02:17:34
|
Hi, The point is the entry point of the data into the network. The orginator of the message is hidden by the use of the public key encryption. When you send something encrypted with the public key only the reciever can decrypt it. It is not known who sent the message. Once the last node has recieved the message it is then introduced into the network - so the originator is not known. I'll illustrate what I mean with an example. There is a chain A -> B -> C -> D. A wishes to send data to D. A takes the data and encrypts it first with D's public key, then C's then B's and sends it to B. B decrypts the data and sees that the encrypted messages is for C and therefore forwards it. C decrypts the data and sees that the message is for D and forwards it. D decrypts the data and then broadcasts it to the whole network with no way of telling the originator of the message. Unless B, C & D are malicious and all working in concert, no one can tell where the message originates from. Dummy packets will have to be sent to prevent traffic analysis. In your scheme how is A kept anonymous from B? You do not cover this in your documentation. If someone is sniffing the network between A and B they will see when a query originates from A and therefore know what A is looking for. Without public key encryption how will this information be hidden? UDP is blocked by most firewalls. If used it would drastically reduce the usefulness of the application. So I assume that you would be using TCP which means that adjacent nodes would have to know each others IP addresses. With that information you can find out who owns that address and then the ISP's logs can be used to find out who you are. You have know way of knowing which nodes are malicious and therefore you cannot just simply switch to another node. I'd recommend that you get a copy of 'Applied Cryptography' by Bruce Schneier (ISBN: 0471117099). It contains many different explanations of security analysis and techniques. I don't know anyone that hasn't found it useful. thanks, - Dale PS The RSA patent expired on the 20th September this year. OpenSSL contains an industrial strength, open source, implementation of the RSA algorithym. PPS Export restrictions have been drastically reduced. Have a look at: http://www.mozilla.org/crypto-faq.html All legal issues can be circumvented by using developers in countries without export restrictions. On Tue, Dec 05, 2000 at 07:41:49PM -0500, Benoit Nadeau wrote: > >How else can you enter information into the network anonymously? I was > >thinking of a similar approach using recursively wrapped RSA encryption. I > >was going to add some features that would make the network harder to spam. > > Distribute the data like a query. Remember, there is no trace, or more precisely no way for a node to ask from another node: "Where this came from?". There is no backtrace as in FreeNet. This is the very basic (and brillant) idea behind the queries in Gnutella, and why ANet is a kind of distributed networking. > > BTW, RSA is not free, not open source and not exportable at all (unless you stick with 56 bits). Avoid it like plague. > > > >How would you solve the problem? In the scheme you have preposed (2.7 > >Anonymous two-way data flow) you must trust the proxies for anonymity to be > >maintained. For example the proxy you connect to could be malicious and would > >know who you are communicating with. Without using encryption how would this > >be avoided? > > No. Proxies cannot know either where the data comes from at its origin or where is its final destination. There is no backtracing! In the example, (A B C D...E F G H, if I remember correctly), D and E know the exact IP of each other, but they can NEVER know that A and H are the end points in the data flow. They only know the existence of the previous node (C or F) if the chain, and that's it. I think I explained all this in the docs... > > Anyways, if the proxies are trying to "screw up" the data, just re-establish the connection with other proxies. And if you don't want the other nodes to peek at your data, encrypt your file before sending it. Isn't that something obvious? That's why I didn't even thought about writing this in the docs. > > Please, stop reading the docs of FreeNet. ANet is so different that it will confuse you. It seems that you assume there is some kind of backtracing like in FreeNet or IP. Also, you seem to not really understand what makes ANet anonymous: each node behaves the same way with the data, so that there is no way to distinguish the originator from all the other nodes in the network. True, everyone knows the contents of your query, but who cares, no one knows where is comes from! The exact same idea is used with static data. Again, static data is NOT for files. You keep your files on your hard disk, and that's it. > > IP addresses of the originator or the destination are never, ever know. IP addresses for the nodes, the proxies and the gateways (I'll talk about this in part 3, later this week) are known, but that still doesn't give any hint to where the data comes from or is destinated. > > After all, ANet is totally unlike FreeNet and very similar, in its basic idea, to Gnutella. So, reading docs about gnutella might help you understand what I mean. > > - Benad > > > _______________________________________________ > ANet-devel mailing list > ANe...@li... > http://lists.sourceforge.net/mailman/listinfo/anet-devel |