criptolibretto/book.md
2018-05-25 16:36:54 +02:00

11 KiB

title author date lang
Cripto libretto Unit hacklab - unit@paranoici.org Aprile 2018 italian

Per una corretta igiene digitale

Usiamo software libero e a sorgente aperta

https://www.gnu.org/philosophy/free-sw.it.html

Una buona password

Non usare la stessa password per diversi servizi

Usa una passphrase, ossia una frase di accesso compresa di spazi, facile da ricordare, ma difficile da indovinare persino per un computer, ad esempio questa contiene sia maiuscole che numeri, è molto lunga, ma facile da ricordare

Nel mezzo del cammin di nostra vita2

Il password manager

Le password da ricordare sono troppe, KeePassX è un software multipiattaforma per la gestione di password, un luogo sicuro dove scriverle, ma non dimenticare la password principale

https://www.keepassx.org

Accecare la telecamera del portatile

Attacca un pezzo di scotch nero da elettricista sulla telecamera del portatile, il fatto che non si accenda la lucina non significa che sia spenta.

Navigazione consapevole

Usiamo Firefox

La gestione dei containers e dei profili ci permette di creare ambienti isolati

Containers1: per compartimentare history e cookies

Profili: sono delle diverse sessioni del browser, per compartimentare anche gli add-on, si possono aprire scrivendo nella finestra di navigazione:

about:profiles

Add-ons:

  • https-everywhere: preferisce https a http
  • ghostly: blocca i tracker della nostra navigazione
  • no script: blocca gli script
  • ublock origin: blocca la pubblicità

Navigazione anonima con Tor

Tor, The Onion Router è un protocollo per l'anonimizzazione del traffico web. Scarica, installa e usa il programma Tor browser bundle per navigare in rete anonimamente.

Attenzione! Non presumere che il tutto funzioni per magia. Studia, prova, verifica.

https://www.torproject.org/download/download.html.en

Tails

TAILS è un sistema operativo smemorato, si avvia da penna Usb e quando lo spegni non ricorda nulla di quello che è successo. In altre parole usa Tor per navigare in internet anonimamente e permette di usare un computer in prestito senza doverci installare nulla. Utile in viaggio.

https://tails.boum.org

Verificare l'integrità del software scaricato

Alcuni software offrono di verificare la loro checksum (somma di controllo), ossia la stringa alfanumerica univoca che risulta applicando un algoritmo chiamato SHA256. Scarica il pacchetto e usa un programma per fare il calcolo, se la stringa (hash) che salta fuori coincide con quella pubblicata sulla pagina web, il pacchetto dovrebbe essere integro.

openssl sha256 VeraCrypt_1.22_Bundle.7z
e51bd8ba4ff40aee084019ddf3a9f8d0e5fa8f743612c581efb2fbf10e36c595

Alcuni software sono anche accompagnati da una firma digitale, si può verificare con GnuPg che la firma, apposta a lato come file.sig, appartenga all'autore.

gpg --verify VeraCrypt_1.22_Bundle.7z.sig VeraCrypt_1.22_Bundle.7z

Usare un sistema operativo libero

Usiamo GNU/Linux, disponibile in diverse distribuzioni, elencate in ordine di facilità d'uso.

Comunicazione sicura dal telefonino

Premessa: consideriamo che gli smartphone sono insicuri per definizione

  • Signal.org è una app che permette di comunicare privatamente
  • Conversations.im è una app che permette di comunicare privatamente con protocollo federato
  • lineageos.org è un sistema operativo per telefonini basato su Android

VeraCrypt

VeraCrypt è un software che permette di proteggere con una passphrase una penna Usb, utile per trasportare dei documenti in viaggio senza preoccuparsi di perderla. Attenzione che durante la configurazione la penna verrà formattata e sarà poi sempre necessario usare VeraCrypt per montarla.

https://www.veracrypt.fr/en/Home.html

PGP, la crittografia pesante a doppia chiave

  • PGP Pretty Good Privacy, software di crittografia asimmetrica
  • GnuPG è il suo equivalente libero

Si usa per cifrare, ma anche per firmare.

Chi usa GnuPG crea due chiavi, quella privata serve per decifrare, quella pubblica viene usata dai suoi corrispondenti per cifrare.

Creare la coppia di chiavi

gpg --gen-key

Creare un certificato di revoca

gpg -o revoca-Key-ID.asc --gen-revoke Key-ID

Esportare la chiave pubblica

gpg -a -o mia-chiave-pubblica.txt --export Key-ID

Importare una chiave di qualcuno

gpg --import chiave.asc

Verificare una fingerprint

gpg --fingerprint Key-ID

Cifrare un documento per Snowden

gpg -a -o messaggio.asc --encrypt --recipient snowden-Key-ID messaggio.txt

Decifrare un documento

gpg -o messaggio-in-chiaro.txt messaggio.asc

Scaricare la chiave pubblica di qualcuno

gpg --keyserver pgp.mit.edu --search-keys Key-ID

Verificare una firma accanto a un file

gpg --verify file.sig file

Self hosting

Abbiamo la volontà di avere una copia di riserva dei nostri dati, di sincronizzare una rubrica e un calendario con un dispositivo mobile e di condividere documenti. Tutto questo possiamo farlo facilmente con dei servizi commerciali, ma non gratuitamente, a costo invece della nostra libertà. Quando i nostri dati vengono sparpagliati e utilizzati come risorse per creare profitto, subiamo un danno all'integrità del nostro sé digitale.

