- Khuyến nghị Protect mode key hsm: module
- Tất cả câu lệnh config chạy trên thư mục gốc cài hsm (c:\Program Files (x86)\nCipher\nfast\bin)
Các bước chi tiết:
A. Cấu hình CSP và HSM
1. Tạo Key trên HSM (làm theo tài liệu administrator HSM)
2. Tạo Container để RSACryptoServiceProvider gọi tới
- Câu lệnh tạo container
# Keytst -c test_container
3. Import key từ key HSM vào Container vừa tạo
# Cspimport --import --key [KEY OF HSM WANT TO IMPORT TO CONTANER] --appname pkcs11 [ID OF CONTAINER] exchange
Trong đó:
[KEY OF HSM WANT TO IMPORT TO CONTANER]: ID của key trong HSM đã tạo
[ID OF CONTAINER]: id của Container
B. Code C# sử dụng RSACryptoServiceProvider
Sử dụng các thư viện trong c#:
using System.Security;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Security.Cryptography.Pkcs;
CspParameters cp = new CspParameters(1, "nCipher Enhanced Cryptographic Provider");
cp.KeyContainerName = "test_container";
cp.Flags = CspProviderFlags.UseMachineKeyStore;
cp.KeyContainerName = "test_container";
cp.Flags = CspProviderFlags.UseMachineKeyStore;
2. Khai báo RSACryptoServiceProvider và ký dữ liệu
RSACryptoServiceProvider RsaCSP=new RSACryptoServiceProvider(2048, cp);
Lúc này bạn có thể sử dụng RsaCSP để ký dữ liệu.
byte [] signature = RsaCSP.SignData("Hello HVA", new SHA1CryptoServiceProvider());
bool isValid = RsaCSP.VerifyData("Hello HVA", new SHA1CryptoServiceProvider(), signature);
Như vậy là các bạn có thể tạo kết nối HSM nCipher sử dụng RSACryptoServiceProvider của microsoft C# để ký và xác thực dữ liệu. Tương tự các bạn có thể sử dụng để làm các việc khác như: mã hóa, giải mã...
Author: HVA