/qurlshare

A Qutebrowser userscript enabling secure sharing of an URL between qutebrowser instances without need of any centralized service.

Primary LanguagePython

qurlshare

A Qutebrowser userscript enabling secure sharing of an URL between qutebrowser instances without need of any centralized service.

More precisely, it is a URL sharing script running over a distributed hash table. Everytime you paste a new URL, the last pasted URL is recovered.

How to use

Place the script somewhere on your system. Let's say it's installed at ~/bin/qurlshare.py. Then, you can do as follows in qutebrowser in order to share an URL:

:spawn --userscript /usr/bin/python3 ~/bin/qurlshare.py {url}

In order to recover the URL, simply do:

:spawn --userscript /usr/bin/python3 ~/bin/qurlshare.py -g

This will open a tab in the Qutebrowser window with the recovered URL.

Security

User configuration protects his data. The script can be configured directly by editing variables at the top of the script:

########################
#  USER CONFIGURATION  #
########################

USER = "49d248e8b300550"
PWD  = "99a2b38a6216c1c"

Username and password can be of any length. The username and password are used to derive a storage location on the DHT so make sure to pick something that is unique if you don't want to end up with someone else (encrypted) data.

The key used to encrypt is the result of passing PWD into some Key Derivation Function which has the effect of increasing the computationnal effort of bruteforcing your password. The KDF used is PBKDF2 from PyCryptodome python module.

Dependencies

Roadmap

  1. Configure username and password outside of the script.
  2. Make this script use a daemonized OpenDHT node in order to avoid recreating a node every time one uses this script. This would significantly speed up the process of publishing and recoverining of URLs.

Author

Simon DĂ©saulniers (sim.desaulniers@gmail.com)