作为软件开发人员,我的故障转储(例如来自 Breakpad、Windows)是否应该加密和签名?我提供了导出故障转储的功能,以便在用户报告问题时可以查明问题。
在保护我的产品方面,我的担忧(攻击者是黑客攻击产品以获得某些东西的用户):
- 转储为黑客提供了太多信息来逆向工程或破解软件,比如启用功能或许可证?
- 密码和密钥可能存储在转储中,供黑客破解软件。
- 用户可能会向我们返回一个恶意格式错误的转储,当我们试图破译我们机器上的转储时会造成严重破坏。如果我们的应用程序对转储进行签名,至少我们可以自信地打开文件。
更新: 对于最后一个要点,其中一个答案提醒我,对数据进行签名没有任何意义,因为密钥必须在产品本身中,然后黑客无论如何都可以使用它来签名。此外,可以通过使用临时虚拟机来规避对恶意转储的恐惧。
最后剩下的问题是转储,因为它包含地址和东西,可以帮助黑客绕过许可功能等限制。