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 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:

ProviderWindows ArayüzüUygun Senaryolar
KSPCNG (Cryptography API: Next Generation)Modern Windows uygulamaları ve imzalama araçları, öncelikli tercih
CSPCryptoAPIGeleneksel 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:

ParametreAçıklama
/cspsslTrus KSP 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 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 /csp ve /kc parametreleriyle 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:

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

ParametreAçıklama
/cspsslTrus CSP 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

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ğiKSP
Microsoft SignTool gibi modern Windows araçlarıKSP
Yazılım açıkça CSP gerektiriyorCSP
Geleneksel CryptoAPI uygulamalarıCSP
Araç /csp ve /kc kullanımını gerektiriyorCSP

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.