Planet Peer - The anonymous networking community
September 03, 2010, 03:30:52 AM *
Welcome, Guest. Please login or register.

Login with username, password and session length
 
News: Planet Peer - The anonymous networking community
...because anonymity is better ;-)
 
   Home   Help Search Calendar Login Register  
Pages: 1 [2] 3 4   Go Down
  Print  
Author Topic: Rodi 0.3.60 released [23.03.06]  (Read 24253 times)
0 Members and 1 Guest are viewing this topic.
larytet
Advanced
***

Karma: +0/-0
Offline Offline

Posts: 143

Planet Peer Community


View Profile
« Reply #15 on: May 07, 2005, 11:42:55 PM »

currently there is only one algorithm of NAT penetration supported
Here the steps you have to follow
- run/find another Rodi peer with known outside world IP address and port. let's assume IP address of the remote peer is 61.1.1.1 and port 53
- execute command
Code:
nat open 61.1.1.1 53 53 1
this commad will execute nat penetration task using destination address 61.1.1.1 and range of ports from 53 to 53 (in our case only one port). NAT Penetration will use 1KByte/s of your upstream when attmpt to connect and about 0.1KByte/s to keep the hole in the NAT open
When completed NAT will print something like
Code:
NAT: penetration done 
IP header              /192.168.1.1:53
Payload IP src         192.168.1.1:53
Payload IP dest (my)   68.31.18.1:12011

your external address is in the last line - 68.31.18.1 port 12011. these are the numbers you have to put into form.

