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 Cryptgeon
  • THEME_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

Buy me a coffee

o donare via

Liberapay


Seguici su Mastodon

Stay tuned!