确保已部署软件的公钥安全

问题描述 投票:0回答:1

我想用我自己的公钥将我的应用程序运送给我的客户。当我的客户需要从我的应用程序中导出IP数据用于调试时,将使用这个密钥。这个数据需要只有我自己可以读取。假设客户端无法读取我的代码,也无法访问我的应用程序的内存,但能够在应用程序内识别我的公钥,也许会用他们的公钥替换,从而使导出的数据可以被他们读取。在开始导出之前,我有什么办法可以确保我的公钥实际上是我自己的私钥的一对?

encryption public-key-encryption public-key pki
1个回答
0
投票

如果 我们假设上位机的威胁模型,特别是攻击者不是...。调试 或在运行时以某种方式破坏进程的内存。应用程序应该验证公钥 在进行加密之前,无论公钥来自何处。

按照强度递减的顺序。

  • 来自公共证书机构的数字签名(需要支付费用),依靠系统的可信根
  • 用上级拥有的另一个私钥进行数字签名(在应用程序中硬编码公钥)
  • 带硬编码秘密的公钥HMAC。
  • 哈希值

在RSA密钥的情况下,模数几乎可以确定公钥。我所熟悉的大多数厂商实现的RSA中的公钥指数反正都是硬编码为65537。

© www.soinside.com 2019 - 2024. All rights reserved.