GİRİŞ

Linux yüklü bir dizüstü bilgisayarım var ve onun kaybolması ya da çalınması durumunda birinin kişisel bigilerimi okumasından endişelenmek istemiyorum. Oturum açma parolam birinin ön yükleme yapmasını engelleyebilir ancak bu saldırganın diski söküp verileri okumasını engellemez. Daha kuvvetli bir korumaya ihtiyacım var.

Şanslıyız ki; şifreleme oldukça basittir. Böylece disk kötü ellere geçse bile, diskin verileri okunabilir değildir. Şifreleme sadece dizüstü bilgisayarlar gibi taşınabilir bilgisayarlar için yararlı değildir-kişisel bilgi içeren her bilgisayarı korumak için kullanılabilir. Evde dosya dolabını hangi amaç ile kilitliyorsam, bilgisayarımın dosyalarınıda şifreleme ile bu sebeple koruyorum. Daha fazla motivasyon için, Michael Crawford'un Niçin Şifreleme Kullanmalısınız yazısını okumak size ilginç gelebilir.

Sadece belirli dosyaları şifrelemeliydim, örneğin ev dizinimdeki dosyaları. Bu dosyalarımı koruyacaktı, fakat bu sefer disk üzerindeki şifrelenmemiş yerlerin açığa çıkmasından dolayı endişelenecektim. Bunun yerine bütün diski şifrelerim ve böylece bu sorunla uğraşmak zorunda kalmam.

Seçilebilecek birçok algoritma vardır. Ben AES'i seçtim, çünkü Birleşik Devletler'in Ulusal Standartlar ve Teknoloji Enstitüsü tarafından onaylıdır ve Kriptografi Topluluğu tarafından itibar görmektedir. Sözlük saldırılarına dayanıklı olmasını istediğim için uzun ve rastgele üretilmiş anahtar kullanırım. Böyle bir anahtarı ezberleme imkanım yoktur, bu sebepten dolayı anahtarı beraberimde kolayca taşıyabileceğim bir biçimde tutarım: USB flash sürücüde anahtar zincirimde. Anahtarı bir parola ile korurum böylece verilerim iki yolla korunmuş olurlar: a) Elimde ne var ise (USB flash sürücü) ve b) Ne biliyorsam (parolam). Hatta arkadaşıma parolamı vermeden bilgisayarımı kullandırabilirim-arkadaşım kendi USB flash sürücüsünü ve parolasını kullanır.

İşletim sistemi şifrelenmiş verileri her zaman disk üzerinde tutar ve sadece kullanıldıklarında belleğe deşifre eder. Bu yolla bilgisayar aniden elektrik kesintisine uğrasada veriler güvenli kalırlar. Deşifre anahtarı belleğe ön yükleme esnasında yüklenir ve bilgisayar açık kaldığı sürece bellekte kalır, böylece bilgisayarı başlattıktan sonra USB flash sürücünün sürekli takılı olmasına gerek kalmaz.

Bu NASIL belgesinde anlatılan yordam Linux 2.4 çekirdeği için yazılmıştır. Yerleşik şifreleme desteği ile gelen ve geridönüş aygıtlarının bölümlerinin yönetilmesi konusunda daha iyi olan Linux 2.6 çekirdeği ile bu yordam daha az karmaşık olacaktır.

Bu belge okuyucunun Linux hakkında orta seviyede tecrübesi olduğunu farzetmektedir.(Çekirdeğin yamanması ve derlenmesi , bölümleme, bağlama ve devreden çıkarma) konularında yeterli bilgiye sahip olmalısınız.

Teknik Özet

Şifreleme özel bir geridönüş aygıtı ile gerçekleştirilir. Geridönüş aygıtının kendisi herhangi bir veri depolamaz; bunun yerine bütün veri deposunu ve geridönüş isteklerini alır ve bunları disk ya da dosya gibi gerçek depolama aygıtına taşır. Verinin geçişi esnasında veri filtrelenir ve bizim durumumuzda kullanılan filtre şifrelemedir.

