Tag Archives: ccrypt

Büyük Birader’le Mücadele Etmek

Çocukluğumda yaptığım yaramazlıklar için en çok duyduğum öğüt, “karda yürü ama izini belli etme” idi. Her anımızın gözetlendiği, bir şekilde kaydı tutulduğu ya da bir şekilde bize ait özel dediğimiz verilerin okunduğu şu günlerde Büyük Birader’le mücadeleye nereden başlamalı, bir giriş olarak anlatmak istedim.

  • Biraz paranoya iyidir

Anonimlikte, bence, motivasyon çok önemli. Her adımınızı gözetleyen Büyük Birader’e karşı zihnen de bir mücadele vermektesiniz ve bu konuda motive, sizlere çok büyük bir destek kaynağı olacaktır. Motivasyonun yanına biraz da paranoya eklersek, bence harika olur. Paranoya’nın kısa bir tanımına bakalım:

Paranoya, bireyin herhangi bir olay karşısında olayın oluşumundan farklı olarak gelişebileceğini kendi içerisinde canlandırma yolu ile öne sürdüğü ve sınırsız sayıda çeşitlendirebileceği hayal ürünlerinin tümüdür.

Sizlere yazılarımda devamlı “tehlike modeli“‘nden bahsetmekteyim. Tehlike modeli oluşturmak (kişisel görüşüm) biraz da paranoyaya dayanıyor (ayrıca hesapları ayrıbilmekte örnek bir model var). Çünkü her olay karşısında, bu olayın gelişimi için farklı canlandırmalar oluşturuyor ve buna karşı güvenliğinizi sağlamak üzerine yeni yöntemler geliştiriyorsunuz. Elbette bunu hastalık boyutuna taşımak kişise zarar verecektir. Fakat, paranoyanın model geliştirmedeki etkisini gözardı etmemek gerekli. Anonimlikle ilgili ısrarla söylediğim şeylerden birisi de; “kimsiniz ve kimden saklanıyorsunuz, neden ve ne tür bir risk almayı hedefliyorsunuz?”. Yani, anonimlik düzeyiniz hesaplanabilir, biraz paranoyak olun, iyi bir model oluşturun ve kendinizi koruyun!

  • Kriptografiye önem vermek

Türkiye’deki üniversitelerde kriptografi ile ilgili ne kadar eğitim veriliyor ya da ne kadar insan bu konuda bilgilendiriliyor, bunun üzerine pek bilgi sahibi değilim. Kriptografi çok çok önemli bir konu ve üzerine ciddi olarak düşülmesi, ayrıca bu konuda yerel literatüre çok şey katılması gerekli olduğu düşünüyorum. Kısa bir tanım yapacak olursak:

Kriptografi, gizlilik, kimlik denetimi, bütünlük gibi bilgi güvenliği kavramlarını sağlamak için çalışan matematiksel yöntemler bütünüdür. Bu yöntemler, bir bilginin iletimi esnasında karşılaşılabilecek aktif ya da pasif ataklardan bilgiyi -dolayısıyla bilgi ile beraber bilginin göndericisi ve alıcısını da- koruma amacı güderler.

Sizin için önemli olan tüm verileri şifrelemelisiniz. Bunun daha başka bir açıklaması yok. Eğer mümkünse tüm verilerinizi şifreleyin. Bu, sizi güvende tutmanın temel ve başlıca yollarından biridir. Bu konuda ne tür araçlar kullanabilirsiniz, kısaca bir göz atacak olursak:

* E-postalarınız için GnuPG kullanabilirsiniz.
* Dosyalar için ccrypt ya da encfs kullanabilirsiniz.
* Disk için TrueCrypt ya da dm-crypt + LUKS kullanabilirsiniz.
* Anlık mesajlaşmalarda OTR eklentisini kullanabilirsiniz.
* Ağ için SSH kullanabilirsiniz.

