Her şeyden önce kendime bir güvenlik uzmanı olarak bahsetmiyorum, ama bu soruyu cevaplamak zorunda kaldım. Bulduğum şey beni biraz şaşırttı: Tamamen güvenli bir sistem diye bir şey yoktur . Tamamen güvenli bir sistemin sunucuların kapalı olduğu bir sistem olacağını sanıyorum :)
O sırada benimle birlikte çalışan biri çıtayı davetsiz misafirlere yükseltmek için güvenli bir sistem tasarlamayı açıkladı . Böylece, her bir güvenlik katmanı bir saldırı fırsatını azaltır.
Örneğin, özel anahtarı tamamen güvenceye alsanız bile, sistem tamamen güvenli değildir . Ancak, güvenlik algoritmalarını doğru kullanmak ve yamalar ile güncel olmak çıtayı yükseltiyor. Ancak, evet, yeterince güçlü ve yeterince zaman verilen süper bir bilgisayar şifrelemeyi kırabilir. Bütün bunların anlaşıldığından eminim, bu yüzden soruyu geri alacağım.
Soru açıktır, bu nedenle ilk önce puanlarınızın her birini ele almaya çalışacağım:
Anahtarın dosya sisteminin güvenlik modeli tarafından korunduğunu söyleyin; peki ya (kötü niyetli) süpervizörler veya böyle bir sadakat sağlamayan platformlar?
Evet, Windows Anahtar Deposu veya şifreli bir TLS özel anahtarı gibi bir şey kullanıyorsanız , şifreyi (veya erişimi olan) özel anahtarlara sahip olan kullanıcılara maruz kalırsınız. Ancak çıtayı yükselteceği konusunda hemfikir olacaksınız. Dosya sistemi ACL'leri (eğer doğru şekilde uygulanırsa) oldukça iyi bir koruma sağlar. Ve şahsen veteriner kullanma ve süper kullanıcılarınızı tanıma konumundasınız.
Veya anahtar, yazılım ikili dosyalarına kodlanmıştır, ancak her zaman ayrıştırılabilir ve açık kaynaklı yazılım veya yorumlanmış kod hakkında ne olabilir?
Evet, ikili kodlarda kodlanmış anahtarlar gördüm. Yine, bu çıtayı biraz yükseltiyor. Bu sisteme saldıran birisi (eğer Java ise), Java'nın bayt kodu (vb.) Ürettiğini ve onu nasıl okuduğunu çözeceğinizi anlamalıdır. Doğrudan makine koduna yazan bir dil kullanıyorsanız, bunun çıtayı biraz daha yükseğe çıkardığını görebilirsiniz. Bu ideal bir güvenlik çözümü değildir, ancak bir düzeyde koruma sağlayabilir.
Anahtar üretilirse, böyle bir algoritmanın deterministik olması gerekir (muhtemelen) ve aynı sorun tohum için de geçerlidir.
Evet, temelde algoritma özel anahtarı oluşturmak için özel anahtar bilgisi haline gelir. Bu yüzden şimdi korunmaya ihtiyacı var.
Bu yüzden, herhangi bir güvenlik politikası olan kilit yönetim ile ilgili temel bir sorun belirlediğinizi düşünüyorum . Kilit bir yönetim politikasına sahip olmak, güvenli bir sistem sağlamak için çok önemlidir. Ve bu oldukça geniş bir konudur .
Öyleyse, soru şu ki, sisteminizin (ve dolayısıyla özel anahtarın) ne kadar güvenli olması gerekiyor? Sisteminizde, çubuğun kaldırılması gerekiyor mu?
Şimdi, ödemeyi kabul ederseniz, orada buna çözüm üreten bazı insanlar var. Bir HSM (Donanım Güvenlik Modülü) kullanarak sona erdi . Temel olarak donanımda bir anahtar içeren kurcalamaya karşı korumalı bir sunucudur. Bu anahtar daha sonra şifreleme için kullanılan diğer anahtarları oluşturmak için kullanılabilir. Buradaki fikir (doğru yapılandırılmışsa), anahtarın HSM'den asla çıkmamasıdır . HSM'ler çok pahalı . Ancak bazı işletmelerde (kredi kartı verilerinin korunması söylenebilir), ihlalin maliyeti daha yüksektir. Yani, bir denge var.
Birçok HSM, bakım ve özelliklerin yönetiminden gelen anahtar kartları kullanır. Bir anahtarı değiştirmek için bir anahtar kart çekirdeğinin (9 dan 5'inin söyleyebilmesi) fiziksel olarak sunucuya yerleştirilmesi gerekir. Bu yüzden, çıtayı yalnızca bir süper kullanıcı çekirdeği toplanırsa bir ihlal sağlayarak çıtayı oldukça yükseltir.
Bir HSM'ye benzer özellikler sağlayan yazılım çözümleri olabilir ama bunların ne olduğunu bilmiyorum.
Bunun sadece soruyu cevaplamanın bir yolunu olduğunu biliyorum, ama umarım bu yardımcı olur.