[Gelistirici] Açık anahtar dağıtımı

Faik Uygur faik at pardus.org.tr
30 Oca 2007 Sal 15:17:28 EET


Merhaba,

Bu konuda Debian neler yapıyor diye biraz araştırdım. Halen testing ve 
unstable branchlarında apt-secure testleri ve geliştirme işine devam 
ediyorlar. İlgili bir dokümanda kullanılacak yapı güzel bir şekilde 
anlatılmış. [1] Konuştuğumuz çoğu şey ve endişeler burada cevaplanmış 
aslında.

Çok kısa Debian'da ne yapıldığını özetleyeyim:

stable branch arşivi altında bir Release [2] dosyası mevcut. Bu dosya contrib, 
main, non-free depoları altında ve her birinin kendi mimarisinin altındaki 
Packages [3] isimli dosyaların md5 bilgilerini tutuyor. Packages ise o depo 
ve o mimari altındaki tüm paketlerin md5,sha1sum bilgilerini. Tüm bu 
bilgilere Release ile gidildiği için Release.gpg isminde bir dosyada o arşive 
ait bu bilgilerin doğruluğu Release.gpg imzası ile doğrulanıyor.

PiSi'ce baktığımızda pisi-index.xml.bz2 ve pisi-index.xml.bz2.sig şeklinde 
düşünebiliriz. Şu an pisi içerisinde aynen bu yapı mevcut. Fakat anahtar 
yönetim mekanizması eksik. Sorunumuz bunu imzalayacak gizli anahtarın, 
açık anahtar çiftinin dağıtımıydı.

Bu dokümandan çıkan ve düşünmediğimiz bir konu da, depo anahtar çiftinin 
senede bir yenilenmesi işi. Debian her sene bunu gerçekleştiriyor. Hatta ilk 
geçiş (2005-2006 sanırım) apt'daki bir hata sebebiyle başarısız olmuş. Tüm 
paketler güvensiz görünmüş. Bu da düşünebileceğimiz bir şey.

Debian sertifika filan kullanmıyor. Bu bizim kullanmayacağımız anlamına 
gelmiyor tabi ama anladığım sertifika'nın alımı, gerektiğinde yenilenmesi hep 
kendi içinde bir takım sıkıntıları da beraberinde getiriyor. Bu konuda kimse 
de bir şey söylemediğine göre böyle bir şey olmayacak diyebiliriz.

Nasıl yapacağımıza gelince:

Bu iş öncelikle bir güven ağı (web-of-trust) işi. Güven'in bir yerde başlaması 
gerekiyor.  Buna göre anahtar çiftini depo sahibi oluşturacak. Bunun yanında 
depo sahibi'nin de ayrıca kendi anahtar çifti olacak. Kendi anahtarı ile 
oluşturduğu bu açık depo anahtarını imzalayacak. Gerekiyorsa depo'dan 
sorumlu birden fazla geliştirici bu anahtarı imzalayabilir.

İmzalanan bu açık anahtar hem web sunucularımızda ilgili herhangi bir yerde, 
hem de açık anahtarın kendi paketinde bulunacak. CD dağıtımları içerisinde 
öntanımlı gelecek olan bu anahtar paket ile kurulacak. Ayrıca yıllık anahtar 
değişimi yapacak isek, o depoya ait, bu paketin güncellenmesi ile 
gerçekleştirilecek. 

Anahtar aynı zamanda web sunucunda da olacak. pisi'yi anahtar yönetim işine 
hiç karıştırmak istemiyorum. pisi-cli kullanıcısı gpg ile açık anahtarı 
ekleyebilir. package-manager kullanıcısı için ise depo yönetimi ekranında 
depo adı, depo adresi yanında bir de depo açık anahtarı adresi olacak. Depo 
ekleneceği zaman package-manager bu anahtar ile ilgili bir uyarı mesajı 
göstererek: bu depo'ya ait şu anahtar şu şu insanlar tarafından 
imzalanmıştır. Bu anahtarı güvenilir kabul ediyor musunuz? Güveniyor musunuz? 
Ekleyeyim mi? gibi bir takım sorular soracak. Paranoyak olan kullanıcı gidip 
bu anahtar hakkında araştırma yapabilir. Aynı şekilde gpg ile konsol 
kullanıcısı anahtarı eklemeden önce anahtarı imzalayanları ve anahtarın 
doğruluğunu araştırabilir. Her sene güncellenen açık anahtar, bir önceki 
senenin açık anahtarı ile de imzalanıyor. Bu da hoş bir şey. 

Eksikler, yorumlar, öneriler?

- Faik

[1] http://wiki.debian.org/SecureApt
[2] ftp://ftp.linux.org.tr/pub/debian/dists/stable/Release
[3] ftp://ftp.linux.org.tr/pub/debian/dists/stable/main/binary-i386/Packages



Gelistirici mesaj listesiyle ilgili daha fazla bilgi