首页 文章

DSA:黑客可以用*公钥做什么?

提问于
浏览
18

共享软件注册系统I 'm currently developing embeds the public DSA key in the executable itself, and the private key resides on a server. (For the sake of discussion let' s假设服务器是100%安全的,并且任何人都无法获得私钥 . )

每当购买程序时,服务器通过使用私钥对用户的名称进行签名来为用户生成许可证 . 然后将该许可证通过电子邮件发送给用户 . 用户手动将其名称和许可证输入共享软件应用程序后,应用程序中嵌入的公钥将验证其是有效或无效的许可证 .

然而,对于具有正确“技术诀窍”的坚定的人来说,反汇编可执行文件并检索公钥将是相当微不足道的 .

我的问题是,他们可以用它做什么?公钥本身是完全无害的吗?公钥是否足以对密钥生成器进行逆向工程?

好奇的人想知道 . 提前致谢!

8 回答

  • 23

    公钥应该没有任何用处 . 但是,如果很容易找到检查,他们可能只是简单地绕过它并在一个总是成功的测试中进行补丁,而不必费心去根据公钥验证许可证 .

  • 0

    公钥本身会让他们解密服务器发出的任何加密信息 . 而已 . 从公钥到私钥非常困难; 's how public key cryptography works. (By “exceptionally” I mean that it'旨在抵制资金充足的政府工作;如果它让NSA不让你破裂,它肯定足以阻止Joe Blow . )

    请注意,它对DRM没有帮助,它听起来有点像你想要做的 . DRM完全被设计破坏;如果攻击者有信息和密钥在他本地的设备中解锁它,它已经游戏结束了 . 如果你给攻击者一把钥匙,它也可能是公开的,因为他肯定不会愿意保密...

  • 2

    到处都使用公钥 - 登录表单,银行交易的安全性,客户端身份验证等等 . 所以简短的回答是你不应该担心,导致很多其他的,聪明的人已经看过这个问题并接受了分配公钥到 endpoints .

    人们可以从您的公钥中得知什么?他们显然知道一个关键名称和密钥长度 . 我假设密钥是证书的一部分,它还可能包含有关贵公司和网站URL的一些详细信息 .

    我的问题是:

    1)为什么你担心可执行文件中的公钥?任何一半不错的破解者只会改变你的可执行文件以完全绕过公钥检查 . 当您向客户端提供可修改的二进制文件时,加密强大这一事实毫无意义 .

    2)你是否意识到你可能陷入困境?使用公钥加密来保护二进制文件没有任何内在错误,但随着系统的发展,您可能会遇到问题 . 诸如过期密钥,密钥翻转和密钥发行(我相信这是您正在开发的工具)可能会成为一个主要的痛苦 . 然而,你仍然会遇到这样的现实:你的更大的挑战是阻止破解者重新路由二进制文件以完全避免你的安全检查 .

  • 1

    假设正在使用尚未完整的加密方法,则不能使用公钥来确定私钥 . 它意味着真正公开;任何人都知道 .

  • 7

    只是拥有公钥不足以做任何有用的信息 .

    唯一可以做的就是有人可以使用只能用私钥解密的公钥来加密消息 . 但如果私钥仅在服务器上,则不会执行任何操作 .

    任何其他攻击都需要尝试计算私钥,私钥不会因公钥而加速 .

  • 1

    在非对称加密中,将公钥提供给攻击者是安全的 . 但是,此值以及由私钥生成的签名或密文可以在Trivial Attack中用于获取相应的私钥 .

  • 0

    关键是这种加密旨在保护消息的内容并验证发件人的真实性,在这种情况下,用户清楚地知道,即名称和供应商等 . 更好的是保护代码的一部分这种加密使得关键的代码位在使用正确的密钥之前保持乱码 .

    一旦使用密钥,用户就可以解密并制作软件的副本 . 完全受保护的软件完全无法使用 . 虽然无关this是关于保护事物的有趣读物 .

  • 1

    我不同意公钥没用 . 我生成自己的公钥和私钥对,让我们假设我在可执行文件中找到了公钥的位 . 我将公钥更改为我的公钥 . 现在我可以用我的私钥签名,程序会接受它 .

相关问题