Kryptera mappar, dock inte på det krångliga sättet =D

Har du något? Posta då här.
Post Reply
quesy
Posts: 13
Joined: 15 January 2005, 02:19

Kryptera mappar, dock inte på det krångliga sättet =D

Post by quesy » 6 January 2009, 06:52

Skrev denna för ett tag sen, detta är inte det krångliga sättet med OpenSSL o sheit, jag jobbar alltid efter KISS modellen =D

Viva la Crypto!!!
Så här gör man för att göra det svårt/omöjligt för Aliens att kolla vad du har på dina diskar. Du crypterar dina diskar med 256 eller 160Bit AES! 256Bit om du har en snabb CPU på din filserver eller klient. Overkill med 256Bit jag vet! Men det finns ju där så man måste ju såklart köra på det muhahaha …

Det finns 1 bra sätt att göra detta på, fixa en fil-server(dator med massa massa disk), bra om den har >=1Ghz cpu i sig. Själv kör jag på en 500Mhz med 512mb ram, crypterar 400GB data med 256Bit AES. Det funkar fint, kan köra film+mp3+skriva massa data, utan att det stör på min gamla häck. Linux på denna servern är ett måste … Denna guide gäller ubuntu-7.10-server samt att du har basic linux kunskap.

Fil-server(Linux):

