2012-06-27 14 views

cevap

5

Kendi Zaman damgası hizmeti gelişebilir. TSP (RFC 3161) sunucusunu yazabilirsiniz ancak Authenticode, MSDN article numaralı belgede açıklandığı gibi RFC 3161 ancak PKCS # 7/PKCS # 9 biçimlerini kullanmaz. Bizim SecureBlackbox bileşenlerin her iki formatı da destekleyen zaman damgası sunucu bileşeni içerir. Güncelle: Authenticode'a yapılan son güncellemeler standart RFC 3161 zaman damgalarını kullanır.

Ancak sorun, zaman damgalarını imzalamak için kullanacağınız sertifikayı almaktır. Bu sertifika, CA'lardan biri tarafından verilmelidir ve anladığım kadarıyla, bir zaman damgası sunucusunun çalıştırılmasının yönetim ve altyapı özellikleriyle ilgili ciddi gereksinimler vardır. Özellikle güvenli bir zaman damgası donanımına sahip olmanız gerekir. Bu soruyu derinden kazmadım, ama bu yönler çok daha karmaşık ve daha sonra bir parça kod yazıyor. Yine de kendi PKI altyapınızı çalıştırıyorsanız (kendi güvenilen kök sertifikalarınıza ve CA sertifikalarınıza sahipseniz), güvenilir bir zaman damgası sertifikasına sahip olma sorunu otomatik olarak çözülür - kendi sertifikanızı oluşturabilirsiniz.

5

Özel bir HTTP Zaman Damgası sunucusu yazmanız gerekir. RFC 3161 Zaman Damgası Protokolü (TSP) kurallarına uymalıdır.

Windows SDK bir araç gibi Signtool.exe ile Authenticode için DLL imzalamak

zaman damgası sunucusundan URL'sini belirtebilirsiniz (/ T swich ile. Ayrıca/tr ve/td bakınız). Daha sonra sunucunuza işaret edeceksiniz.

ilgili soru için burada SO üzerinde bakınız: Ayrıca Trusted Timestamps - understanding the format (rfc3161)

ve: Alternative timestamping services for Authenticode

+0

yeniden signserver Mükemmel kaynak. – Alexandru

+2

Authenticode RFC 3161'i kullanmaz. PKCS # 7/PKCS # 9 biçimlerini kullanır. –

1

Test için bunu yapmak istediğinizi varsayarsak,/tr anahtarıyla signtool.exe aracını kullanmaktan memnunsanız, openssl sizin için yeterli olanı uyguladığı için RFC'ye bakmak zorunda kalmazsınız. En sevdiğiniz dilde bir HTTP POST işleyicisi yazmanız yeterlidir, kaydedilen verileri "openssl ts -reply" verbatimine aktarırsanız, openssl TS yanıt verisini geri gönderin. Bu kesinlikle RFC'yi takip etmiyor olsa bile, "signtool.exe doğrulama/pa" yi kandırmak için yeterince iyidir.

DÜZENLEME: Açık kaynak kodlu bir Java Signserver projesi, MSauthenticode (/ t) ve rfc3161 (/ tr) zaman damgayı kutusunun dışında bir sunucuya sahip olmanızı sağlar. Signserver'ın yapılandırması benim için çok fazla bağımlılık içeriyordu, bunun yerine MSAuthenticode zaman damgası için birim testini hackledim, küçük bir HTTP sunucusunda test vakasına civatalı ve çok az çalışma ile - Java becerilerim en iyi ihtimalle vasattır - çalışan bir otantik zaman damgası var geliştirme kullanımı için sunucu ve bu şekilde oluşturulan zaman damgalarının this issue konusu olmadığını doğruladık. Kaynak kodunu serbest bırakamıyorum, ancak bu ipucunun ardından size çok hızlı bir şekilde çalışmanız gerekir.

1

SignServer kullanarak Authenticode zaman damgalarını (ve/veya RFC# 3161) destekleyen kendi Zaman Damgalama Yetkilisini (TSA) ayarlayabilirsiniz.

İndirme ve yükleme yönergeleri için bkz. https://www.signserver.org.Özetle önemli adımlar şunlardır:

  • bir uygulama sunucusu (yani WildFly)
  • Apache Ant
  • dağıtmak için

  • yapılandır SignServer dağıtım yapmak için (isteğe bağlı) HTTPS için yapılandır uygulama sunucusu

      • Set database.name = eden NODB ve database.nodb.location =/bir/boş/klasör// Konfigürasyon db olarak/signserver_deploy.properties
    • dağıtın SignServer

      • ihracat APPSRV_HOME =/opt/wildfly-9/
      • bin/karınca dağıtmak
      • Başlangıç ​​uygulama sunucusu /opt/wildfly-9/bin/standalone.sh
    • bu sunucu tüm

  • Ayarını bir kripto simge

    • bin/signserver SetProperties doc/örnek-yapılandırmaları/deposu-kripto-konfigürasyon

      • bin/signserver getStatus kısa başladı edin. özellikleri
      • bin/signserver yeniden yükle 1
      • bin/signserver getstatus kısa
    • Kur örnek bir zaman damgası imzalayan

      • bin/signserver SetProperties doc/örnek-yapılandırmaları/qs_timestamp_configuration.özellikleri
      • bin/2
      • bin/signserver getStatus kısa tüm
    • Testi damgası imzalayan

  • +0

    'En son sürümü indir' bölümü, diğer komutların birçoğunu burada basit link-rot'tan daha hızlı bir şekilde geçersiz kılacak. Posterin buraya dönmesini ve yeni sürümler için talimatları güncellemesini beklemek biraz saf, bu yüzden basit bir bağlantının daha uygun olacağını hissediyorum. – Keeely