Note: This project is related to a paper under submission. Later, we will make the original DEV repository public:)
PPSB is an open-sourced Privacy-Preserving Safe Browsing platform. It enables the Safe Browsing (SB) service without sacrificing your privacy. Particularly, in PPSB, the actual URL to be checked, as well as its associated hashes or hash prefixes, never leave your browser in cleartext.
PPSB allows you to collaboratively choose different third-party content providers with their update-to-date lists of unsafe URLs. For demonstration purpose, we have included a default source (25,304 unsafe domains) in this extension, where the blacklist is from MalwareDomains.com and the server is maintained by ourselves. The current available blacklist sources are listed here.
If you are a content provider and want to deploy your own PPSB server, please watch this video. By using our lightweight yet stand-alone Docker image (ppsb/server), you can easily and privately contribute your valuable blacklist. Note that these published blacklists are always encrypted and kept private within the PPSB platform.
- Run server
- Install Docker
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce
docker --version
- Run Docker
sudo docker run -tid -p 80:80 ppsb/server:v1
- Access the IP address/URL of this server via a web browsing
- Register
- Upload a blacklist in JSON format
- Encrypt and publish it
- Stop Docker
sudo docker container ls
sudo docker stop [container id]
Note: You can watch this 1-min video to see how to do deploy a PPSB server via Docker.
- Clone PPSB from GitHub
$ sudo -s
# mkdir /data
# cd /data
# git clone https://.../SafeBrowsing.git
(change this to a real git address)
- Install
Node.js
# apt-get update
# apt-get install curl python-software-properties
# curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
# apt-get install nodejs
node -v
andnpm -v
- Update
npm
and installpm2
# npm i npm -g
# npm install pm2@latest -g
- Install
redis-server
# apt install redis-server
- Start service
# cd /SafeBrowsing/web/
# npm install
# npm start
# pm2 list
- Access the IP address/URL of this server via a web browsing
- Register ...
- Stop service
npm stop
- Apply for CA files including .PEM and .KEY
- Put these CA files into the PATH:"/data/ca"
- Rename them to "web.pem" and "web.key"
- Restart PPSB service