From 978e10257b39b32716e35543ce2c27b45ccb8269 Mon Sep 17 00:00:00 2001 From: AA Date: Tue, 25 Aug 2020 13:10:26 +0300 Subject: [PATCH] =?UTF-8?q?gpg=20rehberleri=20ve=20yazisma=20g=C3=BCvenli?= =?UTF-8?q?=C4=9Finde=20hiyerar=C5=9Fik=20de=C4=9Fi=C5=9Fiklikler?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/yazisma_guvenligi/gpg/gpg.md | 15 + .../gpg/gpg_gelismis_anahtar_uretimi.md | 394 ++++++++++++++++++ src/yazisma_guvenligi/gpg/ucbirim_gpg.md | 97 +++++ src/yazisma_guvenligi/mailvelope.md | 0 src/yazisma_guvenligi/thunderbird_enigmail.md | 3 + src/yazisma_guvenligi/ucbirim_eposta.md | 114 +++++ 6 files changed, 623 insertions(+) create mode 100644 src/yazisma_guvenligi/gpg/gpg.md create mode 100644 src/yazisma_guvenligi/gpg/gpg_gelismis_anahtar_uretimi.md create mode 100644 src/yazisma_guvenligi/gpg/ucbirim_gpg.md create mode 100644 src/yazisma_guvenligi/mailvelope.md create mode 100644 src/yazisma_guvenligi/thunderbird_enigmail.md create mode 100644 src/yazisma_guvenligi/ucbirim_eposta.md diff --git a/src/yazisma_guvenligi/gpg/gpg.md b/src/yazisma_guvenligi/gpg/gpg.md new file mode 100644 index 0000000..e73810c --- /dev/null +++ b/src/yazisma_guvenligi/gpg/gpg.md @@ -0,0 +1,15 @@ +# GnuPG veya GPG Nedir? + + + +## Buradan başlayın + +* [Kolay GPG anahtar üretimi](gpg-anahtar-uretimi.md) + +* [Gelişmiş GPG anahtar üretimi](gpg_gelismis_anahtar_uretimi.md) + +* [GPG anahtar yönetimi](anahtar-saklama.md) + +* [GPG ile uçbirimde işlemler](ucbirim_gpg.md) + +* [GPG ile e-posta şifreleme](yazisma_guvenligi/openpg.md) diff --git a/src/yazisma_guvenligi/gpg/gpg_gelismis_anahtar_uretimi.md b/src/yazisma_guvenligi/gpg/gpg_gelismis_anahtar_uretimi.md new file mode 100644 index 0000000..e1c8948 --- /dev/null +++ b/src/yazisma_guvenligi/gpg/gpg_gelismis_anahtar_uretimi.md @@ -0,0 +1,394 @@ +# İleri Anahtar Üretimi + +GPG, RSA algoritmasına dayalı asimetrik şifreleme kullanmaktadır. RSA anahtar çiftinin uzun dönem kullanılması ve hali ile saklanması gereklidir. Bu bakımdan hem üretimi hem de saklanması bakımından dikkat gösterilmesi gereklidir. Özellikle şifreleme ihtiyacınız mahremiyet beklentisini aşıp güvenlik gerektiren durumlara yönelik ise anahtar üretimi gibi kritik bir aşamayı olabilecek en az etmen ve şüphe ile yürütmek gerekmektedir. + +## Güvenli ortam + +Anahtarın üretimi sırasında kullanılan bilgisayar çok önemli bir girdinin kaynağıdır. Entropi, yani cihazınızda anahtar üretimi sırasında kullanılacak rastgeleliğin kalitesi bilgisayarınız ve işletim sisteminize bağlıdır. Aynı zamanda bilgisayarınızda kötücül bir yazılımın çalışmaması veya bilmediğiniz bir açığın söz konusu olması durumunu da göz önünde bulundurmanız faydalı olabilir. Sonuç olarak tehdit modeliniz bu tip sorunları kapsamıyor olsa bile bir kere üretip belki hayatınız boyunca kullanacağınız bir anahtarı çok kolay tedbirler altında üretmenin bir zararı da yoktur. + +Şayet bu amaçla rastgele bir konumdan nakit ödeme ile bir bilgisayar alıp tüm ağ araçlarını söküp asla İnternet'e bağlamamayı gerektirecek bir tehdit modeliniz yok ise yapabileceğiniz en kolay ve etkili yöntem bir USB bellek üzerinden [Tails](https://tails.boum.org) başlatarak anahtarınızı bu işletim sistemi üzerinde üretmeniz olacaktır. + +[Tails rehberinin yazılmasına katkı verebilirsiniz](https://git.oyd.org.tr/oyd/guvenlik/issues/46) + +Bir diğer seçenek ise anahtarınızı bir güvenlik donanımı olan [Gnupg akıllı kart](https://www.floss-shop.de/en/security-privacy/smartcards/13/openpgp-smart-card-v3.3?number=654010) veya [Yubikey](https://www.yubico.com/products/) üzerinde üretmektir. Bu yöntemin faydası güvenlik donanımından başka bilgisayarın hiç bir sistemi anahtarla temas etmemiş olacaktır. Tüm kriptografik işlemler bu cihaz üzerinde güvenli olarak gerçekleşeceğinden birden fazla cihazda güvenli şekilde anahtarınızı kullanmak da kolaylaşmaktadır. Akıllı kart üzerinde anahtar oluşturmanın kötü tarafı ise yedekleme imkanınızın olmamasıdır. Şayet kartınızı kaybeder veya bir sebepten bozarsanız anahtarınız sonsuza kadar şifrelediğiniz verilerle birlikte kaybolacaktır. Akıllı kart kullanmak ama yedek de almak istiyorsanız anahtarınızı bilgisayarda üretip ardından akıllı karta yüklemeniz de mümkündür. + +[Akıllı kart ve Yubikey rehberi yazarak bu rehbere katkı verebilirsiniz](https://git.oyd.org.tr/oyd/guvenlik/issues/59) + +## Anahtarı Planlamak + +### Anahtar işlevleri + +Bir GPG anahtarı 4 temel işlev taşıyabilir. Bunlar; sertifika, şifreleme, imzalama, yetkilendirmedir. + +* Sertifika: Başka anahtarları imzalamak için gereken işlevdir. +* Şifreleme: Anahtar ile şifreleme yapmak için gereken işlevdir. +* İmzalama : Mesaj veya dosyaların bütünlüğünü ve aitliğini kanıtlamak için gereken imzanın atılabilmesi için gereken işlevdir. +* Yetkilendirme: SSH ve benzeri sistemlerde kimlik kanıtlayarak yetkilendirme almak için gereken işlevdir. + +GPG anahtarları bir tane ana anahtar ve çeşitli sayıdaki alt anahtardan oluşur. Sertifika yetkisi ana anahtara ait olmakla birlikte şifreleme, imzalama ve yetkilendirme yetkileri ana anahtara veya alt anahtarlara verilebilmektedir. + +### Sertifika yetkisinin önemi + +Anahtar sayısı ve yetkilerini değerlendirirken sertifika yetkisi önemlidir. GPG bir şifreleme yazılımı olduğu kadar kimlik yönetimi de sağlamaktadır. Sertifika yetkisi GPG kullanıcısının diğer kullanıcıların anahtarlarını imzalayarak [güven ağı](https://en.wikipedia.org/wiki/Web_of_trust) oluşturulmasını sağlamakta ve alt anahtarlara duyulan güveni de getirmektedir. Bu bakımdan alt anahtarların ifşa olması gibi olumsuz bir durumda ana anahtarın korunabilmiş olması yeni alt anahtarların eski güven ağı kaybedilmeden tekrar oluşturulmasına imkan sağlamaktadır. + +Günlük kullanımda sertifika yetkisi özellikle gerekli değildir. Keza alt anahtarlara ait olan şifreleme imzalama ve yetkilendirme işlevleri GPG'nin günlük kullanımı için yeterlidir. Ancak bir başka GPG anahtarının imzalanması, yeni bir alt anahtar oluşturulması veya tarihi geçen bir anahtarın yenilenmesi gibi sıklıkla gerekmeyen durumlarda ana anahtar gerekli olmaktadır. Bu bakımdan ana anahtarı güvenle saklanacağı bir ortama alıp, çalınma ve ifşa olma tehlikesi taşıyan cihazlarda sadece alt anahtarları bulundurarak belirli bir güvenlik elde etmek mümkündür. Bu uygulamanın kötü tarafı ise tüm anahtarlarınızın bir akıllı karta alamayacak olmanız ve her sertifika işlemi için anahtarınızı güvenli alandan çıkarmanın zahmetine katlanmaktır. + +### Anahtar boyutu + +Anahtarınızın boyutu doğrudan sağlayacağı güvenlik ile ilişkilidir. GPG'nin kullandığı RSA algoritmasında 1024 ile 4096 bit arasında bir anahtar seçmeniz mümkündür. Bugün Türkiye'de kanuna bağlı olarak kullanılan e-imza sertifikaları RSA2048 bit idir. RSA1024 ise artık güvenli kabul edilmemektedir. Anahtarınızın büyüklüğü geleceğe dönük olarak güvenli sayılacağı ömrü de uzatacağından en büyük anahtar genişliğini seçmeniz kesinlikle tavsiye edilir. Anahtar boyutuna ilişkin temel endişe kriptografik işlemlerin işlemci gücü bakımından giderek zorlaşmasıdır. Günümüzde en kötü akıllı mobil cihazın bile işlemci gücü 4096 bit anahtar boyutları ile makul sürelerde işlem yapma imkanı sağladığından bu endişe güncelliğini temel kullanımlar açısından görece yitirmiş durumdadır. + +### Anahtar algoritması + +GPG'nin güncel versiyonu olan 2.0.19 artık tarihi olarak kullanılan RSA algoritmasının yanında [Elliptic-curve cryptography (ECC)](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) de desteklemeye başlamıştır. ECC, RSA ile karşılaştırılabilir güvenlik seviyeleri için daha kısa anahtarlar oluşturulmasına imkan sağlamaktadır. [Kuantum bilgisayarlar](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography#Quantum_computing_attacks) ve [arkakapı](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography#Backdoors) endişeleri taşımakla birlikte pratik ve daha kolay yönetilebilir anahtarlara ihtiyaç duyulması durumunda en yüksek anahtar genişliğinde tercih edilmesi düşünülebilir. + +### Anahtar yapısı + +Şayet GPG'den standart bir anahtar üretmesi istenir ise aşağıdaki gibi bir anahtar oluşturacaktır. + +├─Ana anahtar (sertifika ve imzalama) +└─Alt anahtar (şifreleme) + +Bu anahtar ana anahtar ile imzalama işlemini yapacağından neredeyse her işlemde ana anahtarın da sistemde bulunması ve kullanılabiliyor olması gereklidir. GPG'nn böyle bir tercihte bulunmasının iki nedeni vardır. Öncelikle sertifika ve imza işlemleri temelde benzerdir ve ikisi de güven ilişkisi yaratır. Bu bakımdan iki benzer işlemi tek anahtarın görmesi anlamlıdır. İkinci olarak temel işlemleri yapmak için gereken en az anahtar miktarı bu şekilde elde edildiği için anahtar boyutu da küçük olmaktadır. + +Fakat tehdit modelinize bağlı olarak daha güvenlik işlevi gösterebilecek bir düzen oluşturmak mümkündür. Sertifika yetkisinin anahtara sağladığı güven ilişkisini günlük kullanımdan yalıtarak alt anahtarların; vadesini, güvenini ve döngüsünü güvenli şekilde yönetmek mümkündür. Şöyle ki; + +* Şifreleme anahtarınız çalınan dizüstü bilgisayarınız ile birlikte açığa çıkarsa geçmişe dönük olarak tüm iletişim ve şifreli dosyalarınızın açılması mümkündür. + +* İmza anahtarınız benzer bir talihi paylaşırsa bir salırgan bu anahtarı kullanarak sizi taklit edebilir; kullandığınız amaca bağlı olarak size ait görünen metin, dosya ve kod yaratabilir. + +* yetkilendirme anahtarınızın ortaya çıkması bu anahtara bağlı olarak giriş yaptığınız tüm sistemlerin ele geçirilmesi anlamına gelebilir. + +Bu neden ile GPG'nin kalıcı anahtar modelini biraz kullanım pürüzü yaratacak da olsa elle [geçici(ephemeral)](https://cryptography.fandom.com/wiki/Ephemeral_key) anahtar modeline çevirebilirsiniz. Bu yöntem bir bakııma [OTR](yazisma_guvenligi/otr.md) ve [OMEMO](yazisma_guvenligi/omemo.md) sistemlerinde kullanılan yönteme benzemekle fark olarak her mesajda değil sizin belirleyeceğiniz daha uzun aralıklarda değişim yapmanızı gerektirir. + +Basitçe ifade etmek gerekirse; + +1. Ana anahtara sadece sertifika yetkisi verilir. +2. 3 alt anahtara şifreleme, imzalama, yetkilendirme işlevleri verilir. +3. Ana anahtara 3 yıl gibi uzun bir vade süresi verilir. +4. Alt anahtarlara 3 ay gibi görece kısa bir vade süresi verilir. +5. Ana anahtar anahtarlardan ayrılır ve offline olarak güvenli saklanır. +6. Alt anahtarlar cihazlara aktarılır ve kullanılır. Gerekli görüldükçe veya belirlenen süreler ile değiştirilir. Değişim ana anahtarla yapılır ve imzalanarak güven ağına dahil edilir. + +Bu çabaya katlanmak her kullanıcının kendi durumuna göre karar vermesi gereken bir tercih. Keza sizin güvenlik ihtiyaçlarınız için bu durum aşırı olabilir ve sürekli GPG ile uğraşmak canınızı sıkabilir. Geçmişe dönük olarak şifreli verilerinizi sürekli olarak yeniden şifrelemek veya yokoluşa terk etmek sorun yaratabilir. Sizinle iletişime geçen kişiler sürekli olarak anahtarınızın yeni versiyonunu edinmekten sıkılabilir. + +Bu süreci işletebilmek için ne yazık ki anahtarınızı baştan buna uygun olarak üretmeniz gerekmektedir. Anahtarlara verilen işlevler daha sonra değiştirilememektedir. Bu rehberde yukarıdaki amacı gösterebilecek bir anahtarın üretim ve kullanım süreci işlenecektir. + +## Güvenli Anahtar Üretimi + +Anahtar üretimi için güvenli ortamınızı elde ettikten sonra bir uçbirim açarak anahtar üretim sürecine başlayabilirsiniz. + +GPG'nin uzman modunu çağırarak anahtar üretim sürecine başlayın. + +`gpg --full-gen-key --expert` + +Karşınıza aşağıdaki seçenekler çıkacaktır. + +``` +gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc. +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. + +Lütfen istediğiniz anahtarı seçiniz: + (1) RSA ve RSA (varsayılan) + (2) DSA ve Elgamal + (3) DSA (yalnız imzalamak için) + (4) RSA (sadece imzalamak için) + (7) DSA (yeteneklerini belirtin) + (8) RSA (yeteneklerini belirtin) + (9) ECC and ECC + (10) ECC (sign only) + (11) ECC (set your own capabilities) + (13) Existing key + (14) Existing key from card +Seçiminiz? + + +``` +Bu noktada RSA veya ECC algoritmaları arasındaki kararı vermiş olmanız gereklidir. Rehber RSA algoritmasını geçmişi ve kuantum endişeleri nedeni ile tercih edecektir. 8 tuşuna basıp "enter" ile devam edin. + +``` +bir RSA anahtarı için olası eylemler: İmzalama Onayla Şifrele Kimlik kanıtla +Şimdilik mümkün eylemler: İmzalama Onayla Şifrele + + (1) İmzalama yeteneğini açar/kapar + (2) Şifreleme yeteneğini açar/kapar + (3) Kimlik kanıtlama yeteneğini açar/kapar + (0) Bitti + +Seçiminiz? + +``` + +Bu aşamada ana anahtarınızı ürettiğiniz için amacımıza bağlı olarak sadece Onaylama (sertifika) yetkisinin *mümkün eylemler* arasında kalmasının sağlanması gerekli. Bunun için sırası ile 1-enter-2-enter tuşlayarak imzalama ve şifreleme yetkisini anahtardan ayırabilirsiniz. Bu aşamadan sonra aşağıdaki noktaya vardığınızda 0 tuşlayıp "enter" ile işlemi tamamlayabilirsiniz. + +``` +bir RSA anahtarı için olası eylemler: İmzalama Onayla Şifrele Kimlik kanıtla +Şimdilik mümkün eylemler: Onayla + + (1) İmzalama yeteneğini açar/kapar + (2) Şifreleme yeteneğini açar/kapar + (3) Kimlik kanıtlama yeteneğini açar/kapar + (0) Bitti + +Seçiminiz? +``` + +GPG sizden anahtar boyutunuzu girmenizi isteyecektir. En yüksek güvenliği sağlayan anahtar genişliği olan 4096 sayısını girerek "enter" tuşlayın. + +``` +RSA anahtarları 1024 bit ile 4096 bit arasında olmalı. +İstediğiniz anahtar uzunluğu nedir? (3072) 4096 +``` + +Bu aşamadan sonra anahtarınızın geçerlilik süresini belirlemeniz istenecektir. Bu süre tercihi size kalmış olmakla birlikte ana anahtarınızın geçerliliğini yıl düzeyinde yapmanız kolaylık sağlayacaktır. Süreyi belirlemek için istediğiniz miktarı ardından birimi belirten harf ile girip "enter" tuşlayın. + +``` +İstenen anahtar uzunluğu: 4096 bit +Lütfen anahtarın ne kadar süreyle geçerli olacağını belirtin. + 0 = anahtar süresiz geçerli + = anahtar n gün geçerli + w = anahtar n hafta geçerli + m = anahtar n ay geçerli + y = anahtar n yıl geçerli +Anahtar ne kadar geçerli olacak? (0) 3y +``` + +GPG'nin süreyi doğrulamak için sorduğu soruya evet anlamında "y" veya "e" tuşlayarak devam edebilirsiniz. + +``` +Anahtarın geçerliliği Cum 25 Ağu 2023 09:45:04 +03 de bitecek. +Bu doğru mu? (e/H ya da y/N) y +``` + +Bu aşamadan sonra GPG size adınız ve e-posta adresinizi soracaktır. Doğal olarak burada doğru cevap vermek zorunda değilsiniz. Bir rumuz ve geçersiz bir e-posta adresi kullanabilirsiniz. Lakin bu durumda anahtarınız ile sosyal çevrenizde bir güven anahtarı oluşturmanızı zorlaştıracağı gibi size e-posta şifrelemek isteyen insanlara da bir külfet getirecektir. Kararı kullanım amacınıza göre belirleyebilirsiniz. + +``` +GnuPG anahtarınızı betimlemek için bir kullanıcı kimliği oluşturmaya ihtiyaç duyuyor. + +Adınız ve Soyadınız: Claude Shannon +E-posta adresiniz: entropyrulez@bell.com +Önbilgi: +``` + +Karşınıza çıkacak doğrulamayı denetledikten sonra tamam anlamında "t" tuşlayarak devam edebilirsiniz. + +``` +Seçtiğiniz KULLANICI-KİMLİĞİ: + "Claude Shannon " + +(A)dı ve Soyadı, (Y)orum, (E)posta alanlarını değiştir ya da (T)amam/Çı(k)? +```` + +GPG size parolanızı soracaktır. Burada bir [**Zarola**](https://zarola.oyd.org.tr) kullanmanız hararetle tavsiye edilir. Anahtarınızın güvenliği bu parolaya doğrudan bağlı olduğundan bu parolanın unutmayacağınız şekilde olması ve yeterince entropi içermesini sağlamanın en kolay yolu Zarola yönteminden geçmektedir. + +Bu aşamadan sonra cihazınız anakartınızın köşelerinde kalmış entropi için çırpınıp size anahtarınızı üretecektir. Bu süreç `/dev/random` aygıtınızda kalan entropi miktarı ve yenilenme hızına bağlı olarak yavaş olabilir. Bilgisayarınız ile bir şeyler yaparak bu süreci hızlandırabilirsiniz. Anahtarınız hazır olduğunda GPG sizi aşağıdaki çıktı ile karşılayacaktır. + +`` +(A)dı ve Soyadı, (Y)orum, (E)posta alanlarını değiştir ya da (T)amam/Çı(k)? t +Bir miktar rasgele bayt üretilmesi gerekiyor. İlk üretim sırasında biraz +hareket (klavyeyi kullanmak, fareyi hareket ettirmek, disklerden yararlanmak) +iyi olacaktır; bu yeterli rasgele bayt kazanmak için rasgele sayı +üretecine yardımcı olur. +gpg: anahtar 6CD5E60735205895 son derece güvenli olarak imlendi. +gpg: revocation certificate stored as '/home/alper/.gnupg/openpgp-revocs.d/A09D0D53E6BEEF6A971F64036CD5E60735205895.rev' +genel ve gizli anahtar üretildi ve imzalandı. + +pub rsa4096 2020-08-25 [C] [son kullanma tarihi: 2023-08-25] + A09D0D53E6BEEF6A971F64036CD5E60735205895 +uid Claude Shannon +``` + +Şayet `gpg --list-secret-keys` komutunu çağırırsanız yeni anahtarınızı ve detaylarını görecek olmalısınız. + +``` +sec rsa4096 2020-08-25 [C] [son kullanma tarihi: 2023-08-25] + A09D0D53E6BEEF6A971F64036CD5E60735205895 +uid [ son derece ] Claude Shannon +``` + +Artık alt anahtarların üretimine geçmek ve kullanılabilir bir anahtar oluşturmaya başlamak mümkündür. Aşağıdaki komut ile anahtarınızı düzenlemeye başlayabilirsiniz. + +`gpg --edit-key --expert [key ID veya e-posta]` + +Komut sizi aşağıdaki gibi bir çıktı ile karşılayacak ve promt'ta bekleyecektir. + +``` +gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc. +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. + +Gizli anahtar mevcut. + +sec rsa4096/6CD5E60735205895 + oluşturuldu: 2020-08-25 son kullanma tarihi: 2023-08-25 kullanımı: C + güvencesi: son derece geçerliliği: son derece +[ son derece ] (1). Claude Shannon + +gpg> +``` + +`help` yazarak bu aşamada yapabileceğiniz işlemler hakkında bilgi alabilirsiniz. + +``` +gpg> help +quit bu menüden çık +save kaydet ve çık +help bunu gösterir +fpr parmakizini gösterir +grip show the keygrip +list anahtarı ve kullanıcı kimliğini gösterir +uid N kullanıcı kimliğini seçer +key N yardımcı anahtarını +check imzaları sınar +sign seçilen kullanıcı kimliği imzalar [* ilgili komutlar için aşağıya bakın] +lsign kullanıcı kimlikleri yerel olarak imzalar +tsign seçili kullanıcı kimlikleri bir güvence imzasıyla imzalar +nrsign seçili kullanıcı kimlikleri yürürlükten kaldırılamayan bir imzayla imzalar +adduid bir kullanıcı kimliği ekler +addphoto bir foto kimliği ekler +deluid seçili kullanıcı kimlikleri siler +addkey bir yardımcı anahtar ekler +addcardkey bir akıllı karta bir anahtar ekler +keytocard bir akıllı karttan bir anahtarı taşır +bkuptocard bir akıllı karttan bir yedekleme anahtarını taşır +delkey seçili yardımcı anahtarları siler +addrevoker bir yürürlükten kaldırma anahtarı ekler +delsig seçili kullanıcı kimliklerden imzaları siler +expire anahtar için ya da seçili yardımcı anahtarlar için zamanaşımı tarihini değiştirir +primary seçili kullanıcı kimliğini asıl olarak imler +pref tercihleri listeler (uzman) +showpref tercihleri listeler (ayrıntılı) +setpref Seçili kullanıcı kimlikler için tercih listesini belirler +keyserver seçili kullanıcı kimlikler için tercih edilen anahtar sunucu adresini belirler +notation seçili kullanıcı kimlikleri için bir simgelem belirler +passwd anahtar parolasını değiştirir +trust sahibiningüvencesini değiştirir +revsig Seçili tüm kullanıcı kimliklerdeki imzaları yürürlükten kaldırır +revuid Seçili tüm kullanıcı kimlikleri yürürlükten kaldırır +revkey anahtarı ya da seçili yardımcı anahtarları yürürlükten kaldırır +enable anahtarı kullanıma sokar +disable anahtarı iptal eder +showphoto seçili foto kimlikleri gösterir +clean kullanışsız kullanıcı kimlikleri sıkıştırır ve kullanışsız imzaları anahtardan kaldırır +minimize kullanışsız kullanıcı kimlikleri sıkıştırır ve tüm imzaları anahtardan kaldırır + +* The 'sign' command may be prefixed with an 'l' for local signatures (lsign), + a 't' for trust signatures (tsign), an 'nr' for non-revocable signatures + (nrsign), or any combination thereof (ltsign, tnrsign, etc.). +``` + +`addkey` komutu ile anahtara alt anahtarlar eklemeye başlayabilirsiniz. Alt anahtar ekleme süreci ana anahtarın üretimi ile tamamen aynıdır. Yukarıdaki adımları tekrar ederek son noktada bir ana anahtar ve 3 belirli işlevi taşıyan alt anahtar üretmiş olmanız gereklidir. + +``` +sec rsa4096/6CD5E60735205895 + oluşturuldu: 2020-08-25 son kullanma tarihi: 2023-08-25 kullanımı: C + güvencesi: son derece geçerliliği: son derece +ssb rsa4096/9D0FFCD0DE126F3D + oluşturuldu: 2020-08-25 son kullanma tarihi: 2021-08-25 kullanımı: E +ssb rsa4096/3F7DB977B818DDB4 + oluşturuldu: 2020-08-25 son kullanma tarihi: 2021-08-25 kullanımı: S +ssb rsa4096/841A8F682342D15B + oluşturuldu: 2020-08-25 son kullanma tarihi: 2021-08-25 kullanımı: A +[ son derece ] (1). Claude Shannon +``` + +Yukarıdaki gibi veya arzu ettiğiniz sonucu elde ettikten sonra `save` komutu ile değişiklikleri kaydedip çıkabilirsiniz. Artık anahtarınızın aşağıdaki gibi görünüyor olması gereklidir. + +``` +sec rsa4096 2020-08-25 [C] [son kullanma tarihi: 2023-08-25] + A09D0D53E6BEEF6A971F64036CD5E60735205895 +uid [ son derece ] Claude Shannon +ssb rsa4096 2020-08-25 [E] [son kullanma tarihi: 2021-08-25] +ssb rsa4096 2020-08-25 [S] [son kullanma tarihi: 2021-08-25] +ssb rsa4096 2020-08-25 [A] [son kullanma tarihi: 2021-08-25] +``` + +**ÇOK ÖNEMLİ NOT:** Bu noktada anahtarınızın yedeğini güvenli şekilde almanız **hayati** öneme sahiptir. Bunun için rehberdeki [Anahtar Yönetimi](anahtar-saklama.md) ve [Paperbackup ile kağıt yedek](paperbackup.md) rehberlerinden yardım alabilirsiniz. + +## Ana anahtarın ayrılması + +Ana anahtarı alt anahtarlardan ayırmanın GPG'de belirgin bir yolu bulunmamakta. Bu amacı gerçekleştirmek için biraz dolambaçlı bir yol kullanmak gerekiyor. + +**ÖNEMLİ NOT:** Bu bölümde anahtar üzerinde geri döndürülemez işlemler yapılacağından ve işlemlerin bir kısmı yedekten anahtar almayı gerekli kıldığından tüm anahtarınızın yedeğni aldığınızdan emin olun. + +Öncelikle anahtarınızın alt anahtarlarını dışarı çıkartmanız gerekmekte. Bu aşamada anahtarın UID'sini belirtmeniz gerekmekte keza e-posta ile bu işlem gerçekleşmiyor. + +`gpg --armor --export-secret-subkeys [anahtar ID] > [kayıtdizini]` + +Bu işlemin ardından anahtarınızı silin. + +`gpg --delete-secret-keys [anahtar ID veya e-posta]` + +GPG israrla bu anahtarı silmek isteyip istemediğinizi sorgulayacaktır. Endişesi konusunda haklı olmakla birlikte kararlılığınızı gösterip tüm sorularına olumlu cevap verin. + +``` +gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc. +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. + + +sec rsa4096/6CD5E60735205895 2020-08-25 Claude Shannon + +Bu anahtar, anahtar zincirinden silinsin mi? (e/H ya da y/N) y +Bu bir gizli anahtar! - gerçekten silinecek mi? (e/H veya y/N) y +``` + +Bu aşamadan sonra anahtarlığınızda sadece "pub" ile işaretli umumi anahtarınız kalmış olacaktır. + +``` +pub rsa4096 2020-08-25 [C] [son kullanma tarihi: 2023-08-25] + A09D0D53E6BEEF6A971F64036CD5E60735205895 +uid [ son derece ] Claude Shannon +sub rsa4096 2020-08-25 [E] [son kullanma tarihi: 2021-08-25] +sub rsa4096 2020-08-25 [S] [son kullanma tarihi: 2021-08-25] +sub rsa4096 2020-08-25 [A] [son kullanma tarihi: 2021-08-25] +``` + +Artık yedeğini aldığınız alt anahtarları geri yükleyerek ana anahtarınızı içermeyen kullanım anahtarınızı tamamlayabilirsiniz. + +`gpg --import [yedek dizini]` + +GPG parolanızı soracak ve doğru girmeniz ardından alt anahtarları ekleyecektir. + +``` +gpg: anahtar 6CD5E60735205895: "Claude Shannon " değişmedi +gpg: To migrate 'secring.gpg', with each smartcard, run: gpg --card-status +gpg: anahtar 6CD5E60735205895: gizli anahtar alındı +gpg: İşlenmiş toplam miktar: 1 +gpg: değişmedi: 1 +gpg: gizli anahtarlar okundu: 1 +gpg: gizli anahtarlar indirildi: 1 +``` + +`gpg --list-secret-keys` ile gizli anahtarlarınızı listelerseniz aşağıdaki gibi ana anahtarınızın sec# şekline işaretli olduğundan eksik olduğunu görebilirsiniz. + +``` + +sec# rsa4096 2020-08-25 [C] [son kullanma tarihi: 2023-08-25] + A09D0D53E6BEEF6A971F64036CD5E60735205895 +uid [ son derece ] Claude Shannon +ssb rsa4096 2020-08-25 [E] [son kullanma tarihi: 2021-08-25] +ssb rsa4096 2020-08-25 [S] [son kullanma tarihi: 2021-08-25] +ssb rsa4096 2020-08-25 [A] [son kullanma tarihi: 2021-08-25] + +``` + +Artık cihazlarınızda kullanacağınız sıyrılmış alt anahtarlarınızı dışarı çıkarıp aktarabilirsiniz. + +`gpg --export-secret-keys --armor [anahtar ID veye e-posta]` + +## Anahtarları akıllı karta aktarmak + +Ürettiğiniz anahtarlarınızı daha güvenli kullanmak isterseniz bir Gnupg akıllı karta veya Yubikey gibi bir donanıma aktarabilirsiniz. Bu konuda yardıma ihtiyaç duyarsanız rehberlerimize danışabilirsiniz. + +[Yubikey rehberi yazarak katkıda bulunabilirsiniz] + +[GnuPG akıllı kart rehberi yazarak katkıda bulunabilirsiniz] + +## Kaynaklar + +- [Getting Started with GNU Privacy Guard ](https://spin.atomicobject.com/2013/09/25/gpg-gnu-privacy-guard/) + +- [GPG Tutorial](https://futureboy.us/pgp.html#GettingStarted) + +- [EFF GPG Guide](https://ssd.eff.org/en/module/how-use-pgp-linux) diff --git a/src/yazisma_guvenligi/gpg/ucbirim_gpg.md b/src/yazisma_guvenligi/gpg/ucbirim_gpg.md new file mode 100644 index 0000000..891f60a --- /dev/null +++ b/src/yazisma_guvenligi/gpg/ucbirim_gpg.md @@ -0,0 +1,97 @@ +## GPG ile uçbirimde işlemler + +GPG temel olarak komut satırında çalışan bir yazılımdır. Bu bakımdan grafik arayüzler tarafından sunulmayan pek çok faydalı özelliği uçbirim aracılığı ile kullanmak ve kimi zaman grafik arayüzlerin sunduğu işlevleri daha kolay yerine getirmek mümkündür. Pek çok kullanıcı için uçbirim korkutucu olabilmektedir. Lakin her Gnu/Linux cihazda bir uçbirim ve GPG kurulu olduğu düşünüldüğünde GPG'nin evrensel kullanımı uçbirimde toplanmaktadır. + +GPG'nin man sayfası çok kalabalıktır. Bu rehberde son kullanıcıya lazım olabilecek temel ve orta seviyedeki işlevler ipuçları ile birlikte sunulacaktır. Şayet GPG ile ilgili daha çok şey öğrenmek istenirse aşağıdaki komut ile man sayfasının okunması veya pratik olarak yardım sayfasının çağrılması mümkündür. + +`man gpg` ve `gpg --help` + +## Şifreleme ve İmzalama + +[Uçbirim aracılığı ile e-posta](yazilim_guvenligi/ucbirim_eposta.md) şifreleme, imzalama ve deşifre rehberine bu başlıktaki detaylar için başvurulabilir. + +## Simetrik şifreleme + +GPG sadece RSA ve ECC gibi asimetrik şifreleme algoritmalarını değil aynı zamanda AES gibi simetrik şifreleme imkanlarını da sunmaktadır. Bu şifreleme yönteminde bir parola hem şifreleme hem deşifre için kullanıldığından özel bir anahtar yönetimine ihtiyaç duyulmaz ve kimi zaman kullanımı tercih edilebilir. + +Bir mesajı veya dosyayı simetrik olarak şifrelemek için aşağıdaki komutları kullanabilirsiniz: + +`gpg --symmetric --armor` veya `gpg -ca` + +Bir dosyayı şifrelemek isterseniz aşağıdaki komutu girebilirsiniz. GPG şifrelenmiş dosyayı .asc uzantısı ile aynı yere kaydedecektir: + +`gpg --symmetric --armor [dosya dizini]` + +Şifrelediğiniz veriyi aynı zamanda bir anahtarınız var ise imzalayarak sizden geldiğine ve bütünlüğüne kanıt oluşturabilirsiniz. + +`gpg --symmetric --sign --armor` veya `gpg -csa` + +## İmzalama + +GPG birden fazla şekilde imzalama yapabilmektedir. Her imzalama tipi iletim ve gereken karakter bakımından farklılık arz ettiğinden kullanıcının beklentisine göre tercih yapması mümkündür. + +### Clear-sign + +Clear-sign veya açık imza imzalanan içeriğin okunabilmesine imkan sağlamaktadır. Bu sayede mesajınız gözle okunabilirken dileyen biri altında bulunan imza bloğu ile birlikte mesajınızın doğruluğunu denetleyebilmektedir. Bu şekilde bir mesaja imza atmak isterseniz aşağıdaki komutu girip mesajınızı yazın ve `ctrl + D` komutu ile sonlandırın. + +`gpg --clear-sign` + +### Embeded-sign + +Embeded veya gömülü imza, mesaj ve imza bloğunun tek bir base64 bloğunda kodlanması ile ortaya çıkar. Bu mesaj şifreli olmamakla birlikte okunabilmesi için yine de çözülmesi gereklidir. Bu şekilde bir imza elde etmek için aşağıdaki komutu girip mesajınızı yazın ve `ctrl + D` komutu ile sonlandırın. + +`gpg --sign --armor` + +### Detached-sign + +Detached veya ayrık imza, imzalanan veri ile imza bloğunun ayrı dosyalar olması anlamına gelmektedir. Çoğunlukla dijital verilerin doğruluğunu göstermek için kullanır. Dosyanın yanında aynı isimde .sig uzantılı imza dosyası da gelir. Bu tip bir imza oluşturmak için aşağıdaki komutu kullanabilirsiniz. GPG imza dosyasını imzalanan dosyanın yanına .sig uzantısı ile ekleyecektir. + +`gpg --detached-sign [dosya dizini]` + +Şayet imzayı metin olarak aktarmayı düşünüyorsanız `--armor` paramteresini ekleyerek base64 kodlama ile aynı işlemi gerçekleştirebilirsiniz. + +`gpg --detached-sign --armor [dosya dizini]` + +## İmza denetleme + +GPG ile imzalanmış bir metni doğrulamak için aşağıdaki komutu kullanıp mesajı yapıştırdıktan sonra `ctrl + D` komutu ile işlemi tamamlayabilirsiniz. + +`gpg --verify` + +Şayet bir dosyaya ait .sig uzantlı imzayı denetleyecekseniz ve dosya ile imza dosyasının adı aynı ise aşağıdaki komutu kullanabilirsiniz. + +`gpg --verify [imza dosyası.sig]` + +## Umumi anahtarları listeleme + +GPG kullanımı iletişime geçeceğiniz kişilerin umumi anahtarlarını da bulundurmanızı gerektirmekte. Bu anahtarlar bir firhist gibi cihazınızda tutulmaktadır. Bunları listelemek için aşağıdaki komutu kullanabilirsiniz. + +`gpg --list-keys` + +Anahtarlığınızdaki belirli bir anahtarı arıyor iseniz aşağıdaki şekilde arama yapabilirsiniz. + +`gpg --list-keys [anahtar ID veya e-posta]` + +## Özel anahtarları listeleme + +Şayet size ait özel anahtarlarınızı listelemek isterseniz aşağıdaki komutu kullanabilirsiniz. + +`gpg --list-secret-keys` + +## İmzaları listeleme + +## Anahtar imzalarını kontrol etme + +## Umumi anahtar dışa çıkartma + +## Sunucuda anahtar arama + +## Sunucuya anahtar gönderme + +## Anahtarları güncelleme + +## Anahtar içe aktarma + +## Anahtar düzenleme + +## Anahtar imzalama diff --git a/src/yazisma_guvenligi/mailvelope.md b/src/yazisma_guvenligi/mailvelope.md new file mode 100644 index 0000000..e69de29 diff --git a/src/yazisma_guvenligi/thunderbird_enigmail.md b/src/yazisma_guvenligi/thunderbird_enigmail.md new file mode 100644 index 0000000..a4cf8e5 --- /dev/null +++ b/src/yazisma_guvenligi/thunderbird_enigmail.md @@ -0,0 +1,3 @@ +# GnuPG ile e-posta şifreleme + +## Bu rehber, Thunderbird 78'in GnuPG desteği kararlı hale geldiğinde tekrardan yazılacaktır. diff --git a/src/yazisma_guvenligi/ucbirim_eposta.md b/src/yazisma_guvenligi/ucbirim_eposta.md new file mode 100644 index 0000000..a9f69b0 --- /dev/null +++ b/src/yazisma_guvenligi/ucbirim_eposta.md @@ -0,0 +1,114 @@ +# Uçbirim ile E-posta Şifrelemek + +Şayet oldschool yöntemi benimsemek isterseniz e-posta şifrelemek adına, bu işlemi terminalden yapmaktan daha iyi bir yol bulamazsınız! GPG ilk ortaya çıktığında kullanımı terminalden bir mesajı şifrelemek göndermek üzere e-posta istemcisine yapıştırmak ve tekrar aynı yoldan deşifre etmekten geçiyordu. Günümüzde [Thunderbirg/Enigmail](thunderbird_enigmail.md) gibi yazışmayı çok kolaylaştıran arayüzler geliştirilmiş olsa da terminalden bu işlemi gerçekleştirebilmek hala temel düzeyde faydalı olabilmektedir. + +## E-postanızı yazın + +Öncelikle e-postanızı daha rahat ettiğiniz bir yerde yazmak isteyebilirsiniz. Bunun için tercihiniz olan bir metin editörünü seçebilir veya bir kelime istemci de kullanabilirsiniz. GPG sadece salt metin olarak çalışacağından formatlama detaylarının mesajınıza aktarılmayacağını hatırlatmalıyız. + +## Bir uçbirim açın + +Kullandığınız Gnu/Linux dağıtımında bulunan bir uçbirim penceresini, GPG anahtarınızın sahibi olan kullanıcı olarak açın. Bunun için grafik arayüzden faydalanabilir veya aşağıdaki tuş kombinasyonunu kullanabilirsiniz. + +`ctrl + alt + t` + +## GPG ile mesajınızı şifreleyin ve imzalayın + +Aşağıdaki komut ile GPG'yi mesaj şifreleme aşamasına geçirin. + +`gpg --encrypt --armour` veya `gpg -ea` + +Tercihen mesajınızı imzalamayı da seçebilirsiniz. Bu hem alıcınızın mesajın sizden geldiği konusunda emin olmasını sağlar hem de mesajın bütünlüğünü garanti eder. + +`gpg --encrypt --sign --armour` veya `gpg -esa` + +Mesajınızı sadece imzalayarak sizden geldiğini de kanıtlamak isteyebilirsiniz. Bu imkan GPG anahtarı olmayan birinin dahi mesajın size ait olduğunu doğrulamasına imkan sağlar. + +`gpg --clear-sign` + +Şayet sisteminizde varsayılan olan bir anahtar var ise GPG imzalama için kendiliğinden bu anahtarı kullanacaktır. Şayet sisteminizde olan başka bir anahtarı kullanmak isterseniz aşağıdaki ek komut ile anahtarınızı belirtin. + +`gpg --clear-sign -u (anahtar ID veya e-posta)` + +Dilediğiniz komutu çalıştırdığınızda aşağıdaki şekilde GPG sizden alıcının e-posta adresini veya kullanılacak anahtarın ID'sini isteyecektir. + +``` +gpg: using "xxxxxxxxxxxxxxxx" as default secret key for signing +You did not specify a user ID. (you may use "-r") + +Current recipients: + +Enter the user ID. End with an empty line: + +``` +Alıcınızın kullandığı anahtarda belirttiği e-posta adresini girip "enter" tuşuna basın ve başka bir alıcı yok ise tekrar gelen ekrande bir adres girmeden "enter" tuşlayın. + +Terminal sizi yanıp sönen imleci ile karşılayacaktır. Buraya mesajınızı yazın veya kopyalayın. Her şeyin yerinde göründüğünü düşündüğünüzde aşağıdaki tuş kombinasyonu ile işlemi tamamlayın. + +`ctrl + D` + +GPG size mesajınızın şifreli çıktısını verecektir. + +``` +-----BEGIN PGP MESSAGE----- + +hQIMA2YZNFxt9JB3AQ/7BW72H19P3yYliDyn5DOjxrTaQ0DZGLI3iRMXIb11JWEC +rCRvN8pokKeSa/8jcWFodWmsbj1hz5apFQho54HUuTRu3Q91QNgKOEXphiHGeEG8 +Io1EYV/xzeH0v/NzJsQprqeEcr1hdbN3IfDkVV6jE2XZckZ6plOFM+Ubxe2UhXiE +EFx8x6p6mO8tNESy/TBGlIk/6hhrXISMqSz1JKdsbiyUTYGzmcM0lz7UzidMtjhJ +npb8b0nRSfBNufavqFRNhqedkYc9+dDvILs8VH2KVSPJjtSrUOPuKgcBWcLDMFl7 +y94MaZwh3aIPOlEyVId8iCLO1XyzYRN8MWyyvsK7Z5O+Fs8sfmGTSBiKfzKP+7aU +Ine1cUjPXvh3DDHm9qPbSRGr/nr5W+Pt5TvEzNs2hiS4LuM9kQW2+FZYCMJgJXaE +DeRyx8RrPUJG8LnazZ4yFVNfQq8CBxcR+xjKDbtPtgiI9u2Cvoo/H1rQzOS+1/nQ +kq4xmdjrYTHLr0VXWWU+Zjy/qXNHYAvkwKXNwqJ58W+eQBQwc2GeYW79fo+cc2DV +7zv078sbodikV1uda7jQvHuDnSUa8nJPpoSjTWb+Fv/YAesQjgJlDjsqm/K3ElUq +UvcJOSf31P2PytfUxH8saI/sRe0ciX2PFSvhLBKygLtxzBOOkzFqh6UO9JzVv1rS +6QFIjHJTZebjytaMF/iGJnL99F7kaLUzdBJh7zpkT3Blj3Bldk2zo7lZOoJxHTGI +kfIJRWYPkP1qStTqu6EKr8NaJkbtM2SZ7uZgqXIxX+ncX4bLXsTj63y3jytVO/Q8 +yiMJva+8nK6mwu1dqN8zsPHwaaggH16JXlBwcwtdB9mze7OAmRfwirMWwnHtsc8S +zuRUHPdlXbjRuPzBJA8tChl4LvSdqivjlGq7XK+hcfmjmevc7DnaJznSR++Q52O/ +E16lKbQCmf/9c1l19f2HuNWHscxppLaeGqM7+5EFgj13riN08wKiMODBtJyH/vbP +nt3XamHevon7H0rsXse/0TY8BomEaaVlpn85MgGNVA0Zb3UxaZm++bWwBW/Kvpu3 +1LWPWZx4WmJwT+EA4nSF2HwxUWyy6FeQf2z+mfyEnbhxueFnig6f5hfm6OvIR4PJ +5LwHDXgcKCzvNUGFLLFf5ZR/6lLJZ7wFvlNvqdvNNTrkhqU5/qw5uJuA1F5jUYf7 +Rl5WGSLBJN0FWryW30SuFlNcQgU0xxyKwPSnrPRg3mPMumQ1LaOPO8SCzogklQM6 +jdktewFEJb5A4LR+Fh/MpwP5AiPwpl+CAMe3jZSiOhJzBjun/UJS2M8s1hIVTzSd +gLa/ewTVc6jkyGDmUpQMOQTumm7IIyX0HBhZBYtDBxq9lPStrCpNkgmPIblHLwtX +95krDh2WORbuYxlzlE8/R6KfhqCxPMMn4+eS401zeSv3Z/u+3ImHXZTAz/qf+rcl +vn7ufVp6IyzMHmQ742l1tpaX3PRq0V+AprSbupodAACzf+zrkJqiC08O6Bz7cX0c +WtrjYbxxnjdYPsuV3HGS380HSrdlp8LhMAHDpha5gT7Ge7FHdCk= +=ezWd +-----END PGP MESSAGE----- + +``` + +Bu noktadan sonra soz konusu çıktıyı alıp dilerseniz e-posta ile dilerseniz mektup ile mesajın şifrelendiği kişiye gönderebilirsiniz. + +**BONUS:** Şayet mesajınızı metin olarak yazdıysanız **pro** şekilde aşağıdaki komutla da doğrudan şifreleyebilirsiniz: + +`cat [metin yolu] | gpg -esa` + +Şayet mesajınızı Libreoffice ile yazdıysanız daha ilginç şekilde aşağıdaki komut ile doğrudan mesajınızı metin olarak şifreleyebilirsiniz: + +`soffice --cat [belge yolu] | gpg -esa` + +## Mesajınızı deşifre edin + +Yukarıdaki gibi bir mesajın alıcısı iseniz Terminalden bu mesajı deşifre etmeniz çok kolay. Tek yapmanız gereken aşağıdaki komutu girip ardından mesajı yapıştırmak. + +`gpg --decrypt` veya `gpg -d` + +Mesajı yapıştırdıktan sonra `ctrl + D` ile işlemi sonlandırabilirsiniz. GPG size parolanızı soracak ve ardından mesajınızı gösterecektir. + +``` +gpg: encrypted with 4096-bit RSA key, ID 6619345C6DF49077, created 2016-10-26 + "Alper Atmaca " +entropi ne süpergpg: Signature made Pzt 24 Ağu 2020 22:41:49 +03 +gpg: using RSA key 8F2E9434DDFF4613F6829D8B471A839AB4DD8E6D +gpg: Good signature from "Alper Atmaca " [ultimate] +gpg: aka "Alper Atmaca " [ultimate] +gpg: aka "Alper Atmaca " [ultimate] +gpg: aka "Alper Atmaca " [ultimate] +gpg: aka "Alper Atmaca (alperatmaca@gmail.com) " [ultimate] + +```