Il progetto Cryptgeon e le sue caratteristiche
Cryptgeon è un servizio open source per la condivisione sicura di testi o file, creato da Nicco - cupcakearmy, sviluppatore già menzionato su questo taccuino digitale per aver sviluppato autorestic.
Come precisato dallo sviluppatore Cryptgeon è ispirato a PrivNote.
Il progetto è costituito da una componente server, da una pagina web e da un client CLI.
Kudos allo sviluppatore di Cryptgeon per la validità del progetto che auspichiamo segua e mantenga per ogni miglioramento.
Cryptgeon ci ha colpiti per l’attenzione dello sviluppatore ai profili di sicurezza implementata che contribuisce a qualificare il progetto tra quelli che rispettano la privacy.
Infatti, come si legge nella descrizione dei progetto, per ogni testo o nota vengono generati un ID a 256 bit e una chiave a 256 bit.
L’ID viene utilizzato per salvare e recuperare la nota (o il file).
Cryptgeon utilizza la crittografia AES-256 Galois/Counter Mode (GCM), per cui il testo (o il file) viene crittografato lato client con la chiave che poi è inviata al server. I dati vengono salvati in memoria e non persistono mai su disco del server. Sul server non viene mai salvata la chiave di crittografia e non è possibile de-crittografare il contenuto delle note.
Le caratteristiche di Cryptgeon, come indicate nel suddetto repository, sono le seguenti:
- invio di testo o file;
- il server non può decifrare i contenuti sulla base della crittografia lato client;
- visualizzazione o impostazione di vincoli temporali;
- funziona in memoria, senza persistenza;
- modalità auto, chiara e scura.
Cryptgeon Web
Si può utilizzare il servizio pubblico di Cryptgeon oppure installare un’istanza sul proprio server.
Nel paragrafo successivo illustreremo come installare un’istanza di Cryptgeon self-hosted.
Cryptgeon self-hosted: l’installazione
Cryptgeon può essere installato sul server e utilizato con Docker.
Presupponendo l’utilizzo di un sistema con Ubuntu server, di seguito sono indicati gli step da seguire:
1. Creare la cartella dove posizionare i file di Cryptgeon
Dopo aver effettuato l’accesso al proprio server via ssh
, creare una cartella dove salvare il file di configurazione. Una soluzione può essere la seguente:
mkdir /opt/cryptgeon
2. Creare il file per Docker di Cryptegeon
Ci si deve spostare nella cartella precedentemente creata, lanciando quindi il comando
cd /opt/cryptgeon
e per creare il file docker-compose.yml
si procede con i comandi di seguito indicati:
nano docker-compose.yml
oppure
vim docker-compose.yml
oppure
touch docker-compose.yml
(in quest’ultimo caso, il file verrà creato ma poi bisognerà editarlo con nano
, vim
o altro editor).
Riportare il seguente contenuto nel file docker-compose.yml
:
services:
redis:
image: redis:7-alpine
restart: always
app:
image: cupcakearmy/cryptgeon:latest
depends_on:
- redis
restart: always
ports:
- 8899:8000
environment:
# Size limit for a single note.
SIZE_LIMIT: 200 MiB
THEME_IMAGE: "https://youdomain.com/yourimage.png"
ALLOW_FILES: true
THEME_PAGE_TITLE: "Cryptgeon"
THEME_FAVICON: "https://youdomain.com/favicon.ico"
La versione su riportata è parzialmente diversa da quella presente nel repository di cryptgeon.
In particolare manca la prima riga che contiene version: '3.8'
perché utilizzando Docker Compose V2 viene evidenziato un warning (la prima riga version: '3.8'
va lasciata se si utilizza Compose V1).
Riguardo alle porte, si dovrà scegliere la porta esterna (nel nostro caso 8899) e bisognerà aprirla.
Possono essere utilizzate delle variabili della sezione environment
e la relativa documentazione è nel repository di Cryptgeon.
Nel nostro caso, abbiamo utilizzato:
THEME_IMAGE
per sostituire l’immagine di default con il proprio logo;THEME_PAGE_TITLE
per attribuire un titolo personalizzato alla pagina di CryptgeonTHEME_FAVICON
per scegliere il proprio favicon
Una volta salvato il file docker-compose.yml
è possibile avviare l’app con il comando:
docker compose up -d
oppure
docker-compose up -d
Il primo comando se si utilizza Compose V2 e il secondo per V1.
A questo punto all’indirizzo http://serverIP:8899
si dovrebbe raggiungere la pagina di Cryptgeon.
Tuttavia è possibile utilizzare un web service come NGINX la cui configurazione è descritta nel paragrafo successivo.
3. Impostare il nome a dominio
Accedendo al pannello di controllo del proprio provider, impostare i DNS del nome a dominio che si intende utilizzare per il servizio Cryptgeon (es. cryptgeon.youdomain.com).
4. Creare il file di configurazione per NGINX
Restando sempre sul server, bisogna creare il file di configurazione di NGINX (presupponiamo che il servizio sia già installato sul server, diversamente si deve procedere preventivamente alla sua installazione) in /etc/nginx/site-available
.
Quindi con le stesse modalità indicate sopra, si crea il file di configurazione con il comando nano cryptgeon.conf
oppure vim cryptgeon.conf
.
Nel repository di Cryptgeon ci sono esempi di file di configurazione di NGINX, ma nella versione con TLS risulta un errore alla riga 10 che va eliminata.
Abbiamo scelto la configurazione semplice e quindi all’interno dell’editor va riportato il seguente contenuto:
server {
listen 80;
listen [::]:80;
server_name cryptgeon.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8899/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Il file va salvato e poi va creato il symlink con il comando seguente:
ln -s /etc/nginx/site-available/cryptgeon.conf /etc/nginx/site-enable/cryptgeon.conf
Potrebbe essere utile effettuare un test di NGINX con il comando nginx -t
.
Poi si dovrà procedere all’emissione dei certificati SSL con il comando:
certbot --nginx
Una volta generati i certificati potrebbe essere utile verificare nuovamente il file di configurazione NGINX.
Lanciare il comando
systemctl reload nginx
A questo punto il servizio Cryptgeon dovrebbe essere raggiungibile all’indirizzo https://cryptegon.yourdomain.com.
That’s all!
Cryptgeon CLI
Cryptgeon può essere anche utilizzato in modalità CLI, seguendo la guida presente nel repository.
Godetevi Cryptgeon!
Se questa risorsa è stata utile, puoi contribuire con
o donare via
Seguici su Mastodon
Stay tuned!