Örnekler elbette çoğaltılabilir. Burada iş sadece şifrelemekle bitmiyor. Temel bir örnek ve tavsiye olarak, kullanacağınız şifre ya da şifreler sizinle ilgili ya da size ait herhangi bir bilgi içermemeli. Güvenli bir şifrenin yolu akılda kalması (inanın kalıyor) zor da olsa, rastgele şifrelerden geçiyor. Bu, sözlük saldırılarında ya da brute force saldırılarında sizlere ciddi bir avantaj sağlamakta. Dikkati çekmek istediğim bir diğer nokta ise kanun uygulayıcılarının yoktan delil var etme ya da herhangi bir şeyi delil olarak kullanma konusundaki tutumları. Bu nedenle, şifrelediğiniz herhangi bir şey yazılı/basılı olarak elinizde bulunmamalı. Elinizdeki basılı dökümanlarla işiniz bittiyse, yakın gitsin. Yedek alacaksanız, aldığınız bu önemli ve şifreleri verilerin yedeğini ailenize, eşinize, dostunuza ait bilgisayarlarda saklamamanız tavsiyedir.

  • Hesapları ayırabilmek

Hesapları ayırmaktan kastettiğim, anonim kimliğiniz ile gerçek kimliğinizi içeren hesapların ayrımını yapmak çok önemli. Anonim hesabınız üzerinden gerçek hesaplarınıza bir bağlantı kurulmamalı. Eğer bu bağlantı kurulursa, artık anonim de değilsinizdir. Anonimlik, tanımı gereği içinde anonim özneleri aşmaya çalışan saldırganları da içerir. Yani, eğer bir anonimlik varsa bu anonimliği ortadan kaldırabilmek için çalışanlar da olacaktır. Bu, kanun uygulayıcı olur, gizli servisler olur, başka bir anonim özne olur. Önemli olan bir saldırgan varlığını asla unutmamak.

Bir diğer nokta da anonim hesabınız üzerinden gerçekte tanıdığınız ve sizin bu kimliğinizi bilen insanlarla pek iletişime geçmemeniz (özellikle telefonla) gerekliliği. Bu konuda kararınız net olmalı ya da en azından ne kadar bilgiye sahip ya da ne zaman bilgiye sahip olacaklarını iyi kararlaştırmak gerekli. Bu, bence çeşitli riskleri de beraberinde getiriyor. Saldırgan ne kadar dar bir çevre oluşturabilirse, sizin kimliğinizi tespit etmesi de o kadar çabuk olabilir. Şimdi bunu basitçe örneklendirelim (şema eklendi):

model

Ben anonim kimliği “X“, gerçek kimliği “A” olan bir bireyim. “X” kimliğini gerçekte kim olduğunu (A’yı) bilen “W“, “Y” ve “Z” gerçek kimlikleri var. Ayrıca, “X” kimliğini aşıp “A” kimliğine ulaşmak isteyen saldırgan “S” var. Eğer, saldırgan “S“, benim “W“, “Y” veya “Z” gerçek kimlikleri ile iletişimde olduğumu bir şekilde farkederse saldırı kapsamını daha karmaşık ve kapsamlı bir halden daha spesifik ve daha dar bir hale getirir. Gerekirse, “W“, “Y” ya da “Z“‘ye doğrudan veya dolaylı olarak baskı/saldırı düzenleyerek benim gerçek kimliğime ulaşabilir. Bu saldırı, örneğin, bir man-in-the-middle saldırısı olabilir. Siz “X” anonim kimliği üzerinden “W” gerçek kimliği ile iletişime geçerken, saldırgan araya girip mesaj içerikleri ile oynayarak sizin “A” gerçek kimliğinizi elde edebilir. Bu bahsettiğim örnek, ayrıca bir tehlike modelidir. Bu yüzden ısrarla diyorum ki, bir tehlike modelinizin olması şart!

  • Kayıtlar

Özellikle /tmp, /var/log ve kullanıcı dizininde (/home/kullanıcı) kalan geçmiş ya da yedek dosyaları sizin için bir risk teşkil etmekte. Kullandığınız program, araç vs. her ne ise bunun nerede kayıt tuttuğunu bilmeniz sizin faydanıza olacaktır. Bir diğer noktada terminal üzerinde gerçekleştirdiğiniz şeylerin (kabuktan kabuğa değişmekte) de ayrı ayrı kaydı tutulmakta. Örneğin:

bash: .bash_history
zsh: .zsh_history
vim: .viminfo
.
.

Yedekler için:
*.swp
*.bak
*~
.
.

