COPS: Controlled P2P Sharing Project Proposal CS 8803: Advanced Internet Applications and Development Prof. Ling Liu Group Members: Beedkar, Kaustubh kbeedkar@gatech.edu Chawla, Pankaj pankaj.chawla@gatech.edu Kantawala, Kaushal kaushal@gatech.edu Shah, Hiral hshah7@gatech.edu mehul@gatech.edu Sutariya, Mehul Acknowledgments: Myungcheol Doo Peter Pesti Motivation: The explosive growth in the Internet in the last decade has resulted in an increase in the use and popularity of online peer-to-peer (P2P) communities. P2P file sharing communities like Gnutella, Lime wire etc. involve millions of users who interact daily to transfer files among each other free of cost. The success of this type of a P2P community relies on cooperation amongst all the peers in the community. However, peers are anonymous and can act in their self-interests. This open and anonymous nature makes the network difficult to police and vulnerable to a variety of attacks. These attacks include: • infecting your computer with malicious code such as viruses, worms, trojan horses, spyware and unwanted adware • • • illegal, harmful and child-inappropriate content makes your computer more vulnerable to hacking and other intrusions, allowing others to make your computer into a drone capable of attacking other websites and servers, Corrupted files or misrepresented content and sharing private files, unintentionally, with others. • Existing approaches to solve this problem rely on reputation models based on credibility. Another interesting and emerging trend is the current Web 2.0 trend of generating webbased communities and hosted services such as social networking sites, wikis and folksonomies. File sharing through social networks enables users to explore their strong and weak ties. Random connections in P2P networks are not even weak ties -- they are random ties. Exploring the weak ties in your network is likely to give you access to more relevant information/content than a random tie. People tend to associate with friends with whom they share some common bond, and this common bond is likely going to result in some shared tastes. By introducing concept of groups we might be restricting the amount of information a user has access to as compared to worldwide centralized systems like Napster but the quality of information that users will be much better and search will be faster and results more relevant. Is having the world's largest, messiest and duplicated library going to help you discover new items of interest? According to one study 45% of the files found by popular keyword searches were infected with viruses. Perhaps these groups can influence some change and shift users away from an attitude of "I'm looking for this track!" attitude to a "What are my friends listening to?" attitude. Related Work: Retroshare[7] is a private and secure decentralized P2P communication platform. It lets users share friend lists securely, using a web-of-trust to authenticate peers and OpenSSL to encrypt all communication. RetroShare provides filesharing, chat, messages and channels. It is also working on a similar line as ours in that it allows forming groups of users and allowing file transfers between them but it doesn’t allow a global search functionality. There are other P2P architectures for content sharing like Limewire Kaaza, Bittorrent, Ares, etc which are all the same in the aspect that none of these systems allow access specifiers for files that are available. Thus, by default all the files are public and accessible to everyone. Also users do not require to login and thus malicious users can’t be identified. Skype, a VOIP application is also based on P2P architecture. One of the main features of the skype application is that it allows secured access in the system and thus each user has a group of buddies to communicate with. However, this system lacks content searching and sharing in P2P file systems. Proposed Work: We propose an architecture in which users can form groups and have some files shared strictly among themselves. A user must log into the system first. The login information will be maintained at a centralized authentication server. Users can become members of more than one group. A group can be created by any user. The user can send invitations to other users with whom they want to share data. Users can also search for groups and request access to a particular group. Each file the user chooses to make available to the P2P network will be classified as being in the public domain, group domain or private domain. Files in the public domain will be accessible to all users. Files in the group domain will only be accessible to the users who are members of that group. Files tagged as private by a user will not be shared with any other user. Thus, by having groups of users, we can ensure restricted access to files. As a result of this, the various risks associated with downloading malicious by a user content can be minimized. In this manner, we can create a trusted network of users eliminating threats from malicious users. Architecture: Plan of Action: We will be using the Lime Wire open source code for developing our system. Limewire is developed in JAVA and has compatibility for all the platforms like Windows, Mac and Linux. We plan to add following modules in the system. 1) Authentication Module: Our system will have an authentication mechanism where the users would log into the system before sharing any files. This will be implemented with the help of a centralized server (similar to Skype) in order to avoid duplications of usernames. The centralized server will verify the login credentials of users. 2) Group Manager: The system would classify the content into three categories: public, private and group. As the name suggests, the files in the public domain are shared with everyone, the files in the group category are shared only with the members belonging to that group and the files in the private category are private to the user. Therefore, when a user searches for a file, the searching mechanism will look for the files in the public category and also the files that belong to the users with whom he shares a group. One of the main tasks of our system would be to modify the existing the searching module so that a particular search covers all the aspects of controlled access to files. Either users can invite others or members can request the owner for a group membership and mutually agree to share everything in that group. We plan to implement this by associate a key (perhaps in the form of <group,owner> ) with each group to incorporate multiple groups with the same name. 3) Event Notification Module: When the owner invites someone to join his group, a notification to the user is sent immediately if he is online or when he logs into the application next time. Likewise when a user sends a request to the owner of a group the owner receives the request next time he logs into the application. 4) Search Module: The search mechanism will be modified to searches for files across the p2p network according to the tags associated with the files. 5) GUI: A graphical interface for the client will be built, which will display search results with preview. 6) Encryption Module: This module is responsible for encrypting and decrypting login credentials as well as data sent over the network. Timeline: No. 1 Assigned work Literature Review Week(s) 02/18 - 02/25 Participants All 2 Studying design and code of open source P2P architecture 02/26 - 03/03 All 3 Designing the system 03/04 - 03/10 All 4 Implementing the authentication server and module 03/11 - 03/17 Pankaj, Kaushal, Hiral 5 Introducing access control 03/18 - 03/31 Mehul, Kaustubh 6 Modifying the search control 03/25 - 03/31 Pankaj, Hiral 7 Creating a GUI 04/01 - 04/07 Mehul, Kaushal 8 Integrating the modules 04/08 - 04/ 15 Pankaj, Kaustubh 9 Testing 04/16 - 04/20 Kaushal, Hiral References: [1] http://www.limewire.com/ [2] http://www.skype.com/ [3] Josiane Xavier Parreira, Debora Donato, Carlos Castillo, Gerhard Weikum "Computing Trusted Authority Scores in Peer-to-Peer Web Search Networks" http://airweb.cse.lehigh.edu/2007/papers/paper_108.pdf [4] Robert Kaye "Next Generation File Sharing with P2P Networks" http://www.openp2p.com/pub/a/p2p/2004/03/05/file_share.html [5] Erez Elul "Focusing the use of the internet" http://piletech.org/Focusing.html [6] http://retroshare.sourceforge.net/ [7] P2P or Peer-to-Peer Safety, Privacy and Security. http://www.ftc.gov/os/comments/p2pfileshare/OL-100005.pdf