HSM Nasıl Seçilmeli?

HSM’in tanımı ve temel özellikleri ile ilgili kısmı bir önceki yazımda anlatmıştım. Bu yazıda, teknik olarak, HSM’leri hangi maddeler altında değerlendirmeliyiz sorusunu cevaplamaya çalışacağız.

Öncelikle burada, herhangi bir HSM markasını (yerli olmayanları) isim olarak zikretmeyeceğim. Çünkü her ihtiyaca göre farklı ürünler var. Günlük imza/imza doğrulama ihtiyacınıza göre HSM seçiminiz değişebilir. Bu durumda en hızlısını ve pahalısını almanız gerekmeyebilir. HSM cihazlarının belirli bir kullanım ömrü vardır. HSM’ler hassas cihazlar olduklarından dolayı bu ömrü tamamlamaya yakın değiştirilmeleri gerekir. Bu konudaki herhangi bir ihmalkarlık anahtarınızın silinmesine kadar gidebilir. Tabi bu noktada yedek alma konusu da önem arz etmektedir.

Her HSM’de olması gereken özelliklere bakalım:

Quorum yani m-of-n yani, n tane kişiden m kişinin bulunması durumunda yönetim işlerinin gerçekleştirilebilmesine olanak sağlayan güvenlik konfigürasyonu HSM tarafından desteklenmelidir.

  • M-of-n meselesi sadece 1F doğrulamayı değil aynı zamanda 2F’i de desteklemelidir. Yani kullanıcı doğrulanırken sadece kullanıcı adı/parola değil aynı zamanda smart card’da desteklenmelidir (veya varsa başka bir kimlik doğrulama mekanizması da olur).
  • HSM’lerin sahip olması gereken temel özelliklerden bir tanesi de hiç bir şekilde dışarı şifrelenmemiş anahtar vermemeleridir. Hatta hassas hiçbir bilgi dışarı çıkmamalıdır.
  • Yukarıdaki temel özelliklerle ilgili gerekler zaten FIPS 140-2 sertifikasyon sürecinde mündemiçtir. Bir cihazın bu sertifikaya sahip olması demek; geçerli, fakat güncel olmayan bir güvenlik mimarisine sahip olması demektir. Burada seviyeler de önemlidir. Seviye 3 ve üzeri, HSM’ler için tavsiye edilen seviyedir.

Bakılması gereken tüm özelliklere başlıklar halinde değinelim:

Teknik Destek Paketi

  • Algoritma Desteği

HSM’ler genellikle benzer algoritmaları desteklerler fakat geriye dönük bazı algoritma ve mekanizmalar desteklenmeyebilir. Örneğin AES’in CBC modu desteklenirken ECB modu desteklenmeyebilir. Bu gibi durumlarda sisteminizi güncellemeniz önerilir fakat güncelleyemeyecek durumdaysanız mutlaka kullandığınız veya kullanacağınız algoritmanın HSM tarafından desteklendiğinden emin olun.

Burada dikkat edilmesi gereken ikinci bir konu daha var. HSM’ler genellikle iki modda çalışırlar: FIPS ve non-FIPS modu. Eğer kullanacağınız ortamda FIPS’te çalışma zorunluluğu varsa, HSM’in FIPS modunda algoritmanızı desteklediğini kontrol edin. Çünkü non-FIPS modunda desteklenen algoritmalardan bazıları FIPS modunda desteklenmez.

  • PKCS#11 Desteği

PKCS#11 desteği aslında HSM dünyasında de facto standarttır. Burada bakılması gereken esas nokta bu API’nin hangi versiyonunun kullanıldığıdır. Versiyon 2.20’de ECDSA_SHA256 gibi mekanizma destekleri yoktur. ECDSA vardır fakat aynı işlemi yapmak için istemci tarafında daha fazla işlem yapmanız gerekecektir. Bu nedenle güncel bir versiyonu tercih etmeniz geçmişteki çalışmalarınızı desteklerken, gelecekteki çalışmalarınızı da engellemez.

  • Desteklenen Arayüzler

