我在.NET 3.0 C#应用程序中使用CAPICOM来检查exe文件上的Authenticode签名.我需要确保证书列为可信发布者.signedCode.Verify(true)如果证书尚未受信任,则使用将显示对话框,因此用户可以选择是否这样做.但是,signedCode.Verify(false)即使它不是来自受信任的发布者,也要验证签名 - 可能这只是检查证书是否有效.
如何在没有UI的情况下检查文件上的签名是否来自有效且受信任的证书?
目标:加载.so或已经过验证签名的可执行文件(或针对任意算法进行验证).
我希望能够验证.so /可执行文件,然后使用dlopen/...加载/执行该.so /可执行文件
这里的扳手是,似乎没有编程方式来检查然后加载.可以手动检查文件,然后加载它.但是有一个机会窗口,有人可以将该文件替换为另一个文件.
我能想到的一个可能的解决方案是加载二进制文件,检查签名然后dlopen/execvt /proc/$PID/fd....但是我不知道这是否是一个可行的解决方案.
由于文件系统锁在Linux中是建议性的,因此它们对于此目的并不是那么有用......(好吧,有mount -o mand......但这是针对用户级别而不是root用户).
Windows徽标计划要求unins000.exe由Inno生成的签名.我设计的唯一方法是解压缩安装程序,签名然后再重新打包.是不是有更简单的方法?
我找到了Inno Unpacker,但我不确定如何重新包装它.
在我的应用程序中,我需要验证它是否已签名.如果签名继续执行并退出应用程序,如果没有.signtool将用于签署应用程序.有没有C#代码可以做到这一点?
可能重复:对
PDF文件进行数字签名
在应用程序中,用户将上载PDF文件,然后上传使用数字笔创建的个人签名.如何在pdf文件中嵌入此签名?
我的许多客户使用软件进行数字签名.这个软件叫大堤,它是从商业的意大利室内设置和它连接到智能卡硬件像这样.
现在我希望从我的应用程序中做出数字签名,绕过执行它的软件.
是否可以在Delphi中执行此操作,是否有人已经这样做了?我也想添加时间戳.
BOUNTY注意事项:我不知道在意大利以外这是多么重要,无论如何在意大利有一项法律要求某些文件按特定规则存储.为了实现这一点,必须对数字签名并在文件上放置时间戳(pfd文件).基本上我问"是否有任何已经在Delphi中实现这一点并找到了成功的方法.你能分享你的结果吗?".基本上有一百万个USB智能卡读卡器,我不想在我的应用程序中开始支持数百万个驱动程序(我编写的应用程序部分是文档管理系统),如果有像TWAIN这样的东西用于图像扫描程序这会很棒.
我也可以接受链接到特定硬件的限制,所以我可以说如果你想要这个功能你必须购买这个硬件,我不想支持所有现有的硬件或时间戳/数字签名Web服务.所以我正在寻找的是Delphi 1-0-1的pdf文件的时间戳和数字签名.我希望我表达自己,如果没有,请问.
我需要知道是否可以使用RSA,证书和那些东西进行数字签名,或者是否只能签署某种文件.所有这些,使用PHP.
例如:纯文本文件可以用数字签名吗?图像怎么样(png,jpeg,bmp)?
我不需要"附加"带有图形签名的图像.
谢谢您的帮助.
我有一个使用各种第三方库(如JSON.NET)构建的应用程序.
我想确保构成我的应用程序的所有DLL都经过数字签名,包括第三方.鉴于这些未经作者签名,我是否可以/我应该自己签署第三方签名?
我有一个Web应用程序,其中一些数据(不是文件)需要使用PKI私钥进行数字签名.PKI证书和私钥将位于USB Cryptotoken中,当插入USB插槽时,它会将证书注册到浏览器.这减轻了使用证书进行身份验证的痛苦,因为我通过在我的应用程序中进行ssl-renegotiation.
但是,使用证书进行数字签名似乎有点棘手.我可以想到几种方法来做到这一点
CAPICOM - http://en.wikipedia.org/wiki/CAPICOM 这适用于支持CAPICOM的浏览器(例如IE).但是,似乎微软已经停止了这一点.
Mozilla Crypto对象 - https://developer.mozilla.org/en-US/docs/JavaScript_crypto
WebCrypto API - 大多数浏览器尚不支持此功能.
自定义Java Applet或一些可自由开源的JavaApplet控件.
还有其他选择吗?
我试图找出在Web应用程序中执行此操作的常见,方便和安全的方法.
注意:
来自Carlo Scarioni的Pro Spring Security书籍,我正在尝试将Spring Application与CAS Server集成.我按照书中指示的每一步,仍然坚持这个错误.请帮帮我.
SEVERE: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: signature check failed
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: signature check failed
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1904)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:279)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:273)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1446)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:209)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:901)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:837)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1023)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1301)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:311)
at org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:291)
at org.jasig.cas.client.validation.AbstractCasProtocolUrlBasedTicketValidator.retrieveResponseFromServer(AbstractCasProtocolUrlBasedTicketValidator.java:32)
at org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:187)
at org.springframework.security.cas.authentication.CasAuthenticationProvider.authenticateNow(CasAuthenticationProvider.java:140)
at org.springframework.security.cas.authentication.CasAuthenticationProvider.authenticate(CasAuthenticationProvider.java:126)
at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
at org.springframework.security.cas.web.CasAuthenticationFilter.attemptAuthentication(CasAuthenticationFilter.java:242)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:195)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) …Run Code Online (Sandbox Code Playgroud)