首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何证明遥测信息的真实性?

如何证明遥测信息的真实性?
EN

Security用户
提问于 2022-04-10 13:27:37
回答 2查看 69关注 0票数 1

我很好奇,现在最普遍的方式是用什么方式来签署来自软件程序的遥测信息来向接收者证明它的真实性?

想象一下,这个软件(可以在客户PC上在前提下运行)创建了一个遥测记录。经客户同意,此记录将发送到供应商服务器。客户知道消息内容(由于法律原因),并知道它发送到哪个API (因为每个人都可以使用流量嗅探器)。

供应商如何确保遥测信息是真实的,来源于他们的软件?目的是减少恶意操纵遥测消息的风险。

第一个进入脑海的是将密匙嵌入到软件中,用它来签署遥测信息。接收方使用私钥检查签名,如果签名无效,则丢弃消息。

为了实现这一目的,软件装配线必须至少为软件的每个版本提供新的私钥,因此签名密钥保持新鲜。

明显的风险是签名密钥的泄漏。因为它将嵌入到软件的每一份副本中,并且软件被发送给客户,所以没有保证它是保密的。密钥有效时间短可以降低密钥泄漏的风险。但它不能短于软件版本本身的有效使用时间(1-2年)。所以钥匙泄漏的风险仍然存在。

这是一种可行的方法吗?建议的方案是否还有其他的缺点,我一开始看不出来?

EN

回答 2

Security用户

发布于 2022-04-10 14:32:37

这是不可能的,

客户必须能够发送合法的遥测信息,因此客户也可以发送伪造的遥测信息。

换句话说,不可能创建一个遥测端点,它也不会接收伪造的消息。

但是

.

客户为什么要发送伪造的遥测信息?大多数遥测消息包含的数据,如确切的产品版本,版本号,日期和时间,操作系统等。

客户对于他们正在使用的Windows构建并没有真正的优势,那么他们为什么要撒谎呢?

票数 2
EN

Security用户

发布于 2022-04-10 15:30:00

供应商如何确保遥测信息是真实的,来源于他们的软件?目的是减少恶意操纵遥测消息的风险。

你不能。你基本上是在问如何在一个你无法控制的系统上实现DRM,这是不可能的。

具有系统根权限的坚定攻击者将始终能够伪造遥测消息。但是有很多事情可以让你变得更难,比如:

  • 混淆代码
  • 在移动设备上添加越狱/根保护。
  • 检测虚拟化软件、调试器、数据包嗅探器等,并拒绝运行该软件。
  • 增加反调试保护。
  • 实现证书钉扎并尝试检测和破坏TLS解密(这意味着您的应用程序将无法在大多数企业网络中工作)。
  • 用客户端中的密钥加密和签名消息(可能与其许可证密钥相关,这样您就可以知道消息是谁)。
  • 经常改变上述所有的方法,所以人们不得不不断地重复他们所有的逆向工程工作。
  • 将遥测消息映射到用户的IP地址,并拒绝任何不匹配的信息。
  • 执行服务器端监视以检测任何可疑活动(在通常时间/模式之外发送的消息、无效的消息类型、以不可能的顺序发送的消息、被篡改的身体的消息等)。
  • 撤销您所检测到的任何试图处理此问题的用户的许可证。

在所有这些工作之后,如果人们真的愿意的话,仍然有可能伪造消息,而且您将使诊断和调试任何问题变得更加困难。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/261088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档