Bu sizin kullandığınız ortama göre değişim göstereceği için temel olarak sıralayabileceğim belli başlı şeyleri örnek olarak gösterdim. Sistemden çıkış yaparken bunları silerseniz ya da en azından nelerin kaydını tuttuklarını incelerseniz sizin yararınıza olur. Uygulama olarak Bleachbit, temizleme konusunda tercih edilebilir (Emre’ye teşekkürler.).

  • Karda yürü ama izini belli etme

Ceza hukukunun ciddi bir eleştirisini hukukçu olmadığım için yapamam. Fakat, kanun uygulayıcılarının hukuk dışı deliller elde ederek bireyi hapse atıp, daha sonra mahkemede tutuklu olarak yargılamaya başlaması ne vahim bir durumda olduğunun göstergesidir. Sonuca gelirsek, iyi bir motivasyon, biraz paranoya, önemli verileri şifreleyip anonim kimliğimizle gerçek kimliğimizin ayrımı tam olarak yapabilmek, kendimize uygun tehlike modelleri geliştirip bunlara karşı savunma yöntemleri hazırlamak, ve son olarak karda yürüyüp izimizi belli etmemek! Ayrıca, bu yöntemler sadece burada yazanlarla sınırlı değildir. Herkesin ayrı bir modeli olacak ve yöntemler de ona göre şekillenecektir.

Büyük Birader’i artık her zamankinden daha soğuk bir kış bekliyor.

Tagged , , , , , , , , , , , , , , , , , , , , , , , , ,

Ccrypt İle Şifreleme

Platform bağımsız ve kullanması kolay bir uygulama olarak, ccrypt, dosya şifrelemede kullanmak için gayet basit ve güvenli, ayrıca sistem kaynaklarını da bir o kadar az tüketen bir araç olarak durmakta. Bu basit rehberi en azından denemeniz ve hatta kalıcı olarak kurup kullanmanız için hazırladım.

ccrypt, dosyaları şifrelemek ve şifresini çözmek için kullanılan, Rijndael Blok Şifresi üzerine kurulu açık kaynak, özgür yazılım bir uygulamadır. ccrypt’in sahip olduğu algoritma simetrik değildir. Bununla birlikte, ccencrypt ile dosya şifrelerken ccdecrypt ile şifre çözemektedir (ccrypt -e ya da ccrypt -d ile de yapabilirsiniz). Ayrıca ccat ile şifresiniz çözdüğünüz dosyayı sadece terminal ekranına yazdırabilir ve bilgisayarınızda geçici dosyalar bırakma riskinizi düşürebilirsiniz.

  • ccrypt güvenliği

ccrypt 256-bitlik bir şifrelemeye sahiptir. AES’in de seçtiği Rijndael Blok Şifresi‘ni kullanmaktadır. ccrypt’in AES ile farkı ise, AES 128-bit blok boyutu kullanırken kullanırken, ccrypt, Rijndael’in izin verdiği 256-bit blok boyutu kullanmaktadır. Bu onu elbette AES’ten daha az güvenli yapmamaktadır. Sadece AES standartına sahip değildir. Ayrıca, bu şifreleme eğer kırılırsa duyulması da o kadar çabuk olacaktır.

ccrypt ile bir dosyayı şifrelerseniz eğer, ccrypt o dosyanın üzerine yazacak, yeni bir dosya oluşturmayacaktır. Bununla birlikte, artık harddiskinizde orjinal dosya olmayacaktır. Fakat, siz bu dosyayı silseniz dahi donanım ataklarında harddiskiniz/ram’iniz/takasınız bu dosyanın izini taşıyabilir. Eğer bu izleri silmek isterseniz, bunun için çeşitli araçlar mevcut. Bunlardan bir tanesi GNU/Linux için wipe.

Eğer, şifreleme esnasında “–tmpfiles” parametresi kullanırsanız, orjinal dosyanın üzerine yazmak yerine geçici bir dosya oluştabilir, ardından da wipe ile silebilirsiniz.

kame ~ % ccencrypt --tmpfiles sifrelenecekdosya && ls

sifrelenecekdosya
sifrelenecekdosya.cpt

  • Dosya ve dizin şifreleme, şifre çözme

ccrypt ile herhangi bir dosyayı sorunsuz bir şekilde şifreleyebilirsiniz. Fakat, sizinleri şifrleyemezsiniz. Dizin için farklı bir yol izleyeceğiz.

