Newsgroup: it.comp.sicurezza.crittografia
Titolo: Re: Crosscrypt, FreeOTfe e linux.

 >> ciao :)
 >>
 >> nel mentre... ti sarei grato se potessi spiegarmi COME posso montare
 >> un disco criptato
 >> in linux, avendolo creato con crosscrypt in win.
 >
 >
 > Allora intanto ti dico che ci sono riuscito creando un file contenitore
 > creato con crosscrypt usando l'aes256. Se invece mi stai chiedendo non
 > un file ma proprio un disco od una partizione non l'ho mai tentato ma
 > penso che la cosa non cambi.
Allora, scusa la tempistica, ma il lavoro mi assorbe molto.
Non ho trovato gli appunti dei miei esperimenti ma ti "taglio/incollo" 
quelli che ho trovato on web e che mi sono serviti per partire:
_________________________________________________
linux:/crypto # modprobe cryptoloop
linux:/crypto # modprobe aes
# Check crypto capabilities
linux:/crypto # cat /proc/crypto
[...]
____________________________________________________
#
# Preparazione del dispositivo:
#
# X esempio, mi appoggio ad un file (ovviamente potrebbe anche essere
un partizione;-)
dd if=/dev/zero of=/home/theos/CFS/raw.fs bs=1k count=1024
# lo associo al loopback /dev/loop0
losetup /dev/loop0 /home/theos/CFS/raw.fs
# Mappo il dispositivo loopback attraverso un algoritmo di cifratura
simmetrico (AES, l' "erede" del DES...)
# con chiave a 256 bit (algoritmo di default, ev. sceglierne altri).
Qui viene richiesta la chiave.
cryptsetup create criptato /dev/loop0
# Formatto il dispositivo
mkfs.ext3 /dev/mapper/criptato
# Creo una mount point
mkdir /home/theos/CFS/data
# Monto il dispositivo
mount /dev/mapper/criptato /home/theos/CFS/data/
# e lo regalo a theos
chown theos /home/theos/CFS/data
#
#Smontare il dispositivo
#
umount /home/theos/CFS/data/
crypsetup remove criptato
#
#Montare il dispositivo
#
cryptsetup create criptato /dev/loop0  #Qui viene richiesta la chiave.
mount /dev/mapper/criptato /home/theos/CFS/data
______________________________________________________
In secondo luogo ho usato adattandole le istruzioni del manuale del prg 
FreeOTFE che ho trovato molto interessanti.
Spero di averti aiutato.
Buon lavoro / divertimento.
TheNav.

In aggiuta ho usato anche le istruzioni contenute in questo sito:
http://www.chez.com/winterminator/DiskPG/crosscrypt.html
Sono in francese ma sono chiare (io no parlo una parola di francese).
TheNav.

Mi permetto di intervenire avendo acquisito un pò di esperienza
ultimamente con supporti/dispositivi critptati per windows e linux.
Crosscrypt è compatbile solo con loopAES
(
http://loop-aes.sourceforge.net/
) che fornisce un modulo per il kernel
in grado di gestire dispositivi a blocci criptati (siano essi file o
partizioni/interi hard disk).
L'utilizzo di cryptoloop o dmcrypt non è compatibile con crosscrypt.
Sul sito di riferimento c'è il README con tutta la procedura per
l'installazione, che in sintesi è: ricompilare il kernel (è
importante disabilitare il supporto al loop), installare i le versioni
patchate di mount,umount,swapon,swapoff,losetup presenti in util-linux,
installre il modulo loopAES per il kernel. Per i dettagli vedi il
README.
Una volta riavviato con il kernel giusto, è possibile criptare un file
contenitore (ma anche hard disk):
#creo un file da 100MB nella cartella root
dd if=/dev/random of=/root/file bs=1M count=100
#lo cripto con  AES 256bit
losetup -e AES256 /dev/loop1 file
inserisco la password (ma si può usare anche un key file - leggere
sempre il README :-D )
#creo il filesystem che deve essere vfat per poterlo visualizzare anche
su windows
mkfs -t ext2 (vfat o quello che è) /dev/loop1
mount /dev/loop1 /mnt/crypt
fatto tutto
umount /mnt/crypt
losetup -d /dev/loop1
Si possono creare dei dvd e/o cd utilizzando il filesystem iso9660 per
avere dati accessibili solo in scrittura (quì ci vuole il programma
aespipe, presente sul sito) e sbizzarrirsi come meglio si vuole.
LoopAES a livello di codice assembler è ottimizzato meglio di dmcrypt
e cryptoloop, e ha la peculiarità di utilizzare un seme per proteggere
la passphrase da attacchi plain-text (a dizionario).
Saluti

