Upload
alan-harmon
View
220
Download
0
Embed Size (px)
DESCRIPTION
What is Peer-to-Peer (P2P)? “…an entity with capabilities similar to other entities in the system.” Every end host known as peers, has equal roles and capabilities They can act as both client and server, and provide for direct communication between them
Citation preview
Company
LOGO
Freenet
By Yogesh Kalyani
OUTLINE
Introducing P2P Overview of Freenet Key’s Protocol Security Analysis Improvement Strength and Weakness Conclusion
What is Peer-to-Peer (P2P)?
“…an entity with capabilities similar to other entities in the system.”
Every end host known as peers, has equal roles and capabilities
They can act as both client and server, and provide for direct communication between them
Client Server Model Vs P2P Model
Client Server Model: Contact a server and download a web page Server has all the resources and capabilities
P2P Model: Direct communication between the peers Peer acts as both client and server
Freenet
What is Freenet ? A decentralized distributed file storage
system How does it work?
Files stored and replicated across a distributed network environment, with a peer-to-peer query and data access system.
No centralized system management
Motivation
What does it provide ? Anonymity for both producers and consumers of
information Deniability for storers of information Efficient dynamic storage and routing of
information Decentralization of all network functions
Key’s
Files in Freenet are identified by binary file keys, which are obtained by applying a hash function
Freenet use SHA-1 function for hashing Freenet Uses three types of file keys 1) Keyword-signed key (KSK) 2) Signed-subspace key (SSK) 3) Content Hash Key (CHK)
Structure of Keys
Each Freenet key has the following structure “freenet:” is the standard prefix First three chars state key type: KSK, SSK, CHK “@” symbol separates the key type from the rest of the
message Then a long set of characters used to identify the file
Example:freenet:KSK@papers/p2p/freenet/keys
Keyword-signed key (KSK)
Easiest to use of all the key types KSK is derived from a short descriptive text string
Ex: text/philosophy/sun-tzu/art-of-war This string is then used as input to generate a
public/private key pair
Public key is then hashed to yield the file key
Private key is used to sign the file
Keyword-signed key
Advantages
1) Only the file description needs to be published
2) Easy to remember Disadvantages
1) Global Namespace
2) Nothing prevents two users from independently
choosing the same descriptive string for different
files
Keyword-signed key
Disadvantages(2) 3) Users can abuse the names of popular files by inserting
their file with the same name
4) Users can abuse the names of popular files by inserting
their file with the same name Possible because the file description is published
5) Attacker can use dictionary attack against this sign by
compiling the list of descriptive string
Signed-subspace key (SSK)
Addresses the problems suffered by KSK by allowing user to make personal name space
User creates a namespace by randomly generating a public/private key pair,
Which will used to identify his namespace Private Key
Only the person who posses the private key can insert files to the
namespace in the network Allows others to ensure a file was posted by a certain person
Public Key Allows users to retrieve the file from the network (with Descriptive
String)
Signed-subspace key
To get the key for the subspace: First he chooses a short descriptive text string like
text/philosophy/art-of-war.
1) Public key is hashed
2) The descriptive string is hashed
3) (1) XOR (2)
4) (3) is hashed
5) (4) is encrypted using the file description
Content Hash Key (CHK)
A content-hash key is derived by directly hashing the contents of the corresponding file.
It gives every file a pseudo-unique file key Files are also encrypted by a randomly-generated
encryption key. Content-hash keys are most useful in conjunction
with signed-subspace keys using an indirection mechanism
For Retrieval user has to publishes the content-hash key with the decryption key
Clustering of Keys
When a node successfully receives a file from another node. It associates that node in its routing table with the hash key of the file
All future requests from this node will send the request to the node listed in the routing table associated with the key closest to the key of the file being requested
Freenet: Routing
Request Hash key for data (160-bit SHA-1) Find node with closest match Forward query to this node by specifying
key and #HTL Return data, replicating along the way
Freenet: Routing, Request
Freenet: Routing
Insert: Hash key for data (160-bit SHA-1) Initiate a query with key, #HTL Node will check into its data store whether
they have the data If then will response with the preexisting file
assuming request has been made Else will forward the query to next node
Freenet: Routing, Insert
Process goes on till #HTL Expire If no collision i.e. or request is successful return “AllClear” Message Push data onto all the nodes (#HTL)
Freenet: Routing, Insert
Quality of routing improves over time Each time a requestor successfully receives a
file from another node It adds that node to it’s routing table Associates the file key with that node in the
routing table All future requests for files with similar keys
will be sent to nodes associated with these keys
Freenet: Routing, Insert
Eventually a node will become specialize in serving the request for a families of keys which are close together and will store more files
Reasons: Other node will send request for files that have similar keys If it does not have the file it forwards the request to another
node based on it’s routing table When the file is located, the response gets passed back Each node on the responses path gets a copy of the file stored This includes the node the request was initially sent to Over time this node will start to store more and more files with
this key type
Freenet: Routing
Managing Data Node storage is managed as an LRU (Least
Recently Used) cache in which data items are kept sorted in decreasing order by time of most recent request or time of insert, if an item has never been requested
Freenet: Routing, Managing Data
Each node has limited storage capacity The user has no knowledge of what files their
node stores As well No user knows the identity of a node
that provides a file they have requested Or knows the identity of a node that has
requested a file from them
Freenet: Routing, Managing Data
NO file lifetime guarantees Popular files will spread to many nodes Each requested file located, will be copied to every node
it passes through on the path from the source node to the requestor node
Rarely accessed files will slowly be removed from the network as room is required for new files i.e. removing least-recently used (LRU) files
As a node runs out of space, files will be deleted in order of least recently requested to make room
Rarely requested files will ONLY be removed if space becomes limited
Protocol: Protocol Descriptors
Request.Handshake Reply.Handshake
Initial Contact Request.Data Send.data
Querying for data
Protocol: Protocol Descriptors
Reply.NotFound Reply.Restart
Failure Message Request.Continue Request.Insert
Request Management Reply.Insert Send.Insert
Inserting Data
Security Analysis
Eavesdropping No protection against eavesdropping between the
user and the first node contacted in basic Freenet Users are recommended to first connect to a node
running on their own machine in basic Freenet Pre-Routing to protect from eavesdropping in new
version of freenet
Security Analysis: Eavesdropping
As routing depends on knowledge of the search key Key anonymity is not possible.
Use of hashes as keys provides some obscurity against casual eavesdropping But still vulnerable to dictionary attacks
Can be easily done by setting up a node and "eavesdropping" any messages that are routed through her
Denial of Service Attacks
An attacker can insert a large number of junk files into the network
Counter attack: By dividing the datastore into two sections, one for
new inserts and one for established files New inserts would only replace new inserts;
therefore a flood of them could not displace existing files
Denial of Service Attacks
Problem with dividing Datastore: Difficult for genuine new inserts to survive
long enough to be requested by others and become established
An attacker may be able to legitimize his bogus files, by requesting them from strategic locations where it will be cached on as many nodes as possible
Traffic Analysis
Traffic analysis is possible by setting up nodes in strategic locations and by monitoring encrypted traffic between nodes Achieved by observing Search Key Closeness,
Hope-to-live, Depth. Simplest case, if a node receives a request for
a search key that it has never served anything close to, he can guess that the request originated from a directly connected node or that he is very early in the chain.
Improvement
Original Algorithm in Freenet: The assessment of whether a peer X has
common interests with a peer Y is based on historical data, i.e., on whether peer X was able to respond to previous queries sent by peer Y
Improvement
*New algorithm[3] Principle: The "current" content stored at a peer
reflects its current interest. Thus, common interest between two peers is assessed directly from the current content locally stored at both peers and is periodically re-evaluated
In this way each peer maintains a community of peers, which share similar interests i.e. number of files
study shows : It reduces the average Freenet request and response path lengths by up to 39%
Freenet: Design strength
Anonymity for both producers and consumers of information
Completely Decentralized: No single point of failure
Scales well Dynamic routing adapts well to changing
network topology High resilience to attacks
Freenet: Design weakness
No file lifetime guarantees Not an efficient keyword search Currently, no defense against DoS attacks
Conclusion
Freenet is a loosely unstructured decentralized network, in which every node has equal roles and do the same task thereby increasing the fault tolerance
Freenet uses depth first search with backtracking which makes it scalable when the size of network is increased or network is overloaded
Overall, Freenet is good P2P network for file sharing system; deploying efficient routing for the location and the storage of the data
References
Freenet, http://freenet.sourceforge.net. Freenet documentation, http://freenet.sourceforge.net/doc/book.html. Marcelo Werneck Barbosa, “Using locality of reference to improve
performance of peer-to-peer applications” Proceedings of the fourth international workshop on Software and performance, ACM Press, Year of Publication: 2004, Pages: 216 - 227
Clarke, O. Sandberg, B. Wiley, and T. W.Hong, “Freenet: A distributed anonymous information storage and retrieval system”, in ICSI Workshop of Design Issues in Anonymity and Unobservability, July 2000.
SM Lui, SH Kwok, “Interoperability of Peer-To-Peer File Sharing Protocols” ACM SIGecom Exchanges, Volume 3, Issue 3 Summer, 2002, ACM Press, Year of Publication: 2002 Pages: 25 - 33
Thank you for your patience