Self hosting significa gestire autonomamente uno spazio digitale. Si può fare anche in gruppo e collettivizzare le risorse e i costi. È meno facile che usare i servizi commerciali, ma forse il paragone non è giusto. La guida per coltivare un orto non ha senso che si difenda dicendo: "è meno facile che andare al supermercato".

Di seguito una guida su come offrire servizi utili da una macchina di casa affacciata alla rete. In particolare per la costruzione di un server dove avere uno spazio per la condivisione documenti, rubrica e calendario, un wiki, un blog per la scrittura e dove fare un backup senza perdere il controllo dei nostri dati.

Requisiti

  • Un IP pubblico. È obbligatorio darlo da parte del gestore, ma a volte è necessario chiederlo esplicitamente
  • Utilizzare un Pc con almeno 40 Gb di disco e 1 Gb di RAM

Scaletta

  • Fare un buco nel firewall del hag/router per far passare la porta 22 e 443
  • Scaricare, verificare e installare Debian
  • Primo login e gestione root
  • Creare una chiave ssh per collegarsi a debian in maniera sicura
  • Assegnare a debian, attraverso il router, un IP statico nella sottorete
  • Installare ntp per sincronizzare l'ora
  • Installare e configurare ufw firewall, aprendo le porte 22 e 443
  • Installare postfix, local only
  • Installare e configurare apache
  • Installare e configurare php
  • Creare una chiave SSL con LetsEncrypt
  • Installare e configurare MariaDB
  • Installare e configurare Nextcloud
  • Installare e configurare Dokuwiki
  • Installare e configurare Blogxom
  • Installare e configurare Duplicity
  • Hardening: permessi, chroot, suid-suig, fail2ban, rkhunter

Fare un buco nel firewall del hag/router per far passare la porta 22 e 443

A seconda del router utilizzato, l'interfaccia potrebbe essere diversa, alla voce: NAT o port forwarding apriamo l'accesso alla porta 22 e 443, che serviranno rispettivamente a ssh e https.

Scaricare, verificare e installare Debian

Dal sito www.debian.org individuare e scaricare l'immagine della distribuzione, mentre scriviamo la più recente è Debian 9.4. Per un comune computer recente useremo amd64. Verificare la checksum e masterizzare l'immagine su di un CD o DVD, ma in questo tutorial useremo una penna USB di almeno 1GB

Collegare il Pc a monitor, tastiera e cavo ethernet

Inserire la chiavetta e verificare dove è stata montata

sudo ls -l /dev/disk/by-id/*usb*

Nell'esempio che segue la penna è in /dev/sdb, procediamo a creare la penna d'avvio

attenzione che il contenuto della penna sarà cancellato, e attenzione ad essere sicure di aver indicato correttamente il percorso della penna per non cancellare inavvertitamente un altro disco innocente

sudo dd if=debian.iso of=/dev/sdb bs=4M; sync

Inserire la penna nel Pc da usare come self host e riavviare tenendo premuto F12

Se il Pc non avvia dalla penna potrebbe essere necessario entrare nel BIOS e scegliere Usb come dispositivo d'avvio. A seconda del modello di Pc per entrare nel BIOS potrebbe servire tenere premuto all'avvio uno di questi tasti: F1, F2, F8, DEL, ESC or F10. Una volta entrati, editiamo l'ordine di avvio mettendo la USB flash disco come prioritario

La procedura di installazione di Debian è semplice: l'installazione grafica fa da guida per scegliere la lingua da usare, la zona geografica e il nome della macchina, ad esempio "selfhost". Creare l'utente con password e con la partizione guidata formattare l'intero disco senza complicazioni. Usare un network mirror per scaricare il software aggiornato ed è sufficiente scegliere: SSH server e standard system utilities. In conclusione installare GRUB bootloader nel Master Boot Record (MBR) per terminare l'installazione.

Attenzione che il disco sarà formattato e cancellato, non ci saranno altri sistemi operativi oltre a GNU/Linux Debian. È possibile effettuare al momento dell'installazione scelte particolari che lasciamo agli utenti esperti

Primo login e gestione root

Al primo avvio saremo di fronte a una schermata dove potremo inserire login e password che abbiamo definito durante l'installazione. Si tratta del primo e fino ad ora unico utente del computer e si tratta di un utente il quale può amministrare la macchina grazie al comando sudo.

Come prima cosa cambiamo la password del nostro utente con una password non banale,

passwd

Verifichiamo il nome della macchina

hostname

Prendiamo nota dell'indirizzo IP

hostname -I

se non funziona, uno dei due comandi seguenti ci darà l'indirizzo IP

ip addr

ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1

A questo punto possiamo spegnere il Pc, staccare monitor e tastiera e posizionarla nella sua sistemazione definitiva, vicino a una presa di corrente e raggiungibile da un cavo di rete.

Fare login su selfhost da un altro Pc ci basta conoscere utente, password e l'indirizzo IP dove trovarla

ssh user-name@indirizzo-IP

TO BE CONTINUED

Risorse

Liberati dai programmi globali di sorveglianza https://prism-break.org/it

Autistici/Inventati offre ad attivisti, gruppi e collettivi piattaforme per una comunicazione più libera e strumenti digitali per l'autodifesa della privacy, come per esempio email, blog, mailing list, instant messaging e altro. https://www.autistici.org

Consigli

Il computer non ha un cervello, usa il tuo.

Non fidarti troppo di chi ti dà consigli.