MS CAPI, JCE ve OpenSSL gibi arayüzler, genel olarak HSM’ler tarafından desteklenir. PKCS#11’in yaptığı işi yaparlar. Fazla arayüz desteği olmazsa olmaz değildir fakat fazla olması, uygulama geliştiriciler açısından iyidir. Çünkü PKCS#11, C dilinde çağrılar yapmanızı sağlar. Herkesin C dilini bilmesi beklenemez. O nedenle Java için JCE, Microsoft için CAPI arayüzleri vardır. Ayrıca internette bir çok pkcs11 wrapper vardır. Dil desteği ihtiyaçlarınızı onlardan da karşılayabilirsiniz.

  • Anahtar Saklama Kapasitesi

HSM’lerin anahtar saklama kapasitesi değişiklik göstermektedir. Burada önümüzdeki 7-10 yıl arası kaç tane anahtar üretirim? Saklayacağım hassas varlıkların toplam boyutu nedir? Gibi sorularla kapasite ihtiyacınızı öğrenebilirsiniz. Örneğin; bir sertifikanın boyutu algoritmaya göre değişmekle birlikte yaklaşık 2,5 KB şeklindeyse 1000 sertifika yükleyecekseniz yaklaşık 2,5 MB kapasiteye ihtiyacınız var demektir. HSM’ler genellikle saklama kapasitesi konusunda sorun yaşatmazlar ama kontrol edilmesi gerekir. Bazı HSM’lerde anahtarlar dışarıda tutulur. Bu noktada kapasite sınırı size bağlı olur.

  • Performans

Performans parametrelerini bir önceki yazımda anlatmıştım. O nedenle burada kısa keseceğim. HSM’ler kapasite sınırında sorun yaşamasalar da performans sorunları yaşamaktadırlar. Bu nedenle kaç kullanıcının(server’da olabilir, istemci’de olabilir) sisteme bağlanacağını ne kadar çalışacağını takribi olarak bilmek gerekiyor.

Burada bu özelliği seçerken en hızlısını da almak zorunda değilsiniz. Sadece ihtiyacınız olan hızda HSM’leri tercih edin. Çoğu HSM ithal olduğu için bir binek otomobil fiyatı kadar pahalıdırlar. Bu nedenle yüksek performans ihtiyacınız yoksa ileride ihtiyacım olur diye performans değerlerine kanıp almayın. Performans ihtiyacınızı kendiniz belirleyin. Satıcılar size daha fazla performansa ihtiyacınız olduğunu söylemekte bir sakınca görmeyeceklerdir.

İletişim ve Sistem Desteği

  • Host İşletim Sistemi Desteği

HSM’ler genellikle işletim sistemi desteği konusunda bonkördür. Farklı bir işletim sisteminiz yoksa(Windows serisi ve GNU/Linux dışındaki işletim sistemleri) genellikle desteklerler.

  • Backup Fonksiyonları

Backup durumu HSM’lerde farklı şekillerde yapılmaktadır. Bazı HSM’ler anahtarları dışarıda şifreli şekilde tutar. Bunların yedeğini almak kolaydır. Şifreli dosyayı, kopyalamak yeterlidir. Bazı HSM’ler akıllı karta yedekler. Bu tarz HSM’lerde kendi karta kaydetmek yerine PKCS#11 wrap/unwrap fonksiyonlarını kullanabilirsiniz. Çünkü akıllı karta yedeklemek, kartların dayanıksızlığı yüzünden kabusa dönüşebilir. Bazı HSM’ler size yedekleme dosyası verir.