Ho letto adesso anche l'altro thread. Ho visto che con cryptoloop ti
funziona su Suse 9.3, probabimente la tua distribuzione usa loopAES
invece di cryptoloop.
Fino ad ora avevo visto solo distribuzioni live usare loopAES di
default.
Per curiosità che ti dice l'output di losetup?


Allore su Suse 9.3 per usare l'algoritmo aes ho dovuto prima dare il 
comando: modprobe aes e poi in effetti ho usato i comandi indicati.
Alla tua domanda però non so cosa rispondere perchè, scusa l'ignoranza, 
non ho ben capito cosa mi chiedi. Cosa intendi per output? di losetup e 
non usandolo da qualche settimana è un dato che posso ricavarti andando 
a recuperare qualche file .log o simili?
TheNav.

modprobe aes ti carica il modulo realtivo al kernel per il supporto a
tale tipo di crittpgrafia.
Potresti anche ricompilare il kernel includendo il supporto ad aes (ma
anche ad altri tipi) in modo statico, inmodochè non ci sia più
bisogno di usare il caricamento del modulo.
Per quanto riguarda losetup, ti chiedevo cosa visualizzavi a video se
davi il comando "losetup" senza nessun argomento. Questo perchè tra il
losetup usato con il cryptoloop e quello con loopAES ci sono
differenze. Sul mio sistema ho sia il losetup patchato per loopAES che
quello non patchato, ecco gli output dei comandi:
### losetup originale (l'eseguibile è losetup.orig per distinguerlo da
losetup per loopAES)
root@earth:~# losetup.orig
usage:
  losetup.orig loop_device                                      # give
info
  losetup.orig -d loop_device                                   #
delete
  losetup.orig -f                                               # find
unused
  losetup.orig [ options ] {-f|loop_device} file                # setup
    where options include
    --offset <num>, -o <num>
        start at offset <num> into file.
    --pass-fd <num>, -p <num>
        read passphrase from file descriptor <num>
        instead of the terminal.
    --encryption <cipher>, -e <cipher>
        encrypt with <cipher>.
        Check /proc/crypto or /proc/crypto/cipher for available
ciphers.
    --nohashpass, -N
        Don't hash the password given.  (previous versions hash,
non-debian doesn't.
    --keybits <num>, -k <num>
        specify number of bits in the hashed key given
        to the cipher.  Some ciphers support several key
        sizes and might be more efficient with a smaller
        key size.  Key sizes < 128 are generally not
        recommended
### losetup patchato per loopAES
root@earth:~# losetup
usage:
  losetup [-e encryption] [options] loop_device file  # setup
  losetup -F [options] loop_device [file]   # setup, read /etc/fstab
  losetup loop_device                       # give info
  losetup -a                                # give info of all loops
  losetup -d loop_device                    # delete
options:  -o offset  -s sizelimit  -p passwdfd  -S pseed  -H phash
          -I loinit  -T  -K gpgkey  -G gpghome  -C itercountk  -v  -r
