我很好奇,现在最普遍的方式是用什么方式来签署来自软件程序的遥测信息来向接收者证明它的真实性?
想象一下,这个软件(可以在客户PC上在前提下运行)创建了一个遥测记录。经客户同意,此记录将发送到供应商服务器。客户知道消息内容(由于法律原因),并知道它发送到哪个API (因为每个人都可以使用流量嗅探器)。
供应商如何确保遥测信息是真实的,来源于他们的软件?目的是减少恶意操纵遥测消息的风险。
第一个进入脑海的是将密匙嵌入到软件中,用它来签署遥测信息。接收方使用私钥检查签名,如果签名无效,则丢弃消息。
为了实现这一目的,软件装配线必须至少为软件的每个版本提供新的私钥,因此签名密钥保持新鲜。
明显的风险是签名密钥的泄漏。因为它将嵌入到软件的每一份副本中,并且软件被发送给客户,所以没有保证它是保密的。密钥有效时间短可以降低密钥泄漏的风险。但它不能短于软件版本本身的有效使用时间(1-2年)。所以钥匙泄漏的风险仍然存在。
这是一种可行的方法吗?建议的方案是否还有其他的缺点,我一开始看不出来?
发布于 2022-04-10 14:32:37
客户必须能够发送合法的遥测信息,因此客户也可以发送伪造的遥测信息。
换句话说,不可能创建一个遥测端点,它也不会接收伪造的消息。
但是
客户为什么要发送伪造的遥测信息?大多数遥测消息包含的数据,如确切的产品版本,版本号,日期和时间,操作系统等。
客户对于他们正在使用的Windows构建并没有真正的优势,那么他们为什么要撒谎呢?
发布于 2022-04-10 15:30:00
供应商如何确保遥测信息是真实的,来源于他们的软件?目的是减少恶意操纵遥测消息的风险。
你不能。你基本上是在问如何在一个你无法控制的系统上实现DRM,这是不可能的。
具有系统根权限的坚定攻击者将始终能够伪造遥测消息。但是有很多事情可以让你变得更难,比如:
在所有这些工作之后,如果人们真的愿意的话,仍然有可能伪造消息,而且您将使诊断和调试任何问题变得更加困难。
https://security.stackexchange.com/questions/261088
复制相似问题