Sistem çalıştırıldığında, çıkarılabilir ortam (USB flash sürücü) GRUB, çekirdek ve initrd'yi kullanarak önyüklemeyi gerçekleştirir. GRUB menüsünden hem anahtar hem de çekirdek seçimi yapılır ve böylece bir tek çıkarılabilir ortamın bütün bilgisayarlar ile birlikte kullanılabilmesi sağlanır. initrd sadece parolayı sorabilecek ve şifreleme geridönüş aygıtını düzenleyip sisteme bağlamayı sağlayacak araçları içerir. Sisteme bağlama işleminden sonra, pivot_root önyükleme işlemini şifreleme aygıtından devralarak devam ettirir. Şifreleme geridönüş aygıtının takas ve kök dizin dosya sistemlerine ulaşmak için bölümler yerine geridönüş aygıtı göreli konumları kullanılırlar, çünkü 2.4 çekirdeği geridönüş aygıtı içinde bölümlere erişim hakkı sağlamaz. Göreli konumlar yöntemi çoklu bölümleri desteklemez, (ne yazık ki) çünkü losetup'ın tanıyabildiği azami göreli konum 2GB dır.

Telif Hakkı ve Lisans

Bu belgeyi, Free Software Foundation tarafından yayınlanmış bulunan GNU Özgür Belgeleme Lisansının 1.2 ya da daha sonraki sürümünün koşullarına bağlı kalarak kopyalayabilir, dağıtabilir ve/veya değiştirebilirsiniz. Lisans'ın bir kopyasını http://www.gnu.org/copyleft/gfdl.html adresinde bulabilirsiniz.

Linux®, Linus Torvalds adına kayıtlı bir ticarî isimdir.

Feragatname

Bu belgedeki bilgilerin kullanımından doğacak sorumluluklar, ve olası zararlardan belge yazarı sorumlu tutulamaz. Bu belgedeki bilgileri uygulama sorumluluğu uygulayana aittir.

Tüm telif hakları aksi özellikle belirtilmediği sürece sahibine aittir. Belge içinde geçen herhangi bir terim bir ticarî isim ya da kuruma itibar kazandırma olarak algılanmamalıdır. Bir ürün ya da markanın kullanılmış olması ona onay verildiği anlamında görülmemelidir.

Direktifleri okumaktan nefret ettiğinizi ve biliyorum, fakat herhangi birşeye dokunmadan önce bütün belgeyi okumanızı tavsiye ederim. Bütün NASILların bunu söylediğini biliyorum, fakat ben gerçekten bu belgeyi kastediyorum. Okumaya değer; bana güvenin. Yordamları gerçek sistemde uygulamadan önce bir deneme sisteminde denemeniz iyi olacaktır.

Teşekkürler

Linus Torvalds'a, Jari Ruusu'a, ve varlığı sayesinde bu NASIL belgesini var kılan Linux'a katkıda bulunan herkese teşekkürlerimi sunarım.

Ulusal Standartlar ve Teknoloji Enstitüsü'ne böyle sağlam ve açık şifreleme algoritması seçtiği için teşekkürlerimi sunarım.

Mark Garboden'a ve linux-crypto e-posta listesindekilere ve yazdıklarımı gözden geçiren ve tavsiyelerde bulunan Linux Belgelendirme Projesi e-posta listesindekilere teşekkürlerimi sunarım.

Dikkatli okuyucular olan Ladislao Bastetti ve Norris Pouhovitch'e sıradışı donanım yapılandımaları için uğraştıkları için, NASIL belgesinde hatalar buldukları ve güzel fikirler önerdikleri için teşekkürlerimi sunarım.

Geribildirim

Bu belge için geribildirimlerinizi gönderebilirsiniz. Lütfen eklemelerinizi, yorumlarınızı ve kritiklerinizi yazara gönderiniz.

Yaklaşımlar

Diski şifrelemek için üç farklı yaklaşım vardır: bütün hepsini, sadece bir bölümü, ya da sadece bir dosyayı şifreleme. Ben en iyi güvenlik için birinci yaklaşımı özellikle tavsiye ederim. İlk iki yaklaşım önyüklemenin USB flash sürücü ya da kartvizit ebatındaki CD-ROM gibi çıkarılabilir ortamdan yapıldığını farzeder. Bunu yapmak istemiyorsanız, yöntemi küçük, şifresiz önyükleme bölümü oluşturarak diskten önyükleme yapacak şekilde değiştirebilirsiniz. Bilgisayarınızın önyüklemeyi USB flash sürücüden yapmasını istiyorsanız, öncelikle anakartınızın bunu desteklediğinden emin olun. Bu belgenin hazırlandığı esnada birçok anakart bunu desteklemiyordu.

