Ana içeriğe geç

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 ArabirimiKullanım Senaryosu
KSPCNG (Cryptography API: Next Generation)Modern Windows uygulamaları ve imzalama araçları, öncelikli tercih
CSPCryptoAPIEski 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"

主要参数:

参数说明
/cspsslTrus KSP Sağlayıcısını belirtir
/kcSertifika numarasına karşılık gelen anahtar kapsayıcısını belirtir
/fKod imzalama sertifikasını belirtir
/fdDosya özet algoritmasını belirtir
/trRFC 3161 zaman damgası sunucusunu belirtir
/tdZaman 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 /csp ve /kc parametreleriyle 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:

ParametreWindows Sertifika Deposu
current-userCurrentUser\My
local-machineLocalMachine\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:

ParametreAçıklama
/cspsslTrus CSP Provider'ı belirtir
/kcSertifika numarasına karşılık gelen anahtar kapsayıcısını belirtir
/fKod imzalama sertifikasını belirtir
/fdDosya özet algoritmasını belirtir
/trRFC 3161 zaman damgası sunucusunu belirtir
/tdZaman 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 destekliKSP
Microsoft SignTool gibi modern Windows araçlarıKSP
Yazılımın açıkça CSP gerektirmesiCSP
Geleneksel CryptoAPI uygulamalarıCSP
Aracın /csp ve /kc kullanmasını gerektirmesiCSP

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.