【发布时间】:2013-12-22 19:58:31
【问题描述】:
我知道一点身份验证理论,但想知道它是如何真正付诸实践的。
这些软件补丁必须定期分发。为确保只有真正的内容才能到达我们的用户,我们被建议在分发之前对我们的内容进行签名。
计划是生成一个公私密钥对。补丁首先由我们的私钥和接收者签名,然后使用我们的公钥对下载的补丁进行身份验证。我们签名的想法是生成补丁的散列并用我们的私钥加密散列。加密后的哈希(签名)将在分发前与补丁一起捆绑。
我们进一步被告知,从 CA 获取我们的公钥的数字证书并将其发布在我们场所的证书服务器上是一种很好的做法。我们被告知 CA 将使用其私钥创建此证书。我们的用户应该从我们的服务器下载公钥证书并使用 CA 的公钥对其进行身份验证。因此,我们的用户会确信他们拥有我们提供的正确公钥来验证补丁的真实性。
最后是问题:
如何/在哪里可以下载 CA 的确切公钥,以验证从我们服务器下载的公钥证书?
这些证书有哪些格式?这些是纯文本文件还是 XML 或 ??
【问题讨论】:
-
请注意,RSA签名生成与散列+加密不同。签名包括散列,然后为签名生成填充,然后使用私有指数进行模幂运算。加密只是填充 用于加密,然后使用公共指数进行模幂运算。至少不要混淆这两种不同的填充机制。
-
@owlstead:点了。澄清一下,我们基本上是在寻找最小/基本的身份验证。在这种情况下,加密哈希似乎可以满足我们的目的。
-
我没有看到加密哈希比使用签名生成的现有标准实现更容易。我会遵守标准,除非你想最终陷入维护噩梦。此外,使用公钥进行加密通常不需要任何针对侧信道攻击的保护,而签名生成则需要。因此,您也可能会牺牲安全性。
标签: security authentication cryptography digital-certificate