NAT penetration is somewhat tricky. but i guess that if you are behind firewalls and multiple proxys Rodi is the only P2P application where you can hope to get solution. in the current version there are some limitations. For example, you need external host to find out your "real" IP address and port. IP address is (usually) not a problem (see http://larytet.sourceforge.net/printIp.php), but port is allocated dynamically and you need help to figure your port out.

i promise nothing, but we can try the following
run NAT penetration using any IP address, for example www.cnn.com
Code:
nat open www.cnn.com 53 53 1
send me your real outside world IP  as reported by  http://larytet.sourceforge.net/printIp.php (x.x.x.140) i can try to run port scan and find the port you have

you see the problem is that Rodi network is not populated. i failed to find any person ready to run the client 24/7 for considerable time and i need 2 or 3 such peers to help NAT penetration. Two Rodi peers who control their firewalls do not need any help from outside to find each other, but peers behind NATs do.

i keep table of hosts or identification server on SF.net server, which is a development server and is not designed for such tasks as real-time databases of hosts. half year i am looking for anybody to run PHP code code of the identification server. only a week ago one person (from France) contacted me, but server is not available yet. It will be ready in July.

« Last Edit: May 08, 2005, 01:15:02 AM by larytet » Logged
larytet
Advanced
***

Karma: +0/-0
Offline Offline

Posts: 143

Planet Peer Community


View Profile
« Reply #16 on: May 08, 2005, 02:22:48 AM »

.. and i do not find anything. but it does not mean that NAT penetration does not work. my firewall drops most of UDP packets, besides some choosen destinations. i can't run full port scan from where i am.
i can only suggest to find somebody on this message board or on integrityp2p to help you. i penetrated my NAT with help of one guy from integrityp2p.com,  but his connection is apparently down. try to post
http://www.integrityp2p.com/  in the shout box (you will have to register)
Logged
larytet
Advanced
***

Karma: +0/-0
Offline Offline

Posts: 143

Planet Peer Community


View Profile
« Reply #17 on: May 19, 2005, 02:11:30 AM »

This post is long reading. I could not make it shorter because ... well, networks and networking is not simple.


Quote
as i can see in ethereal i know the source of incoming udp packages.
and i know this is the real ip of this one. i start a look, i find a
file, then i look into peer-list and there is the ip of this one.
and then i could try an ip-scan with a tool. next i could see, if
activated, the snmp-infos of this ip. if there is a name, then i know
the ip, the published files and the name of this on. how does it be
secure?

or do i misunderstand there something?

Default mode - IP address is visible

Different from I2P, Mute, Ants and other anonymous networks Rodi does not provide immediate IP masking. By default Rodi does not route packets. Rodi works exactly as any other P2P network like Bittorrent. Peer A sends request to peer B. Peer B sends response to peer A.

In this mode assuming normal conditions of the network performance is expected to be comparable to the performance of the Bittorrent network. Because Rodi is UDP based multicast can be supported in some networks (LAN) improving performance dramatically. For example, multicast in LAN can be used to stream HDTV to 100s or even 1000s IP nodes from only one regular PC.
Another point is that data transfer protocols using UDP can be extremely aggressive in utilization of available bandwidth. Over "fat" connection with signifcant delay and jitter and high packet loss ratio UDP based protocols will tend to scale better than TCP.


Bouncers

There are two ways to hide IP address in the Rodi network. Both methods can be used together and separately.
- running bouncer as an intermediate node between seed and leacher
- spoofing IP source address
- network of trust (l33t hubs)

on the following diagram http://larytet.sourceforge.net/images/DiagramBouncingModeB.gif you see simplest way of using of Rodi bouncer. In this case Rodi bouncer behaves exactly as, for example, regular HTTP Proxy. Seed (or publisher) is completely hidden behind Rodi bouncer (or ring of Rodi bouncers).
Publisher asks Bouncer(s) to help to distribute some content. Bouncer agrees. Publisher advertises the content and IP address and IP port of the bouncer. Publisher can post  hash of the file, file name, Rodi Hash file in any combination. Downloader sends packets to the Bouncer. Bouncer forwards all packets to the Publisher. Publisher sends all packets to the Bouncer. Bouncer knows to route the packets correctly if there is more than one Downloader.

Bandwidth available for the publisher is limited by the upstream of the bouncer. If bouncer is 56K dialup publisher's upstream is limited by 56KBit/s upstream. Downstream of the dialup modem is not going to be relevant in most cases because Rodi control packets are small and control packets are rare.

Publisher can also use more than one Bouncer in parallel. Publisher advertise IP address and IP port of all bouncers. Available to the publisher upstream is a summ of upstreams of all bouncers.

To improve security Publisher can create a ring of bouncers - connect bouncers one after another. This way log on the ISP where first bouncer is connected will deliver IP address of the second bouncer and so on.

Rodi Bouncer provides relatively good protecttion for the publisher assuming that publisher chooses Bouncers among trusted parties or choose random Bouncers from large pool of Bouncers. The setup can be attacked by mighty adversary using exactly the same mehtods as in Tor or FreeNet networks. For example, adversary can compromise all or majority of the bouncers in the network. Adversary can also log all traffic from all nodes in the network. Currently Rodi does not encrypt payload. Adversary can also consider the network as a block box and hold liable every node sending sensitive data, both Bouncer and Publisher.

Bouncers are willing to provide bouncing services because their score on the seed'c client is growing (implemented partially). Seed will tend to serve bauncers first, because bouncers have better score. Database of peers is system level, like in eMule.

IP spoofing

Let's say that Publisher can spoof IP address. Publisher is able to send packets with arbitrary IP address or with IP address which is different from one Publisher gets from the ISP


Now Publisher has more choises. In one of the possible setups Publish advertises real IP address and IP port. Downloader sends packets to the Publisher. Publisher sends response to the Downloader but places different IP in the IP packet.

Performance of the network is the same as in regular not protected P2P network.

Let's say that adversary compromised Downloader. Adversary sends a packet to the Publisher (destination IP). Adversary sees response arriving from different IP address. Adversary should suspect that destination IP address belongs to the bouncer and that real IP address is the one where packets arriving from. Adversary has no meanings to prove that destination IP is a real IP address of the Publisher. Adversary has to log all the traffic on the Publisher node to find out that Publisher spoofs IP. This requires long investigation and can not be done in the real-time. Adversary snifing packets on the edge of the network can not find out in reliable way IP address of the Publisher.

Bouncers and IP spoofing

In another scenario Publisher uses Bouncer, but only for downstream direction. Publisher advertises IP address and IP port of the Bouncer. Downloader sends packets to the Bouncer. Bouncer forwards packets to the Publisher. Publisher sends response to the Downloader with different IP address in the IP packet header. see http://larytet.sourceforge.net/images/DiagramBouncingModeA.gif
To improve security even more Publisher can ask Bouncer to forward packets to more than one IP address http://larytet.sourceforge.net/images/DiagramBouncing.gif

Performance of the network is only slightly lower than in regular not protected P2P network, because of higher packet loss over longer path. Most of the data - actual upload, is still direct transaction from the Publisher to the Downloader.

Adversary is in about the same situation as before. Log of the traffic on the node where Bouncer is connected will not deliver reliable result, because there is possibility that Publisher uses more than one Bouncer. Adversary can also discover that Bouncer forwards packets not to one but to many IP addresses. Log collected by the compromised Downloader shows only IP address of the Bouncer and IP address Publisher decided to use for the responses.

Publisher can spoof IP address and use bidirectional Bouncer - both upstream and downstream. This way even compromised Bouncer can not be sure that IP address(es) it sends packets to belong to the Publisher.



Ability to spoof

I've met estimation that about 15% of existing connections can spoof IP address. In some cases node can not use arbitrary IP address, but address from some subnet. If node is behind NAT IP spoofing is NOT possible. IP address of the packets will be set by NAT. For example, if node's IP address 192.168.x.x this node is NATed - this node is behind NAT. Inside of the LAN node usually can spoof IP address. It can be the case in corporate networks, campuses, WiFi networks, etc.


Why Rodi ?

Rodi does not provide strong protection for the particpating peers. The same attacks which are possible in other networks are possible in the Rodi network too. Current code of the Rodi client does not provide encryption of the payload. If adversary can collect ALL outgoing and incoming from the publisher packets adversary will prove that publisher participates in the distribution.

Rodi promises high performance and efficient bandwidth utilisation when compare with existing anonymous P2P networks. In the Rodi network Publisher chooses (and probably runs) bouncer. Publisher can choose good bouncer or bad bouncer or Publisher can decide to work without bouncer at all. In all cases adversary will find that it is hard to prove that some specific IP address belongs to the Publisher.

Let's say that adversary sends packet to some IP address and gets response from the same IP address. Naturally adversary assumes that Publisher can not spoof and that Publisher does not use Bouncer. Adversary goes ahead and checks the PC. Adversary can find out that in reality PC is just a bouncer and apparently Publisher spoofed IP address - set IP address of the Bouncer in the response.

Smart Publisher can prepare a perfect legal trap for the adversary which jumps to conclusion too fast. Simple sniffing of the packets on the edge of the network is not going to be enough anymore. Adversary will need access to the logs of multiple ISPs. Log collected by ISP should be rather large - it should contain IP header of the packet, exact timestamp and part of the payload.
Let's say that large ISP has 100K subscribers with 1MBit/s upstream connection every one. Assuming packet size 1400 bytes and 70% loading of the network we get 5M packets/s. Log keeps IP header (8 bytes), timestamp (8 bytes), part of the payload (8 bytes) or 24 bytes for every packet. Total amount of data is 120Mbytes/s or 10T/day.

If we assume 2K subscribers behind every gateway (DSLAM/CMTS) we will get ~200G/day of logs. while it's possible technically i am not aware of any existing system which is able to do this for all existing connections simultaneously.
« Last Edit: May 19, 2005, 04:39:26 PM by larytet » Logged
larytet
Advanced
***

Karma: +0/-0
Offline Offline

Posts: 143

Planet Peer Community


View Profile
« Reply #18 on: May 19, 2005, 04:41:44 PM »

Quote
k...chat works, but every message reached 3 times... on both sides

you never want to expose your IP.
imagine that all data traffic is encrypted and bounced and you feel safe. you chat with your friend (and trusted party) and among other things send him/her hash of [enter any name here].

Rodi chat is unidirectional exactly as data stream. you can send request to some collector using IP range specified by the publisher. Requests collector does not answer you automatically. You do not get any reply. Publisher checks list of requests and relese this or that data - you will have to run regular Look next day to find the data.
For example, publisher specifies 192.168.0.12/255.255.0.255. You have to send your request to all 255 IP addresses - 192.168.1.12, 192.168.2.12, ..., 192.168.254.12. One of the addresses belongs to the collector. Adversary will have to check all of them to find out which one is actually a publisher. Publisher can run two or more nodes to make sure that nobody trys to send packets to only node every time.

To log your packets adversary will have to install and run node in the range specified by the publisher and this is not an easy task, because this range can be used by ISP in 3rd country.

if you want not secured chat you can use this message board to post your hashes, but i bet you are not going to. Message board is a bad place for posting requests too, because there is a fair chance that you will eventually have the data you asked for and even worse - log on your gateway can expose publisher and your IP address is exposed well before publisher starts to send you data.

Rodi chat room is not a silver bullet, but it is better than nothing and this is probably the only decentralized chat room (is going to be) which provides builtin proxy and unidirectional (radio like) messaging.
Logged
larytet
Advanced
***

Karma: +0/-0
Offline Offline

Posts: 143

Planet Peer Community


View Profile
« Reply #19 on: May 19, 2005, 04:53:27 PM »

Network of trust or l33t hubs

<p>If you installed Rodi already and had a chance to use GUI front-end (RodiTimple) you ran your own small network of trust. This network contained two
peers - RodiCore and RodiTimple.

<p>After you start RodiTimple it opens file rodiMng.jks. rodiMng.jks is an encrypted (default password rodiMng) storage of private keys. RodiTimple
reads private key from the file rodiMng.jks. RodiTimple signs every packet it sends to the RodiCore using this privaye key.

<p>After you start RodiCore it attempts to read and execute initialization script. Part of the initialization script is adding of public key(s).
To use GUI front-end you have to add at least one public key - twin brother of the private key which RodiTimple found in the keystore file rodiMng.jks.

<p>When RodiCore sees request from the GUI management it checks the signature and makes sure that the packet is signed using correct private key. If
everything is fine RodiCore serves the request, if the packet is not signed or signature can not be verified RodiCore drops the packet
without any acknowledge.

<p>Publisher asks friends to send (advertise) their public keys. Publisher adds these public keys to the list of the trusted peers (trustees). Publisher
configures RodiCore to drop unsigned or signed with unknown signatures packets.

<p>Rodi uses one of the strongest signatures available today - signature algorithm RSA with MD5, public key RSA-1024

« Last Edit: May 20, 2005, 01:11:46 AM by larytet » Logged
larytet
Advanced
***

Karma: +0/-0
Offline Offline

Posts: 143

Planet Peer Community


View Profile
« Reply #20 on: May 19, 2005, 05:36:59 PM »

you can find cleaner version of my previous posts here
http://larytet.sourceforge.net/userManual.shtml#howdoesitbesecure

all thanks cs301
Logged
larytet
Advanced
***

Karma: +0/-0
Offline Offline

Posts: 143

Planet Peer Community


View Profile
« Reply #21 on: May 19, 2005, 07:23:35 PM »

You can configure the client to acknowledge chat messages automatically. There are two options
- acknowledge signed by trusted peers chat messages (recommended)
- acknowledge packets arriving from some IP address (easy, but not secured)

both methods are supported by the existing source code


...and one can choose not to acknowledge any of arriving packets, but just listen waht other people want to say. smart people are good listeners.
« Last Edit: May 19, 2005, 10:11:26 PM by larytet » Logged
larytet
Advanced
***

Karma: +0/-0
Offline Offline

Posts: 143

Planet Peer Community


View Profile
« Reply #22 on: May 19, 2005, 10:13:36 PM »

...back to the UDP

from http://www.slyck.com/news.php?story=796
"Instead of requiring "prima facie" evidence, Justice Saxon lowered the bar to "bona fide" evidence. This significantly reduces the burden on the CRIA. "Bona fide" reduces the level of evidence to a matter of good faith. In the future when the CRIA intends to bring action against an idividual for copyright infringment, they only have to present the eveidence they have, "and that there is no other improper purpose for seeking the identity of these persons." The RIAA's current lawsuit campaign works virtually identical to the "good faith" philosophy."

"good faith" is much harder thing to demonstrate, when you have no idea about number of bouncers which ping pong the packet before it reaches your sniffer
Logged
larytet
Advanced
***

Karma: +0/-0
Offline Offline

Posts: 143

Planet Peer Community


View Profile
« Reply #23 on: May 24, 2005, 09:49:47 PM »

0.3.24 is out with a couple of major bug fixes
Logged
crypton
Elite
*****

Karma: +9/-0
Offline Offline

Posts: 1677



View Profile
« Reply #24 on: May 28, 2005, 10:01:04 PM »



can you make in future version of rodi implement systray
i have used one of them for a java app:

http://systray.sourceforge.net/

https://jdic.dev.java.net/

Logged


larytet
Advanced
***

Karma: +0/-0
Offline Offline

Posts: 143

Planet Peer Community


View Profile
« Reply #25 on: May 29, 2005, 12:25:18 AM »

0.3.29
command history in CLI - use Up/Down keys
Logged
larytet
Advanced
***

Karma: +0/-0
Offline Offline

Posts: 143

Planet Peer Community


View Profile
« Reply #26 on: May 29, 2005, 12:27:02 AM »

... looking systray

[update] how important this thing for you ?it's only KDE and Win32 and may be Gnome. i do not like idea of adding ~100K of binary only because of systray and i like even less the idea of native calls to 3rd party library.


I suggest an alternative. i am adding button/menu "Invisible" to the GUI.

you make GUI visible again by creating a file with well known name in the working folder. if file already exists you will have to "update" it - write something there and save the file. you can create this file using native Windows application or batch file or anything you want.

Rodi icons can be found here http://larytet.sourceforge.net/images/

if you write native Windows application and decide to GPL it i will gladly add EXE/COM/BAT/C/C++ to the  release


P.S. it requires some explanation why i am so sensitvie to the  size of the binary file. i want keep the binary small, because i hope that in the future webmasters  will put the applet on the regular HTTP servers. after some time penetration will reach the point when applications like Websense will not be able to block all places where the applet is kept.
« Last Edit: May 29, 2005, 01:54:58 AM by larytet » Logged
larytet
Advanced
***

Karma: +0/-0
Offline Offline

Posts: 143

Planet Peer Community


View Profile
« Reply #27 on: May 30, 2005, 07:39:04 AM »

to replace icon in Timple
rename JAR to ZIP
open the file
remove all JPG files from the archive
rename the archive back from ZIP to JAR
put file logo.JPG in the same folder with JAR file
Logged
larytet
Advanced
***

Karma: +0/-0
Offline Offline

Posts: 143

Planet Peer Community


View Profile
« Reply #28 on: June 08, 2005, 12:05:49 AM »

may be final view for the PostIP form (Advanced)
Logged
cs301
Elite
*****

Karma: +5/-0
Offline Offline

Posts: 459



View Profile
« Reply #29 on: June 08, 2005, 04:26:54 PM »

... but add some explanation to the "dynamic tetrad" check-boxes
Logged

CSpace-ID: 1683
Jabber-ID: cs301@swissjabber.ch
Planet Peer - The anonymous networking community
   

 Logged
Pages: 1 [2] 3 4   Go Up
  Print  
 
Jump to:  


Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!