1. Gammal häck med massa disk i
2. Linux, personligen föredrar jag ubuntu-server(http://www.ubuntu.org)
3. En panna Java

Installera Linux på maskinen, vanlig standard installation. Efter det installerar du de paket som behövs:

$sudo su
#apt-get update; apt-get install samba encfs ssh
“Massa skit installeras”

Vi kommer alltså använda samba som ethshare, encfs för att cryptera disken. Om allt har gått bra under installationen är det bara köra på till nästa steg, crypteringen!

EncFS är super för det kräver inte att du trixar med “losetup” osv, vilket strular med stora filer, samt att det tar lååååång tid att göra dem på dagens feta diskar.

Fördelen med EncFS är att dina filer crypteras on-the-fly. Enda du behöver att göra är 2st dir:s, ett för mountpoint o ett för de crypterade filerna simpelt va ? Allrite, såhär har jag gjort:

#cd /usr/local/volumes/
#mkdir vir01fs .vir01fs-raw
# encfs /usr/local/volumes/.vir01fs-raw /usr/local/volumes/vir01fs

Creating new encrypted volume.
Please choose from one of the following options:
enter “x” for expert configuration mode,
enter “p” for pre-configured paranoia mode,
anything else, or an empty line will select standard mode.
?> p(ENTER)

När du tryckt enter så kan du se vilken cryptering du använder:

Paranoia configuration selected.

Configuration finished. The filesystem to be created has
the following properties:
Filesystem cipher: “ssl/aes", version 2:1:1
Filename encoding: “nameio/block", version 3:0:1
Key Size: 256 bits
Block Size: 512 bytes, including 8 byte MAC header
Each file contains 8 byte header with unique IV data.
Filenames encoded using IV chaining mode.
File data IV is chained to filename IV.

New Encfs Password: (Copy/Paste md5sum)
Verify Encfs Password: (Copy/Paste md5sum)

Då har du cypteringen klar! Ang. Password så kommer jag gå in på det senare, det är lätt att ändra sen!

testa skapa något i vir01fs, tex “touch vir01fs/skalleballekobra", gör en ls -l .vir01fs-raw då borde du se att det ligger nåt crypterat där:
drwxr-xr-x 2 mofo mofo 4096 2007-10-24 21:30 3wErvtLGqMK7TxcIXLDmr0vY

Filen ser cepe ut och det är ju bra som skam. Men när du kollar i vir01fs dir, så kommer filen se OK ut. Detta för .vir01fs-raw är mountad till vir01fs. Om du nu testar “umount /usr/local/volumes/vir01fs” då finns det inget i dir vir01fs, allt ser ut som vanligt i .vir01fs-raw(allt är crypterat).

För att mounta disken igen skriver du sama som när du skapa den(iaf jag gör det). Jag har gjort ett script:

#vi /usr/local/bin/cryptfs

#!/bin/bash

echo “Mounting CFS …”
encfs –forcedecode –public /usr/local/volumes/.vir01fs-raw /usr/local/volumes/vir01fs
#EOF

#chmod +x /usr/local/bin/cryptfs
#cryptfs
Password:

Klart!

–forcedecode och –public var jag tvungen att lägga till för att streaming och för utdelning av vir01fs(Läs på http://arg0.net/encfs om du vill veta vad dom gör).

Nu när detta är klart så skall du dela ut disken via samba. Enklast gör du såhär:

#smbpasswd -a miffo
Password: (bleh)

Lägg till en utdelning tex:

[CFS]
comment = CFS Volumes
path = /usr/local/volumes/vir01fs
guest ok = no
browseable = no
create mask = 0600
directory mask = 0700
valid users = miffo
writable = yes

Mounta upp \\(IP/Namn)\CFS på din windows/linux grunka.

Klart!

Password generering

Långa passwords är bra när det gäller AES för att det tar längre tid att använda brute som än är den enda kända metoden att knäcka AES med. Men hur fan skall man komma ihåg ett password som är 64> tecken långt ? Om du lider av fotografiskt minne så funkar det ju utan några som helst problem, men det är inte så många som har det. Så vi får hitta på något annat som vi kan relatera till, sen göra om det till slumpmässiga tecken.

Finns säkert ziljarder lösningar på hur man kan göra detta(öppen för bättre förslag), men såhär gjorde jag iaf:

Jag genererar en md5summa av en text som jag vet att jag aldrig kommer att glömma =), tex:

#echo “I sverige kan du ha sex med barn i sömnen helt lagligt Ö” |md5sum
d46f5560f7a53ecd8d925b460d41f4ca - Där har du din md5sum som du kan ha som password!

Tänk på att det är case-sensitive som gäller här, skriver du med ett litet “ö” så ser summan ut såhär:
41d59af84ae963fd7af5d9a229b8de71

Så det är viktigt att du minns exact hur du har skrivit.
OBS! GLÖM INTE RADERA ~/.bash_history varje gång du har genererat ett password med tex echo, alternativt gör ett script för detta!!!

Så det var det, nu är det bara lägga allt på CFS volymen, kommer Konstapel Albatross och knackar på dörren kan du bara bryta huvudströmmen så maskinen dör(eller så gör dom det åt dig lol), så har dom o göra en stund sen när allt de kommer hitta är massa cryptade filer som totalt väger 1TB =D.
PS: Man kan sätta hur länge disken får vara inaktiv innan den automatiskt unmountar sig.

I länder som USA är det inte tillåtet att cryptera med AES >56bit för då kan inte regeringen knäcka det on-the-fly, men i sverige är det inte olagligt, dom vill, men det har dom inte fått igenom än som tur är.

PS: Om du vill crypta dina diskar på Windows kan jag rekomendera TrueCrypt som är OpenSource. TrueCrypt hittar du här: http://www.truecrypt.org

Mer info om encfs hittar du här: http://arg0.net/encfs

erik_persson
Posts: 1474
Joined: 29 August 2002, 15:19

Re: Kryptera mappar, dock inte på det krångliga sättet =D

Post by erik_persson » 6 January 2009, 14:51

Bra!

Några kommentarer och frågor.

Hur ser du till att eventuellt krypterad information inte skrivs ned i swap då den ligger i minnet (dvs är laddat av ett program), eller skrivs till en temporär fil som inte är krypterad?

MD5 är kass, och är varken kollisionssäker eller strängt kollisionssäker. Nu spelar det mindre roll för det exempel du anger, men i allmänhet ska man INTE använda md5 när säkerhet eftersträvas. Då är det i dagsläget bättre att använda SHA-1. För närvarande pågår en urvalsprocess för att välja nästa säkra hash-funktion.

(Som överkurs kan nämnas att man egentligen också bör fundera på hur man ska tillförsäkra sig om att även minnet som lösenordet ligger i är oläsbart vid en eventuell attack)

Ytterligare en kommentar rör längden av lösenordet. I många fall så används lösenordet för att kryptera den nyckel som sedan används vid själva krypteringen eller dekrypteringen. Man vinner sålunda inte något på att ha större slumpmässighet i detta lösenord än i nyckeln. Vi antar att varje tecken som används i ett lösenord har ca 150 olika reella val, dvs motsvarar ca 7 bitar. Mer än ca 36 tecken i lösenordet behövs sålunda inte (och förmodligen så används inte heller alla tecken strikt om många tecken anges - lösenordet är ju också del i en algoritm för att kryptera något)



/erikp

quesy
Posts: 13
Joined: 15 January 2005, 02:19

Re: Kryptera mappar, dock inte på det krångliga sättet =D

Post by quesy » 7 January 2009, 23:35

Bra frågor!

Jag har inte koll på hur det ligger krypterat när det gäller minne och swap om jag skall vara ärlig, men jag skall genast kolla upp detta. Tanken med hela denna grejjen var att man skall slippa göra en img-fil med losetup vilket kräver en till disk. Det jag var ute efter det var att kopiera all befintlig data till ett dir där det krypteras on the fly. Sen om någon försöker starta upp disken så behövs password för att mounta katalogen. Jag har satt min disk på 1timme innan den kopplas bort. Då måste jag skriva in lösen igen för att komma åt den.

Sen när det gäller MD5 så var det enbart för att få ett långt lösen som jag kan komma ihåg, vilket jag gör med md5, det är lättare att komma ihåg en fras än slupade tecken på minst 14 tecken om jag inte minns fel.

Men som jag skrev, är det någon som har något bättre förslag att generara dessa passwords, dvs mer tecken, gemener o versaler osv så vill jag gjärna veta hur man skulle kunna göra det. Typ få ut "hej på dig du" -> KJC)(=:)(2984jskK9^93 ... a ni fattar.

Såhär står det på deras site:

"The pass-through filesystem design is not new for encrypted filesystems. EncFS is modeled after CFS - the original Cryptographic Filesystem by Matt Blaze, published in 1993. Over the years, other filesystems have extended the basic ideas behind CFS in different ways (such as TCFS in 1996). As part of this family of filesystems, EncFS shares the same basic strengths and weaknesses compared to block encryption devices"

"Layering / Separation of Trust: EncFS can be layered on top of other filesystems in order to add encryption to unencrypted filesystems. This also allows you to store data on filesystems you trust for storage but not for security. For example, EncFS could be used on top of a CD, or a remote NFS filesystem, Samba share, or perhaps even GMail storage using GMailFS.
"

quesy
Posts: 13
Joined: 15 January 2005, 02:19

Re: Kryptera mappar, dock inte på det krångliga sättet =D

Post by quesy » 8 January 2009, 00:01

Ang swap och minnes kryptering.

Jag tror inte encfs är tänkt att vara den optimala lösningen för att kryptera data under drift, utan mer som ett krypterat arkiv. Det finns säkert massa bättre system som är säkra osv på att kryptera data som är under drift. Men det va inte det jag var ute efter.

Bra text jag hitta på mailinglistan:

"> Why doesn't encfs support keys of 512/1024 bits ?

Not necessary. Most encryption algorithms do not support such large keys
anyway. AES is defined for up to 256 bit keys. You are probably thinking of
"public key" (or asymmetric key) encryption, which uses much larger key
sizes. Symmetric key encryption uses much shorter keys. Symmetric-keys of
128bits are considered unbreakable by brute force.

> Is there any limitation to not allow this ?

Algorithms not defined for larger keys.

> btw , just for curiosity how much time should take to break 256bits using
> bruteforce ?

Experts recommend using 80bit keys as a minimum to keep things safe until at
least 2018. To keep secrets safe until 2030, use at least 90 bits. The
level of security doubles each time you add a bit.

But remember that just because a 256 bit key is used in an encryption
function, you're not necessarily going to benefit unless your password also
contains that much data. If you were to type a series of english words in
for a password, you'd have to type nearly 200 characters to get 256 bits of
randomness. Most people have passwords that contain much less information.

If you are interested in the topic, I recommend getting a good book on
cryptography, such as "Applied Cryptography" by Bruch Schneier.

regards,
Valient
"

erik_persson
Posts: 1474
Joined: 29 August 2002, 15:19

Re: Kryptera mappar, dock inte på det krångliga sättet =D

Post by erik_persson » 8 January 2009, 22:31

Precis! Jag kan också rekommendera Applied Cryptography - en mycket bra bok.

Min kommentar var mest till för att få folk att tänka på att även om det ställe där man huvudsakligen sparar informationen är krypterad så finns det läckor som man, om man önskar större säkerhet, måste se till att täppa till. En möjlighet är att tex se till att stänga av virtuellt minne. En annan faktor är att det program som man använder eventuellt kommer att skriva ned temporära filer på enheter som inte är krypterade.

Vad gäller slumpmässigheten in ett ord så motsvara ett tecken ofta ungefär ca 7 bitars valbarhet, vilket gör att man för att om man slumpmässigt väljer 36 tecken så når man 256 bitar. Det är inte riktigt samma sak som att använda en fras från en text eftersom slumpmässigheten inte är lika stor i en sådan. Exempelvis så förekommer kombinationen "rtttr" inte i en svensk text, men finns med bland de slumpmässiga möjligheterna, i en svensk text så förekommer inte alla bokstäver lika ofta men i en slumpmässigt vald sträng så har varje tecken lika stor sannolikhet att väljas. På samma sätt kan man delvis resonera med en md5-hash av en fras. I teoretisk mening är inte slumpmässigheten i en sådan större än i den fras som använts som indata till hashen. Praktiskt så är det naturligtvis något svårare att gissa en sådant lösenord, men inte alls lika svårt som att gissa en helt slumpmässig sträng av lika stor längd.

/erik

Post Reply