/chasr-linux-logger

End-To-End Encrypted GPS Tracking Service

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

ChasR Logo

ChasR is an open-source end-to-end encrypted GPS tracking system. It can be used directly as service or hosted by oneself. The goal of ChasR is to offer a privacy protecting GPS tracking service by using end-to-end encryption. This means that the sensitive location data of a user is directly encrypted on the device before it is sent to the server. Since the server does not know the key for the encryption, it cannot see the location data. The stored location data can be accessed either via Android App or web interface. Again, the location data is decrypted on the device and hence the server has no way of knowing the location of the user. All you need to use ChasR is a free account and ChasR logging application.

A diagram showing the ChasR architecture (a logger device for collecting the location data, the server that stores the encrypted data, and the map device showing the location data) looks like the following:


The ChasR GPS Tracking System is separated into multiple components:

Logger

Map

Server

Additionally, the ChasR GPS Tracking System can be used as part of the AlertR Alarm and Monitoring System (for example as a car alarm system).

ChasR Linux Logger

This is a Linux logger for the ChasR GPS Tracking System. Its task is to gather the location data, encrypt it locally on the device and submit it to the ChasR server. It is written in Python3 and uses the gpsd provided on most Linux distributions.

A picture of a temporary test logging setting with a Raspberry Pi: Raspberry Pi Setting

Install

Installing the Linux logger is rather simple. All it needs is Python3, gpsd and some packages provided via pip. This example shows how to setup the logger on an Ubuntu Linux.

First, the needed packages have to be installed:

root@towel:~# apt install gpsd python3 python3-pip

Next the gpsd has to be configured. I used an USB GPS dongle for it. This dongle was registered as device under /dev/ttyACM0. The configuration file under Ubuntu is located at /etc/default/gpsd and looked like the following:

# Start the gpsd daemon automatically at boot time
START_DAEMON="true"

# Use USB hotplugging to add new USB devices automatically to the daemon
USBAUTO="true"

# Devices gpsd should collect to at boot time.
# They need to be read/writeable, either by user gpsd or the group dialout.
DEVICES="/dev/ttyACM0"

# Other options you want to pass to gpsd
GPSD_OPTIONS=""

The Linux logger needs furthermore some packages provided by pip, which can be installed via the following command:

root@towel:~# pip3 install requests
root@towel:~# pip3 install gps3
root@towel:~# pip3 install pycrypto

Next the ChasR Linux Logger has to be configured. Rename the configuration template file config/config.conf.template to config/config.conf and insert the needed information into it. The most important settings that have to be set are the ChasR username and password, the secret (which is the key used to encrypt the GPS data) and the device name.

Afterwards, you can start the logger to track your location by executing:

sqall@towel:~/chasr-linux-logger$ ./chasr.py 

Supporting ChasR

If you like this project you can help to support it by contributing to it. You can contribute by writing tutorials, creating and documenting exciting new ideas to use ChasR (for example on the AlertR subreddit), writing code for it, and so on.

If you do not know how to do any of it or do not have the time, you can support the project by donating or support me on Patreon. Since the service has a monthly upkeep, the donation helps to keep these services free for everyone.

Patreon

Patreon

Paypal

Donate

Bugs and Feedback

For questions, bugs and discussion please use the Github issues.