Heryerde bu üç yaklaşımı teker teker sıralamamak için neyi koruyorsanız bu şifrelenen veri olarak anılacaktır. Anahtarı depolamak için kullanılan çıkarılabilir ortamı ise anahtar zinciri diye adlandıracağım. Bunu anahtar yerine anahtar zinciri şeklinde kullanacağım, çünkü aynı ortamda herbiri farklı bilgisayar için kullanılan birden fazla anahtar depolayabiliriz.

Uyarı

Bütün disk ve bölümleme yaklaşımlarında, bir adet takas alanı ve bir adet kök dizin dosya sistemi oluştururuz. Bazı kimseler kök dizin dosya sistemi için birden fazla şifreli bölüm isterler. Ne yazık ki, burada açıklanan yöntem şifrelenen veri içerisinde alt bölümler oluşturmak için losetup'ın göreli konum değiştirgesine dayanır. Göreli konum değiştirgesi son bölüm hariç azami 2GB ile sınırlıdır. Bu 2GB ile sınırlı olan i386 mimarisi üzerinde takas alanı için gayet güzel çalışmaktadır, fakat harici kullanımlar için pratik olmayacağını tahmin ediyorum. 2GB dan ufak birden fazla bölümler oluşturma işlemini alıştırma için kullanıcıya bırakıyorum. Eğer 2GB dan daha büyük birden fazla bölüm sizin için önemli ise, size göreli konum değişkenini ortadan kaldıran Linux 2.6'yı beklemenizi öneririm.

Bütün Diskin Şifrelenmesi

Veriniz etrafta dolaşmayı sevdiğinden veriyi şifreleyerek gizli tutmak bir sorudur. Şifrelemeyi verinizin etrafındaki çit gibi düşünebilirsiniz. Veri, çitin iç tarafında güvenlidir. Fakat veri en fazla yarar sağlamak için ağda iletilmeyi, CD-ROM gibi çıkarılabilir disklere kopyalanmayı ve arkadaşlar arasında paylaşılmayı sever. Ne zaman veriniz çiti terk ederse korumasız kalır. Verimizin gezindiği her yeri çevreleyecek şekilde bir şifreleme çiti koyamayız fakat çitinde olabildiğince geniş olmasını istemeyiz. Şifreleme çitini bütün diskin etrafına koyduğunuzda, veriniz diskin başka bölümüne geçse dahi veriniz korumasız kaldı diye endişelenmenize gerek yoktur.

Disk Bölümlerinin Şifrelenmesi (çoklu önyüklemeli sistemler için)

Eğer sistemdeki tek işletim sistemi Linux ise bütün diski şifrelemek uygundur, fakat bilgisayarlarında Linux, NetBSD, ve Darwin gibi birden fazla işletim sistemlerini kullananlar için bu mümkün değildir. Bu durumda sadece Linux bölümünü şifreleriz ve diğer bölümlere dokunmayız. Önyüklemeyi çıkarılabilir ortamdan yaptığımız için, Linux bölümünü çoklu önyüklemeli menü'ye eklemeye gerek yoktur. Bunun bütün diski şifrelemeye göre niye daha az güvenli olduğunu anlamak için Tablo 5.1'i okuyunuz.

Sadece Dosyaların Şifrelenmesi (ev dizinleri için)

Bir dosya sistemindeki sadece bir dosyayı şifrelemek isteyebilirsiniz. Onu bir kere şifreledikten sonra, onun içine başka dosya sistemleri de dahil olmak üzere istediğinizi koyabilirsiniz. Örneğin bu yaklaşımı sadece ev dizininizi şifrelemekte kullanabilirsiniz. Bu bahsi geçen üç yaklaşımdan en az güvenli olanıdır ve tavsiye edilmez. Bu yaklaşımı seçerseniz, aşağıda bazı bölümleri atlamak için yönergeler göreceksiniz. Çünkü işletim sisteminizin önyüklemeyi tamamladığını ve takaslama konularını hallettiğinizi farzediyorum, dolayısı ile bu bölümler sizi ilgilendirmiyor. Bu NASIL belgesi sizin gereksinimizin çok üzerinde olabilir. Bunun yerine loop-AES ile birlikte gelen README dosyasını okuyabilirsiniz. Bu yolu izleyecesiniz, burada bitirmeden önce Saldırı Modeli bölümünü okuyun.

Saldırı Modeli