Ovviamente per una descrizione più approfondita ci sono sempre le
pagine di man.

 
Allora il "mio" losetup (senza aver prima caricato nel kernal 
l'algoritmo aes) da il seguente output:
usage:
   losetup [-e encryption] [options] loop_device file  # setup
   losetup -F [options] loop_device [file]   # setup, read /etc/fstab
   losetup loop_device                       # give info
   losetup -a                                # give info of all loops
   losetup -d loop_device                    # delete
options:  -o offset  -s sizelimit  -p passwdfd  -S pseed  -H phash  -t 
timeout
           -I loinit  -T  -K gpgkey  -G gpghome  -C itercountk  -v  -r
linux:~ #
Spero di aver risposto correttamente.
Ciao
TheNav.

 Crosscrypt è compatbile solo con loopAES
Premesso che ho "qlche" difficolta' con il pinguino ;-)
il mio losetup
usage:
  losetup [-e encryption] [options] loop_device file  # setup
  losetup -F [options] loop_device [file]   # setup, read /etc/fstab
  losetup loop_device                       # give info
  losetup -a                                # give info of all loops
  losetup -d loop_device                    # delete
options:  -o offset  -s sizelimit  -p passwdfd  -S pseed  -H phash
          -I loinit  -T  -K gpgkey  -G gpghome  -C itercountk  -v  -r
se ho capito bene _dovrebbe_ qndi essere a posto, per montare in linux
dischi/files creati con crosscrypt sotto win.
ma continuo a nn capire che istruzioni debba dare per montarne uno, che e'
su una penna usb
mi dareste una spiegazione terra-terra ? 
grazie ;-)

 
Allora....taglio ed incollo le istruzioni prese dal link che ti ho inviato:
losetup -e AES256 /dev/loop0 /percorsocompleto e nome del 
filecrittografato sulla penna usb
mkdir /mnt/crosscrypt #questo serve per creare il mountpoit
mount /dev/loop0 /mnt/crosscrypt # e qui lo monti ossia andando nella 
dir /mnt/crosscrypt trovi i file crittografati contenuti nel file conteiner
per smontare le istruzioni sono:
umount /dev/loop0
losetup -d /dev/loop0
Penso sia tutto qui, ciao
TheNav

 filecrittografato sulla penna usb
grazie per la pazienza ;-)
ma sono gia' fermo :
se do
losetup -e AES256 /dev/loop0  /mnt/sda1/docs
mi ritorna:
 /dev/loop0: No such file or directory


devi farlo da root.

 devi farlo da root.
gia' fatto ;)
sia da root che da utOnto mi ritorna sempre 
/dev/loop0/: No such file or directory
(ed effettivamente loop0 nn esiste.)
in /dev/ ho una directory /loop
in /dev/loop/ c'e' un file 0
se do file 0 --> 0: block special (7/0)

 
Scusa per la precisazione del "root".
Adesso mi stai incastrando, perchè a quanto mi consta loop0 dovrebbe 
esserci sempre. Che distro hai? Non è che per caso non hai nel kernel 
l'algoritto aes (vado a braccio perchè non sono sicuro come aiutarti) 
prova a dare cat /proc/crypto e vedere se ti compare l0'algoritmo.
vediamo...

 vediamo...
ma che doverti scusare!
te l'ho premesso che son nubbio, fai bene a precisarMI tutto ;-)
ho una debian based ( mepis )
ecco l'output di cat /proc/crypto
name         : md5
module       : kernel
type         : digest
blocksize    : 64
digestsize   : 16
name         : aes
module       : aes_i586
type         : cipher
blocksize    : 16
min keysize  : 16
max keysize  : 32


ok prova (speriamo che qualcuno più bravo di me intervenga e ti aiuti 
per davvero!) ad usare la sintassi che ti ho dato ma invece di di mettere:
losetup -e aes256 ...ecc. metti semplicemente losetup -e aes e poi il 
resto.. (ossia elidi semplicemente "256") e vediamo se così funz!


altra precisazione cretina: oltre a fare tutto da root hai montato prima 
di tutto la penna usb, vero?

 
Quindi prova /dev/loop/0.
Se non funziona ancora puoi dare il comando "modprobe loop" e riprovare.
Alessandro.

Sia The Navigator che fortAlamo hanno il supporto a loopAES quindi
compatibile con crosscrypt.
fortAlamo se non hai il /dev/loop0 ma /dev/loop/0 usa quest'ultimo come
suggerito da test.
Il supporto per il loop devi caricarlo all'avvio o richiamarlo con
modprobe sempre come suggerito da test. :)
Piccola precisazione, se si scrive "losetup -e AES" senza spcificare la
lunghezza in bit della chiave (128,192,256) di default viene usato
AES128. Quindi sempre meglio specificare con un bel AES256.
Quindi:
losetup -e AES256 /dev/loop/0 /mnt/sda1/docs
Se devi criptare un intera partizione o un intero drive, come la penna
usb nel tuo caso, la procedura migliore è riportata nel README del
loopAES.

 di tutto la penna usb, vero?
