Vaultage is a collaborative work between University of Maastricht and University of York that aims to move users' personal data from centralize servers to their personal data vaults/devices. It is designed to comply with the GDPR (https://gdpr.eu/) regulation on data protection and apply FAIR (Findable, Accessible, Interoperable, Re-usable) (https://www.go-fair.org/fair-principles/) data principles.
- Public Key Exchange. Public keys between users are exchanged via emails, messengers, etc., or further extension of the app.
- Double Encryption. Messages are encrypted (decrypted) using both users' keys: sender private key + receiver public key (receiver private key + sender public key).
- Encryption Algorithm. RSA, key length 512 bits.
- At the API level?
- At the file / data level?
- Access control as implemented in UNIX filesystem?
- Access control as implemented in database systems?
FAIRNet is the FAIR version of Facebook that stores users' personal data in their personal data vaults/devices. It uses the Spark framework (http://sparkjava.com/).
To run the early prototype of this project:
- Download the source code from https://github.com/alfayohannis/rdbd.
- Import the project to Eclipse. There are four projects:
- org.rdbd.core.client (the implementation of Rdbd client)
- org.rdbd.core.client.windows (the client for Windows OS)
- org.rdbd.core.server (the implementation of Rdbd server)
- org.rdbd.demo.fairnet (the implementation of the FAIRNet demo)
- Download Apache ActiveMQ from https://activemq.apache.org/components/classic/download/.
- Unzip and run the server by executing bin/activemq start using command prompt or console.
- Run RDBDWindows.java inside the org.rdbd.core.client.windows project. The client will listen incoming messages.
- Run the org.rdbd.demo.fairnet project.
- Go to http://localhost:4567/account/create/ using your browser.
- Fill in the username and full name textboxes. For now, the username field should be filled with 'foo'.
- Submit the form.
- Go to the console of RDBDWindows.java that you previously ran on Eclipse. You will see that the client receive the message sent by the server.