criptolibretto/book.md

305 lines
11 KiB
Markdown
Raw Normal View History

2018-04-19 12:56:20 +02:00
---
title: "Cripto libretto"
author: Unit hacklab - unit@paranoici.org
2018-04-22 08:08:14 +02:00
date: Aprile 2018
2018-04-19 12:56:20 +02:00
lang: 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
2018-04-19 14:02:48 +02:00
2018-04-19 12:56:20 +02:00
## 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
2018-04-19 14:30:56 +02:00
Containers[^1]: per compartimentare history e cookies
2018-04-19 12:56:20 +02:00
Profili: sono delle diverse sessioni del browser, per compartimentare anche gli add-on, si
possono aprire scrivendo nella finestra di navigazione:
2018-04-19 14:02:48 +02:00
about:profiles
2018-04-19 12:56:20 +02:00
Add-ons:
2018-04-19 14:30:56 +02:00
* https-everywhere: preferisce https a http
* ghostly: blocca i tracker della nostra navigazione
* no script: blocca gli script
* ublock origin: blocca la pubblicità
[^1]: https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers
2018-04-19 12:56:20 +02:00
## Navigazione anonima con Tor
Tor, **T**he **O**nion **R**outer è 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.
2018-04-19 14:02:48 +02:00
openssl sha256 VeraCrypt_1.22_Bundle.7z
2018-04-19 12:56:20 +02:00
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.
2018-04-19 14:30:56 +02:00
* Ubuntu: https://www.ubuntu.com/desktop/1710
* Linux Mint: https://linuxmint.com
* Bunsenlabs: https://www.bunsenlabs.org
* Debian: https://www.debian.org
2018-04-19 12:56:20 +02:00
## Comunicazione sicura dal telefonino
Premessa: consideriamo che gli smartphone sono insicuri per definizione
2018-04-19 14:30:56 +02:00
* **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
2018-04-19 12:56:20 +02:00
## 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
2018-04-19 14:30:56 +02:00
* **PGP** Pretty Good Privacy, software di crittografia asimmetrica
* **GnuPG** è il suo equivalente libero
2018-04-19 12:56:20 +02:00
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
2018-04-19 14:02:48 +02:00
2018-04-19 12:56:20 +02:00
Verificare una firma accanto a un file
2018-04-19 14:02:48 +02:00
2018-04-19 12:56:20 +02:00
gpg --verify file.sig file
2018-04-22 08:08:14 +02:00
## 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
2018-05-25 16:36:54 +02:00
senso che si difenda dicendo: "è meno facile che andare al supermercato".
2018-04-22 08:08:14 +02:00
Di seguito una guida su come offrire servizi utili da una macchina di casa affacciata alla
2018-05-25 16:36:54 +02:00
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.
2018-04-22 08:08:14 +02:00
### Requisiti
2018-05-25 16:36:54 +02:00
* Un IP pubblico. È obbligatorio darlo da parte del gestore, ma a volte è necessario
2018-04-22 08:08:14 +02:00
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
2018-05-25 16:36:54 +02:00
* Scaricare, verificare e installare Debian
* Primo login e gestione root
2018-04-22 08:08:14 +02:00
* 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
2018-05-25 16:36:54 +02:00
#### 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**
2018-04-19 12:56:20 +02:00
## Risorse
2018-04-19 14:02:48 +02:00
Liberati dai programmi globali di sorveglianza
2018-04-19 12:56:20 +02:00
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
2018-04-19 14:02:48 +02:00
esempio email, blog, mailing list, instant messaging e altro.
2018-04-19 12:56:20 +02:00
https://www.autistici.org
2018-04-22 08:08:14 +02:00
## Consigli
Il computer non ha un cervello, usa il tuo.
2018-04-19 12:56:20 +02:00
2018-04-22 08:08:14 +02:00
Non fidarti troppo di chi ti dà consigli.