İçindekiler
İmzalı denetim izi, imzayı üreten anahtar kadar güçlüdür. Anahtar yanlış yerde duruyorsa zincir teknik olarak kusursuz çalışır ama hiçbir şey kanıtlamaz. Bu yazı, anahtarın nerede durması gerektiğini ve kurumların bu konuda yaptığı üç tipik hatayı anlatıyor.
Anahtar Neden Veritabanında Duramaz
İmzalı zincirin verdiği güvence tek bir cümleyle özetlenir: veritabanına tam yetkiyle erişen biri zinciri yeniden hesaplayamaz. Bu cümle yalnızca anahtar veritabanının dışındaysa doğrudur.
Anahtar bir tabloda tutuluyorsa, zinciri değiştirmek isteyen kişi zaten oradadır. Aynı şekilde, özet formülü veritabanının içinde bir fonksiyon ya da tetikleyici olarak yazılıysa, formülü okuyan onu yeniden çalıştırabilir. Bu iki durumda da elinizde bir hash zinciri vardır ama kurcalama karşısında hiçbir direnci yoktur.
Doğru yer, uygulamanın yapılandırma katmanıdır: ortam değişkeni, işletim sistemi seviyesinde korunan bir yapılandırma deposu ya da kurumsal bir anahtar kasası. Kriter basittir; veritabanı yöneticisinin olağan yetkileriyle ulaşabildiği hiçbir yer uygun değildir.
Anahtarsız zincir bir zincir değildir
Yalnızca SHA-256 ile kurulan, anahtarsız bir zincir kimseyi durdurmaz: formül herkesçe bilinir, kayıtları değiştiren kişi zinciri kolayca yeniden hesaplar. Anahtarlı özet, formülü bilmenin yetmediği tek yapıdır. Kurumların en sık yaptığı yanlış, anahtarsız bir zinciri kurcalamaya karşı korumalı sanmaktır.
İki Farklı Anahtar, İki Farklı İş
Kanıt üreten bir sistemde iki ayrı anahtar bulunur ve bunları karıştırmak yaygın bir tasarım hatasıdır.
- Denetim zinciri anahtarı. Simetriktir: imzalayan da doğrulayan da aynı anahtarı bilir. Bu yüzden hiç kimseye verilemez, denetçiye de. Zincir doğrulaması bu yüzden ürünün içinden çalışır.
- Kanıt paketi imza anahtarı. Asimetriktir: özel kısım kurumda kalır, açık kısım pakete konur. Denetçi imzayı kendi makinesinde doğrular ve kurumdan hiçbir sır istemez.
Bu ayrım, denetçinin neyi bağımsız yapabileceğini belirler. Zincirin kendi içinde tutarlı olduğunu ürün gösterir; paketin değişmediğini ve kimden geldiğini denetçi kendisi gösterir. Üçüncü bir kontrol ise hiçbir anahtar gerektirmez: daha önce teslim edilmiş bir çapadaki değerle bugünkü kaydın karşılaştırılması.
Anahtara Kim Erişebilmeli
Cevap, mümkün olan en az sayıda kişi ve bu kişilerin veritabanı yöneticisi olmamasıdır. Buradaki asıl mesele bir kişiyi güvenilmez saymak değil, yetkilerin kesişimini engellemektir.
Bir kişi hem kayıtları değiştirebiliyor hem de anahtara erişebiliyorsa, denetim izi o kişi için bir kontrol değildir. Denetçinin sorduğu soru da tam olarak budur: bu iki yetki aynı kişide birleşiyor mu?
Pratikte üç ayrım işe yarar: anahtar sunucu yöneticisinde, veri veritabanı yöneticisinde, kanıt üretme yetkisi ise ayrı bir izinle üçüncü bir rolde durur. Küçük ekiplerde bu kesişim tamamen engellenemeyebilir; o zaman doğru davranış, kesişimi bir bulgu olarak kabul edip telafi edici kontrol tanımlamaktır. Çapaların dışarı teslimi tam olarak böyle bir telafi edici kontroldür.
Rotasyon: En Sık Yapılan Hata
Anahtar politikaları genellikle periyodik rotasyon ister. Denetim zincirinde rotasyonun bir tuzağı vardır: anahtarı değiştirdiğinizde eski kayıtlar eski anahtarla imzalanmıştır ve yeni anahtarla doğrulanamaz.
Naif çözüm eski kayıtları yeni anahtarla yeniden imzalamaktır ve bu, zincirin bütün anlamını yok eder: geçmişi yeniden hesaplama yeteneğini kurumsal bir prosedür haline getirmiş olursunuz.
Doğru çözüm bir anahtar halkasıdır. Her kayıt, hangi anahtarla imzalandığını gösteren bir kimlik taşır. İmza her zaman aktif anahtarla atılır, doğrulama ise halkadaki herhangi bir anahtarla yapılabilir. Eski anahtarlar silinmez, yalnızca imzalamak için kullanılmaz. Aynı desen kanıt paketi imzasında da geçerlidir: rotasyondan sonra üretilen bir paket, içinde eski kayıtların kullandığı anahtarları da taşımalıdır, yoksa eski girdiler doğrulanamaz görünür.
Anahtar Kaybolursa
Bu senaryo konuşulmadığı için sürpriz olur. Denetim zinciri anahtarı kaybedilirse, o anahtarla imzalanmış kayıtlar bir daha doğrulanamaz. Kayıtlar okunmaya devam eder, içerikleri kaybolmaz; ama "bu kayıtlar değişmemiş" cümlesini artık kimse söyleyemez.
Bu yüzden anahtar yedeği, kurumun felaket kurtarma planının bir parçası olmalıdır ve yedeğin kendisi de erişim kontrolüne tabidir. Yedek herkesin ulaşabildiği bir paylaşımda duruyorsa anahtarı korumuş sayılmazsınız.
Burada da dışarı teslim edilmiş çapalar bir emniyet ağıdır. Anahtar kaybolsa bile, denetçinin elindeki eski çapayla bugünkü kaydın özeti karşılaştırılabilir. O karşılaştırma anahtar gerektirmez ve kurum anahtarını kaybettiği halde geçmişin bozulmadığını gösterebilir.
Denetçiye Gösterilecek Kontrol Listesi
Bu altı sorunun yazılı cevabı varsa, anahtar yönetimi konusu denetimde bir bulgu üretmez.
- Anahtar nerede saklanıyor ve veritabanı yöneticisi oraya ulaşabiliyor mu?
- Kaç kişi erişebiliyor ve bu kişiler kim?
- Anahtar ne zaman ve nasıl değiştirilecek?
- Rotasyondan sonra eski kayıtlar nasıl doğrulanacak?
- Anahtarın yedeği nerede ve o yedeğe kim ulaşıyor?
- Anahtara erişebilenle kayıtları değiştirebilen aynı kişi mi? Değilse nasıl ayrıldığı gösterilebiliyor mu?
Son soru en önemlisidir ve çoğu kurumun cevabı yoktur. Cevabınız "hayır, ayrı" ise bunu gösteren bir kayıt da olmalıdır. Yetki listesi bir ekran görüntüsü değil, değişiklikleri izlenen bir kayıt olduğunda o cevap kanıta dönüşür.
Sık Sorulan Sorular
Denetim zinciri anahtarını denetçiye vermeli miyiz?
Hayır. O anahtar simetriktir; bilen herkes imza üretebilir. Denetçiye verilmesi, denetçiyi de kayıt üretebilecek konuma sokar ve bağımsızlığı bozar. Denetçinin ihtiyacı olan bağımsızlık, anahtar gerektirmeyen kontrollerle sağlanır: kanıt paketinin asimetrik imzası ve daha önce teslim edilmiş çapayla karşılaştırma.
Kurumsal anahtar kasası kullanmak zorunda mıyız?
Zorunlu değil. Kriter aracın markası değil, anahtarın veritabanına erişebilen kişilerin ulaşamayacağı bir yerde durmasıdır. İşletim sistemi seviyesinde korunan bir yapılandırma deposu da bunu sağlar. Kasa varsa kullanmak elbette daha iyidir; erişim kaydı ve rotasyon disiplinini beraberinde getirir.
Anahtar değiştiğinde eski kanıt dosyaları geçersiz mi olur?
Anahtar halkası doğru kurulduysa hayır. Her kayıt hangi anahtarla imzalandığını taşır ve doğrulama halkadaki ilgili anahtarla yapılır. Rotasyon sonrası üretilen bir paketin, içindeki eski girdilerin kullandığı açık anahtarları da taşıması gerekir; taşımıyorsa eski girdiler doğrulanamaz görünür ve bu, denetçiye kurcalama gibi görünebilir.
Sunucu bağlantı parolaları da aynı anahtarla mı korunuyor?
Hayır ve olmamalıdır. Farklı işler farklı anahtar tipleri ister. Kullanıcı parolaları geri çevrilmesi gerekmediği için şifrelenmez, özetlenir. Sunucu bağlantı parolaları kullanılabilmek için geri çözülmelidir, bu yüzden hem gizlilik hem bütünlük veren bir kipte şifrelenir. Denetim zinciri ise anahtarlı bir özetle imzalanır. Üç iş, üç ayrı yöntem ve ayrı anahtarlar.
Anahtar yerleşiminizi gözden geçirelim
Altı soruyu birlikte geçelim ve rotasyon planınızı çıkaralım.
Demo Planlayın →