COPS: COntrolled P2P Sharing Kaustubh Beedkar Kaushal Kantawala

advertisement
COPS: COntrolled P2P
Sharing
Kaustubh Beedkar
Kaushal Kantawala
Hiral Shah
Pankaj Chawla
Mehul Sutariya
Outline
Why?
What?
How?
Problems Problems Every Where!
Peers are anonymous and hence untrustworthy
45% of the files on the P2P network are infected
with viruses
No existing gnutella clients implements access
control
Approach
Introduce access control in P2P file sharing
networks
Incorporate user authentication
Implementing the concept of groups in p2p
networks
Architecture
Authentication
Sever
COPS
COPS
Gnutella API
Gnutella API
Gnutella Network
Gnutella API
COPS
Client
Architecture
Group semantics
any user can create a group (owner)
any user can invite another user under the
moderation of the owner
a user can be a member of more than one
group
cotd ...
a user can request any of the members of a
group to grant access
owner can remove members from the group
users can leave a group at his will
Working
Authentication
Sever
Login
Client
Client
D
Client
Client
A
Client
Client
F
Client
Client
C
Client
Client
B
Client
Client
E
Authentication
Sever
Login
Login
Client
Client
D
Client
Client
A
Client
Client
F
Client
Client
C
Client
Client
B
Client
Client
E
Authentication
Sever
Login
Login
Client
Client
D
Authenticated
Client
Client
A
Client
Client
F
Client
Client
C
Client
Client
B
Client
Client
E
Authentication
Sever
Login
Login
Login
Authenticated
Client
Client
D
Authenticated
Client
Client
A
Client
Client
F
Client
Client
C
Client
Client
B
Client
Client
E
Ping Pong
Client
Client
D
Client
Client
A
Client
Client
F
Client
Client
C
Client
Client
B
Client
Client
E
Ping Pong
Client
Client
D
Client
Client
A
Client
Client
F
Ping
Ping
Client
Client
B
Client
Client
C
Client
Client
E
Ping Pong
Client
Client
D
Client
Client
A
Pong
Ping
Ping
Client
Client
F
Pong
Client
Client
B
Client
Client
C
Client
Client
E
Ping Pong
Client
Client
D
Client
Client
A
Ping
Pong
Ping
Ping
Client
Client
F
Pong
Client
Client
C
Ping
Client
Client
B
Ping
Client
Client
E
Group Creation &
Tagging Files
Client
Client
D
Client
Client
A
Client
Client
F
Client
Client
C
Client
Client
B
Client
Client
E
Registry
Group Creation &
Tagging Files
AIAD
------------------user A (owner)
Client
Client
D
Create group
“AIAD”
Client
Client
A
Client
Client
F
Client
Client
C
Client
Client
B
Client
Client
E
Registry
Group Creation &
Tagging Files
AIAD
------------------user A (owner)
Client
Client
D
Create group
“AIAD”
Tag Files
Client
Client
A
Client
Client
F
Client
Client
C
Client
Client
B
Client
Client
E
Registry
Group Creation &
Tagging Files
AIAD
------------------user A (owner)
Client
Client
D
Create group
“AIAD”
Tag Files
File
Name
----------123.jpg
456.jpg
META data
Client
Client
A
Client
Client
F
Client
Client
C
Group
Name
---------AIAD
Public
Client
Client
B
Client
Client
E
Sending Invitations
Registry
Group
Members
------------------A (owner)
Client
D
Client
A
File
Name
----------123.jpg
456.jpg
META data
Client
F
Client
C
Group
Name
---------AIAD
Public
Client
B
Client
E
Sending Invitations
Registry
Group
Members
------------------A (owner)
Client
D
Client
A
File
Name
----------123.jpg
456.jpg
META data
Group
Name
---------AIAD
Public
Client
F
Invite D
Invite D
Client
B
Client
C
Client
E
Sending Invitations
Registry
Group
Members
------------------A (owner)
Client
D
Client
A
File
Name
----------123.jpg
456.jpg
META data
Group
Name
---------AIAD
Public
Invite D
Invite D
Invite D
Client
C
Invite D
Invite D
Client
B
Client
F
Client
E
Sending Invitations
Registry
Group
Members
------------------A (owner)
Client
D
Client
A
File
Name
----------123.jpg
456.jpg
META data
Group
Name
---------AIAD
Public
Accept
Invite D
Invite D
Invite D
Client
C
Invite D
Invite D
Client
B
Client
F
Client
E
Sending Invitations
Registry
Group
Members
------------------A (owner)
Client
D
Client
A
Accept
Invite D
Accept
File
Name
----------123.jpg
456.jpg
META data
Group
Name
---------AIAD
Public
Invite D
Invite D
Client
C
Invite D
Invite D
Client
B
Client
F
Client
E
Sending Invitations
Registry
Group
Members
------------------A (owner)
Update
File
Client
D
Client
A
Accept
Invite D
Accept
File
Name
----------123.jpg
456.jpg
META data
Group
Name
---------AIAD
Public
Invite D
Invite D
Client
C
Invite D
Invite D
Client
B
Client
F
Client
E
Sending Invitations
Registry
Group
Group
Members
Members
------------------------------------A (owner)
A (owner)
D
Update
File
Client
D
Client
A
Accept
Invite D
Accept
File
Name
----------123.jpg
456.jpg
META data
Group
Name
---------AIAD
Public
Invite D
Invite D
Client
C
Invite D
Invite D
Client
B
Client
F
Client
E
Sending Invitations
Registry
Group
Group
Members
Members
------------------------------------A (owner)
A (owner)
D
send list of
group
members
Update
File
Client
D
Client
A
Accept
Invite D
Accept
File
Name
----------123.jpg
456.jpg
META data
Group
Name
---------AIAD
Public
Invite D
Invite D
Client
C
Invite D
Invite D
Client
B
Client
F
Client
E
Registry
Registry
Group
Group
Members
Members
------------------------------------A (owner)
A (owner)
D
send list of
group
members
Update
File
Client
D
Client
A
Accept
Invite D
Accept
File
Name
----------123.jpg
456.jpg
META data
Group
Name
---------AIAD
Public
Sending Invitations
Group
Members
------------------A (owner)
D
Invite D
Invite D
Client
C
Invite D
Invite D
Client
B
Client
F
Client
E
Searching for Files
Client
Client
D
Client
Client
A
Client
Client
F
Client
Client
C
Client
Client
B
Client
Client
E
Searching for Files
Client
Client
D
Search
Client
Client
A
Client
Client
F
Client
Client
C
Client
Client
B
Client
Client
E
Searching for Files
Client
Client
D
Search
Client
Client
A
QUERY+username
Client
Client
F
Client
Client
C
Client
Client
B
Client
Client
E
Searching for Files
Client
Client
D
Search
Client
Client
A
QUERY+username
Client
Client
C
Client
Client
B
QUERY+username
Client
Client
F
QUERY+username
Client
Client
E
Searching for Files
Client
Client
D
Search
Client
Client
A
QUERY+username
QUERY+username
Client
Client
C
Client
Client
B
Client
Client
F
QUERY+username
QUERY_HIT+
public_files+
private_files
Client
Client
E
Searching for Files
Client
Client
D
Search
Client
Client
A
QUERY+username
QUERY_HIT+
public_files+
private_files
Client
Client
B
QUERY+username
Client
Client
C
Client
Client
F
QUERY+username
QUERY_HIT+
public_files+
private_files
Client
Client
E
Searching for Files
Client
Client
D
Ask
for invitation if
required
Search
Client
Client
A
QUERY+username
QUERY_HIT+
public_files+
private_files
Client
Client
B
QUERY+username
Client
Client
C
Client
Client
F
QUERY+username
QUERY_HIT+
public_files+
private_files
Client
Client
E
Implementation
We have implemented a multi-threaded authentication
server in Java
We have used Jtella, which is an API for creating
Gnutella clients in Java and modified the API so that it
incorporates group based searching
Implementing the following modules on the client:
Transfer Manager
Group Manager
AccessControl
Connection Manager, etc.
Future Work
Introducing more security features in the
protocol
Extend this for other file types like videos
Group chat for entire group
Groups existing for a particular period of time
Browsing capability
File preview
So what’s new ?
Idea of groups in P2P networks
An attempt to enforce trusted sharing in existing
P2P networks
References
http://www.gnutella.com/
JTella - Gnutella API in JAVA by Ken Mccrary
"Computing Trusted Authority Scores in Peer-to-Peer Web
Search Networks” - Josiane Xavier Parreira, Debora Donato,
Carlos Castillo, Gerhard Weikum
Robert Kaye "Next Generation File Sharing with P2P
Networks"
P2P or Peer-to-Peer Safety, Privacy and Security.
http://www.ftc.gov/os/comments/p2pfileshare/
Thank You
?? Questions ??
(Oye .. aaks the pankazz no)
Download