Bu yöntemlerin hepsi yedekleme sağlar fakat bence iyi yöntemler değiller. Çünkü sertifika veya anahtarı yedeklediğinizde HSM markası farketmeksizin geri dönebilmelisiniz. HSM’ler güvenlik tasarımlarının farklı olması nedeniyle buna izin vermezler. Bunu ancak HSM tipi farketmeksizin wrap/unwrap fonksiyonlarıyla yapabilirsiniz. Buradaki başka bir sorun da anahtar wrappable değilse HSM’in gösterdiği şekilde yedekleme yapmak zorunda olmanız. Bu nedenle mümkün olduğunca kullanıcı dostu yedekleme yaptıran ürünler seçin.

  • Senkronizasyon ve Bulut Uyumluluğu

HSM’lerin ölçeklenebilir olması eskiden bu kadar önemli değildi fakat şimdi önemli hale geldi. Ölçeklemeye ihtiyacınız yoksa ve olmayacaksa bu özellik sizin için bir anlam ifade etmiyor. Kullanmayacağınız bir özellik için asla para vermeyin. Daha rekabetçi ürünlere yönelebilirsiniz.

  • HSM ve Client Arasındaki İletişim Protokolü

HSM’ler genellikle güvenli alanlarla tutulurlar. İnternete bağlı olmazlar. Bunun yerine onu kullanan bir server olur. Server üzerindeki uygulama veya uygulamalar HSM’e bağlanarak iş yaptırır. Burada HSM ve server arasındaki iletişimin güvenliği önemli değilmiş gibi görünse de önemli olduğunu anlamak gerekiyor. Seçim şansınız varsa iletişimi şifreli yapan ve mümkünse TLS 1.2 destekleyen HSM’lerden yana yapın ki iç tehtitler ağınızı dinleyemesin.

  • Çoklu Ethernet Arayüzü Desteği

HSM’lerin üzerinde genelde iki adet ethernet kartı bulunur fakat bunlar aktif/pasif çalışır. Sistemin sağlıklı çalışması için mutlaka iki adet fiziksel ethernet bulunmasına dikkat edilmeli.

Güvenlik

  • Sertifika Seviyeleri

ISO 19790 ve FIPS 140-2 birbirinin muadilidir. CC(Common Criteria) aslında kısıtlı bir alanı test eder. Bu kısıtlı alanı genellikle üretici belirler. CC olması iyidir fakat FIPS veya ISO olması daha iyidir. Bu nedenle güvenlik ihtiyacınıza göre hepsini muteber kabul edebilirsiniz.

  • Kimlik Doğrulama Metodları

HSM’lerdeki kullanıcılarla token kullanıcıları genellikle birbirine karıştırılmaktadır. Aslında ikisi farklı şeylerdir. HSM’ler genellikle rol tabanlı olarak, kurulumda veya daha sonra konfigürasyonla kullanıma açılırlar. Burada yönetici kartları, kullanıcı kartları, backup kartları gibi akıllı kartlarla işlemler yapılır. Burada kartlardan kasıt akıllı kartlardır. 2F kimlik doğrulama için bu kartlara ihtiyacınız vardır. Aslında 2F için farklı yöntemler var fakat HSM üreticileri genellikle bu yolu tercih ediyorlar. Bu akıllı kartlardan yönetici olanı, istenilen slotlara kullanıcıları atar. Bu atama işleminden sonra bir ara yazılım sayesinde güvenli bağlantı kurulur. Artık yazılım arayüzleri kullanılarak HSM’e iş yaptırılabilir. İş yaptırılırken de PKCS#11 kullanıcıları kullanılır. Bunlar hakkında daha fazla bilgi için PKCS#11 dokümanını inceleyiniz. Bu kullanıcılar, atanan kullanıcılardan farklıdır.

Seçim yaparken rol dağılımının yapıldığı 2F kimlik doğrulama yapılabilen HSM’leri seçerseniz güvenlik mimarinizi daha iyi bir şekilde şekillendirebilirsiniz.

  • Quorum

