Ubuntu İçin İki Faktörlü Kimlik Doğrulama ile Tam Disk Şifreleme: Nasıl?


9

Arkaplan bilgisi

Ben bir Linux acemisiyim, geçenlerde Windows'tan ayrıldım. Şu anda tam disk şifrelemesi olmadan Ubuntu 11.04 kullanıyorum. Yalnızca ev dizim şifreli ve eCryptFS ile. Son zamanlarda, şifrelemenin olması gerektiği kadar şeffaf olmadığını farketmeye başladım. Örneğin VMWare bazen şifreli ev dizinimde depolanan sanal makineler için sorun yaşar, bu yüzden sanal makineleri şifrelenmemiş bir konuma taşıdım ve şifreli ev dizinimden ona bağladım. Ancak mesele şu ki: Farkındayım ki, Ubuntu gibi bir açık kaynaklı işletim sistemi sır saklaması gereken bilgileri açığa çıkarmak için değiştirmenin çok kolay olduğu için sistemi şifrelenmemiş bırakmak çok güvenli değil.


Hedef

Önyükleme öncesi kimlik doğrulama için bir anahtar cihaz ve bir parola ile birlikte tam disk şifreleme çalışması yapabilmek istiyorum.


Gereksinimler / Detaylar

  1. Diskin tamamı şifrelenmiş olmalı. En azından, disk şifrelenmiş ayrı bölümlerden oluşur. Bölümleri bile şifrelemeyle gizlemek mümkün olursa, onun için giderim. Şifreleme ne kadar şeffaf olursa, o kadar iyidir; Bilgisayarımı farklı bir şekilde kullanmamalı veya başka bir şey yapılandırmamalıyım.
  2. Şifrelenmiş bölümün kilidini açmak ve önyüklemek için kullanılan aygıt küçük bir harici taşınabilir aygıt olmalıdır. Bu iki amaca hizmet eder: boot yükleyicinin kötü amaçlı amaçlar için değiştirilme olasılığı çok düşüktür, çünkü kullanılmadığı zaman bende kalacaktır; ve diskin şifresini çözecek anahtar dosyalar şifrelenmiş diskin hiçbir yerinde bulunmaz.
  3. Anahtar dosyalar bir şifre ile şifrelenmelidir. Hem bilgisayarımı hem de USB aygıtımı kaybedersem, veri ve işletim sistemi hala güvende olacak. USB anahtarını kaybedersem veya tehlikeye girerse, yedeklemeden başka bir temiz anahtar oluşturabilirim. Her iki durumda da hiçbir bilgi açıklanmamaktadır. Tabii ki, bilgisayarımı kaybedersem, bu eşitsizdir.

Evet, birçok yerden rehberlere baktım, ancak sorun şu ki tüm gereklilikleri ele almıyorlar (özellikle 3 numara). Gereksinimlerimin, birinin zaten böyle bir kurulumu denediği ve başarıyla uyguladığı kadar yaygın olduğundan eminim. Herhangi bir Linux profesyoneli bir çözümü paylaşabilirse minnettar olurum.


2
Re "Ubuntu gibi açık kaynaklı bir işletim sisteminin sır saklaması gereken bilgileri ifşa etmek için değiştirilmesi çok kolay olduğu için" - İkna etmenin ne kadar kolay olduğuna şaşıracaksınız kapalı kaynak OS'leri aynı yapmak için. Bir programın açık kaynaklı olması, hiçbir şey değil Yerel saldırılara karşı güvenliği veya güvensizliği hakkında.
grawity

Yanıtlar:


2

Tam bir disk şifrelemeye sahip olmanın basit bir yolu var ki, belirli bir sürücü ve var olması için şifrenizi açmanız gerekiyor.

Yapmanız gereken, LUKS başlığını tamamen şifrelenmiş sabit sürücünüzden ayırıp başparmak sürücünüzde saklamaktır.

Zaten aşağıdaki kurulum olduğunu varsayalım:

