Merge pull request 'master' (#65) from AA/guvenlik:master into master

Reviewed-on: oyd/guvenlik#65
Reviewed-by: murat emir cabaroğlu <mrtmrcbr@gizli.eposta>
master
murat emir cabaroğlu 4 years ago
commit d835515cd6
  1. 2
      src/SUMMARY.md
  2. 42
      src/cihaz_guvenligi/boot_guvenligi.md
  3. 139
      src/cihaz_guvenligi/sifreli_boot.md
  4. 52
      src/yazisma_guvenligi/README.md
  5. 2
      src/yazisma_guvenligi/gpg/paperbackup.md
  6. 44
      src/yazisma_guvenligi/openpgp.md
  7. 2
      src/yazisma_guvenligi/signal.md

@ -10,7 +10,9 @@
- [Yazılım Güvenliği](cihaz_guvenligi/yazilim_guvenligi.md)
- [Cihaz Şifreleme](cihaz_guvenligi/cihaz_sifreleme.md)
- [Mobil Cihazlar](cihaz_guvenligi/mobil_cihazlar.md)
- [Boot Güvenliği](boot_guvenligi.md)
- [Libreboot ve GnuPG ile boot güvenliği](cihaz_guvenligi/libreboot_grub.md)
- [Şifreli Boot Sektörü](sifreli_boot.md)
- [Yazışma Güvenliği](yazisma_guvenligi/README.md)
- [Şifreli E-Posta](yazisma_guvenligi/openpgp.md)
- [GnuPG Anahtar Üretimi](yazisma_guvenligi/gpg/gpg-anahtar-uretimi.md)

@ -0,0 +1,42 @@
# Boot Güvenliği
Bilgisayarınız düğmesine basmanızdan işletim sisteminin sizi kullanılabilir şekilde karşılayacağı ana kadar sırası ile pek çok yazılım çalıştırarak açılır. Bu süreç bilgisayarınızın donanımların yüklenmesinden işletim sisteminizin açılış ayarlarına kadar pek çok süreci yöneten farklı yazılımlarca yönetilir. sürecin başından sonuna kadar istediğiniz gibi güvenli gitmesi fiziki ve yazılımsal kimi güvence ve varsayımlara bağlıdır.
## Boot güvenliğini neden önemsemelisiniz?
Cihazınızın boot sürecini ele geçirmiş bir saldırgan işletim sistemi seviyesinde farkına bile varılamayacak saldırılar gerçekleştirebilir. Özellikle tedbir alınmamış bilgisayarlarda bahsedilen saldırıların gerçekleştirilmesi ciddi bilgi birikimi de gerektirmemektedir. Bu tip saldırıları önlemek için çeşitli tedbirler alabilirsiniz.
Bilgisayarınızında ilk çalışan yazılım anakartınızda küçük bir ROM çipinde bulunan boot yazılımıdır. [BIOS](https://en.wikipedia.org/wiki/BIOS) Türkiye'de bilgisayar tarihinden bilinen bir yazılımdır. BIOS'un yerini çağdaş bilgisayarlda artık [UEFI-Unified Extensible Firmware Interface](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface) almıştır. UEFI Microsoft'un da içinde bulunduğu bir konsorsiyum tarafından düzenlenmekle neredeyse satılan ana akım tüm bilgisayarların boot yazılımıdır.
## Boot nasıl gerçekleşir?
Bilgisayarınızı açtığınız andan itibaren, sisteminizde yüklü olan çeşitli yazılımlar, çalışarak işletim sisteminiz yükleninceye kadar sırası ile çalışarak birbirlerini yüklerler. Bu zincirleme işlem işletim sisteminiz ile bilgisayarın donanımları arasındaki uyumu sağlar.
Bilgisayarınızda ilk çalışan yazılım, cihazın anakartında özel bir çip üzerinde çalışan UEFI veya BIOS yazılımıdır. Bu yazılım sistemdeki cihazları kullanılabilir hale getirmek, cihazınızda boot imkanı tanıyan bir cihaz bulup bunun çalışmasını sağlamak ile görevlidir. Modern bilgisayarlda en sık görülecek yazılım [UEFI (Unified Extensible Firmware Interface)](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface) idir.
UEFI aynı zamanda [Secureboot](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#Secure_boot_2) adında bir güvenlik sistemi de içermektedir. Secureboot günümüzdeki uygulaması ile bir [DRM](https://oyd.org.tr/yazilar/drm/) yani kullanıcıların özgürlüklerini sınırlayan bir sistemdir. Secureboot, Microsoft'a ait bir anahtar içerir ve bu anahtar ile imzalanmamış hiç bir kodun çalışmasına izin vermez. Bu sebeple pek çok GNU/Linux dağıtımı modern cihazlarda çalışabilmek için ya Secureboot'un kapatılmasını ya da Microsoft tarafından imzalanmış shim adında bir yazılımın sisteme dahil edilmesini gerektirmektedir. Secureboot'a kullanıcılar kendi anahtarlarını ekleyip kendi imzaladıkları kodların çalışmasını sağlayabilseler de bu çok zorlu bir süreç olmakla birlikte UEFI ve Secureboot'un özgür olmayan yazılımlar olduğu gerçeğini değiştirmemektedir.
Özgür [Libreboot](https://libreboot.org) desteklendiği cihazlarda bios yazılımının tamamen yerine geçerek olabilecek en özgür bilgisayar sistemine imkan sağlamaktadır. Libreboot doğrudan GRUB kullandığından, GRUB tarafından desteklenen şifreleme ve imzalama imkanlarını doğal olarak desteklemektedir. Bu sayede hem güvenli hemde özgür bir sistem oluşturmak mümkündür.
Sisteminizdeki UEFI veya Libreboot bir önyükleyici çalıştıracaktır. GNU/Linux dağıtımlar için bu GRUB'dır. GRUB sürücünüzdeki /boot sektöründe Linux çekirdeği ile birlikte bulunur ve çekirdeğin yüklenmesinden sorumludur. Çekirdek sisteminizde donanımlarla işletim sisteminizin arasındaki iletişimden sorumlu olmakla güvenliğiniz için önemli bir konumdadır.
Çekirdeğin yüklenmesinin ardından işletim sisteminiz yüklenir ve bilgisayarınız sizin tarafınızdan kullanılabilir hale gelir.
## Boot zincirindeki güvenlik tehlikeleri
* Şayet secureboot'un açık olmadığı standart bir kurulumunuz var ise bir saldırganın çekirdeğinizi kötücül bir versiyon ile değiştirip parolalarınızı ele geçirmesi veya daha ileri saldırılar gerçekleştirmesi mümkündür.
* Bilgisayarınıza fiziki erişimi olan biri /boot sektörünüzdeki çekirdek ve GRUB yapılandırmanızı herhangi bir özel tekniğe ihtiyaç duymadan kolaylıkla değiştirebilir ve güvenliğinize zarar verebilir.
* Secureboot nihayetinde Microsoft gibi tarihi kullanıcı dostu olmayan olaylarla dolu olan bir şirkete ve 99 ABD doları karşılığında imzaladığı kodların güvenliğine dayanmaktadır. Bu bakımdan bir saldırganın özel bir tedbir almadıysanız. parasını verip secureboot'un güvenliğini geçmesi mümkündür.
* Özgürlük her zaman güvenlik ile eş anlamlı değildir. UEFI ve secureboot kullanmıyor ve libreboot yüklü bir cihaz kullanıyor olsanız da güvenliğiniz için gerekli adımları atmadığınız sürece benzer riskleri siz de taşıyor olacaksınız.
## Boot güvenliğine giriş yapın
[Libreboot ve GPG ile Boot Güvenliği](libreboot_grub.md)
[UEFI ile /boot Sektörü Şifreleme](sifreli_boot.md)

@ -0,0 +1,139 @@
# /boot sektörünü şifrelemek
Boot sektöründe bulunan çekirdek ve grub yapılandırma dosyalarınından doğabilecek tehlikeleri /boot sektörünü şifreleyerek yüksek oranda bertaraf edebilirsiniz.
GNU/Linux dağıtımlarının kurulum aşamasında sunduğu tam disk şifreleme /boot sektörünü **şifrelemez**. Bu tercihin pratik sebepleri bulunmakla birlikte bir gün tercihen bu yapılandırmanın seçilebilmesi dağıtımlar yönünden gereklidir.
## Boot sektörünü şifrelemek ne sağlar?
* Boot sektörünün şifrelenmesi bilgisayarınıza kapalı iken erişen fiziken erişen bir kişinin kötücül bir çekirdek veya grub yapılandırmasını sürücünüze yazarak bilgisayarınızın güvenliğini elinizden almasına yüksek oranda engel olur.
## Boot sektörünün şifrelenmesi
**UYARI: Bu rehberde yapacağınız işlemler işletim sisteminizin çalışmamasına sebebiyet verebilir. Yedek almadan bu rehberde anlatılanları uygulamamanız hararetle önerilir**
Bu rehber anlatımında [Cryptsetup-team](https://cryptsetup-team.pages.debian.net/cryptsetup/encrypted-boot.html) rehberini esas almış ve kimi noktalarda değişiklikler vardır. Test Fedora 31 dağıtımı ile UEFI kullanan Dell XPS 13 cihaz üzerinde yapmıştır.
Öncelikle bilgisayarınızın kurulum aşamasında LUKS şifreleme ile kurulduğu varsayımı ile aşağıdaki komut ile sürücünüzün düzenine bakın.
```
root@debian:~# lsblk -o NAME,FSTYPE,MOUNTPOINT /dev/sda
NAME FSTYPE MOUNTPOINT
sda
├─sda1 ext2 /boot
├─sda2
└─sda5 crypto_LUKS
└─sda5_crypt LVM2_member
├─debian--vg-root ext4 /
└─debian--vg-swap_1 swap [SWAP]
```
Yukarıda bulunan /boot olarak işaretli olan "sda1" kurulumumuzun konusu olan donanımı ifade etmektedir. Bu değer sizin cihazınızda farklı olabilir. **Doğru cihazı seçtiğinizden emin olun.** Bu rehberde hep sda1 olarak kullanılacaktır.
Boot sektörünü şifrelemek için ilgili sektör silip tekrar yapılandırılacağı için öncelikle /boot altında olan dosyaların bir kopyasının alınması gerekmektedir. Sisteminizde bu rehber dahilinde yapacağınız pek çok işlem root yetkisi gerektrmektedir. Başlamak için;
/boot dizinini salt-okunur olarak mount edin.
`mount -oremount,ro /boot`
/boot dizinin yazılacağı boş bir tar dosyası oluşturun.
`install -m0600 /dev/null /tmp/boot.tar`
/boot dizinini oluşturduğunuz tar dosyasına kaydedin.
`tar -C /boot --acls --xattrs --one-file-system -cf /tmp/boot.tar .`
/boot dizinini unmount edin.
`umount /boot`
Eğer /boot/efi gibi alt noktalar var ise cihazınızda onları da unmount edin.
`umount /boot/efi`
Şayet `umount` komutu inat ederse `-l` parametresi ile çalıştırın.
/boot sektörünün olacağı cihazı LUKS1 ile şifreleyin.
**Şayet cihazınızın /root sektörü de şifreli ise aşağıda belirleyeceğiniz parolanın farklı olması durumunda bilgisayarınızın her açılışında 3 kere parola girmeniz gerekeceğini hatırlatmak isteriz. Bu durumu önlemenin çeşitli yolları olsa da güvenlik endişeniz yüksek ise 3 kere parola girmeye katlanmanız veya aynı parolayı hem /boot hem /root sektörleri için belirlemenizi öneririz. Şayet aynı parolayı kullanırsanız işletim sisteminiz otomatik otomatik olarak 1 parolayı girişini atlayacaktır.**
```
cryptsetup luksFormat --type luks1 /dev/sda1
WARNING!
========
This will overwrite data on /dev/sda1 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter passphrase for /dev/sda1:
Verify passphrase:
```
Gerekli değeri crypttab'a girip ilgili bölümü açın.
`uuid="$(blkid -o value -s UUID /dev/sda1)"`
`echo "boot_crypt UUID=$uuid none luks" | tee -a /etc/crypttab`
`cryptsetup luksOpen /dev/nvme0n1p2 boot_crypt`
```
Starting crypto disk...boot_crypt (starting)...
Please unlock disk boot_crypt: ********
boot_crypt (started)...done.
```
Oluşturulan cihaz üzerinde bir dosya sistemi kurulması gerekli. Bunun için `/boot` dizininin UUID değerinin bilinmesi gerekli. Aşağıdaki komutu girerek gerekli değeri öğrenin.
`grep /boot /etc/fstab`
Komut ertesinde aşağıdaki gibi bir cevap dönecektir.
```
# /boot was on /dev/sda1 during installation
UUID=c104749f-a0fa-406c-9e9a-3fc01f8e2f78 /boot ext2 defaults 0 2
```
`UUID=` sonrasında gelen tireler ile ayrılmış değeri bir sonraki komutta dosya sistemi oluşturmak için kullanılacaktır. Aşağıdaki komut ile dosya sistemini oluşturun.
**ÖNEMLİ NOT: UUID değeri her cihazda farklı olacağından yukarıdaki komut sonrası gelen değeri kullandığınızdan emin olmalısınız.**
`mkfs.ext4 -m0 -U c104749f-a0fa-406c-9e9a-3fc01f8e2f78 /dev/mapper/boot_crypt`
Komutu çalıştırdıktan sonra uçbirim aşağıdaki dönüşü size verecektir.
```
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 246784 1k blocks and 61752 inodes
Filesystem UUID: c104749f-a0fa-406c-9e9a-3fc01f8e2f78
[…]
```
Şifrelenen ve dosya sistemi oluşturulan /boot sektörünün daha önce yedeklenen içeriğinin geri yüklenmesi gerekli. Bunun için öncelikle /boot sektörünü bağlamak için aşağıdaki komutları çalıştırın.
`mount -v /boot`
Eğer EFI bölümünüz var ise bilgisayarınızda onu da ayrıca bağlamanız gereklidir.
`mount -v /boot/efi`
Ardından yedeklenen tar dosyasını /boot dizinine açın.
`tar -C /boot --acls --xattrs -xf /tmp/boot.tar`
Boot sektörü şifrelenip, gerekli dosyalar eklendikten sonra GRUB2 yapılandırmasının şifreli /boot sektörü için tekrar ayarlanması gerekli. Bunun için aşağıdaki komutları sırası ile çalıştırın.
`echo "GRUB_ENABLE_CRYPTODISK=y" >>/etc/default/grub`
**Kullandığınız GNU/Linux dağıtımı grub yapılandırma dosyasını farklı isimdeki dizinlerin altına eklemiş olabilir. Aşağıdaki komutta verilen dizinin cihazınızdaki doğru konum ile değiştirildiğinden emin olun.**
`grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg`
## Önemli notlar
* Bilgisayarınızın ilk açılışında GRUB /boot sektörüne erişebilmek için size parolanızı soracaktır. Siyah ekranda gelen tatsız bir giriş ekranı sizi korkutmasın. Parolanızı girerken ekranda * gibi simgeler çıkmayacağından parolayı doğru girmek konusunda dikkatli olun. Aynı zamanda GRUB /boot sektörünü deşifre edebilmek için işlemcilerin yerleşik AES motorunu veya işlemcinin tüm çekirdeklerini kullanamadığından işlemin tamamlanması bir dakikadan fazla alabilir. Şayet parolayı doğru girer iseniz cihazınızın yüklenmesine devam edilir, yanlış girerseniz UEFI ekranına dönülür.
* /boot sektörü için belirlediğiniz parola şayet /root sektörünüz ile aynı ise bilgisayarınız sizden aynı parolayı iki kere isteyecektir: bir kere açılışta GRUB tarafından bir kere de işletim sisteminizin yüklenmesi için. Şayet farklı parolalar belirledi iseniz 3 kere parola sorulacaktır.
* GRUB standart olarak ABD (US) klavye kullanır. Bu sebeple açılışta parolanızı girer iken Türkçe veya başka dilde özel harfler ve özel karakterler girmeniz gerekiyor ise bunların US klavyede nasıl girildiğini öğrenmeniz gereklidir.

@ -1,45 +1,53 @@
# Yazışma Güvenliği
__Yazışma Güvenliği__ mesajlarınızın gönderilirken sizin cihazınızda şifrelendiğinden ve sadece amaçlanan alıcısının okuyabileceğinden emin olmaktır. Her ne kadar [ağ güvenliği](../ag_guvenligi/) ve [cihaz güvenliği](../cihaz_guvenligi/) önemli olsalar da, mesaj şifrelemek çoğu durumda gereklidir:
__Yazışma Güvenliği__Mesajların iletildiği hat üzerinde sunucu dahil kimsenin okuyamamasıdır. Bunun için gönderilecek mesajların cihazları terk etmeden şifrelenmesi gereklidir. [ağ güvenliği](../ag_guvenligi/) ve [cihaz güvenliği](../cihaz_guvenligi/) mesajların mahremiyetini ve güvenliğini bir noktaya kadar sağlasa da uçtan uca şifreleme aşağıdaki özellikleri iletişiminizin güvenliğine ekler:
* __Gizlilik__: Mesajları şifrelemek, mesajın sadece amaçlanan taraflarca okunabileceğinden emin olmanın tek yoludur.
* __Doğrulama__: Mesaj şifrelemek, mesajlaştığınız kişinin kimliğinden emin olmanın tek yoludur.
* __Gizlilik__: Mesajların şifrelenmesi, sadece gönderilmek istenen kişinin bu mesajları okuyabileceğinin garantisidir.
* __Doğrulama__: Mesajların şifrelenmesi ve imzalanması yazışılan kişinin kimliğinden emin olmanın tek yoludur.
Mesaj şifrelemek kimi zaman zorlu olabilir:
Şifreli yazışma yapmak bir miktar emek gerektirmektedir:
* __Bir cihaz sahibi olmalısınız__: Mesaj şifrelemenin fikri, mesajlarınızın şifrelenmesi için bir başka üçüncü kişiye güvenmemenizdir. Bu sebeple tüm şifreleme sizin cihazınızda gerçekleştiğinden bir cihaz sahibi olmanız gereklidir.
* __Meşakatli öğrenme süreci__: Şifreleme yazılımlarını doğru kullanmak için hatrı sayılır bir öğrenme sürecini; açık anahtar, özel anahtar, anahtarlıklar gibi kavramlar için geçirmeniz gerekir.
* __Sınırlı kullanıcı sayısı__: Mesaj şifreleme kullanmak, sadece size aynı yazılımı kullanan kişilerle güvenli iletişim kurabilmeniz anlamına gelir.
* __Bir cihaz sahibi olmalısınız__: Mesaj şifrelemenin temeli, mesajlarınızın şifrelenmesi için bir başka kişiye güvenmemekte yatar. Bu sebeple tüm şifreleme işlemi sizin cihazınızda gerçekleştiğinden, bu işlemi yapmaya yeterli bir cihaz sahibi olmanız gereklidir.
* __Meşakatli öğrenme süreci__: Şifreleme yazılımlarını doğru kullanabilmek için bir miktar deneyim gereklidir. Açık anahtar, özel anahtar, imzalama gibi kavramlara farkındalık sahibi olmanız süreci güvenli yürütebilmeniz için elzemdir.
* __Sınırlı kullanıcı sayısı__: Ne yazık ki herkes şifreli yazışabileceğiniz kişiler bugünlerde görece yaz. Yazılımlardaki gelişme ve güvenlik endişeleri ile bu sayı giderek artsa bile çevrenizdeki insanlara konu hakkında bilgi verip yardım etmeniz gerekebilir.
Barizdir ki bu tedbirler cihazınızın güvenliği delindiyse bir işe yaramayacaktır.
Mesajlarınızın güvenliğinin cihazınızın güvenliğinden geçtiğini de unutmamalısınız. Dünyanın en ileri şifreleme teknolojileri şifrelemenin yapıldığı cihaz kadar güvenli olabilir. Bu sebepten [cihaz güvenliği](/cihaz_guvenigi/README.md) konusunda dikkat etmelisiniz.
## Mesaj Şifreleme Hakkında
Bu sayfalarda anılan "mesaj şifreleme" teknik olarak "açık-anahtar kriptografidir" ve şu şekilde çalışmaktadır:
## Mesaj şifreleme hakkında
* __Özel anahtar__: Herkes kendi özel anahtarına sahiptir. İsimden anlaşılabileceği gibi, bu anahtar gizli tutulmalıdır. Bu anahtarı size şifrelenen mesajları okumak için kullanırsınız.
Bugün iletişim için kullanılan en yaygın şifreleme yöntemi [açık anahtar şifrelemesi veya asimetrik şifrelemedir.](https://en.wikipedia.org/wiki/Public-key_cryptography)
* __Açık anahtar__: Herkes bir açık anahtara da sahiptir. Bu anahtar genellikle her yere yayınlanır. Şayet bir kimse size şifreli mesaj göndermek istiyorsa sizin açık anahtarınızı kullanarak mesajını şifreler. Sadece açık anahtarın çifti olan özel anahtara sahip olan kişi mesajı deşifre edebilir.
* __Özel anahtar__: Şifreli iletişime taraf olacak herkes bir özel anahtar sahibidir. Bu anahtar isminden de anlaşılacağı üzere gizli kalmalıdır keza şifrelenmiş mesajların açılması ancak bu anahtarla mümkündür. Bu anahtar aynı zamanda kişilerin kimliklerini ve mesajlarının doğruluğunu kanıtlamak için yapacakları imzalama işlemini de sağlar.
### Mesaj şifrelemeyi öğrenmek için öneriler
* __Açık anahtar__: Her özel anahtar bir açık anahtar içerir. Açık anahtar bir mesajın sadece şifrelenmesini sağlar fakat şifreyi çözemez. Açık anahtar ile şifrelenen bir veri ancak özel anahtar ile açılabilir. Bu tek yönlü ilişki sayesinde açık anahtar ile herkes özel anahtarın sahibine başkaca bir bilgiye gerek olmadan şifreleme yapabilir. Açık anahtar bu sebepten anahtar sunucularında, e-posta eklerinde yayınlanır.
Her ne kadar en yüksek korumayı sağlasa da, açık anahtar şifreleme kullanmak bir maceradır. Yolculuğunuzu daha az korkutucu kılmak için aşağıdakileri aklınızda tutmanızı öneririz:
Asimetrik şifreleme pek çok sistemde kullanılmakla en yaygın ve bilinen uygulaması [GnuPG](openpgp.md) ile şifreli e-posta yazışmasıdır. GPG kendini kanıtlamış çok amaçlı bir yazılım olarak pek çok amaçla şifreleme yapmak için kullanılabilir.
* __Kendinizi adamaya hazır olun__: Açık anahtar şifrelemesini kullanmak bir çok yeni yetenek ve jargonu öğrenmeye hevesli olmayı gerektirir. Açık anahtar kullanımının genel kabulüne daha çokça vakit olduğundan bu emeği harcamak faydasız gibi görünebilir fakat kritik kitleye ulaşmak için bizim gibi erkenden bu işe girenlerin olması gereklidir.
GnuPG gibi yazılımlar kullanıcıların anahtarlarını yönetmesini gerektirse bile günümüzde pek çok yazılım bu gerekliliği ortadan kaldırmakta. Özellikle [anlık yazışma](anlik_yazisma.md) yazılımları kullanıcılarına basit arayüzler aracılığı ile görece kolay şifreleme imkanları sunmaktadır. Arkaplanda çalışan kriptografi açık/özel anahtar ikilisine dayalı olsa da kullanıcıların bu anahtarlarla hiç bir ilgileri olmamaktadır. Bu durum kimi taraflarca güvenli yazışmayı kolaylaştırdığı için övülmekte kimileri tarafından ise kullanıcıları bilgiden yalıtarak özel sistemlere mahkum ettiği iddia edilmektedir.
* __Şifreli arkadaşlar edinin__: çoğu iletişiminiz şifreli olmasa bile kendinize açık anahtar şifreleme antrenmanı yapabileceğiniz bir arkadaş bulup kendisi ile güvenli iletişim kurun.
* __Hevesli insanlara takılın__: açık anahtar şifrelemesi kullanan insanlar genellikle bu konuda reklam yapmaya ve diğer insanlara yardım etmeye çok heveslidiler. Sorularınızı cevaplayacak ve size destek olacak böyle birini bulun.
### Şifreli yazışmaya giriş yapmak için öneriler
### Şifreli Mesajlaşmanın Sınırları
Şifreleme teknolojileri çağdaş yaşamın en güvenli iletişim imkanlarını sağlayacak olsa da kimi zaman zorluklar ve anlaşılmazlıklar da getirebilmektedir. Şayet güvenliğinizi şifreleme teknolojileri ile sağlamaya hazırlanıyorsanı aşağıdaki önerilerimizi aklınızda tutmanızı dileriz:
Her ne kadar şifreleme ile e-postanızın içeriğini saklayabiliyor olsanız da şifreleme kime e-posta gönderdiğinizi ve kimden e-posta aldığınızı *saklamaz*. Bu açık anahtar şifrelemesi ile bile pek çok kişisel bilginin güvende olmadığı anlamına gelir.
* __Kendinizi adamaya hazır olun__: Şifreleme teknolojileri, pek çok insan için hiç duyulmamış terimler ve becerileri de yanında getirmektedir. Şayet kullanıcısına kolaylık(!) sunan bir yazılım kullanmıyoranız bu jargon ve becerileri de elde etmeniz gerekecektir. Hali ile okumaya ve öğrenmeye zaman ve emek ayırmaya hazır olmalısınız. Aynı zamanda edindiğiniz deneyimi çevrenizle paylaşıp başkaca insanların güvenlik süreçlerini kolaylaştırabilirsiniz.
Neden? Bir kimsenin gönderdiğiniz e-postanın içeriği hakkında hiçbir şey bilmediğini düşünün, fakat kiminle e-postalaştığınız, ne sıklıkla bunu yaptığınız ve başlıklar biliniyor olacaklar. Bu bilgi bağlantılarınız, alışkanlıklarınız, tanıdıklarınız ile ilgi ve etkinlikleriniz hakkında çokça şey söyleyecektir.
* __Şifreli arkadaşlar edinin__: Komik gelse de çoğu zaman şifreli iletişim yapmanın en zor tarafı konuşacak birini bulmaktır. Günümüzde şifreli iletişim teknolojileri yaygınlık kazansa da hala [özür olmayan yazılımlar](https://oyd.org.tr/yazilar/ozgur-yazilim/) kullananlar çoğunlukta. Bu sebepten çevrenize yardım ederek sizinle ve başkaları ile güvenli yazışmalarını sağlamak zorunda kalabilirsiniz.
İlişkilerinizi gizli tutabilmenin tek yolu buna saygı gösterecek servis sağlayıcılar aracılığı ile iletişim kurmaktır. [[Radikal servis sağlayıcılar litemize->radical-servers]] bu tip hizmet sağlayıcıları incelemek adına göz atabilirsiniz.
* __Hevesli insanlara takılın__: Şifreleme ve güvenli iletişim konusunda zaman ve emek harcamış insanlar genel olarak deneyimlerini paylaşmak konusunda heveslidir. Şayet aklınıza takılan sorular var ise veya insanlara yardım etme isteği taşıyorsanız çevrenizde bu konuda çalışma yapmakta olan topluluk veya insanlarla temasa geçin. Size zevkle yardımcı olacaklardır.
## Mesaj Şifreleme Kullanın
### Şifreli mesajlaşmanın sınırları
Şifreleme her ne kadar e-postalarınızın, mesajlarınızın içeriğini saklayabiliyor olsa da [üstveri](https://en.wikipedia.org/wiki/Metadata) **bu korumanın kapsamına girmez.** Üstveri kimin kiminle yazıştığını, ne zaman yazıştığını ağ üzerindeki diğer kişilere açık edebilir. Bunu mektubunuzun üstüne adres yazmak zorunda olmanızla kıyaslayabilirsiniz. Bu sebepten şifrelemenin her soruna çözüm olmadığına dikkat etmelisiniz.
Kimin kiminle yazıştığının bilinmesinin neden önemli olduğunu merak edebilirsiniz. İnsanlar ve ilişkileri hakkında bilgi toplamak için her zaman mesajların içeriğine ulaşılması gerekmeyebilir. Bu bakımdan sadece kimin kiminle, ne sıklıkla yazıştığı hakkında toplanan veri herkesin sosyal çevresini ve kişilerin birbirine olan önemini ortaya koyacaktır. Buradan hareketleriniz, sosyal yaşantınızdaki değişiklikler gibi çokça önemli bilgi mesajlarınızın içeriği okunmadan dahi elde edilebilir. ABD istihbarat teşkilatının eski bir başkanı, insanları üstveriye bağlı olarak öldürdüklerine dair bir açıklama bile yapmıştır.
Bu bakımdan ilişkilerinizi gizli tutabilmek önemlidir. Bunun için size ve iletişiminizin mahremiyetine saygı gösteren hizmet sağlayıcılardan hizmet alabilir veya temel iletişim imkanlarınızı sağlayacak sunucuları kendiniz işletebilirsiniz. Rehberimizde konuya ilişkin pek çok yardımcı kaynak bulabilirsiniz.
## Yazışma güvenliğine giriş yapın
* [Şifreli E-Posta](openpgp.md)
* [OTR](otr.md)

@ -25,7 +25,7 @@ Her Python kodu gibi `paperbackup` da bir takım bağımlılıklara sahiptir. A
RPM kullanan dağıtımlar için (Red Hat, Fedora, CentOS vb.):
`sudo yum install PyX enscript qrencode hashlib zbar`
APT kullanan dağıtımlar için (Debian, Ubuntu, Mint vb.):
`sudo apt-get update && sudo apt-get install PyX enscript qrencode hashlib zbar`
`sudo apt-get update && sudo apt-get install python3-pyx enscript python3-qrencode hashlib python3-zbar`
### Anahtar veya veri yedeğini oluşturma

@ -1,44 +1,56 @@
# Şifreli E-Posta
## E-posta nedir?
Bu soru anlamsız gelse de güvenli kılınmadan önce bir sistemin ne olduğu az da olsa anlaşılmalıdır. E-posta İnternet'in ilk mesajlaşma yöntemidir. Bu bakımdan üzerine onlarca alternatif geliştirilmiş olsa da hala baskın iletişim aracı olarak hayatımızdaki yerini sürdürmektedir.
Günümüzde e-posta kullanmayan neredeyse kimsenin kalmadığı düşünüldüğünde bu soru anlamsız gelebilir lakin e-postanın güvenliğinden bahsedilmeden önce güvenli kılınmaya çalışılan şeyin tanınması gereklidir.
E-posta İnternet'in ilk yazışma sistemidir. Bugünlerde sayısız yeni iletişim sistemi, yazılımı geliştirilmiş olsa da e-posta hala önemini korumaktadır. E-postayı bu bakımdan değerli kılan özelliklerin başında sistemin [federatif](https://en.wikipedia.org/wiki/Federation_%28information_technology%29) olması ve kullanıcıların bir web tarayıcısından başka bir araca ihtiyaç duymaması gerelebilir.
E-posta federatif olmasının bir özelliği olarak kullanılan hizmet sağlayıcı/sunucu ve yazışılan diğer kişilerin kullandığı sistemler gibi pek çok üçüncü kişiye güven gerektirmektedir. Bu durum sistemi güvenli kılmayı da görece zorlaştırmaktadır. [TLS](https://tr.wikipedia.org/wiki/Transport_Layer_Security) tüm İnternet ile birlikte e-posta güvenliğini de arttırmıştır. Lakin TLS'in yaygınlaşmasından önce [Edward Snowden](https://en.wikipedia.org/wiki/Edward_Snowden) kamu ile paylaştığı bilgiler ışığında ABD'nin **tüm dünyanın** e-posta iletişimini takip edip analiz ettiği ortaya çıkmıştır.
E-posta aynı zamanda tasarımı gereği bir çok aracıya güvenmenizi gerektiren, güvenli kılması zor bir sistemdir. TLS[^1] kullanımının yaygınlaştığı görece yakın bir zamana kadar gönderilen her e-posta tüm içeriği ile birlikte aktarım sırasında, ulaştığı sunucuda ve iletildiği diğer her kanalda okunabilir durumdaydı. [Edward Snowden](https://en.wikipedia.org/wiki/Edward_Snowden) tarafından ortaya çıkarılan sırların ışığıda Amerika Birleşik Devletlerinin istihbarat örgütlerinin **TÜM DÜNYANIN** e-postalarını kaydettiği ve analiz ettiği ortaya çıkmıştır.
TLS ile genel olarak e-posta sunucunuz ile aranızdaki iletişim şifreli olsa da posta kutunuzda duran e-postalar hala okunabilir durumdadır. Gözetim kapitalizmi bu e-postalarınızı okuyarak size bir şeyler satmaya çalışabilir veya kanuni olsun olmasın devletler e-postalarınıza sunucuları ele geçirerek erişebilir. Bu durumu engellemenin gerçekten tek yolu e-postalarınızı şifrelemektir!
TLS ile genel olarak e-posta sunucunuz ile aranızdaki iletişim ve çoğunlukla da gönderdiğiniz e-postanın alıcısının kullandığı sunucu arasındaki iletişim şifreli olsa da sunucularda duran e-postalar hala okunabilir durumdadır. Gözetim kapitalizminin bir unsuru olarak şayet bir şey yapılabiliyor ise muhtemelen yapılıyordur ve gerçek şu ki e-postalarınız okunuyor, size bunun üzerinden reklam satılıyor!
## E-posta nasıl şifrelenir?
GnuPG'ye hoşgeldiniz. Bugün bildiğimiz ismiyle "GNU Privacy Guard", sadece e-posta şifrelemek için değil neredeyse bilgisayarınızda yapabileceğiniz her kriptografik işlem için kullanılabilecek çok amaçlı bir yazılımdır.
GnuPG e-posta şifrelemenin en yaygın ve güvenilir aracıdır. GNU Privacy Guard veya kısaca GPG olarak bilinen yazılım bugün sadece e-postalarınızı şifrelemenin dışında pek çok kriptografik işlem için kullanılabilecek çok amaçlı bir yazılımdır.
"Pretty Good Privacy" ismi ile Phil Zimmerman tarafından 80'lerde ABD'de yazılan PGP, ülkedeki gelmesi beklenen şifreleme yasaklarına karşı geliştirilip dünya ile paylaşılmıştır. ABD ve RSA şirketinin dava üzerine yazılımın kaynak kodu, anayasal korumadan faydalanmak adına kitap olarak basılıp yayınlanmış ve Zimmerman'ın PGP'yi satması ile bugün özgür bir yazılım olarak GnuPG ismi ile hayatına devam etmektedir.
"Pretty Good Privacy" ismi ile Phil Zimmerman tarafından 80'lerde ABD'de yazılan PGP, ülkedeki gelmesi beklenen şifreleme yasaklarına karşı geliştirilip dünya ile paylaşılmıştır. ABD ve RSA şirketinin açtığı dava üzerine yazılımın kaynak kodu, anayasal korumadan faydalanmak adına kitap olarak basılıp yayınlanmıştır. Zimmerman'ın PGP'yi satması ile bugün özgür bir yazılım olarak GnuPG ismi ile hayatına devam etmektedir.
GnuPG ile e-postalarınızı ve eklerini şifreleyebilir, size ulaşan e-postanın değiştirilmediğini bilebilir veya gönderen kişinin kimliğini doğrulayabilirsiniz. GnuPG, merkezi bir otoriteye dayanmadan insanların arasında bir güven ilişkisi kurulmasına imkan verir.
GnuPG ile e-postalarınızı ve eklerini şifreleyebilir, size ulaşan e-postanın değiştirilmediğini bilebilir veya gönderen kişinin kimliğini doğrulayabilirsiniz. GnuPG, merkezi bir otoriteye dayanmadan insanların arasında bir güven ilişkisi kurulmasına imkan verir. Bu bakımdan GPG günümüzdeki [en özgürleştirici](https://oyd.org.tr/en/articles/defense-of-gpg/) şifreleme yazılımıdır.
GnuPG anahtar üretimi için [rehberimize danışabilirsiniz](gpg/gpg-anahtar-uretimi.md).
GnuPG kurulumu için [rehberimize danışabilirsiniz](gpg/gpg-anahtar-uretimi.md).
## Webmail kullanarak e-posta şifrelenebilir mi?
Açıkçası, şifreli e-posta göndermenin en iyi yolu [Thunderbird](https://www.thunderbird.net/en-US/) gibi bir istemci ile [Enigmail](https://www.enigmail.net) benzeri bir eklenti kullanmaktır. Ancak [Mailvelope](https://www.mailvelope.com/en/) veya [FireGnuPG](http://tr.getfiregpg.org/s/home) gibi eklentiler ile bu mümkündür.
Açıkçası, şifreli e-posta göndermenin en iyi yolu [Thunderbird](https://www.thunderbird.net/en-US/) gibi bir istemci ile [Enigmail](https://www.enigmail.net) benzeri bir eklenti kullanmaktır. Böylece şifreleme işlemi tamamen bilgisayarınızda güvenli şekilde gerçekleşir. Bu yöntemin kurulumu için [GnuPG ile e-posta şifreleme](/gpg/eposta-sifreleme.md) rehberimize bakabilirsiniz.
Şayet kullandığınız e-posta hizmeti istemci üzerinden bağlanmanıza imkan vermiyor veya başka bir sebepten istemci kullanmak istemiyorsanız bir tarayıcı eklentisi ile e-postalarınız şifrelemeniz mümkün. [Mailvelope](https://www.mailvelope.com/en/) veya [FireGnuPG](http://tr.getfiregpg.org/s/home) gibi eklentiler tarayıcınızda şifreleme işlemini gerçekleştirebilir.
## Şifrelenmiş e-posta neyi korumaz?
Her şifreleme yöntemi gibi, e-posta gibi asimetrik bir iletişim yöntemini şifrelemeye çalışmanın da bazı eksiklikleri ve dikkat edilmesi gereken noktaları vardır.
E-posta gibi asimetrik bir iletişim yöntemini şifrelemeye çalışmanın bazı eksiklikleri ve dikkat edilmesi gereken noktaları vardır.
* GnuPG, kullandığınız yönteme göre e-postalarınızın başlığını **şifrelemeyebilir**. Çoğunlukla e-postanın başlığı e-postanızın içeriği hakkında çok şey söyleyebileceği için bu hususa dikkat edilmelidir. Başlıkları şifrelemek de posta kutusunda e-posta aramayı çok zor kılmaktadır. Bu bakımdan tercihin bilinçli yapılması önemlidir.
* GnuPG, kullandığınız yönteme göre e-postalarınızın başlığını **şifrelemeyebilir**. Çoğunlukla e-postanın başlığı e-postanızın içeriği hakkında çok şey söyleyebileceği için bu hususa dikkat edilmelidir. Başlıkları şifrelemek daha sonra posta kutusunda e-posta aramayı çok zor kılacağı gibi e-postaları şifrelememek de mesajların içeriğini ifşa etmek anlamına gelebilir. Bu bakımdan tercihin bilinçli yapılması önemlidir.
* GnuPG ile şifrelemiş olsanız dahi e-postalarınızın iletilebilmesi için bir takım bilgilerin açık olarak aktarılması gereklidir. Bunu üzerine adres ve isim yazmadığınız bir postanın iletilememesi ile kıyaslayabilirsiniz. Bu durumdan dolayı kullandığınız sunucuyu veya ağ iletişiminizi gözleyebilen biri kimlerle ilişki içinde olduğunuzu [üstveri](https://en.wikipedia.org/wiki/Metadata) (metadata) aracılığıyla öğrenebilir.
* GnuPG ile şifrelemiş olsanız dahi e-postalarınızın iletilebilmesi için bir takım bilgilerin açık olarak aktarılması gerekecektir. Bunu üzerine adres ve isim yazmadığınız bir postanın iletilememesi ile kıyaslayabilirsiniz. Bu durumdan dolayı sunucuları veya iletişimi gözleyebilen biri kimlerle ilişki içinde olduğunuzu [üstveri](https://en.wikipedia.org/wiki/Metadata) (metadata) aracılığıyla öğrenebilir.
* GnuPG anahtarları uzun vadeli ve sizinle ilişkilendirilmiş anahtarlar kullanır. Bu bakımdan imzalanmış bir e-postanın kimden geldiğini inkar etmek mümkün olmadığı gibi kullanılan anahtarların bir şekilde ortaya çıkması durumunda, eski iletişimler de okunabilir hale gelecektir. Şifreli e-postaları ileride bir zaman açabilme ümidi ile saklayan bir kurum (bkz. NSA) bir gün anahtarınızın ifşa olması durumunda e-postalarınızı geriye dönük olarak okuyabilir. Bu elbette e-postaları şifrelememek için bir bahane değildir ama bazı durumlarda dikkate alınması gereken bir risktir.
* GnuPG uzun vadeli, kişilerin kimliği ile sıkı sıkıya bağlı anahtarlar kullanır. Bu bakımdan imzalanmış bir e-postanın kimden geldiğini inkar etmek mümkün olmadığı gibi kullanılan anahtarların bir şekilde ortaya çıkması durumunda, eski iletişimler de okunabilir hale gelecektir. Şifreli e-postaları bir zaman açabilme ümidi ile saklayan bir kurum (bkz. NSA) bir gün e-postalarınızı okuyabilir. Bu elbette e-postaları şifrelememek için bir bahane değildir ama bazı durumlarda dikkate alınması gereken bir risktir.
## Peki anahtarların aitliğini kim doğrular?
Bu sorunun basit cevabı, herkes ve hiç kimsedir.
Bu sorunun cevabı basittir; herkes ve hiç kimse!
Bir GnuPG anahtarına olan güven tamamen o anahtarı kullanan kişinin o kişi olduğunu bilmenize dayanır. Bu o kişiyi gerçekten tanımanız, güvenli bir kanal veya yüz yüze anahtarın parmak izini doğrulamanızı gerektirebileceği gibi kriptografik olarak kullanılan anahtarı imzalayan kişilerden birini ve anahtarını tanımanız da olabilir.
Güven ağı (web of trust) GnuPG'nin güven ilişkisinin temelidir. GnuPG kullanıcıları tanıdıkları ve güvendikleri kişilerin anahtarlarını imzalarlar. Bu imzalar bir süre sonra tanıdıkların tanıdıkları şekilde bir ağa dönüşür ve iki kişi birbirini tanımasa dahi bir seviyeye kadar birbirlerinin anahtarına güven duyabilirler.
Bir GnuPG anahtarına olan güven tamamen o anahtarı kullanan kişinin o anahtarı kullandığını bilmenize dayanır. Bu o kişiyi gerçekten tanımanız ve güvenli bir kanal veya yüz yüze anahtarın parmak izini doğrulamanız anlamına gelebileceği gibi, kriptografik olarak kullanılan anahtarı imzalayan kişilerden birini ve anahtarını tanımanız da olabilir.
Bu sistem elbette mükemmel değildir. Bugün anahtar sunucuları, özellikle tanınan kişilerin, sahte anahtarları ile doludur. Bu sahte anahtarlarda pek çok sahte imza bulmak da mümkündür. Bu sebeple [WKS](https://www.gnupg.org/documentation/manuals/gnupg/gpg_002dwks_002dserver.html) gibi sistemler görece güvenli ve kolay anahtar dağıtımı yöntemleri geliştirilmektedir. Lakin hiç bir sistem sorunsuz değildir ve anahtar güvenliğine sağduyu ile yaklaşılmalıdır.
Güven ağı GnuPG'nin temel güven ilişkisinin temelidir. GnuPG kullanıcıları tanıdıkları ve güvendikleri kişilerin anahtarlarını imzalarlar. Bu imzalar bir süre sonra tanıdıkların tanıdıkları şekilde bir ağa dönüşür ve iki kişi birbirini tanımasa dahi bir seviyeye kadar tanımadığı ama tanıdığının tanıdığı bir kişinin anahtarına güvenebilir.
## Şifreli e-posta hakkında tavsiyeler nelerdir?
@ -47,5 +59,3 @@ Güven ağı GnuPG'nin temel güven ilişkisinin temelidir. GnuPG kullanıcılar
* **[ZAROLA KULLANIN!](https://zarola.oyd.org.tr)**. Çünkü anahtarınızın güvenliği anahtar parolanızın güvenliğine bağlıdır.
* Çevrenizde bir CryptoParty yapın ve bu sayede arkadaşlarınıza da GnuPG kullanmayı öğretip anahtarlarınızı imzalayarak kendi güven ağınızı oluşturun. [Özgür Yazılım Derneği](https://oyd.org.tr) ve [Hackerspace Istanbul](https://hackerspace.ist) düzenli aralıklarla [CryptoParty](https://cryptoparty.online)'ler düzenlemektedir.
* İçeriğinin gizliliğinden bağımsız olarak şifreli e-postalar gönderin. Bu gerçekten hem sizin hem tüm toplum için önemlidir. Şayet sadece gerektiğinde şifreleme yaparsanız analiz edilmesi gereken iletişim miktarı hatrı sayılır miktarda azalacaktır ve bir örüntü ortaya çıkacaktır. Havadan sudan bile şifreli yazışın!
---
[^1]: Transport Layer Security <https://tr.wikipedia.org/wiki/Transport_Layer_Security>

@ -1,6 +1,6 @@
# Signal
[Signal App](https://www.signal.org) Android, GNU/Linux, iOS ve Windows cihazlarda çalışan, OTR'nin takipçisi olan [OMEMO](https://conversations.im/omemo/) protokolünün değiştirilmiş bir versiyonu ile çalışan modern bir mesajlaşma ve sesli iletişim yazılımıdır.
[Signal App](https://www.signal.org) Android, GNU/Linux, iOS ve Windows cihazlarda çalışan, OTR'nin takipçisi olan [OMEMO](https://conversations.im/omemo/) protokolüne benzer bir yapı ile çalışan bir anlık yazışma yazılımıdır. [Open Whishper Systems](https://en.wikipedia.org/wiki/Open_Whisper_Systems) tarafından geliştirilen yazılım pek çok güvenlik uzmanı tarafından başarılı bulunmaktadır.
## Avantajları

Loading…
Cancel
Save