“Minimum yeter” özelliği HSM’de ekstra güvenlik sağlar. Genellikle HSM’lerde vardır fakat non-FIPS modunda disable edilebilir durumdadır. Burada n yetkiliden minimum m tanesi olmadan işlem yapmayı engelleyen bir güvenlik mekanizması mevcuttur. M of N olarak da bilinir. Bu özellik kullanımı zorlaştıran bir özelliktir ama kullanmasanız da HSM’de bulunması gerekir.

  • Uzaktan Yönetim

Eski HSM’lerin bazıları bu özelliği sunmazlar. Uzaktan yönetim özelliğiyle kast edilen sadece yönetim fonksiyonlarıdır, kripto fonksiyonları değil. Aslında HSM’ler genellikle bir kere kurulup sonra konfigürasyon değişikliği yapılmadan uzun süre kullanılan ürünler olduğu için bana göre kritik özellik değil. Dağıtık mimaride çalışıyorsanız olmazsa olmaz bir özelliktir. Yani bu özelliğin gerekliliği diğer maddelerde de olduğu gibi durumunuza göre değişir.

  • Zaman Senkronizasyonu

HSM’ler genellikle NTP desteği sunar. Bu zayıf bir özellik gibi gözükse de başat özelliktir. Aslında sadece HSM’in değil tüm network ürünlerinin senkron çalışması yönetim açısından faydalıdır.

Durum ve İzleme

  • Log Desteği

Yönetim logları ve kullanıcı logları olmak üzere iki farklı log üretebilirler. Sistem logları genellikle yönetim logları altında tutulur. Burada sorun cihazların log verip vermemesi değil, anlaşılır log verip vermemesidir. Çoğu HSM cihazı anlaşılır loglar vermiyor maalesef.

  • SNMP Desteği

Bazı HSM’ler güvenlik gerekçesiyle SNMP desteği sunmayabiliyorlar fakat sistemin sağlığını monitör edebileceğiniz başka araçlar sunmalılar. SNMP desteği çoğu uygulamayla uyumlu olduğu için pozitif bir özellik.

Kullanışlılık

  • Kurulum ve Kullanım Kolaylığı

HSM’i seçmeden forumlardan veya HSM’lerin sitesinden kurulum ve konfigürasyon ile ilgili dokümanlara bakmak işinizi kolaylaştırır. Çünkü HSM’i almadan önce neyle karşılaşacağınızı bilirsiniz. Burada kurulum kolaylığı aldatıcı olabilir. Kolay kurulan cihaz iyi cihaz demek değildir. En nihayetinde bu bir güvenlik cihazı ve bazı sıkıcı güvenlik prosedürleri içermek zorunda. Bu nedenle kurulum bir kez yapılacağı için diğer maddelere odaklanmak bence daha önemli.

  • Dokümantasyon

Dokümantasyonu iyi yapılmış bir cihazı, minimum destekle kullanmak gibisi yoktur. Bu nedenle dokümantasyonun iyi yapılmış olup olmadığını, seçim için birinci sıraya koymasanız da göz önünde bulundurun. Cihazı almadan inceleyebilirsiniz. Böyle bir avantajı da var.

Tüm bunlar dışında destek konusu da ayrı bir başlığı hak ediyor. Fakat bu konuda yerli ürünler dışındaki ürünlerde dağıtıcı firma sizinle ilgilenmeye çalışıyor. Kurulum ve konfigürasyon eğitimleri dışında kısıtlı destek sağlayabiliyorlar. Burada yerli ürünler bir adım öne çıkıyor. Tübitak veya Procenne firmasının ürünleri daha iyi destek almanızı sağlayabilir.

Bu yazıyı okuyup buraya kadar geldiyseniz HSM seçimi hakkında önemli bilgilere sahip olmuşsunuz demektir. Ayrıca başlıklarından faydalandığım kaynağı da mutlaka incelemelisiniz. Rapor eski olmasına rağmen günümüz HSM’lerine de ışık tutuyor.

Sabrınıza teşekkür ederim.

Kaynak: A Review of Hardware Security Modules

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.