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 şifreleme arabirimlerini destekleyen diğer yazılımlar, sslTrus bulut tabanlı kod imzalama yeteneklerini kullanabilir.
İmzalama özel anahtarı her zaman bulut HSM’inde saklanır; özel anahtar dosyasının yerel bilgisayara dağıtılması gerekmez.
KSP ve CSP’nin kurulumu, yapılandırması ve bakımı sslTrus SignTool CLI üzerinden gerçekleştirilir; sslTrus istemci yayın sayfasından indirilebilir.
KSP ve CSP
KSP ve CSP, Windows’un iki farklı şifreleme arabirimi nesline karşılık gelir:
| Sağlayıcı | Windows Arabirimi | Kullanım Senaryosu |
|---|---|---|
| KSP | CNG (Cryptography API: Next Generation) | Modern Windows uygulamaları ve imzalama araçları, öncelikli tercih |
| CSP | CryptoAPI | Eski uygulamalar veya açıkça CSP kullanımını gerektiren yazılımlar |
Yeni Windows entegrasyon senaryolarında genellikle KSP öncelikli olarak tercih edilir.
Yalnızca hedef yazılım KSP’yi desteklemiyorsa veya açıkça geleneksel CryptoAPI Provider kullanılması gerekiyorsa CSP kullanılır.
KSP
KSP, Windows CNG tabanlı bir Key Storage Provider’dır.
sslTrus KSP kurulduktan sonra, CNG destekleyen Windows uygulamaları standart Windows anahtar arabirimi üzerinden uzak kod imzalama hizmetini çağırabilir.
Yerel Sağlayıcı, 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’inde tamamlanır.
Kullanım 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 bağlanması gereken uygulamalar.
KSP Kurulumu
Yönetici terminalinde şunu çalıştırın:
signtool ksp install
Bu komut yükler ve kaydeder:
sslTrus Key Storage Provider
KSP kurulumu, sistem Provider kaydını ve Windows sistem dizinini kapsadığı için genellikle yönetici yetkileri gerektirir.
Sertifika Yapılandırması Ekleme
Şu komutu çalıştırın:
signtool ksp add
根据提示输入:
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 eklenmelidir:
signtool ksp add --address nicsrs
证书 Kaydı
KSP yapılandırması tamamlandıktan sonra, kod imzalama sertifikasının Windows sertifika deposuna kaydedilmesi ve KSP Sağlayıcısı ile ilişkilendirilmesi gerekir.
Şu komutu çalıştırın:
signtool ksp register
默认注册到当前用户的个人证书库。
如果需要注册到 LocalMachine 证书库:
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 hâlâ bulut HSM'de saklanır.
Microsoft SignTool Kullanımı
KSP yapılandırması tamamlandıktan sonra, Windows SDK tarafından sağlanan Microsoft signtool.exe aracı dosyaları imzalamak için 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"
主要参数:
| 参数 | 说明 |
|---|---|
/csp | sslTrus KSP 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 |
Mevcut imzaya ek olarak SHA-1 imzası eklemeniz gerekiyorsa, /as parametresini kullanabilirsiniz:
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, Windows CNG üzerinden sslTrus KSP'yi çağıracak ve ardından KSP uzak özel anahtar imzalamayı tamamlayacaktır.
KSP Yönetimi
Yapılandırılmış KSP'leri görüntüle:
signtool ksp list
删除配置:
signtool ksp del
KSP ile sertifika ilişkisini kaldırma:
signtool ksp deregister
KSP'yi kaldırın:
signtool ksp uninstall
Provider'ı kaldırmadan önce, başka hiçbir Windows uygulamasının bu Provider'a bağımlı olmadığından emin olunmalıdır.
CSP
CSP, geleneksel Windows CryptoAPI tarafından kullanılan Cryptographic Service Provider'dır.
Öncelikle, Provider ve anahtar kapsayıcısını /csp ve /kc parametreleriyle belirtmeyi gerektiren Windows imzalama süreçleri için kullanılır. sslTrus CSP, istemci tarafından kurulur ve bakımı yapılır; gerçek dosya imzalama işlemi yine Windows SDK'nın Microsoft signtool.exe aracı tarafından gerçekleştirilir.
Uygulama Senaryoları
CSP şu durumlarda uygundur:
- Yalnızca geleneksel CryptoAPI'yi destekleyen Windows yazılımları.
- Açıkça bir CSP Provider 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 sistemler için genellikle ekstra CSP kullanımına gerek yoktur.
CSP Kurulumu
Yönetici terminalinde şunu çalıştırın:
signtool csp install
Kurulum sırasında aşağıdakiler kaydedilir:
sslTrus Cryptographic Service Provider
ve Provider DLL'sini Windows sistemine kurun.
CSP Provider türü şöyledir:
PROV_RSA_AES
本地配置默认保存在:
%ProgramData%\sslTrusKSP
配置文件 Windows DPAPI 使用 korunarak korunur.
Aynı anda KSP kurulumu gerekiyorsa, şu komutu çalıştırabilirsiniz:
signtool csp install --with-ksp
证书 yapılandırması ekleme
Şunu çalıştırın:
signtool csp add
根据提示输入:
Access Key
Access Secret
Certificate Code
Ekleme tamamlandıktan sonra, istemci ilgili sertifikayı indirir ve aşağıdaki konuma kaydeder:
%ProgramData%\sslTrusKSP\CERT_CODE.crt
其中 CERT_CODE aynı zamanda uzak sertifika tanımlayıcısı ve sonraki Microsoft SignTool kullanımı için anahtar kapsayıcı adı olarak işlev görür.
NICSRS(www.nicsrs.com)ortamını kullanıyorsanız, --address nicsrs eklemeniz gerekir:
signtool csp add --address nicsrs
证书 Kaydı
Sertifika varsayılan olarak mevcut kullanıcının kişisel sertifika deposuna kaydedilir:
signtool csp register
如果需要注册到 LocalMachine:
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 anahtar ilişkilendirmesine sahip olduğunu gösterir, ancak özel anahtar aslında hâlâ bulut HSM’de bulunur.
Microsoft SignTool Kullanımı
CSP ile imzalarken, Sağlayıcıyı, anahtar kapsayıcısını ve sertifika dosyasını açıkça belirtmeniz 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 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 uzaktan imzalama arayüzü SHA1 ve SHA256 özet algoritmalarını destekler. Yeni imzalama senaryolarında öncelikle SHA256 kullanılmalıdır; SHA1 yalnızca eski sistemlerle uyumluluk gerektiğinde 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 bir imza sayısı oluşturmaz.
CSP'yi Yönetme
Mevcut yapılandırmayı görüntüle:
signtool csp list
某证书配置的删除:
signtool csp del
解除证书与 CSP 的私钥关联:
signtool csp deregister
Provider'ı kaldırın:
signtool csp uninstall
CSP yapılandırmasının silinmesi, önceden indirilmiş sertifika dosyalarını otomatik olarak silmez. İlgili sertifikalar ve yapılandırma artık kullanılmıyorsa, başka bir Provider'ın bağımlılığı olmadığı doğrulandıktan sonra temizlik yapılmalıdır.
KSP mi CSP mi
Özel bir uyumluluk gereksinimi yoksa, aşağıdaki şekilde seçim yapılabilir:
| Senaryo | Öneri |
|---|---|
| Yeni Windows imzalama ortamı | KSP |
| Windows CNG destekli | KSP |
| Microsoft SignTool gibi modern Windows araçları | KSP |
| Yazılımın açıkça CSP gerektirmesi | CSP |
| Geleneksel CryptoAPI uygulamaları | CSP |
Aracın /csp ve /kc kullanmasını gerektirmesi | CSP |
KSP ve CSP arasındaki temel fark, Windows tarafından kullanılan kriptografi Provider arayüzünün farklı olmasıdır; uzak özel anahtar güvenlik modeli aynı kalır.
KSP veya CSP kullanılsa da, kod imzalama özel anahtarı yerel istemciye kaydedilmez.
İmzalama Sayısı
Windows Provider'ın imzalama sayısı, altta yatan gerçekleştirilen uzak imzalama işlemine göre hesaplanır.
Örneğin:
SHA256 签名一次 = 1 次
Aynı dosya için önce SHA256 imzası tamamlanıp ardından başka bir imza eklenecekse, uzak özel anahtar işlemi yeniden tetiklenir; bu nedenle her birinin ayrı ayrı hesaplanması gerekir.
KSP senaryosunda, aynı dosya için SHA256 ve SHA1 çift imzası genellikle iki ayrı temel imza çağrısı üretir.
Özel kurallar için lütfen referans materyale bakın.
Zaman Damgası
Windows Authenticode imzalarına genellikle güvenilir bir zaman damgası eklenmesi önerilir.
Modern kod imzalama senaryolarında öncelikli olarak RFC 3161 zaman damgasının kullanılması önerilir, örneğin:
http://timestamp.acs.microsoft.com
Gerçek üretim ortamında, hedef Windows sürümüne, sertifika politikasına, ağ ortamına ve zaman damgası servis sağlayıcı gereksinimlerine göre uygun TSA seçilmelidir.
Belirli zaman damgası sunucuları ve protokol açıklamaları için lütfen Referanslar bölümüne bakın.
Güvenlik Açıklamaları
Windows Sağlayıcısı kullanılırken aşağıdaki noktalara dikkat edilmelidir:
- Access Secret, hassas bir kimlik bilgisi olarak korunmalıdır.
- Erişim kimlik bilgilerini genel betiklere veya günlüklere yazmayın.
- Sağlayıcı yapılandırma dosyaları herkese açık olarak paylaşılmamalıdır.
- Yerel sertifika dosyaları kod imzalama özel anahtarı içermez.
- Kod imzalama özel anahtarı her zaman bulut HSM'de saklanır.
- KSP/CSP imza başlatırken uzaktaki kod imzalama hizmetine erişebilmelidir.
- LocalMachine sertifika deposunu kullanırken Windows kullanıcı izinlerine ve kimlik bilgisi erişim kapsamına özellikle dikkat edilmelidir.
CSP'nin config.dat yapılandırması, geçerli 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.