In primo luogo, una parola sulla sicurezza: la sicurezza non esiste nel vuoto; è completamente dipendente dalla circostanza.
Difendersi da una minaccia non realizzata è uno spreco. Non difendersi da un attacco banale rende il tuo sistema inutile. In quanto tale, l'aggiunta cieca di misure di sicurezza è un esercizio inutile. Uno deve avere un insieme ben definito di obiettivi per un sistema, noto anche come modello di minaccia .
Se intendi raggiungere la "privacy online", devi definire il tuo modello di minaccia. Alcune domande da porsi:
- Chi è il tuo avversario? (Stai difendendo dagli script kiddies? The NSA?)
- Quale comportamento intendi mantenere riservato?
E il sistema che useresti per indirizzare questo modello?
- Quali compromessi sei disposto a fare per mantenere il tuo comportamento riservato?
- Quali sono i limiti della tua soluzione? (ad esempio tempo, budget, hardware, ecc.)
Ora che hai definito i limiti del tuo problema e quelli della tua soluzione, devi determinare quale parte di questo puoi soddisfare ea quale costo. Ecco dove arriva la tua domanda:
Is using Tails any less secure than carefully building my own privacy-focused stack...?
Si tratta in definitiva del compromesso tra copertura delle minacce e costo (il tempo di sviluppo). In sostanza: che sicurezza guadagni dal mettere insieme un sistema operativo live sicuro che non avresti con un prodotto come Tails (e viceversa)? La tua proposta è che il sistema che hai progettato sarà 1. Avere meno bug / exploit e / o 2. Avere meno conosciuti bug / exploit.
In primo luogo, è del tutto possibile (anche se improbabile) che, in qualsiasi momento, un sistema che hai costruito con "blocchi" disponibili pubblicamente abbia meno bug di un sistema open source già in uso. Il vantaggio di FOSS è che molti occhi sul codice significano una maggiore probabilità che un bug venga scoperto e venga riparato. Il codice che scrivi avrà inevitabilmente dei bachi che ti saranno meno probabilità di perdere a meno che tu non spenda i tuoi giorni a riesaminare la fonte (anche in questo caso potrebbero esserci dei problemi anche se non puoi individuarli).
Affrontare il problema dei bug noti, il sistema "rolling your own" è essenzialmente la sicurezza attraverso l'oscurità (o, forse più esattamente, sicurezza attraverso la minoranza ), ovvero fare affidamento sulla non familiarità di un utente malintenzionato con un sistema per garantirne la sicurezza. In generale, questo non rappresenta un marcato aumento della sicurezza, certamente non se si usano blocchi FOSS.
Il progetto Tails stesso è in realtà abbastanza simile alla "combo di software" che descrivi. Citando direttamente dalla pagina Contribute di Tails :
...We try not to reinvent the wheel, and we flee the Not invented here syndrome like the plague. Very little code is actually written specifically for Tails...We glue existing pieces together.
Questo sottolinea il compromesso intrinseco nello sviluppo di un sistema di sicurezza: ogni linea di codice e ogni nuova decisione progettuale aumenta la probabilità che venga introdotto un errore.
Anche se potrebbe essere allettante leggere queste rivelazioni sugli 0 giorni e dire "Potrei fare meglio", è importante rendersi conto dei benefici che accompagnano gli strumenti open source ampiamente disponibili. Se non sei disposto a dedicare il tempo e gli sforzi necessari per sviluppare e mantenere un intero sistema operativo sicuro (un compito scoraggiante per una grande squadra e tanto meno un singolo sviluppatore), allora potresti prendere in considerazione l'aggiunta di un'altra serie di occhi (leggi: la tua ) a un progetto esistente. Ma questo è solo il mio 2 ¢.