DLL dosyamın kendi Authenticode Zaman Damgası Hizmetimi kullanarak zaman aşımına uğramasını isterim. Mümkün mü? Bunu nasıl başarabilirim?Kendi Authenticode Zaman Damgası Hizmetinizi nasıl dağıtıyorsunuz?
cevap
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.
Ö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)
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.
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:
- Java:
Eğer ön koşullara sahip olduğundan emin olun
En son sürümü https://signserver.org veya https://sourceforge.net/projects/signserver/files/signserver/'dan indirin .
- web hizmetleri son güvenlik düzeltmeleriyle
- Yaması çalışmak
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
- bin/signclient damgası http://localhost:8080/signserver/process?workerName=TimeStampSigner
'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
- 1. Bir .NET uygulamasını nasıl dağıtıyorsunuz?
- 2. ClojureScript'te nasıl zaman damgası alırsınız?
- 3. Dart'da zaman damgası nasıl alınır?
- 4. PostgreSQL: Gelecekte zaman damgası
- 5. XML Şeması'nda Zaman Damgası
- 6. Logrus zaman damgası biçimlendirme
- 7. Unix Zaman Damgası Python
- 8. Zaman damgası Python
- 9. En yakın zaman damgası
- 10. PostgreSQL zaman damgası
- 11. MySQL kullanarak zaman damgası alma
- 12. SQL: Tarih zaman damgası dönüştürün
- 13. CakePHP'de geçerli zaman damgası gönderiliyor
- 14. Yalnızca MySQL zaman damgası oluştur
- 15. Dönüştürme OffsetDateTime UTC zaman damgası
- 16. Syslog zaman damgası yılsız mı?
- 17. UNIX Zaman Damgası MySQL DATETIME
- 18. Elasticsearch'teki zaman damgası alanının döndürülmesi
- 19. Emacs orgmode'de özel zaman damgası
- 20. Zaman damgası kullanılarak önceki satırın nasıl bulunacağı
- 21. Zaman damgası raylar sütununa nasıl eklenir
- 22. Güncel tarihi epoch zaman damgası nasıl dönüştürülür?
- 23. Metin tarihini zaman damgası nasıl dönüştürür?
- 24. WIX msi'de sistem zaman damgası nasıl etkinleştirilir?
- 25. Unix zaman damgası saat dilimlerinde değişir mi?
- 26. Worksheet_SelectionChange - Farklı sütunlarda zaman damgası
- 27. Dönüştürün Tarihi UNIX zaman damgası
- 28. R'de zaman damgası mümkün mü?
- 29. Oracle: Şema oluşturulduğunda zaman damgası?
- 30. Negatif zaman damgası - PHP'de anlamlıdır?
yeniden signserver Mükemmel kaynak. – Alexandru
Authenticode RFC 3161'i kullanmaz. PKCS # 7/PKCS # 9 biçimlerini kullanır. –