1.4 Linux e il mondo del lavoro
Introduzione
C’è stato un tempo in cui lavorare con Linux sul desktop era considerato duro, dal momento che il sistema mancava di molte delle applicazioni desktop e strumenti di configurazione che altri sistemi operativi avevano. Alcuni dei motivi erano che Linux risultava essere più giovane di molti altri sistemi operativi. Detto questo, fu più facile iniziare sviluppando applicazioni a riga di comando più essenziali e lasciare gli strumenti grafici più complessi per dopo, dal momento che Linux si è rivolto inizialmente a utenti più avanzati. Ma quei giorni sono ormai lontani. Oggi, gli ambienti desktop Linux sono molto maturi e non lasciano nulla a desiderare per quanto riguarda le caratteristiche e la facilità d’uso. Tuttavia, la riga di comando è ancora considerata un potente strumento utilizzato ogni giorno da utenti avanzati. In questa lezione daremo un’occhiata ad alcune delle abilità di base del desktop di cui hai bisogno per scegliere lo strumento migliore per il lavoro giusto, incluso arrivare alla riga di comando.
Interfacce utente Linux
Quando si utilizza un sistema Linux, si interagisce con una riga di comando o con un’interfaccia utente grafica. Entrambi i modi consentono di accedere a numerose applicazioni che supportano l’esecuzione di quasi tutte le attività con il computer. Mentre l’obiettivo 1.2 vi ha già introdotto una serie di applicazioni di uso comune, inizieremo questa lezione con uno sguardo più attento agli ambienti desktop, ai modi di accedere al terminale e agli strumenti utilizzati per le presentazioni e la gestione dei progetti.
Ambienti desktop
Linux ha un approccio modulare in cui varie parti del sistema sono sviluppate da diversi progetti e sviluppatori, ognuno dei quali riempirà una specifica necessità o obiettivo. Per questo motivo, ci sono diverse opzioni di ambienti desktop tra cui scegliere e, insieme ai gestori di pacchetti, l’ambiente desktop predefinito è una delle principali differenze tra le molte distribuzioni esistenti. A differenza dei sistemi operativi proprietari come Windows e macOS, dove gli utenti sono limitati all’ambiente desktop fornito con il loro sistema operativo, c’è la possibilità di installare più ambienti e scegliere quello che più si adatta a te e alle tue esigenze.
Fondamentalmente, ci sono due grandi ambienti desktop nel mondo Linux: Gnome e KDE. Entrambi sono molto completi, con una grande comunità alle spalle e mirano allo stesso scopo, ma con approcci leggermente divergenti. In poche parole, Gnome cerca di seguire il principio KISS («keep it simple stupid»), con applicazioni molto semplici e pulite. D’altra parte, KDE ha un’altra prospettiva con una selezione più ampia di applicazioni e dando all’utente la possibilità di modificare ogni impostazione di configurazione nell’ambiente.
Mentre le applicazioni Gnome sono basate sul toolkit GTK (scritto nel linguaggio C), le applicazioni KDE usano la libreria Qt (scritta in C ++). Uno degli aspetti più pratici della scrittura di applicazioni con lo stesso toolkit grafico è che le applicazioni tendono a condividere un aspetto simile, che è responsabile di dare all’utente un senso di unità durante la loro esperienza. Un’altra caratteristica importante è avere la stessa libreria grafica condivisa per molte applicazioni utilizzate di frequente. Questo può risparmiare spazio di memoria e allo stesso tempo velocizzarne il caricamento una volta che la libreria è stata caricata per la prima volta.
Come arrivare alla riga di comando
Per noi, una delle applicazioni più importanti è l’emulatore grafico di terminale. Questi sono chiamati emulatori di terminali perché in realtà emulano, in un ambiente grafico, i vecchi terminali seriali stile (spesso macchine Teletype) che erano in realtà client, a sua volta collegati a una macchina remota in cui l’elaborazione effettivamente avveniva. Quelle macchine erano computer davvero semplici senza grafica che venivano utilizzati nelle prime versioni di Unix.
In Gnome, tale applicazione è chiamata Gnome Terminal, mentre in KDE può essere trovata come Konsole. Ma ci sono molte altre scelte disponibili, come Xterm. Queste applicazioni sono un modo per avere accesso a un ambiente da riga di comando per poter interagire con una shell.
Quindi, dovresti guardare il menu dell’applicazione della tua distribuzione preferita per un’applicazione terminale. Oltre a qualsiasi differenza tra loro, ogni applicazione ti offrirà ciò che è necessario per acquisire fiducia nell’utilizzo della riga di comando.
Un altro modo per entrare nel terminale è usare il TTY virtuale. Puoi entrarci premendo kbd: [Ctrl+Alt+F#]. Leggi kbd: [F #] come uno dei tasti funzione da 1 a 7, ad esempio. Probabilmente, alcune delle combinazioni iniziali potrebbero essere in esecuzione il tuo gestore di sessione o il tuo ambiente grafico. Gli altri mostreranno un prompt chiedendo il tuo nome di accesso come quello qui sotto:
Ubuntu 18.10 arrelia tty3
login arrelia:
arrelia in questo caso, è il nome host della macchina e tty3 è il terminale disponibile dopo aver usato la combinazione di tasti sopra, più il tasto kbd: [F3], come in kbd: [Ctrl+Alt+F3].
Dopo aver fornito il tuo login e la tua password, finalmente entrerai in un terminale, ma non c’è un ambiente grafico qui, quindi, non sarai in grado di usare il mouse o eseguire applicazioni grafiche senza prima avviare una sessione X, o Wayland,. Ma questo va oltre lo scopo di questa lezione.
Presentazioni e Progetti
Lo strumento più importante per le presentazioni su Linux è LibreOffice Impress. Fa parte della suite open source chiamata LibreOffice. Pensa a LibreOffice come una sostituzione open source per l’equivalente Microsoft Office. Può anche aprire e salvare i file PPT e PPTX nativi di Powerpoint. Ma nonostante ciò, ti consiglio vivamente di utilizzare il formato nativo ODP Impress. L’ODP fa parte del formato Open Document, che è uno standard internazionale per questo tipo di file. Ciò è particolarmente importante se si desidera mantenere i documenti accessibili per molti anni e preoccuparsi meno dei problemi di compatibilità. Poiché sono uno standard aperto, è possibile per chiunque implementare il formato senza pagare royalty o licenze. Questo ti rende anche libero di provare altri software di presentazioni che potrebbero piacerti di più e portare i tuoi file con te, dato che è molto probabile che siano compatibili con quei software più recenti.
Ma se preferisci il codice rispetto alle interfacce grafiche, ci sono alcuni strumenti da scegliere. Beamer è una classe LaTeX che può creare presentazioni diapositive dal codice LaTeX. LaTeX stesso è un sistema di composizione ampiamente utilizzato per la scrittura di documenti scientifici presso l’accademia, specialmente per la sua capacità di gestire complessi simboli matematici, che altri software hanno difficoltà a gestire. Se sei all’università e hai bisogno di affrontare equazioni e altri problemi legati alla matematica, Beamer può farti risparmiare un sacco di tempo.
L’altra opzione è Reveal.js, un pacchetto NPM impressionante (NPM è il gestore di pacchetti NodeJS predefinito) che consente di creare bellissime presentazioni utilizzando il web. Quindi, se è possibile scrivere HTML e CSS, Reveal.js porterà la maggior parte del JavaScript necessario per creare presentazioni belle e interattive che si adatteranno bene a qualsiasi risoluzione e dimensione dello schermo.
Infine, se si desidera una sostituzione per Microsoft Project, è possibile provare GanttProject o ProjectLibre. Entrambi sono molto simili alla loro controparte proprietaria e compatibili con i file Project.
Usi industriali di Linux
Linux è molto utilizzato tra i settori del software e di Internet. Siti come W3Techs riportano che circa il 68% dei server web su Internet sono alimentati da Unix e la maggior parte di questi è noto per essere Linux.
Questa grande adozione è data non solo per la natura libera di Linux (come sia nella birra libera che nella libertà di parola), ma anche per la sua stabilità, flessibilità e prestazioni. Queste caratteristiche consentono ai fornitori di offrire i propri servizi con un costo inferiore e una maggiore scalabilità. Una parte significativa dei sistemi Linux al giorno d’oggi viene eseguita nel cloud, sia su un modello IaaS (Infrastructure as a Service), PaaS (Platform as a Service) o SaaS (Software as a Service).
IaaS è un modo per condividere le risorse di un server di grandi dimensioni offrendo loro l’accesso a macchine virtuali che sono, infatti, più sistemi operativi in esecuzione come guest su una macchina host su un importante pezzo di software chiamato hypervisor. L’hypervisor è responsabile di rendere possibile l’esecuzione di questi sistemi operativi guest segregando e gestendo le risorse disponibili sul computer host a tali guest. Questo è ciò che chiamiamo virtualizzazione. Nel modello IaaS, si paga solo per la frazione di risorse utilizzata dall’infrastruttura.
Linux ha tre ben conosciuti hypervisor open source: Xen, KVM e VirtualBox. Xen è probabilmente il più vecchio di loro. KVM ha esaurito Xen come il più importante Hypervisor Linux. Ha il suo sviluppo sponsorizzato da RedHat ed è utilizzato da loro e da altri giocatori, sia nei servizi cloud pubblici che nelle configurazioni cloud private. VirtualBox appartiene a Oracle sin dalla sua acquisizione di Sun Microsystems e viene solitamente utilizzato dagli utenti finali a causa della sua facilità d’uso e di amministrazione.
PaaS e SaaS, d’altra parte, si basano sul modello IaaS, sia tecnicamente che concettualmente. In PaaS anziché in una macchina virtuale, gli utenti hanno accesso a una piattaforma in cui sarà possibile distribuire ed eseguire la propria applicazione. L’obiettivo è quello di alleviare il carico di gestire le attività di amministrazione del sistema e gli aggiornamenti dei sistemi operativi. Heroku è un esempio PaaS comune in cui il codice del programma può essere eseguito senza occuparsi dei contenitori sottostanti e delle macchine virtuali.
Infine, SaaS è il modello in cui di solito si paga per un abbonamento al fine di utilizzare semplicemente un software senza preoccuparsi di nient’altro. Dropbox e Salesforce sono due buoni esempi di SaaS. La maggior parte di questi servizi è accessibile tramite un browser web.
Un progetto come OpenStack è una raccolta di software open source che può utilizzare diversi hypervisor e altri strumenti al fine di offrire un ambiente cloud IaaS completo on premise, sfruttando la potenza del cluster di computer sul proprio datacenter. Tuttavia, la configurazione di tale infrastruttura non è banale.
Problemi di privacy durante l’utilizzo di Internet
Il browser web è un pezzo fondamentale di software su qualsiasi desktop in questi giorni, ma alcune persone mancano ancora le conoscenze necessarie per utilizzarlo in modo sicuro. Mentre sempre più servizi sono accessibili attraverso un browser web, quasi tutte le azioni effettuate attraverso un browser vengono monitorate e analizzate da varie parti. Proteggere l’accesso ai servizi Internet e prevenire il tracciamento è un aspetto importante dell’utilizzo di Internet in modo sicuro.
Tracciamento dei cookie
Supponiamo che tu abbia sfogliato un sito e-commerce, selezionato un prodotto che volevi e inserito nel carrello. Ma all’ultimo secondo, hai deciso di pensarci un po’ più a lungo e se ne avessi davvero bisogno. Dopo un po’, inizierai a visualizzare gli annunci dello stesso prodotto che ti seguono in tutto il Web. Quando fai clic sugli annunci, verrai immediatamente inviato alla pagina del prodotto di quel negozio. Non è raro che i prodotti che hai inserito nel carrello siano ancora lì, aspettando solo che tu decida di controllarli. Ti sei mai chiesto come lo fanno? Come ti mostrano l’annuncio giusto su un’altra pagina web? La risposta a queste domande si chiama cookie tracking.
I cookie sono piccoli file che un sito web può salvare sul vostro computer al fine di memorizzare e recuperare qualche tipo di informazione che può essere utile per la vostra navigazione. Sono stati utilizzati per molti anni e sono uno dei modi più antichi per memorizzare i dati sul lato client. Un buon esempio del loro utilizzo sono gli ID della carta della spesa unici. In questo modo, se tornerai sullo stesso sito in pochi giorni, il negozio ti ricorda i prodotti che hai inserito nel carrello durante la tua ultima visita e ti farà risparmiare tempo per trovarli di nuovo.
Di solito va bene, dal momento che il sito web ti offre una funzionalità utile e non condivide dati con terze parti. Ma per quanto riguarda gli annunci che ti vengono mostrati mentre navighi su altre pagine web? Ecco dove entrano in campo le reti pubblicitarie. Queste sono aziende che offrono annunci per siti di e-commerce, come quello nel nostro esempio, da un lato e monetizzazione per i siti web, dall’altro. I creatori di contenuti come i blogger, ad esempio, possono rendere disponibile uno spazio per le reti pubblicitarie sul loro blog, in cambio di una commissione relativa alle vendite generate da quell’annuncio.
Ma queste aziende, come fanno a sapere quale prodotto mostrare? Di solito lo fanno salvando anche un solo cookie dalla rete pubblicitaria, nel momento in cui hai visitato o cercato un determinato prodotto sul sito e-commerce. In questo modo, la rete è in grado di recuperare le informazioni su quel cookie ovunque la rete abbia annunci pubblicitari, gemerando la correlazione con i prodotti che ti interessavano. Questo di solito è uno dei modi più comuni per rintracciare qualcuno su Internet. L’esempio che abbiamo dato sopra fa uso di un e-commerce per rendere le cose più tangibili, ma le piattaforme di social media fanno lo stesso con i pulsanti «Mi piace» o «Condividi» e il loro login social.
Un metodo per attenuare molto questa tecnica è non consentire ai siti web di terze parti di memorizzare cookie sul tuo browser. In questo modo, solo il sito web che visiti può tenere traccia dei loro cookie. Ma tieni presente che alcune funzionalità «legittime» potrebbero non funzionare bene se lo fai, perché molti siti oggi si basano su servizi di terze parti per funzionare. Quindi, puoi cercare un gestore di cookie nel repository del tuo browser per avere un controllo a grana fine di quali cookie vengono memorizzati sul tuo computer.
Non tenere traccia (DNT)
Un altro equivoco comune è legato a una certa configurazione del browser meglio conosciuta come DNT. Questo è un acronimo di «Do Not Track» e può essere attivato fondamentalmente su qualsiasi browser corrente. Analogamente alla modalità privata, non è difficile trovare persone che credono di non essere monitorate se hanno questa configurazione attivata. Sfortunatamente, non è sempre vero. Attualmente, DNT è solo un modo per dire ai siti web che visiti che non vuoi che ti seguano. Ma, in realtà, sono loro che decideranno se rispetteranno la tua scelta o no. In altre parole, DNT è un modo per opt-out dal monitoraggio del sito web, ma non vi è alcuna garanzia su tale scelta.
Tecnicamente, questo viene fatto semplicemente inviando un flag extra sull’intestazione del protocollo di richiesta HTTP (DHT: 1) al momento della richiesta di dati da un server web. Se vuoi saperne di più su questo argomento, il sito è un buon punto di partenza.
Finestre «private»
Potresti aver notato le virgolette nel titolo sopra. Questo perché quelle finestre non sono così private come la maggior parte della gente pensa. I nomi possono variare ma possono essere chiamati «modalità privata», «navigazione in incognito» o scheda «anonima», a seconda del browser utilizzato.
In Firefox, puoi facilmente usarlo premendo kbd: [Ctrl+Maiusc+P] tasti. In Chrome, premi kbd: [Ctrl+Maiusc+N]. Quello che in realtà fa è aprire una sessione nuova di zecca, che di solito non condivide alcuna configurazione o dati dal tuo profilo standard. Quando chiudi la finestra privata, il browser cancellerà automaticamente tutti i dati generati da quella sessione, senza lasciare traccia sul computer utilizzato. Ciò significa che nessun dato personale, come la cronologia, le password o i cookie vengono memorizzati su quel computer.
Pertanto, molte persone fraintendono questo concetto credendo di poter navigare in modo anonimo su Internet, il che non è completamente vero. Ciò che la modalità privacy o navigazione in incognito fa, è evitare quello che chiamiamo cookie tracking. Quando si visita un sito web, esso può memorizzare un piccolo file sul computer che potrebbe contenere un ID e a sua volta essere utilizzato per tracciare l’utente. A meno che non configuri il tuo browser in modo che non accetti cookie di terze parti, le reti pubblicitarie o altre aziende possono memorizzare e recuperare tale ID e monitorare effettivamente la tua navigazione tra i siti web. Ma dal momento che i cookie memorizzati in una sessione in modalità privata vengono cancellati subito dopo la chiusura di quella sessione, tali informazioni vengono perse per sempre.
Oltre a questo, i siti web e altri colleghi su Internet possono ancora utilizzare molte altre tecniche per tracciarti. Quindi, la modalità privata ti porta un certo livello di anonimato, ma è completamente privata solo sul computer che stai utilizzando. Se accedi al tuo account e-mail o al tuo sito web bancario da un computer pubblico, come in un aeroporto o in un hotel, devi assolutamente accedere a quelli che utilizzano la modalità privata del tuo browser. In altre situazioni, ci possono essere benefici, ma si dovrebbe sapere esattamente quali rischi si sta evitando e quali non hanno alcun effetto. Ogni volta che si utilizza un computer accessibile al pubblico, tenere presente che potrebbero esistere altre minacce alla sicurezza, ad esempio malware o key logger. Fai attenzione quando inserisci informazioni personali, inclusi nomi utente e password, su tali computer o quando scarichi o copi dati riservati.
Scegliere la password giusta
Una delle situazioni più difficili che qualsiasi utente affronta è la scelta di una password sicura per i servizi che utilizzano. Hai certamente sentito prima che non dovresti usare combinazioni comuni come qwerty, 123456 o 654321, né numeri facilmente indovinabili come il tuo (o di un parente) compleanno o codice postale. La ragione è che queste sono tutte combinazioni molto ovvie e i primi tentativi che un invasore cercherà di accedere al tuo account.
Esistono tecniche conosciute per creare una password sicura. Uno dei più famosi è creare una frase che ricorda quel servizio e scegliere le prime lettere di ogni parola. Supponiamo di voler creare una buona password per Facebook, ad esempio. In questo caso, potrei inventare una frase come «Sarei felice se avessi un numero di 1000 amici come Mike». Scegli la prima lettera di ogni parola e la password finale sarebbe Sfsaund1000acM. Ciò comporterebbe una password di 14 caratteri che è abbastanza lunga da essere difficile da indovinare e facile da ricordare allo stesso tempo (a patto che riesca a ricordare la frase e l’ «algoritmo» per recuperare la password).
Le frasi sono solitamente più facili da ricordare rispetto alle password, ma anche questo metodo ha i suoi limiti. Dobbiamo creare password per tanti servizi al giorno d’oggi e come li usiamo con frequenze diverse, alla fine sarà molto difficile ricordare tutte le frasi nel momento in cui ne abbiamo bisogno. Allora, cosa possiamo fare? Potresti rispondere che la cosa più saggia da fare in questo caso è creare un paio di buone password e riutilizzarle su servizi simili, giusto?
Purtroppo, anche questa non è una buona idea. Probabilmente hai anche sentito che non dovresti riutilizzare la stessa password tra diversi servizi. Il problema di fare una cosa del genere è che un servizio specifico potrebbe perdere la tua password (sì, succede tutto il tempo) e qualsiasi persona che ha accesso ad esso cercherà di utilizzare la stessa combinazione di e-mail e password su altri servizi popolari su Internet, nella speranza che tu abbia fatto esattamente questo: password riciclate. E indovina un po’? Nel caso in cui abbiano ragione, finirai per avere un problema non solo su un servizio, ma su molti di essi. E credimi, pensiamo che non ci succederà finché non sarà troppo tardi.
Allora, cosa possiamo fare per proteggerci? Uno degli approcci più sicuri disponibili oggi è l’utilizzo di quello che viene chiamato gestore di password. I gestori di password sono un software che essenzialmente memorizzerà tutte le password e i nomi utente in un formato crittografato che può essere decrittografato da una password master. In questo modo devi solo ricordare una buona password poiché il manager manterrà tutti gli altri al sicuro per te.
KeePass è uno dei gestori di password open source più famosi e ricchi di funzionalità disponibili. Memorizzerà le password in un file crittografato all’interno del file system. Il fatto che sia open source è un problema importante per questo tipo di software in quanto garantisce che non faranno alcun uso dei tuoi dati perché qualsiasi sviluppatore può controllare il codice e sapere esattamente come funziona. Questo porta un livello di trasparenza che è impossibile da raggiungere con il codice proprietario. KeePass ha porte per la maggior parte dei sistemi operativi, tra cui Windows, Linux e macOS; così come quelli mobili come iOS e Android. Include anche un sistema di plugin che è in grado di estendere la sua funzionalità ben oltre le impostazioni predefinite.
Bitwarden è un’altra soluzione open source che ha un approccio simile ma invece di archiviare i dati in un file, farà uso di un server cloud. In questo modo, è più facile mantenere sincronizzati tutti i dispositivi e le password facilmente accessibili attraverso il web. Bitwarden è uno dei pochi progetti che renderanno disponibili non solo i client, ma anche il cloud server come software open source. Ciò significa che puoi ospitare la tua versione di Bitwarden e renderla disponibile a chiunque, come la tua famiglia o i tuoi dipendenti aziendali. Questo ti darà flessibilità ma anche un controllo totale su come le loro password sono memorizzate e utilizzate.
Una delle cose più importanti da tenere a mente quando si utilizza un gestore di password è la creazione di una password casuale per ogni servizio diverso poiché non sarà necessario ricordarli comunque. Sarebbe inutile se si utilizza un gestore di password per memorizzare password riciclate o facilmente indovinabili. Pertanto, la maggior parte di loro ti offrirà un generatore di password casuale che puoi usare per crearli per te.
Cifratura
Ogni volta che i dati vengono trasferiti o memorizzati, è necessario adottare precauzioni per garantire che terzi non possano accedere ai dati. I dati trasferiti via Internet passano da una serie di router e reti in cui terze parti potrebbero essere in grado di accedere al traffico di rete. Allo stesso modo, i dati memorizzati su supporti fisici potrebbero essere letti da chiunque entri in possesso di tali supporti. Per evitare questo tipo di accesso, le informazioni riservate devono essere crittografate prima di lasciare un dispositivo informatico.
TLS
Transport Layer Security (TLS) è un protocollo per offrire sicurezza sulle connessioni di rete utilizzando la crittografia. TLS è il successore del Secure Sockets Layer (SSL) che è stato deprecato a causa di gravi difetti. TLS si è anche evoluto un paio di volte al fine di adattarsi e diventare più sicuro, quindi la sua versione attuale è 1.3. Può fornire sia privacy, sia autenticità facendo uso di ciò che viene chiamato crittografia simmetrica e a chiave pubblica. Detto questo, intendiamo che una volta in uso, si può essere sicuri che nessuno sarà in grado di origliare o alterare la comunicazione con quel server durante quella sessione.
La lezione più importante qui è riconoscere che un sito web è affidabile. Dovresti cercare il simbolo «lock» sulla barra degli indirizzi del browser. Se lo desideri, puoi fare clic su di esso per ispezionare il certificato che svolge un ruolo importante nel protocollo HTTPS.
TLS è ciò che viene utilizzato sul protocollo HTTPS (HTTP over TLS) al fine di rendere possibile l’invio di dati sensibili (come il numero della carta di credito) attraverso il web. Spiegare come funziona TLS va ben oltre lo scopo di questo articolo, ma puoi trovare maggiori informazioni su Wikipedia e sul wiki di Mozilla.
Crittografia di file e e-mail con GnuPG
Ci sono molti strumenti per proteggere le email, ma uno dei più importanti è sicuramente GnuPG. GnuPG sta per GNU Privacy Guard ed è un’implementazione open source di PGP (Pretty Good Privacy) proprietaria.
GnuPG può essere usato per firmare, crittografare e de crittografare testi, e-mail, file, directory e persino interi partizioni del disco. Funziona con crittografia a chiave pubblica ed è ampiamente disponibile. In poche parole, GnuPG crea una coppia di file che contengono le chiavi pubbliche e private. Come suggerisce il nome, la chiave pubblica può essere disponibile per chiunque e la chiave privata deve essere tenuta segreta. Gli utenti utilizzeranno la tua chiave pubblica per crittografare i dati che solo la tua chiave privata sarà in grado di de crittografare.
È inoltre possibile utilizzare la chiave privata per firmare qualsiasi file o e-mail che può essere convalidata con la chiave pubblica corrispondente. Questo digital signage funziona in modo analogo alla firma del mondo reale. Finché sei l’unico che possiede la tua chiave privata, il ricevitore può essere sicuro che sei stato tu ad averla creata. Facendo uso della funzionalità hash crittografica, GnuPG garantisce inoltre che non siano state apportate modifiche dopo la firma perché eventuali modifiche al contenuto invaliderebbero la firma.
GnuPG è uno strumento molto potente e, in una certa misura, anche complesso. Puoi trovare maggiori informazioni sul suo sito web e sul wiki di Archlinux (Archlinux wiki è un’ottima fonte di informazioni, anche se non usi Archlinux).
Crittografia disco
Un buon modo per proteggere i dati è quello di crittografare l’intero disco o partizione. Ci sono molti software open source che è possibile utilizzare per raggiungere tale scopo. Come funzionano e quale livello di crittografia l’offerta varia anche in modo significativo. Esistono due metodi di base disponibili: la crittografia impilata e la crittografia del dispositivo a blocchi.
Le soluzioni di filesystem impilate sono implementate in cima al filesystem esistente. Quando si utilizza questo metodo, i file e le directory vengono crittografati prima di essere memorizzati sul filesystem e de crittografati dopo averli letti. Ciò significa che i file sono memorizzati sul filesystem host in una forma crittografata (vuol che il loro contenuto, e di solito anche i loro nomi file/cartelle, sono sostituiti da dati casuali), ma a parte questo, esistono ancora in quel filesystem come senza crittografia, come normali file, collegamenti simbolici, collegamenti hardlink, eccetera
D’altra parte, la crittografia del dispositivo a blocchi avviene sotto il livello del filesystem, assicurandosi che tutto ciò che viene scritto su un dispositivo a blocchi sia crittografato. Se guardi il blocco mentre è offline, sembrerà una grande sezione di dati casuali e non sarai nemmeno in grado di dire quale tipo di filesystem è lì senza decifrarlo prima. Ciò significa che non puoi dire cos’è un file o una directory; quanto sono grandi e che tipo di dati sono, perché anche i metadati, la struttura di directory e le autorizzazioni sono crittografati.
Entrambi i metodi hanno i loro pro e contro. Tra tutte le opzioni disponibili, si dovrebbe dare un’occhiata a dm-crypt, che è lo standard de-facto per la crittografia a blocchi per sistemi Linux, dato che è nativo nel kernel. Può essere utilizzato con l’estensione LUKS (Linux Unified Key Setup), che è una specifica che implementa uno standard indipendente dalla piattaforma per l’uso con vari strumenti.
Se vuoi provare un metodo impilabile, dovresti dare un’occhiata a ENCFS, che è probabilmente il modo più semplice per proteggere i dati su Linux perché non richiede privilegi di root da implementare e può funzionare su un filesystem esistente senza modifiche.
Infine, se hai bisogno di accedere ai dati su varie piattaforme, controlla Veracrypt. È il successore di un Truecrypt e permette la creazione di file e file crittografati, che possono essere utilizzati su Linux, su macOS e Windows.