Şifrelenecek verimizi iyi korumak için, öncelikle neyi neye karşı koruduğumuzu anlamak zorundayız. Genel düşünce sizin çalınmaya ve kaybolmaya açık bir dizüstü bilgisayarınız var ve bir de bu tehlikelere karşı anahtar deponuzu içeren güvenli USB flash sürücünüz var, sonuç olarak sistem dizüstü bilgisayarınızın çalınması durumuna göre tasarlnacaktır. Anahtar deponuzun cebinizde olduğu için kolay kolay çalınmayacağını farz ediyorum, çünkü saldırgan cebinizde önemli birşey olduğundan habersiz olacaktır. Eğer USB flash sürücüyü cebinizden çıkardığınızda teknik bilgisi olmayan biri onun ne olduğunu sorarsa ona bunun bir Pez dispenser olduğunu söyleyin.

Not

Bu sistem, kişisel verinizin şifrelenebilirliği gerçeğini saklamanın hiçbir yolu olmaması anlamını taşıyan makul reddedebilme konusunda yetersiz kalır. Bu mücevherlerinizi bir kasaya kilitleyip, kasayı oturma odasında herkesin görebileceği bir yere koymanız gibidir. Kasayı sadece siz açabilirsiniz, fakat silahlı birisi sizden kasayı onun adına açmanızı isteyebilir. Eğer bilgisayarınıza el konulacağından endişeleniyorsanız ve dizüstü bilgisayarınızı, anahtar deponuzu ve paralonazı vermeniz söylendi ise, StegFS gibi farklı çözümlere başvurmanızı tavsiye ederim.

Reddedebilme sorununa Norris Pouhovitch tarafından aşağıdaki çözüm önerilmiştir. Diskin başlangıcındaki küçük bir bölüme Windows kurup diskin geri kalanını şifrelemek mümkündür. Bilgisayar anahtar zinciri olmadan başlatılırsa normal olarak Windows açılır. Anahtar zinciriyle başlatıldığında ise Windows bölümü atlanır ve diskin geri kalanı deşifrelenerek Linux açılır.

Bu planın avantajı eğer dizüstü bilgisayar çalınır ve başlatılırsa dikkatsiz saldırganlara görmeyi bekledikleri şeyi (bir Windows bilgisayarı) göstermesidir. Diğer yandan ciddi bir saldırgan sıradışı küçük disk bölümünü farkedecek ve meraklanacaktır. Bu NASIL belgesinin ilerideki sürümlerinde bu fikri ayrıntılarıyla anlatacağım.

Tablo 5.1. Saldırı Ağacı

SaldırıTepkiNotlar
saldırgan dizüstü bilgisayarı çalarçalışır vaziyette ikenÜSNŞifrelenecek veri bilgisayar çalışırken korumasızdır çünkü şifreleme anahtarı bellektedir. Riski, işlem yapmama durumunda oturum kapama ile azaltabilirsiniz ( İşlevsizlik Halinde Oturumu Kapama), fakat bilgisayarınızın çalınmak üzere olduğunu düşünüyorsanız, derhal bilgisayarı kapatın ve hemen Aikido NASIL'ı okuyun.
kapalı vaziyette ikensaldırgan anahtar deposunu çalmadı iseyeni anahtar 
saldırgan anahtar zincirini çaldı isesaldırgan parolanızı biliyor iseÜSN 
saldırgan parolanızı bilmiyor iseyeni anahtar 
saldırgan anahtar zincirini ele geçirmiş fakat dizüstü bilgisayara sahip değil isesaldırgan parolayı biliyor iseyeni anahtarŞifrelenen veriniz risk altındadır, çünkü saldırgan verinizin şifresini çözebilir.
saldırgan parolayı bilmiyor isekendinizi tembel hissediyorsunuz ya da anahtar deponuzun çalınmadığına ama kaybolduğuna ikna olmuşsunuzyeni parolaŞifrelenen verinin parolasını değiştirme gereği duymuyorsunuz çünkü saldırgan parola olmadan şifreli verinin şifresini çözemez.
kendinizi paranoyak hissediyorsunuzyeni anahtar 
saldırgan ağ üzerinden bilgi göndermeniz konusunda sizi ikna eder iseÜSN 
saldırgan çıkarılabilir ortamdan veri kopyalama konusunda sizi ikna eder iseÜSN 
sadece bir bölümü şifrelemiş iseniz ve işlem veriyi farklı bir bölüme yazar iseÜSN 
sadece bir dosyayı şifrelemiş iseniz ve işlem veriyi bellekten şifresiz takas alanına ya da /tmp altındaki bir dosyaya ya da şifresiz disk üzerinde bir yere yazar iseÜSN 
saldırgan tehlike arzedecek şekilde senden dizüstü bilgisayarı, anahtar zincirini ve parolayı teslim etmeni ister iseÜSNSistemde makul reddedebilme mümkün değildir.

