E 'possibile impedire che un tipo di file venga determinato in un sistema Linux?

15

Ho diversi file sul mio sistema Ubuntu, che sono partizioni crittografate con LUKS. Per la mia stessa vergogna fino ad oggi ho pensato che cambiare semplicemente l'estensione del file binario sarà sufficiente per nascondere cosa sia veramente un file. Cioè se rinominerò la mia partizione LUKS stuff in windows.vdi allora tutti penserebbero che questa è un'unità virtuale, anche se danneggiata, perché un tentativo di usarlo come suggerisce l'estensione avrebbe sicuramente fallito.

Ma oggi ho saputo del comando file , che mostra correttamente cos'è un file:

file windows.vdi 
windows.vdi: LUKS encrypted file, ver 1 [aes, xts-plain64, sha1] UUID: xxx-xxx-xxx

E lo stesso problema è con altri tipi di file, che vorrei nascondere, come i file delle password di keepass, ecc.

Qualcuno sa come nascondere il vero scopo del file su un sistema?

L'idea è che in una situazione in cui non si può resistere alla richiesta di fornire password (ad esempio se viene catturato fisicamente e torturato), dovrebbe essere in grado di negare l'esistenza stessa di qualsiasi crittografia subito dopo la chiusura di un computer giù, cioè senza nascondere alcun file in un altro, modificando i file in un editor binario ecc. solo perché potrebbe non avere abbastanza tempo per farlo

    
posta user907860 11.07.2015 - 20:29
fonte

8 risposte

16

Quello che stai cercando si chiama crittografia indeformabile .

Esistono due forme di crittografia deniable. Il primo tipo è la crittografia "information-theoretic" deniable: la crittografia in cui nessuna analisi matematica può eseguire un utente malintenzionato può dimostrare che un file è dati crittografati e non una raccolta di byte casuali. Il secondo tipo è la crittografia "reale" deniable: la crittografia in cui puoi fare qualcosa per convincere un utente malintenzionato con una chiave inglese che il tuo file non contiene i piani della Morte Nera rubati.

Tutti ti offriranno il primo tipo. Il problema è che le persone normali non trasportano grandi quantità di byte casuali - trovare un file di questo tipo è la prova prima facie che la crittografia è in uso. Il secondo tipo non esiste e potrebbe essere impossibile: è necessaria la crittografia che ti consente di dimostrare un errore.

    
risposta data 12.07.2015 - 01:56
fonte
5

Leggendo le tue risposte, ciò che vuoi è chiamato crittografia denegata.

È fatto nascondendo un contenitore crittografato in un altro contenitore crittografato. Questo perché quando si cripta, il testo cifrato sembra casuale se non si conosce la chiave.

Semplicemente cercando nel tuo hard disk, qualcuno può avere una buona idea di aver crittografato alcuni dati e di chiederti la chiave.

Mettere casuali in modo casuale ti consente di dare la prima chiave del contenitore e di negare l'esistenza della seconda.

Dovresti esaminare la funzionalità di TrueCrypt (o fork) come esempio se sei interessato.

Tieni presente che questo può essere sconfitto solo eseguendo l'istantanea del tuo hard disk e confrontando due immagini. Infatti, se modifichi qualcosa, il "casuale" cambierà e l'attaccante avrà una buona ipotesi di nascondere un secondo contenitore che sconfigge la tua plausibile negabilità.

    
risposta data 12.07.2015 - 00:18
fonte
3

Quello che stai cercando si chiama steganografia , è un ramo della crittografia.

Puoi leggere wikipedia solo per un rapido avvio: link

Da allora in poi, puoi scoprire che ci sono un paio di strumenti open-source per "stornare" qualsiasi contenitore in .jpg o anche .avi .

Un tale contenitore-stego si presenta come un file .jpg o .avi . Inoltre, chiunque potrebbe guardare questo .avi o .jpg . E, all'interno di questo stego-container sarà il tuo contenitore criptato, chiamato LUKS.

    
risposta data 13.07.2015 - 14:56
fonte
2

Potresti crittografare il file con un secondo tipo di crittografia, ad esempio "GPG" o simile, e quindi il comando file non sarebbe in grado di determinare il tipo di file "interno".

In alternativa, basta fare qualcosa di veramente semplice come XOR-ing il file con lo stesso contenuto del file con un offset di un byte (ad esempio), o base64 il file ecc.

Dipende da quanto vuoi offuscare (non proprio sicurezza, solo un inconveniente per la persona che usa il comando 'file') o nascondere (usando una crittografia secondaria).

