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.
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.
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.
- Python version 3
- libopendht (tested with version 1.6.0)
- python3-opendht
- msgpack
- PyCryptodome
- Configure username and password outside of the script.
- 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.