Author Topic: Blocks a anonymous distributed file transfer system  (Read 1584 times)

0 Members and 1 Guest are viewing this topic.

Offline crypton

  • Elite
  • *****
  • Posts: 1699
  • Karma: +10/-0
    • View Profile
Blocks a anonymous distributed file transfer system
« on: March 03, 2008, 08:43:33 PM »
Hi

Wegen OFF System habe ich dieses Blocks nochmal gesucht und gefunden, es wird schon lang nicht mehr Entwickelt.


Quote
Blocks is an anonymous distributed file transfer system designed for people with permanent 'always on' Internet connections like DSL lines or cable modems. It allows you to anonymously upload files from, and download files to the Blocks server 'network'. Blocks is cross-platform, open-source and free.

Quote
What is Blocks?
Blocks is an anonymous distributed file transfer system designed for people with permanent 'always on' Internet connections like DSL lines or cable modems. It allows you to anonymously upload files from, and download files to the Blocks server 'network'.

Blocks differs from other anonymous file transfer utilities in the following ways:

    * All 'uploaded' files are split into small 64Kb blocks.

    * 'File advertisements' are broadcast through out the network. Your Blocks application needs to be running to see them. When you do a 'search' you are actually searching the local list maintained by your Blocks application, searches are never broadcast.

    * The data blocks are routed from server to server rather than from point to point, with content being replicated through out the 'network'. IP addresses are not associated with uploads or downloads in any way.

    * Each Blocks application acts as a potential client, server, and caching proxy for data blocks.

    * Blocks uses a large disk bound cache (1-64Gb) that is protected by a 128bit block cipher using a random key based on a strong Pseudo Random Number Generator (entropy provided by user), and the cache is deleted and recreated each time the Blocks server is stopped or started. Therefore, even after a crash or abnormal termination, the disk cache cannot be used to ascertain what data has been downloaded or was being served.

    * All network connections are protected by a 128bit stream cipher using a session key created from a 512bit Diffie-Hellman key exchange. So, network logs cannot be used to identify what network passed through the system.

    * You can easily set up your own separate Blocks network or join a public one. You can even participate in a public Blocks network when you are behind a firewall that stops incoming connections.

    * Blocks uses very little resources so you can use your computer for other things while you are running your Blocks server. Blocks uses ~2Mb+(1Mb per 4Gb of cache) of memory and a tiny amount of CPU. You can configure how much of your bandwidth you want Blocks to use and even play Quake or Tribes online and still be running your Blocks server (128Kb/sec minimum is required).

    * Blocks is completely public domain. There are no licensing restrictions on the code or the binaries... obviously there is no warranty either :-)

How does Blocks Work?
When you run a Blocks server it finds and connects to a number of other Blocks servers, creating an interconnected 'network' of servers. All Blocks servers have a disk bound cache of data that is used to store data in the form of fixed size binary blocks of 64Kb.

When you 'upload' a file to your blocks server, the file is split into 64Kb blocks and each is inserted into the cache. A 'header' block containing a list of identifiers for all the data blocks, as well as basic information such as the filename and size, is also inserted into the cache, and the file is advertised to the blocks network. The server also uses the cache to store data as it is routed and downloaded so eventually your uploaded file data will be overwritten.

Your blocks server is always listening for file advertisements from the blocks network that it keeps a local list of. The blocks network offers no distributed search capability, so when you do a file search you are only searching the local list built up since you started your server. So don't expect a huge list of files if you've only been running your server for a couple of hours.

Once you choose a file to 'download' the server requests the 'header' block and all the data blocks sequentially from the blocks network then reconstructs the file locally once all the blocks have been received.
So what anonymity features does it have?

When you start your blocks server it connects to the blocks network and broadcasts your IP address as being that of a server looking for connections. This is the only time your IP is advertised to the network, and it is never associated with any other messages.

All other messages use a simple routing mechanism using an alphabetic list of connection identifiers. Only the small number of servers you are immediately adjacent to can associate your IP with file advertisements, and even they cannot tell if you uploaded the file or it simply migrated automatically from another server.

All network traffic is encrypted using a 128Bit stream cipher using a key derived from a 512bit Diffie-Hellman key exchange.

All data in the disk bound cache is encrypted using a 128bit block cipher using a key derived from a strong Pseudo Random Number Generator (entropy provided by user). The cache is completely destroyed and an empty one recreated each time the server is started or stopped, and the key is different each time. No information about the origin of the data blocks is stored in the cache.

http://mspencer.net/blocks/
http://mspencer.net/blocks/protocol.html