yeni parola
anahtar zincirinin yedekleme ünitesini tekrar yükle ve yeni bir parola seç.

yeni anahtar
Şifrelenen veriyi tekrar şifrelemek için yeni rastgele anahtar üret, yeni bir parola seç ve şifrelenen verinin yedek ünitesini tekrar yükle.

ÜSN
Üzgünüm! Son Nokta

Yetersizlikler

  • Bu yöntem Linux için Yazılım Askıya Alma ile henüz çalışmamaktadır.

  • Diski şifreleme şüphesiz sistemi yavaşlatacaktır. Ne kadar yavaşlatacağı konusunda fikrim yok. Eğer karşılaştırmalı değerlendirme yaparsanız, lütfen bana gönderiniz.

  • makul reddebilmeyi destekleyen hiçbir şey bu yöntemde yoktur ( Saldırı Modeli'e göz atınız).

  • Bu yöntem ağ ve çıkarılabilir diskler yolu ile bilgi sızdırılmasını engellemeyecektir.

  • Şifreleme yedeklemeleri bu NASIL belgesinin içeriğine dahil değildir.

Gereksinimler

  • Kolayca erişim sağlanabilen çıkarılabilir ortam okuyuculu (USB kapı ya da CD-ROM sürücü gibi) bir bilgisayar

  • çıkarılabilir ortamdan önyüklemeyi destekleyen anakart (USB'yi dikkatlice kontrol edin, bütün hepsi desteklemiyor)

  • anahtar zinciri olarak kullanılabilen çıkarılabilir ortam (örneğin USB flash sürücü)

  • Linux 2.4

  • loop-AES

USB Flash Sürücüsü Hakkında

Piyasada birçok seçenek bulunmaktadır. Ben kendiminkini aldığımda, aşağıdaki özelliklere sahip olandan satın aldım:

  • Fiziksel olarak ufak (beraberimde taşıyorum)

  • Azami hızda USB 2.0'ı destekler

  • Yazma koruması anahtarına sahip, böylece şifreleme anahtarıma yanlışlıkla zarar vermiyorum.

Bir parmakizi okuyucu almanız konusunda kandırılmış olabilirsiniz. Almamanızı kesinlikle tavsiye ederim. Başlangıçta iyi bir fikir gibi gözükür, fakat işin içine biyometri girince, güvenliğiniz şunlara genişler:

  • Sahip olduğunuz birşey (USB flash sürücü)

  • Bildiğiniz birşey (parola)

  • olduğunuz birşey (parmak iziniz ya da herneyse)

Fakat birşeyin yanlış gittiğini düşünün. Eğer şimdi kendinize 'Ne yanlış gitmiş olabilir?' diye sorarsanız, o zaman niçin bu NASIL belgesini okuyorsunuz? Eğer birşey yanlış giderse, bir değişiklik yaparsınız (Corrective Reactions bölümüne göz atın):

  • Farklı bir USB flash sürücü kullanınır ve anahtarınızı değiştirirsiniz.

  • Eski parolayı değiştirir ve yeni bir parola kullanırsınız.

  • Kendinizi değiştiremezsiniz.

Burada durun ve son satırı bir müddet düşünün.

Geleceğe Bakış

Bu belgeyi 2.4 çekirdek kullandığım dönemde yazdım. Linux 2.6 sizi losetup'ın göreli konumlarıyla oynamaktan kurtaran Device-mapper ile gelir. Linux 2.6 aynı zamanda Device-mapper için oldukça şık bir şifreleme katmanı olan dm-crypt'i de ortaya çıkarmıştır. Maalesef güvenli değildir! Umarım birgün hataları düzeltilir ama bugünlerde bile loop-AES ile birlikte en iyi yöntemdir.

Bu NASIL belgesinin gelecekteki sürümlerinde Device-mapper'ın Linux 2.6 ile birlikte nasıl kullanıldığını açıklayacağım.