Windows Provider
sslTrus, KSP (Key Storage Provider) ve CSP (Cryptographic Service Provider) olmak üzere iki Windows Provider entegrasyon yöntemi sunar.
Windows Provider sayesinde Microsoft SignTool, Visual Studio, MSBuild, kurulum paketi araçları ve Windows kriptografi arayüzlerini destekleyen diğer yazılımlar, sslTrus bulut kod imzalama özelliğini kullanabilir.
İmzalama özel anahtarı her zaman bulut HSM'de saklanır; özel anahtar dosyasının yerel bilgisayara dağıtılması gerekmez.
KSP ve CSP'nin kurulumu, yapılandırılması ve bakımı sslTrus SignTool CLI üzerinden gerçekleştirilir ve sslTrus istemci yayın sayfasından indirilebilir.
KSP ile CSP
KSP ve CSP, Windows'un iki nesil kriptografi arayüzüne karşılık gelir:
| Provider | Windows Arayüzü | Uygun Senaryolar |
|---|---|---|
| KSP | CNG (Cryptography API: Next Generation) | Modern Windows uygulamaları ve imzalama araçları, öncelikli tercih |
| CSP | CryptoAPI | Geleneksel uygulamalar veya CSP kullanmayı açıkça gerektiren yazılımlar |
Yeni Windows entegrasyon senaryolarında genellikle öncelikle KSP kullanılır.
Yalnızca hedef yazılım KSP'yi desteklemiyorsa ya da geleneksel CryptoAPI Provider kullanımını açıkça zorunlu kılıyorsa CSP tercih edilir.
KSP
KSP, Windows CNG tabanlı bir Key Storage Provider'dır.
sslTrus KSP kurulduktan sonra CNG destekleyen Windows uygulamaları, standart Windows anahtar arayüzü üzerinden uzak kod imzalama hizmetini çağırabilir.
Yerel Provider, uygulamanın başlattığı imzalama isteklerini alır ve imzalanacak özeti uzak kod imzalama hizmetine gönderir; gerçek özel anahtar işlemleri bulut HSM içinde tamamlanır.
Uygun Senaryolar
KSP şunlar için uygundur:
- Microsoft SignTool.
- Visual Studio.
- MSBuild.
- Windows CNG destekleyen derleme ve imzalama yazılımları.
- Standart Windows Provider üzerinden uzak özel anahtara erişmesi gereken uygulamalar.
KSP Kurulumu
Yönetici terminalinde şunu çalıştırın:
signtool ksp install
Bu komut şunları yükler ve kaydeder:
sslTrus Key Storage Provider
KSP kurulumu, sistem Provider kaydı ve Windows sistem dizinlerini içerdiğinden genellikle yönetici yetkisi gerektirir.
Sertifika yapılandırması ekleme
Çalıştırın:
signtool ksp add
İsteme göre girin:
Access Key
Access Secret
Certificate Code
İstemci, uzak kod imzalama hizmetinden ilgili sertifikayı alır ve uzak hizmet adresini, erişim kimlik bilgilerini ve sertifika yapılandırmasını kaydeder.
NICSRS (www.nicsrs.com) ortamı kullanılıyorsa, --address nicsrs eklenmesi gerekir:
signtool ksp add --address nicsrs
Sertifika Kaydı
KSP yapılandırması tamamlandıktan sonra, kod imzalama sertifikasını Windows sertifika deposuna kaydetmeniz ve KSP Sağlayıcısı ile ilişkilendirmeniz gerekir.
Çalıştırın:
signtool ksp register
Varsayılan olarak geçerli kullanıcının kişisel sertifika deposuna kaydedilir.
LocalMachine sertifika deposuna kaydedilmesi gerekiyorsa:
signtool ksp register --store local-machine
Kayıt tamamlandıktan sonra Windows, ilgili sertifikayı kullanılabilir özel anahtara sahip olarak tanır, ancak gerçek özel anahtar yine de bulut HSM'de saklanır.
Microsoft SignTool Kullanımı
KSP yapılandırması tamamlandıktan sonra, dosyaları imzalamak için Windows SDK tarafından sağlanan Microsoft signtool.exe kullanılabilir.
Örneğin:
signtool.exe sign /v ^
/csp "sslTrus Key Storage Provider" ^
/kc CERT_CODE ^
/f "C:\ProgramData\sslTrusKSP\CERT_CODE.crt" ^
/fd SHA256 ^
/tr http://timestamp.acs.microsoft.com ^
/td SHA256 ^
".\app.exe"
Ana parametreler:
| Parametre | Açıklama |
|---|---|
/csp | sslTrus KSP Provider'ı belirtir |
/kc | Sertifika numarasına karşılık gelen anahtar kapsayıcısını belirtir |
/f | Kod imzalama sertifikasını belirtir |
/fd | Dosya özet algoritmasını belirtir |
/tr | RFC 3161 zaman damgası sunucusunu belirtir |
/td | Zaman damgası özet algoritmasını belirtir |
Mevcut imzanın üzerine SHA-1 imzası eklemek gerekiyorsa /as parametresi kullanılabilir:
signtool.exe sign /v ^
/csp "sslTrus Key Storage Provider" ^
/kc CERT_CODE ^
/f "C:\ProgramData\sslTrusKSP\CERT_CODE.crt" ^
/fd SHA1 ^
/tr http://timestamp.acs.microsoft.com ^
/td SHA256 ^
/as ^
".\app.exe"
Microsoft signtool.exe, sslTrus KSP'yi Windows CNG aracılığıyla çağırır ve uzak özel anahtar imzasını KSP tamamlar.
KSP'yi Yönetme
Yapılandırılmış KSP'leri görüntüleyin:
signtool ksp list
Yapılandırmayı sil:
signtool ksp del
KSP ile sertifika ilişkisini kaldırın:
signtool ksp deregister
KSP'yi kaldırın:
signtool ksp uninstall
CSP'yi kaldırmadan önce, başka hiçbir Windows uygulamasının bu Provider'a bağımlı olmadığından emin olun.
CSP
CSP, geleneksel Windows CryptoAPI tarafından kullanılan Cryptographic Service Provider'dır.
Esas olarak, Provider ve anahtar kapsayıcısını /csp ve /kc parametreleriyle belirtmesi gereken Windows imzalama akışlarında kullanılır. sslTrus CSP istemci tarafından kurulur ve bakımı yapılır; gerçek dosya imzalama yine Windows SDK'nın Microsoft signtool.exe bileşeni tarafından gerçekleştirilir.
Uygun senaryolar
CSP aşağıdaki durumlar için uygundur:
- Yalnızca geleneksel CryptoAPI destekleyen Windows yazılımları.
- CSP Provider'ın açıkça belirtilmesini gerektiren imzalama araçları.
- Microsoft SignTool
/cspve/kcparametreleriyle imzalama yapılması gereken ortamlar. - Windows CNG / KSP kullanamayan eski uygulamalar.
KSP'yi normal şekilde kullanabilen yeni sistemlerde genellikle ayrıca CSP kullanmaya gerek yoktur.
CSP'yi kurma
Yönetici terminalinde şunu çalıştırın:
signtool csp install
Kurulum sırasında kaydedilecekler:
sslTrus Cryptographic Service Provider
Ve Sağlayıcı DLL'sini Windows sistemine kurun.
CSP Sağlayıcı türü:
PROV_RSA_AES
Yerel yapılandırma varsayılan olarak şurada saklanır:
%ProgramData%\sslTrusKSP
Yapılandırma dosyası Windows DPAPI kullanılarak korunur.
KSP'yi aynı anda kurmanız gerekiyorsa aşağıdakini çalıştırabilirsiniz:
signtool csp install --with-ksp
Sertifika Yapılandırması Ekleme
Çalıştırın:
signtool csp add
根据提示输入:
Access Key
Access Secret
Certificate Code
Ekleme tamamlandıktan sonra istemci ilgili sertifikayı indirir ve şuraya kaydeder:
%ProgramData%\sslTrusKSP\CERT_CODE.crt
其中 CERT_CODE aynı zamanda uzak sertifika tanımlayıcısı ve sonraki Microsoft SignTool tarafından kullanılan anahtar kapsayıcı adı olarak kullanılır.
NICSRS(www.nicsrs.com)ortamını kullanıyorsanız, --address nicsrs eklemeniz gerekir:
signtool csp add --address nicsrs
Sertifikayı Kaydetme
Varsayılan olarak sertifika, geçerli kullanıcının kişisel sertifika deposuna kaydedilir:
signtool csp register
Yerel Makine'ye kaydolmanız gerekiyorsa:
signtool csp register --store local-machine
Desteklenen sertifika depoları şunlardır:
| Parametre | Windows Sertifika Deposu |
|---|---|
current-user | CurrentUser\My |
local-machine | LocalMachine\My |
Kayıt tamamlandıktan sonra, Windows Sertifika Yöneticisi ilgili sertifikanın özel anahtarla ilişkili olduğunu gösterir; ancak özel anahtar aslında bulut HSM'de bulunmaya devam eder.
Microsoft SignTool Kullanımı
CSP ile imzalama sırasında Sağlayıcı, anahtar kapsayıcısı ve sertifika dosyasının açıkça belirtilmesi gerekir:
signtool.exe sign /v ^
/csp "sslTrus Cryptographic Service Provider" ^
/kc CERT_CODE ^
/f "C:\ProgramData\sslTrusKSP\CERT_CODE.crt" ^
/fd SHA256 ^
/tr http://timestamp.acs.microsoft.com ^
/td SHA256 ^
".\app.exe"
Ana parametreler:
| Parametre | Açıklama |
|---|---|
/csp | sslTrus CSP Sağlayıcısını belirtir |
/kc | Sertifika numarasına karşılık gelen anahtar kapsayıcısını belirtir |
/f | Kod imzalama sertifikasını belirtir |
/fd | Dosya özet algoritmasını belirtir |
/tr | RFC 3161 zaman damgası sunucusunu belirtir |
/td | Zaman damgası özet algoritmasını belirtir |
sslTrus CSP; SHA1, SHA256, SHA384 ve SHA512 özet algoritmalarını destekler. Yeni imzalama senaryolarında genellikle SHA-256 veya daha güçlü bir algoritma kullanılmalıdır.
İmzayı doğrulama
İmzalama tamamlandıktan sonra doğrulama için Microsoft SignTool kullanılabilir:
signtool.exe verify /pa /v ".\app.exe"
İmza doğrulama, uzak özel anahtarı yeniden çağırmaz ve yeni imza sayısı üretmez.
CSP'yi yönetme
Mevcut yapılandırmayı görüntüleyin:
signtool csp list
Belirli bir sertifika yapılandırmasını silme:
signtool csp del
CSP ile sertifika arasındaki özel anahtar ilişkisini kaldırın:
signtool csp deregister
Sağlayıcıyı Kaldırma:
signtool csp uninstall
CSP yapılandırmasını silmek, daha önce indirilmiş sertifika dosyalarını otomatik olarak silmez. İlgili sertifika ve yapılandırma artık kullanılmıyorsa, başka bir Provider'ın bunlara bağımlı olmadığından emin olduktan sonra temizlik yapılmalıdır.
KSP mi CSP mi
Özel bir uyumluluk gereksinimi yoksa aşağıdaki şekilde seçim yapabilirsiniz:
| Senaryo | Öneri |
|---|---|
| Yeni Windows imzalama ortamı | KSP |
| Windows CNG desteği | KSP |
| Microsoft SignTool gibi modern Windows araçları | KSP |
| Yazılım açıkça CSP gerektiriyor | CSP |
| Geleneksel CryptoAPI uygulamaları | CSP |
Araç /csp ve /kc kullanımını gerektiriyor | CSP |
KSP ile CSP arasındaki temel fark, Windows'un kullandığı kriptografik Provider arayüzünün farklı olmasıdır; uzak özel anahtar güvenlik modeli aynı kalır.
İster KSP ister CSP kullanılsın, kod imzalama özel anahtarı yerel istemciye kaydedilmez.
İmzalama Sayısı
Windows Provider'ın imzalama sayısı, altta yatan gerçek uzak imzalama eylemlerine göre hesaplanır.
Örneğin:
SHA256 签名一次 = 1 次
Aynı dosya üzerinde önce SHA256 imzası tamamlanıp ardından başka bir imza eklenirse, bu işlem yeniden uzak özel anahtar işlemini tetikler; bu nedenle ayrı ayrı hesaplama yapılması gerekir.
KSP senaryosunda, aynı dosya üzerinde SHA256 ve SHA1 çift imza gerçekleştirilmesi genellikle iki alt düzey imzalama çağrısına yol açar.
Ayrıntılı kurallar için referans belgelere bakın.
Zaman Damgası
Windows Authenticode imzalarında genellikle güvenilir bir zaman damgası eklenmesi önerilir.
Modern kod imzalama senaryolarında RFC 3161 zaman damgasının öncelikli olarak kullanılması önerilir; örneğin:
http://timestamp.acs.microsoft.com
Gerçek üretim ortamında, hedef Windows sürümüne, sertifika ilkesine, ağ ortamına ve zaman damgası hizmet sağlayıcısının gereksinimlerine göre uygun TSA seçilmelidir.
Belirli zaman damgası sunucuları ve protokol açıklamaları için lütfen referans materyale bakın.
Güvenlik Notları
Windows Provider kullanırken aşağıdakilere dikkat edilmelidir:
- Access Secret hassas bir kimlik bilgisi olarak korunmalıdır.
- Erişim kimlik bilgileri herkese açık betiklere veya günlüklere yazılmamalıdır.
- Provider yapılandırma dosyası herkese açık şekilde paylaşılmamalıdır.
- Yerel sertifika dosyası kod imzalama özel anahtarını içermez.
- Kod imzalama özel anahtarı her zaman bulut HSM'de saklanır.
- KSP/CSP imzalama başlatırken uzak kod imzalama hizmetine erişebilmelidir.
- LocalMachine sertifika deposu kullanılırken Windows kullanıcı izinlerine ve kimlik bilgisi erişim kapsamına özellikle dikkat edilmelidir.
CSP'nin config.dat değeri, mevcut Windows kullanıcı Profilinin DPAPI'si kullanılarak korunur; sertifikanın LocalMachine'e kaydedilmesi bu yapılandırmanın DPAPI koruma kapsamını otomatik olarak değiştirmez.