PriServ is a privacy service for peer-to-peer (P2P) data sharing that combines purpose-based access control, trust and encryption, for applications with sensitive data, e.g. medical data. The key feature is that owner peers (data publishers) keep full control over their private data and private keys. Data publishing in PriServ takes into account owner privacy preferences and does not reveal any private information about data (encrypted data or data references). PriServ uses a DHT to efficiently locate data. It is implemented in Java using the Service Component Architecture and Java RMI for peer communication. The implementation uses the Chord DHT but any other DHT could be used.
Description
Online P2P communities such as professional communities (e.g., medical or research communities) are becoming popular due to increasing needs on data sharing. P2P environments offer valuable characteristics but limited guarantees when sharing sensitive or confidential data. They can be considered as hostile because data can be accessed by everyone (by potentially untrusted peers) and used for everything (e.g., for marketing or for activities against the owner’s preferences or ethics). In our work, we propose PriServ, a Privacy Service located on top of DHT-based P2P systems which prevents data privacy violations. Based on data owner privacy preferences, PriServ uses Hippocratic database principles, it takes into account for which purposes data are being shared/collected and which operations will be realized on data (e.g., read, write, disclosure). Additionally, PriServ uses encryption and reputation techniques to increase trust on peers requesting data.
The key idea behind PriServ is that everyone in the system be conscious of the data privacy preferences. We argue that nowadays systems should provide facilities to data owners to specify their data privacy preferences. Data servers should ensure those preferences when providing data and data requesters when requesting and using them.
Data privacy preferences of data owners are registered in Privacy Policies (PP). Inspired from P3P, next Figure shows a PP meta model.
Architecture
The global architecture of this work (see next Figure) considers that on top of the Internet network there is the P2P system. The overlay network layer takes in charge the routing system by implementing the lookup() function but also by managing the peers dynamicity (join/leave of peers). On top of this layer, the distributed storage layer ensures key-based data searching and data distribution by implementing the put()and get() functions. Those two layers make abstraction of the DHT-based P2P system. PriServ is implemented as an APPA (Atlas P2P Architecture) service on top of the DHT layer.
Next Figure shows the PriServ architecture in détail. Applications, publish and request data through PriServ. Principal components of the PriServ service (storage manager, policy manager, key manager, cipher manager, data signature manager, trust manager) are organized by an orchestrator. The orchestrator is the central component of PriServ. According to the peer type (i.e., requester, owner, server), the orchestrator executes a different workflow by using the components introduced before.
Owner orchestrator. Its role is to orchestrate the owner functionalities. It is responsible of publishing owner references or data depending on the called function (publishData() or publishReference()). It is also responsible of retrieving data or symmetric keys during the requesting process. It interacts with the application layer during publishing and with the requester orchestrator during retrieving.
Requester orchestrator. Its role is to orchestrate data requesting. It interacts with the application layer during requesting and with the owner orchestrator during retrieving.
Server orchestrator. Its role is to orchestrate the server functionalities. For that, it interacts with the DHT layer to store and retrieve data of the P2P system.
Basic functions
Prototype
In our prototype, peers are implemented as Java objects using the Service Component Architecture (SCA). They can be deployed over a single machine or several machines connected together via a network. Each object contains the code which is needed for calling PriServ protocols.
To communicate between peers, we use Java RMI which allows an object to invoke a method on a remote object. The prototype provides a GUI that enables the user to manage her local data and the published data in the P2P system, monitor the data stored at each peer, the privacy policies
created by owners and the references for data which are allowed to access for particular purposes and operations.
Demonstration
A video demonstration of a privacy preserving application (PPA) can be downloaded here << .wmv >> <<.mov>>.
In this demonstration we show a PPA which uses the PriServ service.
The key features of the prototype are demonstrated through the following scenarios:
Download
http://sourceforge.net/projects/priserv/
Publications
Book chapter
Conferences
Poster and demo
PhD Thesis
Master report
Contributors
Contact: Mohamed[dot]Jawad[at]univ-nantes[dot]fr