principio di divisione dei dati sensibili su più macchine che eseguono sistemi operativi diversi

1

Supponiamo che stiate cercando di archiviare i dati nel modo più sicuro possibile, inclusa la suddivisione su più macchine (crittografato in modo tale da renderlo illeggibile a meno che non vengano recuperati tutti i frammenti dei dati). Se l'attaccante conosce il tuo algoritmo e compromette tutti delle tue macchine, può sempre recuperare i dati, quindi c'è sempre qualche probabilità diversa da zero. Ma tu vuoi ridurre la probabilità il più possibile.

Sembra che la strategia sarebbe quella di crittografare i dati con una chiave, e quindi suddividere la chiave su più macchine, in modo tale che tutte le macchine (la macchina di archiviazione dati e le macchine di memorizzazione delle chiavi) siano il più possibile fisicamente indipendenti < em> e eseguono sistemi operativi diversi (con ogni sistema operativo che applica sempre tutte le ultime patch disponibili).

Eseguire diversi sistemi operativi significa che la probabilità di compromettere una macchina è più indipendente dalla probabilità di compromettere le altre macchine. Se si dispone di tre macchine e tutte utilizzano Windows Server e in un dato periodo di tempo si ha il 10% di possibilità di trovare una vulnerabilità in Windows Server che consente l'accesso in lettura alla macchina, si ha un 10% di compromissione l'intero sistema perché allora possiedi tutte e tre le macchine. Ma se ci sono tre macchine, ognuna con un sistema operativo diverso, e per ogni sistema operativo si ha il 10% di trovare una vulnerabilità in quel sistema operativo e le quote sono indipendenti per ogni sistema operativo, allora si ha una probabilità dello 0,1% di compromettere l'intero sistema.

Puoi anche ricodificare periodicamente i dati con una nuova chiave e poi dividere la nuova chiave. Quindi l'utente malintenzionato batte il sistema solo se compromette tutte le macchine nello stesso periodo di tempo prima della ri-crittografia.

Ora, ciò significa anche che se una qualsiasi delle macchine fallisce, si perdono tutti i dati, ma il frammento della chiave su ciascuna macchina può essere eseguito il backup su un'altra macchina. E in questo caso, mentre la macchina di backup dovrebbe essere fisicamente separata per ridurre la possibilità di essere persi contemporaneamente, potrebbe essere in esecuzione lo stesso SO della macchina su cui sta eseguendo il backup. L'idea è che se A1 viene eseguito il backup su A2, allora l'attaccante compromette la stessa quantità di dati sia se eseguono l'hacking in A1 o A2 o entrambi, quindi non c'è ragione A1 e A2 non può eseguire lo stesso SO (con le stesse potenziali vulnerabilità).

Tuttavia, non ho mai sentito parlare di un principio di sicurezza sulla falsariga di "dividere i dati sensibili su macchine che eseguono sistemi operativi diversi". Ho appena riscoperto qualcosa di noto e ovvio che ha già un nome? O c'è qualche ragione per cui l'intera logica è imperfetta (ed è per questo che non ha un nome)?

    
posta Bennett 30.07.2018 - 01:54
fonte

2 risposte

1

Puoi usare Condivisione segreta di Shamir con lo schema soglia che specifica quanti frammenti chiave hai bisogno di ricostruire il tasto. Quindi se hai 20 frammenti chiave in totale e hai bisogno di almeno 10 frammenti per ricostruire la chiave, significa che 10 dei tuoi server possono andare giù e sarai ancora in grado di ottenere la chiave. Sarà inoltre necessario impostare il fattore di replica in modo da non perdere i dati se un nodo si arresta.

In alternativa, anziché suddividere la chiave in frammenti, è possibile suddividere i dati crittografati e specificare la soglia per consentire il failover di alcuni server senza perdita di dati.

    
risposta data 30.07.2018 - 20:21
fonte
0

Come ogni schema multistrato, è strong quanto il suo anello più debole.

1) A meno che non stiate mettendo più copie di ciascuna porzione di chiave su server diversi, in realtà state introducendo più singoli punti di errore; se una di queste macchine viene persa, i dati non sono recuperabili.

2) Un utente malintenzionato può tentare di compromettere il dispositivo in cui viene riassemblata la chiave, evitando qualsiasi difficoltà aggiuntiva.

3) Avrai bisogno di simulare l'intero processo dall'inizio alla fine con una copia dei segmenti chiave per assicurarti di poter decrittografarlo con successo (cioè se un cambiamento di formato dei caratteri avviene in un segmento e non lo fai lo sai, non ti viene mai riparato)

4) separare parti della chiave non aggiunge di per sé difficoltà a un utente malintenzionato che accede ai dati; l'algoritmo e la durata del keylength sono gli stessi indipendentemente dal fatto che sia diviso. Stai solo inserendo blocchi stradali che lo rendono più complesso e ingombrante, che in pratica spesso significa meno sicuro.

tl; dr Sembra più che stai creando un ottimo CTF per gli hacker piuttosto che rendere la chiave più sicura.

    
risposta data 31.07.2018 - 02:15
fonte

Leggi altre domande sui tag