allora, riproviamo, sempre da root e con con sda montato ;-)
modprobe loop
# losetup -e AES256 /dev/loop/0/  /mnt/sda1/docs
/dev/loop/0/: Not a directory
# losetup -e AES256 /dev/loop0/  /mnt/sda1/docs
/dev/loop0/: Not a directory
intuizione, tolgo sta inutile "/"  !
# losetup -e AES256 /dev/loop/0  /mnt/sda1/docs
yeppah!!  finalmente il prompt per la 
Password:
 Error: Password must be at least 20 characters. -------> pirla io! 
ho sbagliato a digitare la pass... colpa dell'emozione :-D
# losetup -e AES256 /dev/loop/0  /mnt/sda1/docs
Password:
ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key length 
(256 bits) not supported by kernel
#losetup -e AES /dev/loop/0 /mnt/sda1/docs
Password:
ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key length 
(128 bits) not supported by kernel
beh,  bene! cmq un passo avanti! :-)
pero' c'e' ancora qlcosa che nn va.

 pero' c'e' ancora qlcosa che nn va.
forse modprobe aes?
-- 
Flavio Visentin
Membro del CICAP
Comitato Italiano per il Controllo delle Affermazioni di P4

 
confermo, devi prima "modprobare aes", almeno io devo fare cosě.
TheNav

 TheNav
sgrunt !
neanche con modprobe aes 
(e cliccando il tab di mette -->modprobe aes-i586 )
dopo la Password:
ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key length 
(256 bits)  not supported by kernel
e se do 
losetup -e AES ..  etc ---> 
ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key length
(128 bits) not supported by kernel
ci sono *altri* validi programmi che creano dischi criptati
ed "interscambiabili" sotto win E linux?

 ed "interscambiabili" sotto win E linux?
Che io sappia no, almeno nell'ambito dell'open source/free software.
Forse puoi trovare alternative tra i prodotti commerciali.

 ed "interscambiabili" sotto win E linux?
A parte quello che ho segnalato nel mio post della scorsa settimana,
non credo.
Ciao,
un TJL73 che pensava potesse andar bene...
-- 
"I funghi sono tutti commestibili... alcuni, una volta sola."
                                                     -- Dario Ballantini

 
nel tread "qual'e' la migliore soluzione portabile?" ?
un fortAlamo che *spesso* e' un po' confuso ;)

 un fortAlamo che *spesso* e' un po' confuso ;)
Spero di non aver alimentato la confusione.
Ciao,
un TJL73 che s'augura di aver interpretato correttamente la questione...
-- 
"Per ogni problema complesso,
 c'e` sempre una soluzione semplice. Ed e` sbagliata."
                                                  -- George Bernard Shaw

 
grosso passo avanti!
il mio *nuovo* kernel permette il modprobe aes :-) e  qndi 
mi chiede e supporta correttamente la pass.
allora monto la chiavetta e 
 losetup -e AES256 /dev/loop/0  /mnt/sda1/docs
pero' se tento di entrare in /dev/loop/0:
 cd /dev/loop/0
bash: cd: /dev/loop/0: Not a directory
 losetup -a
/dev/loop/0: [0305]:518 (/mnt/sda1/docs)
encryption=CryptoAPI/aes-cbc root@1[loop]# cd /dev/loop/0
bash: cd: /dev/loop/0: Not a directory
ci siamo quasi.... appunto, QUASI ;-)

 
Scusa,ma per semplificarti la vita non puoi utilizzare la nuova versione 
del prg Truecrypt visto che gira sotto win e sotto linux?
Dovrebbe risolvere tutti i tuoi problemi.
ciao
The Nav.

 Dovrebbe risolvere tutti i tuoi problemi.
yep,
se fossimo in un forum metterei tante faccine felici!
ok per truecrypt .... e problemi risolti :-)
grazie ;-)

 
Prego, Bene! Sono proprio contento!