Dosya şifreleme;
kame ~ % ccencrypt sifrelenecekdosya
Enter encryption key:
Enter encryption key: (repeat)

Gördüğünüz üzere ccencrypt (ya da ccrypt -e sifrelenecekdosya) ile dosyamızı anahtarımız ile şifrelemiş olduk. Anahtarı ise unutmamanız çok önemli. Tamamen unutursanız eğer şifrelenen dosyayı kurtarmanız mümkün olmayacaktır.

Dizin şifreleme;
kame ~ % tar -zcvf sifrelenecekdizin.tar.gz dizin/
kame ~ % ccencrypt sifrelenecekdizin.tar.gz

İlk komutumuz dizin adındaki dizinimizi (balık adındaki balık, komik değil biliyorum.) tar.gz formatında sıkıştırmak olacaktır. Ardından arşiv dosyamızı ccrypt ile sorunsuz bir şekilde şifreleyebilirsiniz.

Şifre çözme;
kame ~ % ccdecrypt sifrelenmisdosya.cpt
Enter decryption key:

ccrypt’in şifrelediği dosyaların uzantısı “.cpt” olarak değiştirmektedir. Eğer şifreyi çözmek isterseniz kullandığınız ccdecrypt ile (ya da ccrypt -d sifrelenmisdoya.cpt) anahtarınızı girerek dosyanızın şifresini çözebilirsiniz.

  • Anahtarımı unuttum, ne yapmalıyım?

Eğer anahtarınızı unutmuşsanız, şifrelediğiniz dosyaya erişmeniz mümkün olmayacaktır. Fakat, ccguess ile şifrenizi yanlış yazmış olabileceğinizi düşünerek ne olabileceğine dair bir kalıp deneyebilirsiniz.

Diyelim ki, şifrenizi “abcdefg” yaptınız (ben yaptım siz yapmayın), ve aklınızda sadece a, b, c, d ile e’yi içerdiği kalmış;

kame ~ % ccguess sifrelidosya.cpt
Enter approximate key: abcde


Generating patterns...1..2..3..4..5..sorting...done.

Possible match: abcdefg (2 changes, found after trying 1890639 keys)

Burada şu unutulmamalı; anahtarınız ne kadar çok karakter içerirse doğru tahmin için o kadar çok karakteri doğru hatırlamak zorundasınız, yoksa çabalarınız boşuna olacaktır.

  • Şifreleme esnasında sistem çöktü, peki şimdi ne olacak?

Örneğin, elinizde 100mb bir dosya var ve tam bunu şifrelerken ya da şifreyi çözerken sisteminiz kitlendi, elektrikler gitti vs. Ayrıca, bu dosyanın yedeğini şifrelemeden önce almadınız ve tek kopya şifrelemeye çalıştığınız dosya. Öncelikle yapmanız gereken şifrelenen dosyayın şifresini “-m” parametresi ile çözmek olacaktır.

kame ~ % ccdecrypt -m bozukdosya.cpt

Bu yöntemle dosyanın çözülen şifrelenmiş kısmı ile bozuk kısmından oluşan 2 ayrı dosya oluşturacak. Orjinal dosyayı bu iki kısmı birleştirerek tekrar oluşturabilirsiniz, fakat şifreleme ve çözümün birleştiği noktadaki 32-63 byte’lık bölümü malesef kaybedeceksiniz.

  • Anahtar oluştururken neleri kullanmamalı?

Yazdırılabilir ASCII karakterlerin hepsini kullanabilirsiniz. Sadece ‘\n’, ‘\r’ ve ”’ı kullanamazsınız. Bunların dışında, işletim sisteminiz eğer bazı özel karakterleri yazdıramıyorsa, doğal olarak onları da anahtar oluştururken kullanamayacaksınız.

  • Windows’ta şifreledim, GNU/Linux veya Mac Os’ta açabilir miyim?

Evet! ccrypt, platform bağımsız bir uygulamadır.

  • Şifrelenecek dosyanın boyutu önemli mi?

Hayır! İstediğiniz büyüklükte bir dosyayı ccrypt ile şifreleyebilirsiniz. Önemli olan sisteminizin bunu kaldırabilmesi.

Tagged , , , , , , , , , , , , , , , , , ,