Infine, potresti prendere in considerazione la possibilità di sostituire il comando 'file' con uno storpio (se hai il controllo dell'eseguibile) che non riconosce il tuo tipo di file ...

    
risposta data 11.07.2015 - 22:49
fonte
2

Puoi aggiungere la partizione LUKS crittografata a qualsiasi file eseguibile che sia significativamente più grande di esso, come un file mp3:

$ cat beethovens_9th.mp3 windows.vdi > beethovens_9th_with_partition.mp3

Il file continuerà a essere riprodotto nella maggior parte dei software MP3 e verrà visualizzato come file MP3 quando si utilizza il comando file . È necessario conoscere la dimensione esatta del file MP3 originale da rimuovere dall'inizio del nuovo file quando si desidera utilizzare la partizione crittografata e sarà necessario ricreare il nuovo file una volta terminato l'uso della partizione.

Si noti che le dimensioni del file daranno il fatto che una partizione crittografata viene aggiunta al file MP3. Inoltre, diversi lettori MP3 avranno differenti modalità di guasto quando incontrano la fine della parte MP3 reale e l'inizio della parte di partizione del file. Questo è lontano da un piano infallibile, ma semplicemente un modo per sconfiggere il comando file per il caso d'uso più ingenuo.

    
risposta data 12.07.2015 - 18:24
fonte
1

In realtà non importa il nome del file e il tipo di file è cambiato, il contenuto fornisce ancora l'impronta digitale del tipo di file. Quindi, se vuoi nascondere qualcosa in un sistema, è meglio memorizzarlo nella tua cartella, assegnando il permesso di accesso / scrittura al file. Sebbene l'utente root possa comunque accedere al file, tuttavia può impedire ad altri utenti (utenti normali) di accedervi.

FYI: Il tipo di file è solo un riferimento per utente, sistema e software. In Windows, il tipo di file è riconosciuto come un formato che può essere visualizzato / aperto da un determinato programma. Questo perché l'elenco dei tipi di file è memorizzato nel registro di Windows. Quindi puoi semplicemente fare doppio clic sul file e avviare il programma che dovrebbe in grado di aprire questo file. Tuttavia, sistemi come Linux, le persone non lo fanno in quanto il tipo di file è solo un riferimento per gli utenti. Puoi vedere il file README senza alcun tipo di file, perché la gente potrebbe sapere che questo è un file di testo leggibile da umani. Alcuni programmi riconoscono l'intestazione del file, indipendentemente dal nome e dal tipo di file. Ecco un buon esempio: uploader PHP, in genere lo script legge l'intestazione del file per determinare se si tratta di un file immagine o di un file zip. Alcuni programmi e script verificano anche i byte del piè di pagina o il byte di dati in qualche parte dei file per confermare il tipo di file.

Quindi, se vuoi davvero nascondere qualcosa, meglio cancellare prima l'intestazione / il piè di pagina, tuttavia potrebbe causare problemi all'apertura del file. Se vuoi davvero nascondere il file, prova a cercare qualcosa su incorporare i file in un altro file . Il vecchio trucco di questo sarebbe nascondere un file immagine in un file zip.

    
risposta data 11.07.2015 - 21:42
fonte
1

Tutta la tua storia consiste in:

The idea is that in a situation where one can not resist a demand to provide passwords (for instance if he is captured physically and tortured), he should be able to deny the very existence of any encryption.

Il tuo obiettivo, anche se lo raggiungi, viene seriamente criticato utilizzando la cryptanalisi dei tubi di gomma che potrebbe danneggiare anche te di più quando l'agente nefasto continua ad attaccarti anche dopo che hai rivelato tutte le tue chiavi di cifratura.

    
risposta data 12.07.2015 - 08:30
fonte
1

Per luks in particolare c'è un modo per staccare l'intestazione di luks dal resto dei dati. L'ho usato spesso come una sorta di 2fa per sistemi completamente crittografati.

Per prima cosa copia l'intestazione di luks da qualche altra parte:

cryptsetup luksHeaderBackup windows.vdi --header-backup-file header.img

Quindi cancellalo dalla posizione originale:

dd if=/dev/urandom of=windows.vdi bs=1M count=2

Per accedere ai dati ora usa cryptsetup con l'opzione della riga di comando --header :

cryptsetup luksOpen --header header.img windows.vdi windows

Ovviamente, la memorizzazione dell'intestazione insieme all'immagine avrebbe vanificato l'intero scopo.

Inoltre, tieni presente che questa intestazione e la tua passphrase possono essere utilizzate per decrittografare il tuo volume anche se cambi la passphrase in futuro. Tratta la tua intestazione di luks almeno con la stessa cura della tua chiave privata pgp o ssh. In caso di dubbio, reencrypt e shred.

    
risposta data 15.07.2015 - 14:06
fonte

Leggi altre domande sui tag