# /dev/sda1 is the boot partition (100MB)
# /dev/sda2 is the encrypted partition
parted /dev/sda mklabel msdos
parted /dev/sda -- mkpart primary ext2 1M 200M
parted /dev/sda -- mkpart primary ext4 200M -100M
cryptsetup luksFormat /dev/sda2

Luks başlığının bir kopyasını oluşturun ve yerel cihazdan silin:

mkdir /media/ramdisk && mount -t tmpfs -osize=20m,rw tmpfs /media/ramdisk
cryptsetup luksHeaderBackup /dev/sda2 --header-backup-file /media/ramdisk/header.img
dd if=/dev/urandom of=/dev/sda2 bs=1M count=2

Yüksek bütçeli bir ajansın hedefi iseniz, son adımı birkaç kez uygulayın. Ayrıca üstbilgiyi geçici olarak tutmak için bir ramdisk oluşturdum, böylece daha sonra oyalanmıyor.

/ Dev / sdb'deki usb cihazınızla 2 MB'lık bir bölüm oluşturun ve üstbilgiyi ona yükleyin:

parted /dev/sdb -- mklabel MSDOS
parted /dev/sdb -- mkpart primary 1M 3M
dd if=/media/ramdisk/header.img of=/dev/sdb1

Şu anda, / dev / sda2 içindeki her şey rastgele veriye benziyor ve başlığınız / dev / sdb1 içinde. Şifrelenmiş sürücüye manuel olarak erişmek için, şunları kullanırsınız:

cryptsetup luksOpen --header /dev/sdb1 /dev/sda2 rootfs
mount /dev/mapper/rootfs /target

Bir sonraki adım, önyükleme işleminizin pendrive'ın önyüklemeye eklenmesini istemesini sağlamaktır. Orada olacağını varsaymak daha kolay buldum ve başka türlü başarısız oldum. Öncelikle, cihazlarınızın kimliğini ve UUID'sini bulun:

find -L /dev/disk/by-id/ -samefile /dev/sdb1
/dev/disk/by-id/usb-Generic-_Compact_Flash-part1
find -L /dev/disk/by-id/ -samefile /dev/sda2
/dev/disk/by-id/scsi-SATA_ST3320820AS_5QF28W6V-part2

blkid /dev/sdb1
/dev/sdb1: UUID="63347546-2db3-4bc1-9414-1142739a4c9f" TYPE="crypto_LUKS"

Sonra düzenleyin /etc/crypttab Bunun gibi görünmek için çizgi:

root /dev/disk/by-id/scsi-SATA_ST3320820AS_5QF28W6V-part2 none luks,header=/dev/disk/by-id/usb-Generic-_Compact_Flash-part1

(İhtiyacın olabilir bu yama için destek almak header seçenek crypttab )

Son fakat en az değil, initramınızı güncelleyin:

update-initramfs -u

Bunu bir adım öteye götürebilir ve aslında USB sürücüsünde tüm önyükleme bölümü yüklü . Bu makalenin yazarı bu sitede yapıyordu bir takip et .

Var çok Farklı yaklaşımlar alabilirsin , çeşitli derecelerde güvenlik ve rahatlıkla.

Güvenlikle ilgili özel bir not: parolanız tehlikeye girerse, daha sonra parolayı değiştirseniz bile başlığın bir kopyası olan herkes verilerin şifresini çözebilir.


1

TrueCrypt’in OSX, Windows ve Linux için uygun olduğunu biliyorum. Tüm sürücü için iki seviyeli şifreleme yapabilirsiniz. AES tam disk şifrelemesinde Debian'da kullandım. Sabit sürücüdeki verilere erişmek için önyüklemedeki parolayı gerektirir.


3
TrueCrypt tam disk şifrelemesinin sadece Windows ile çalıştığını sanıyordum.
Kevin Li

two levels of encryption for the whole drive ! = two factor auth
GnP
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.