Názory k článku
Jak vytvořit šifrovaný oddíl v Linuxu
RE: Jak vytvořit šifrovaný oddíl v Linuxu
celé vláknoRE: Jak vytvořit šifrovaný oddíl v Linuxu
celé vláknoRE: Jak vytvořit šifrovaný oddíl v Linuxu
celé vláknoRE: Jak vytvořit šifrovaný oddíl v Linuxu
celé vláknoUrčite vhodnejšie je prepísať disk náhodnými dátami a to niekoľkonásobne. Ak je niekto paranoidný, prepíše 25 krát :). Jedná sa ale o ochranu dát, ktoré sa na oddieli nachádzajú pred zašifrovaním. V prípade, že nám o ochranu týchto dát nejde, možeme z podľadu bezpečnosti kľudne v rámci kontroly disku na chyby použiť /dev/zero. Či je to dostatočné aj pre sponenutú kontrolu chýb, neviem.
RE: Jak vytvořit šifrovaný oddíl v Linuxu
celé vláknojinak kontrola chyb se dela pomoci 0xaa, 0x55, 0xff, 0x00 a nahodnyma cislama, nejlip samozrejme vsema moznostma :)
RE: Jak vytvořit šifrovaný oddíl v Linuxu
celé vláknoRE: Jak vytvořit šifrovaný oddíl v Linuxu
celé vláknoRE: Jak vytvořit šifrovaný oddíl v Linuxu
celé vláknovono stejne zasifrovany /dev/zero bude vytvaret nejakej slozitej ale predse jen periodickej vzorek, ne? takze zase pak bude videt, kde je vzorek t.j. nic a kde jsou uz skutecny data
RE: Jak vytvořit šifrovaný oddíl v Linuxu
celé vláknoPokud jste schopen pomocí urandom generovat pseudonáhodná čísla dostatečně rychle (desítky MB/s), pak používejte urandom (mimochodem, kde jste sehnal HW generátor náhodných čísel?). Sám si to můžete "nezávazně" vyzkoušet:
dd if=/dev/urandom of=/dev/null
Naopak, pokud vygenerujete z bídou 3-4MB/s jako já, pak se začnete poohlížet po alternativním řešení, abyste nemusel čekat dny na přípravu zašifrovaného oddílu.
vono stejne zasifrovany /dev/zero bude vytvaret nejakej slozitej ale predse jen periodickej vzorek, ne?
Tak za prvé, pokud si přečtete celou moji formulaci, pak dávám na výběr mezi /dev/zero (což je zrovna ta horší možnost) a programem badblocks (což osobně doporučuji), který generuje sice méně kvalitní pseudonáhodná data, ale generuje je velmi rychle, takže ve spojení s vhodnou šifrou a šifrovacím módem by měl být výstup náhodný dostatečně.
A za druhé, s použitím vhodného šifrovacího módu by vůbec nemělo vadit použití /dev/zero, výstup by měl být navzdory jeho použití taktéž dostatečně náhodný. Ale, jak už jsem uváděl, nejsem krytptolog, abych to dokázal odborně posoudit. Čili, badblocks+dm-crypt/LUKS je podle mého pro zaplnění oddílu náhodnými daty optimální řešení - je dostatečně rychlé a mělo by být i dostatečně "náhodné". Pro příklad v článku jsem právě proto zvolil tuto alternativu.
RE: Jak vytvořit šifrovaný oddíl v Linuxu
celé vláknourandom mam taky jen 4MB/s, coz je asi limitovany CPU a random 0.3MB/s, coz je zase limitovany tim HW generatorem, bez toho generatoru se random plni jen z mysi a klavesnice a tak a tim padem dost casto ceka a zadny data neposila.
jinak si myslim, ze zasifrovany malo variabilni data (treba samy nuly) budou sice o trochu vice nahodny, ale ne o moc a to muze byt potencialni problem, proto taky v ssh je moznost komprese dat pred sifrovanim, cimz se snizi opakovani a zvysi se variabilita
na disk se zatim komprese pred sifrovanim nepouziva, ne? asi ta komprese je narocnejsi na CPU nez sifrovani
a ten napad naplnit disk sifrovanyma nahodnyma datama s jinym heslem, nez pak bude pouzito, je zajimavej, ale nevidim v tom moc zadnou vyhodu, to radeji pockam prez noc a naplnim to z urandom (160GB disk za 11 hodin zhruba)
jedine me napada naschval pouzit lehky heslo (myslim ve fazi mazani disku, potom samozrejme ne), lehkou sifru a naplnit disk nejakyma balastnima souborama, treba nejakyma videama, pak je mozny, ze se utocnikovi podari rozlousknout tu slabsi sifru a dostane se akorat k tomu balastu. ale asi taky zalezi, jak ten disk bude potom plnej uzitecnyma datama....
RE: Jak vytvořit šifrovaný oddíl v Linuxu
celé vláknona disk se zatim komprese pred sifrovanim nepouziva, ne? asi ta komprese je narocnejsi na CPU nez sifrovani
Nepoužívá. Proto u diskového šifrování (a nejen tam, když už jsme u toho) hodně záleží na šifrovacím módu.
a ten napad naplnit disk sifrovanyma nahodnyma datama s jinym heslem, nez pak bude pouzito, je zajimavej, ale nevidim v tom moc zadnou vyhodu
"Jen" mnohonásobně vyšší rychlost oproti urandom. A podle mého názoru, výstup by měl být srovnatelně bezpečný s urandom.
Crypt+RAID+Boot+Swap
celé vláknoCca 20 minutek, když jsou svižné disky a rozumná (čti neklikací,nelive) instalace.
Na 1 sys disk se normálně nainstaluje distribuce (nezdržovat partition, nacpat vše do sda1)
Bez záruky (o: Bůch ví, jestli si to pamatuju přesně.
rozdelit disk (vse typ FD)
* 1: 100M boot
2: 8G swap
3: 5G /
4: zbytek LVM (data)
#vytvorit pole (pokud by bylo víc disků, SWAP mít RAID0 nebo 1, BOOT 1 a zbytek 10)
mdadm --create /dev/md0 --level=1 --chunk=64 --raid-devices=2 /dev/sdb3 missing
mdadm --create /dev/md1 --level=1 --chunk=128 --raid-devices=2 /dev/sdb1 missing
mdadm --create /dev/md2 --level=1 --chunk=128 --raid-devices=2 /dev/sdb4 missing
mdadm --create /dev/md3 --level=1 --chunk=256 --raid-devices=2 /dev/sdb2 missing
md0: /
md1: boot
md2: LVM (data)
md3: swap
# kuk jestli funguje co to ma
cat /proc/mdstat
modprobe dm-crypt
modprobe aes-i586
modprobe sha256
# udelat samotne ctrypt odily
cryptsetup -c aes-lrw-benbi -y -s 384 luksFormat /dev/md0
cryptsetup -c aes-lrw-benbi -y -s 384 luksFormat /dev/md2
cryptsetup luksOpen /dev/md0 root
cryptsetup luksOpen /dev/md2 lvm
# pripojit pro instalaci a pripravit dirs
mkreiserfs /dev/md1
mkreiserfs /dev/mapper/root
mkdir /mnt2
mount /dev/mapper/root /mnt2
mkdir /mnt2/var
mkdir /mnt2/tmp
mkdir /mnt2/boot
mkdir /mnt2/dev
mkdir /mnt2/sys
mkdir /mnt2/proc
mount /dev/md1 /mnt2/boot/
chmod u-w /mnt2/proc
# install
cp -rp /bin/ /home/ /sbin/ /usr/ /boot/ /etc/ /lib/ /opt/ /root/ /srv/ /var/ /mnt2/
# zakladni nody pro po init
mknod -m 660 /mnt2/dev/console c 5 1
mknod -m 660 /mnt2/dev/null c 1 3
mknod -m 660 /mnt2/dev/zero c 1 5
# pripojit udev a spol (aby bezelo lilo a pod)
mount -t proc none /mnt2/proc
mount -t sysfs none /mnt2/sys
mount -o bind /dev /mnt2/dev
# zaznamenani RAIDu
mdadm -D --scan >> /mnt2/etc/mdadm.conf
# veskere dalsi upravy jsou v /mnt2, kde funguje chroot (lilo, mdadm, ...)
#uprava lilo.conf
boot=/dev/md0
raid-extra-boot=mbr-only
append="md=0,/dev/sdb3,/dev/sda3 cryptdevice=/dev/md0:root"
menu-scheme=wb:bw:wb:bw
...
root=/dev/md0
# pokud bude lilo prskat, ze neni sda3, dopsat "disk=/dev/sda3 inaccessible", pripadne misto /dev/sda3 pouzit missing. obe po pridani druheho disku zrusit
# upravit mkinitcpio.conf
HOOKS="base udev autodetect pata scsi sata usbinput keymap raid lvm2 encrypt filesystems"
# upravit rc.conf
USELVM="yes"
DAEMONS=(syslog-ng network sshd netfs crond mdadm
# update boot image
chroot /mnt2 mkinitcpio -g /boot/kernel26.img
# fstab
/dev/mapper/root / reiserfs defaults 0 1
/dev/md1 /boot reiserfs defaults 0 1
/dev/mapper/swap swap swap defaults 0 0
# crypttab
swap /dev/md3 SWAP -c aes-cbc-essiv:sha256 -h sha256 -s 256
# update lila
lilo -r /mnt2 -H
# reboot (bylo by košér nejrpve unmount všeho), bootnout z degrad. pole
# udelat RAID stastnym
mdadm --add /dev/md0 /dev/sda3
mdadm --add /dev/md1 /dev/sda1
mdadm --add /dev/md2 /dev/sda4
mdadm --add /dev/md3 /dev/sda2
# poladit mdadm.conf, vyhodit spare/failed, minimalne nastavit MAILADDR
# nez dobehne repllikace, dat si pivo (u tech TB disku je cas i na tocene)
# updatnout LILO, uz nebude prskat (mne prskalo dokud nedobehla replikace)
lilo
Reboot || EOF.
Může mi někdo říct, proč všici používají GRUB ? Ne že bych miloval lilo (hlavně před 10ti rokama to bylo něco ¨tragického), ale přiblbé značení (číslování) disků a konfigurace GRUBu mně osobně docela děsí. S GRUBem a RAIDama jsem měl dycinky problém, spousta řádků, spousta počítání (hlavně když je v poli třeba 8 disků). LILO to zchroupe jemnou úpravou :) Vím, že GRUB i kafe uvaří, ale za jakou cenu ?
Ray
Re: Crypt+RAID+Boot+Swap
celé vláknosfdisk -d /dev/sdb | sfdisk /dev/sda
Ray
Re: Crypt+RAID+Boot+Swap
celé vláknoRe: Crypt+RAID+Boot+Swap
celé vláknoPotom už to je spíše "magie" :o) Jediné by mělo smysl je, aby SWAP byl fyzicky co nejblíže nejčastěji používaným datům (obecně, všechny hojně používaná data). Otázka ale je, co jsou ony nejčastěji používaná data. Navíc, disky si dneska mapujou sektory podle sebe, nedá se tedy spoléhat na geometrii. V konečném důsledku: je to prakticky jedno.
Ideální by bylo, aby nejvíce využitá data byly stejně vzdálené od osy otačení na všech plotnách (jejich fyzický střed). Nevím, nehledal jsem, ale třeba existuje prográmek, který je schopen změřit reakční dobu na disku (stejně jako se dá změřit velikost a počet caches). Potom by jistě šla propustnost (a to i zajisté dost výrazně) zvednout. Koupit velký disk s co nejvíce plotnama, využít jen jeho část (a to bude relativně malá část, třeba jen 15-20 procent kapacity max), zato jednotlivé oddíly umístnit fyzicky nad sebe a minimalizovat seek...
Já jsem si MD0 nazval root, 1 boot jen protože se mi to tak líbí víceméně (o: Jistě se najdě někdo, kdo to dělá opačně a cokoliv jinak je špatně. A co se týče fyzického pořadí.... Boot prvni ze zvyku. Swap druhej taky ze zvyku (třeba na OpenBSD je to více než zvyk). A ty další ? Nezkoumal jsem přesnou geometrii disku, nedělal testy, čili... Je to fuk.
Ray
Re: Crypt+RAID+Boot+Swap
celé vláknoRe: Crypt+RAID+Boot+Swap
celé vláknoR.
Re: Crypt+RAID+Boot+Swap
celé vláknojde o vyvaazeni sil na klice ...
.. navic treba skodovka od 1000MB do 120/130 ... pak nevim
.. 1-3-4-2
.. a co teprvaaa boxer (vw...nebo citroen/ol(d)cit)
-)))
to jen tak na vokraj ... aby se nereklo
PS:nekamenovat nepishu czesky ;-)
Je degraZZZdovaného sposté slovo ?
celé vláknoRay
Re: Je degraZZZdovaného sposté slovo ?
celé vláknoR4dovan K4luza :-D banan.cz
Re: Je degraZZZdovaného sposté slovo ?
celé vláknoa co na to ssd?
celé vláknoRe: a co na to ssd?
celé vláknoRe: a co na to ssd?
celé vláknoR.
RE: Jak vytvořit šifrovaný oddíl v Linuxu
celé vláknoTrueCrypt ... a jeho mouchy
celé vláknoV Linuxu je s TC zasadni problem v tom, ze bezi pres FUSE takovou pomerne podivnou cestou. to bych jeste prekousl, ale aktualni stav sifrovani systemoveho disku v podstate znemoznuje provozovani jakehokoliv dalsiho systemu mimo Windows na danem stroji, chcete-li pomoci TC sifrovat i dalsi disk/partition (napr. TC vam nedovoli zasifrovat cely disk kdyz mate extended partition). Dalsi veci je, ze TC pri sifrovani jedne partition ulozi hlavicku do prvniho cylindru disku (hned za svuj kod) a tato je pak pouzita pro desifrovani. V linuxu takovou vec samozrejme nepripojite ...
Ruznych "podivnosti" tam je spousta, prilis nechapu proc takova pekna vec, jakou TrueCrypt bezesporu je, nebyla uz ze zacatku programovana se *snadnou* prenositelnosti na jine platformy.
Jinak dle meho nazoru jde pomoci dm-cryptu pripojit truecryptovy volume, alespon pokud se napise tool, ktery misto LUKS hlavicky naparsuje tu truecryptovou a preda to pres prislusne ioctl kernelu.
jaky FS nad cryptFS? (aka XFS problem)
celé vláknonedavno jsem resil problem jak zasifrovat oddil na MMC/SD flash karte. Kdyz jsem pouzil muj oblibeny XFS (mkfs.xfs /dev/mapper/kryptkarta), po nekolika restartech systemu se XFS rozsypal, a ani xfs_repair nepomohlo, resp. vetsina FS se presunula do lost+found :(
Kryptkartu jsem preformatoval na EXT3, obnovil data ze zalohy a od te doby nemam problem.
Rozumite tomu nekdo? Je mozne, ze XFS je pro krypteni nevhodne? Snazil jsem se vyhledat informaci o vhodnosti jednotlivych FS na krypteni, ale nic jsem nenasel.
Diky!
-Loiz
Re: jaky FS nad cryptFS? (aka XFS problem)
celé vláknoNa MMC, SD a jiné flash karty není dobré používat žurnálované souborové systémy, dokáže je velmi rychle zničit. Doporučuji jen ext2 nebo FAT.
Sifrovane RAID + LVM a grow pole
celé vláknoCo kdybych do toho pole chtel pridat dalsi oddil sdd1?
Bude stacit tohle, a disk se stane plnohodnotnou soucasti sifrovaneho pole?
dd if=/dev/urandom of=/dev/sdd1
mdadm --add /dev/md0 /dev/sdd1
mdadm --grow /dev/md0 --raid-devices=4
pvresize
lvresize
FS resize
Jo a diky za pekny clanek ;-)
M.
Re: Sifrovane RAID + LVM a grow pole
celé vláknoCBC mód
celé vláknoRe: CBC mód
celé vláknoŘeší se to tak, že se pomocí CBC šifrují jednotlivé sektory, a to odděleně. Cituji:
Since CBC encryption is a recursive algorithm, the encryption of the n-th block requires the encryption of all preceding blocks, 0 till n-1. Thus, if we would run the whole hard disk encryption in CBC mode, one would have to re-encrypt the whole hard disk, if the first computation step changed, this is, when the first plain text block changed. Of course, this is an undesired property, therefore the CBC chaining is cut every sector and restarted with a new initialisation vector (IV), so we can encrypt sectors individually. The choice of the sector as smallest unit matches with the smallest unit of hard disks, where a sector is also atomic in terms of access.
Zdroj: Clemens Fruhwirth, Linux hard disk encryption settings
Re: CBC mód
celé vláknoTím ale mizí ochrana proti nahrazení sektoru jako celku "starou" hodnotou, ne?

