Come posso separare i due file del sistema operativo con la crittografia senza utilizzare TrueCrypt?

3

Voglio creare un dual-boot in modo tale che il contenuto di ciascun sistema operativo sia separato dall'altro utilizzando la crittografia. Il punto principale sarebbe quello di testare il software potenzialmente dannoso su un sistema operativo, ed essere ancora in grado di fare affidamento sull'integrità dell'altro sistema operativo.

L'utente A utilizza OS A e l'utente B utilizza l'OS B. Assumiamo:

  • entrambi i sistemi operativi sono Windows 7.
  • due diverse partizioni, una per ogni copia di Windows.
  • un'unità di archiviazione fisica disponibile come su un laptop
  • gli utenti di ciascun sistema operativo desiderano entrambi la forza bruta (non l'uno contro l'altro) utilizzando l'hardware collegato o utilizzano software di terze parti che coinvolgono lettori di schede
  • è accettabile che ogni utente sia in grado di distruggere ogni altro Windows cancellando o sovrascrivendo una partizione.

Tuttavia, nessuno degli utenti dovrebbe essere in grado di accedere o modificare i dati in chiaro dalla partizione dell'altro utente.

In passato ho organizzato questo con TrueCrypt e il sistema operativo nascosto. Sto cercando altre idee facili da implementare e, cosa più importante, non mi prendo molto tempo. Preferirei un accordo che includesse solo software open source.

È possibile? Se sì, come?

    
posta Simply G. 30.05.2014 - 11:32
fonte

2 risposte

0

La risposta corretta a questo è che davvero non puoi.

Ci sono diversi modi per approssimare la soluzione che descrivi, ma in nessun modo non essere sicuro al 100%. C'è un adagio nel mondo della sicurezza che l'accesso fisico è del 75% * del gioco. Questo è un ottimo caso di studio, perché è vero.

Lo scenario che descrivi e la soluzione che pensi di essere in cerca, per tutti gli scopi pratici, funzionerà la maggior parte del tempo. Avrai reso molto difficile per entrambi gli utenti compromettere l'altro. Ma difficile è diverso da impossibile.

Indipendentemente da ciò che si fa per ogni partizione e il software in esso contenuto, non si cambia il fatto che ad un certo punto l'utente altro arriverà e decifrerà la propria partizione ed eseguirà il loro proprio software. Con l'accesso fisico alla macchina e l'ambiente software di basso livello su di esso, è possibile compromettere il sistema.

Il problema teorico qui è lo stesso di quello di uno scenario di virtualizzazione con un host e un ospite. Come sistema operativo guest, non dovresti mai presumere che la tua casella sia completamente indipendente dall'host. Potresti non essere in grado di compromettere l'host ma l'host può quasi certamente comprometterti. Se non ti fidi del tuo computer host, anche il tuo guest non dovrebbe essere considerato affidabile.

Torna al tuo scenario. Anche se non stai usando la virtualizzazione, l'effetto è più o meno lo stesso. Sia l'utente A che l'utente B hanno accesso bare metal e possono mettersi nei panni dell'host. Tutto quello che devono fare per compromettere l'altro è giocare qualche trucco sull'altra partizione e sul sistema operativo in modo che giochi inavvertitamente il ruolo di un ospite.

Il modo più ovvio per farlo sarebbe quello di compromettere il bootloader con un rootkit. Vengono in mente anche altri vettori di attacco, ma per molto tempo e in breve è che non dovresti MAI pensare che l'hardware sotto il pieno controllo di un altro utente e di un ambiente software possa essere utilizzato senza modifiche compromettendo te stesso.

La soluzione qui sarebbe molto probabilmente quella di non dare ad A né B l'accesso al bare metal e dare ad entrambi un ambiente guest affiancato. Supponendo che nessuno di loro abbia accesso all'host. Questo sarebbe un modo più sicuro per andare. (Non perfetto in quanto dipende dalla qualità del tuo sistema di virtualizzazione, ma è meglio sapere che il tuo bare metal è utilizzato da un altro host).

In termini pragmatici, raramente si verifica un caso in cui una macchina virtuale non è in grado di eseguire ciò che è necessario, compreso l'accesso ai lettori di schede o ad altri dispositivi hardware. Nel raro caso in cui non sia così, dovrai separare i tuoi ambienti in modo univoco: fisicamente. Se l'utente A e l'utente B non si fidano l'uno dell'altro ed entrambi hanno bisogno di un accesso di basso livello all'hardware, allora fornisci loro già il proprio hardware!

* Dove la percentuale esatta è un numero elevato casuale composto sul posto.

    
risposta data 03.06.2014 - 07:58
fonte
2

Affidandosi a una sola unità fisica, è possibile suddividerla in due partizioni. Installa Windows 7 su ciascuno di essi, quindi utilizza BitLocker (supponendo che tu abbia Professional Enterprise o Ultimate [kudos to paulmorriss]) per crittografare i rispettivi volumi di sistema.

Quando si installa il secondo sistema operativo Windows 7 nell'altra partizione, verrà richiesto di modificare il caricatore di avvio in modo che rifletta entrambi i sistemi operativi. Puoi cambiare il nome visualizzato durante l'avvio con lo strumento da riga di comando bcdedit (disponibile in Windows Vista e versioni successive, ha sostituito la boot.ini config).

Modifica : le mie scuse, ho appena visto il requisito dell'open source. Rivedendo le opzioni elencate qui , non ci sono molte opzioni che soddisfano i tuoi requisiti. Quello che fa è ProxyCrypt , ma ai fini della crittografia delle partizioni, deve essere utilizzato con altre terze parti strumenti (per esempio, affermano che Arsenal Image Mounter dovrebbe essere usato anche).

Se vuoi veloce e facile, usa BitLocker e separa le partizioni. Se vuoi open source, controlla ProxyCrypt.

    
risposta data 30.05.2014 - 16:16
fonte

Leggi altre domande sui tag