Safenet HSM’lerin Sonunu Payshield Getirdi

Evet başlık biraz iddialı gelmiş olabilir. Ancak proje hacmine göre uygun kullanımlarda Safenet HSM ihtiyacı büyük ölçüde azalabilir. HSM’lerin genel amacı nedir ne iş yapar biraz bahsedelim.

HSM’lerin Genel Amacı

HSM’ler (Hardware Security Module), kriptografik anahtarları güvenli şekilde saklamak ve yönetmek için tasarlanmış cihazlardır. Temel görevleri yalnızca anahtarları korumak değil, aynı zamanda PKCS standartları kapsamında şifreleme (encrypt), şifre çözme (decrypt), imzalama (sign), doğrulama (verify), certifacation gibi temel kriptografik işlemleri güvenli donanım ortamında gerçekleştirmektir.

Genel Amaçlı vs. Ödeme Sistemleri HSM’leri

Genel amaçlı HSM’ler genellikle sertifika yönetimi, kriptografik key saklama, PKI altyapısı ve kurumsal güvenlik senaryolarında kullanılır. Cryptoki.dll ile HSM içerisinde var olan keyleri kullanarak PCKS fonksiyonları işletilebilir. Ödeme sistemlerinde kullanılan HSM’ler ise (örneğin Thales payShield serisi), özellikle kartlı ödeme, EMV, PIN yönetimi, anahtar değişimi ve mesaj doğrulama gibi finansal süreçler için optimize edilmiştir.
Bu cihazlar, performans ve regülasyon uyumluluğu açısından farklılaşır. Örneğin, ödeme HSM’lerinde anahtarlar LMK (Local Master Key) altında şifrelenir ve komut tabanlı protokollerle işlem yapılır. Böylece uygulamalar socket benzeri basit arabirimlerle kriptografik fonksiyonlara erişebilir. Ancak bu anahtarlar cihaz üzerinde tutulmaz. Şifreli anahtar yapılarını bir Database üzerinde muhafaza etmek gerekebilir.

Thales payShield ve Yeni Yaklaşım

Klasik olarak ödeme HSM’leri sadece LMK altında şifrelenmiş geçici kullanım için anahtar tutar, kalıcı bir key vault işlevi sunmazdı. Ancak payShield 2.0 güncellemesiyle birlikte Thales yeni bir adım attı: payshield HSM’lerine de anahtar saklama (load storage) özelliği geldi. Bu geliştirme henüz pek bilinmese de ödeme sistemleri güvenliğinde HSM mimarisini önemli ölçüde değiştiren bir yenilik olarak öne çıkıyor.

LA Komutu ve Komutlarda Uygulanışı

Safenet HSM’lerin özelliğini devralacak komutumuz LA komutu olarak belirlenmiş. LA(Load Data to User Storage) komutu herhangi bir datayı indexleyerek Payshield içerisinde tutmamızı sağlıyor. Payshield dökümanında toplam storage kapasitesi olarak 98,304 byte olduğu ifade edilmiş. Bu da 768 adet 128 karakterlik AES 256 Keyblock Keyini tutabileceğini anlayabiliyoruz. Keyblock keylerinin başındaki S ile 129 karakter olsa da o kısıma birazdan geleceğim.

Hem keyleri LMK altında şifreliyoruz hem de bu keyleri HSM içerisinde tutuyoruz. Ne güvenlikli bir yöntem ama 🙂 Bu sayede key veritabanlarına gerek duyulmayacak(sadece key index veritabanı tutulabilir) hem de Safenet HSM’lere olan bağımlılık minimuma inecek.

Single, Double, Triple length DES keyler için

Field Length Description
Index Flag 1 A Always ‘K’
Index Address 3 H 3-digit address identifying the first location at which to store the data
Block Count 2 H Hexadecimal count of the number of blocks of data (’00’ to ’20’ in hex)
Block 1 16 / 32 / 48 H The first encrypted key or other data
Block 2 16 / 32 / 48 H The second encrypted key or other data
Last Block 16 / 32 / 48 H The last encrypted key or other data

AES ve Asimetrik Keyler için

Field Length Description
Index Flag 1 A ‘A’ = ASCII
‘B’ = Binary
‘H’ or ‘K’ = Hexadecimal
Index Address 3 H 3-digit address identifying the location at which to store the data
Length of Data 4 N Length of the data in bytes.
Max = 1,000 for addresses up to 07F.
Max = 100 for addresses 080 or greater.
Data n B / n H / n C The encrypted key or other data
End Message Delimiter 1 C Must be present if a message trailer is present. Value X’19’
Message Trailer n A Optional. Maximum length 32 characters

Keyler LA komutuyla Load edildikten sonra girilen index adress kaydedilmelidir. Örneğin K011 şeklinde kaydettiğimiz S şemalı bir key için başında S değerini komutta kullanıp S + Index Number(SK011) şeklinde bir kullanım ile diğer komutlarda kullanılabilir. Bu sayede Lmk altında şifrelenmiş keyleriniz payshield üzerinde kayıt edilir yalnızca Index Number ile komutlarda çağrılır.

PKCS11 işlemlerinin hepsini ve hatta daha fazlasını zaten Host Commands’larıyla yapabiliyoruz. Artık Key Muhafaza işlemlerini bu şekilde halledebiliyoruz.

 

Safenet Keylerini Payshield’a Taşıma

Safenet kullanıyorsunuz ve içerisinde keyleriniz mevcut. Bu keyleri Payshield üzerinde LMK altında şifrelemek ve Thales içerisinde saklamak  için ZMK Ceremony’sini gerçekleştirmemiz gerekiyor. Safenet ve Payshield’a ortak bir ZMK tanımlanması gerekiyor. Payshield Console ve Safenet KMU üzerinden ortak komponentlerle ZMK üretip Safenet’te bulunan 3DES-2DES-DES keylerini ZMK altında single component olarak export ettikten sonra gelen değerleri Payshield HSM’de başına X şema ekleyip A6 Komutuyla Payshield’a import edilmelidir. Gelen key değeri LA komutuyla belirlenen index ile gönderildiğinde Key Safenetten Payshield’a taşınmış olur.