--- title: "Cripto libretto" author: Unit hacklab - unit@paranoici.org date: Aprile 2018 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 ## 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 Containers[^1]: 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à [^1]: https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers ## 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. 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. * Ubuntu: https://www.ubuntu.com/desktop/1710 * Linux Mint: https://linuxmint.com * Bunsenlabs: https://www.bunsenlabs.org * Debian: https://www.debian.org ## 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.