我有一个具有1个引用程序集的应用程序(test.exe,test.dll)
我想要的是在test.exe运行时,它应该将发布者名称显示为"TestCompany".
为此,我对它进行了数字签名,它就是我想做的.如果我改变test.exe发布者名称的一个字节是"未知".这很好.
但是,如果我改变了test.dll,应用程序运行时没有任何反应,并将发布者名称显示为"TestCompany".哪个对我不好.
所以我把强名称放在app.config中test.dll并添加<bypassTrustedAppStrongNames enabled="false" />.
再一次,没有区别.所以我再次搜索并发现bypassTrustedAppStrongNames只检查程序集是否具有强名称.不是验证.这对我来说再好不过了.
我真正想要的是保护用户,而不是我的应用程序.如果用户运行我的应用程序并且它从我这里说出来,它必须来自我的每个字节.如果应用程序被更改,即使是单个字节,它也必须通知用户,而不是来自我.这是数字签名与强名称一起做的,但它们似乎都不是那么好.或者我错过了什么?
我能想到的最后一种可能的方法是手动检查程序集的强名称.
PS:目标.net框架是2.0
我的方案是我们有一个程序(exe),如果在特定文件夹中找到,将启动其他程序.我想确保它只启动使用我们的公司证书(Verisign批准等)签署的计划.从本质上讲,它只会以与自身相同的证书启动程序.我不想发送证书本身.
我一直在搜索网络和系统名称空间,并没有找到一个明确的例子,从文件中读取证书数据并验证它,并可以检查另一个文件.我发现的最接近的是Signtool,并且在单独的exe中进行此验证有点少.我知道强命名的东西不会有帮助,因为数字签名的文件是不同的,如此处有用的解释(http://blog.codingoutloud.com/2010/03/13/three-ways-to-tell-whether-an-assembly- dl-is-strong-named /)SO中的其他一些示例显示了原始数据的加密和验证,但没有以某种方式将它打包在一起的程序集.
任何想法或建议?
我正在尝试使用x.509证书签署XML文件,我可以使用私钥对文档进行签名,然后使用CheckSignature方法(它具有接收证书作为参数的重载)来验证签名.
问题是验证签名的用户必须拥有证书,我担心的是,如果用户拥有证书,那么他可以访问私钥,据我所知,这是私有的,应该只对用户可用谁签字.
我错过了什么?
谢谢你的帮助.
c# xml digital-certificate digital-signature x509certificate2
我正在尝试使用服务器的.cer证书文件建立https连接.我可以使用浏览器手动获取证书文件,并使用keytool将其放入密钥库.然后,我可以使用java代码访问密钥库,获取我添加到密钥库的证书并连接到服务器.
我现在想要实现获取证书文件并使用java代码将其添加到我的密钥库并且不使用keytool或浏览器来获取证书的过程.
有人可以告诉我如何处理这个以及我需要做什么?
我以编程方式创建了类型为jks的Java密钥库(即默认类型).
它最初是空的,所以我创建了一个DSA证书.
keytool -genkey -alias myCert -v -keystore trivial.keystore
Run Code Online (Sandbox Code Playgroud)
我怎样才能看到公钥和私钥?
即是否有一个命令打印我的证书的私钥?
我只能keytool -certreq在我的理解中找到整个证书:
-----BEGIN NEW CERTIFICATE REQUEST-----
MIICaTCCAicCAQAwZTELMAkGA1UEBhMCR1IxDzANBgNVBAgTBkdyZWVjZTEPMA0GA1UEBxMGQXRo
BQADLwAwLAIUQZbY/3Qq0G26fsBbWiHMbuVd3VICFE+gwtUauYiRbHh0caAtRj3qRTwl
-----END NEW CERTIFICATE REQUEST-----
Run Code Online (Sandbox Code Playgroud)
我认为这是整个证书.如何通过keytool查看私人(或公钥)?
我有西班牙当局(FNMT)颁发的有效证书,我想玩它以了解更多相关信息.该文件的扩展名为.p12
我想阅读其中的信息(名字和姓氏)并检查证书是否有效.用pyOpenSSL可以做到吗?我想我必须在OpenSSL中使用加密模块.任何帮助或有用的链接?试着在这里阅读:http://packages.python.org/pyOpenSSL/openssl-crypto.html但信息不多:-(
我正在尝试使用WebCrypto API签名数据,但是我不想创建私钥/公钥并将其导出到pkcs#1或8,我真的想使用用户的PKCS#12来签署数据.我已经阅读了W3C规范,但不能做很多,也找不到任何关于如何做到这一点的好材料.现在我想把ActiveX和Java小程序放在一边.有没有办法调整以下内容:
var buffer = encode(prompt("Please enter your password"));
//TODO:
//implement a prompt for a pfx or cert
return crypto.subtle.importKey("raw", buffer, "PBKDF2", false, usages);
//TODO:
//instead of importing it, ask for the certificate's pass to sign data
//with crypto.subtle.sign
Run Code Online (Sandbox Code Playgroud)
有什么指针吗?
更新 这是我一直在工作的代码
<script src="forge.min.js"></script>
<script>
var errorsReportedByVerifier;
errorsReportedByVerifier = checkStorage() && checkBrowserAPIs();
if (!errorsReportedByVerifier){
console.log("adding click event");
document.getElementById('btnPfx').addEventListener('click', handlePFXFile, false);
storeVariables();
getVariables();
}
function handlePFXFile(evnt) {
console.log("handling pfx")
//alert(document.getElementById('pfx').value);
//error happens in 1st line
//error object does not accept property …Run Code Online (Sandbox Code Playgroud) javascript digital-certificate digital-signature webcrypto-api
我制作了一个奇怪的小程序,可以让你用你的声音画画.显然它需要访问麦克风,但Java小程序不允许访问,除非它们已签名.据我所知,它很难并且涉及密码学,虽然不清楚,但我认为我也应该向Verisign支付金钱.这一切似乎都是很多偏执的创新,让我感到闷闷不乐,我认为我不是第一个这么想的人.
有没有办法绕过这个"用于教育或测试目的?" 或者可能在我的浏览器中关闭安全性?或免费签署小程序?
我使用的是Firefox 3.0.15和Java 1.6.0的Ubuntu 9.04
我一直在努力解决问题,也许你们可以指出我正确的方向.
我正试图通过https连接在网络服务器上对pdf进行数字签名.
在页面加载时我正在这样做:
HttpClientCertificate cs = Request.ClientCertificate;
X509Certificate card = new X509Certificate(cs.Certificate);
Org.BouncyCastle.X509.X509CertificateParser cp = new Org.BouncyCastle.X509.X509CertificateParser();
Org.BouncyCastle.X509.X509Certificate[] chain = new Org.BouncyCastle.X509.X509Certificate[] { cp.ReadCertificate(card.GetRawCertData())};
Run Code Online (Sandbox Code Playgroud)
我在最后一行代码中收到错误"m_safeCertContext是一个无效的句柄".
请注意:
[System.Security.SecurityCritical, System.Security.SecurityTreatAsSafe]属性添加到所有方法甚至类中以查看它是否可行...没有这样的运气.任何人都可以给我一个暗示吗?
我在Visual Studio 2012中使用限制版本的Install Shield创建了一个安装程序.
我有一个数字证书,我想添加到安装程序.
我想使用Install Shield的SingleImage功能创建并向我的客户提供单个安装文件(例如setup.exe).但是,似乎我必须通过Install Shield将数字证书附加到一个msi文件中,该文件嵌入在setup.exe中.
我发现在运行安装程序时,将数字证书放在setup.exe上会导致告知用户发布者是未知的.如果换句话说,那就是没有正确部署数字证书.
我可以访问msi文件以向其添加数字证书吗?如果是这样,怎么样?
c# ×4
java ×3
.net ×2
keytool ×2
cryptography ×1
https ×1
jar-signing ×1
javascript ×1
keystore ×1
openssl ×1
pyopenssl ×1
python ×1
security ×1
ssl ×1
strongname ×1
xml ×1