公钥完整性-中间人攻击
Public Key Integrity - Man in the middle attack
我想许可我的产品。问题在于验证和确保公钥不会被更改,证书也不会被更改(中间人攻击)。
到目前为止,我的计划是;
- 我将带有许可证密钥和签名证书(使用私钥签名)的EXE交给客户
- 当客户输入许可证密钥时,我的EXE将使用公钥验证它(生成哈希代码,然后解密证书以获得其他哈希代码并进行比较)
现在的问题是;如果有人对EXE进行反向工程,用自己的公钥更改公钥,并用自己的私钥生成新的证书。然后EXE将始终验证证书,我的EXE被黑客入侵。
这可能吗?如果是,有什么解决方案可以确保我的公钥不被更改?
注意:不涉及互联网连接。
要确保某个内容(例如可执行文件)的完整性,请使用私钥对其(或其关键部分)进行签名,并在每次启动应用程序时检查签名是否有效。
有足够时间的人当然可以弄清楚签名是如何完成的,并替换它。他们可以完全绕过检查。唯一的解决方法是加密。但有足够时间的人可以算出解密算法。。。
保护许可证的常见方法是将软件绑定到一些硬件,如USB加密狗、TPM或HDD序列号。这仍然不能保证一个坚定的黑客不会绕过你的许可。
没有100%的黑客防护。你所要做的就是让你的用户破解它变得不经济。努力破解一笔比你为产品收费更贵的交易。使许可条款非常明确,并警告在违规情况下被起诉的风险。建立可疑违规行为的报告机制,这样你就可以追查他们。
相关文章:
- C++Brute Force攻击函数不会返回结果
- PostgresSQL - SQL Ready 语句与字符串转义,防止 SQL 注入攻击
- AES ECB已知文本攻击
- 缓冲区溢出怎么会成为黑客的攻击
- 比较两个文件中的两个中间人的最佳方法.C++
- 您可以在不调用构造函数的情况下调用攻击器吗?
- C 可以使destuructor不称为班级成员和基类攻击方的灾难
- 攻击者未调用
- 为什么在任务后打电话给攻击函数
- 如果(玩家[P] .setCoin(Gameboard,Input))将其命名为“在线”游戏板的攻击函数)
- 保存对象的攻击函数并稍后称呼它是明确定义的行为
- 此代码是否容易受到 SQL 注入的攻击?我该如何使其安全
- 我如何明确称为STD迭代剂的攻击函数
- 什么时候称为班级的攻击者
- 在POCO服务器应用程序中预防目录遍历攻击
- 返回对象的攻击子具有副作用
- 我如何仅在一种情况下或某些情况下专业攻击效果
- 您将如何检查以攻击的给定范围内的游戏作品
- 我可以称呼班级显性的构造函数和攻击函数
- 公钥完整性-中间人攻击