我正在为应用程序开发基于云的许可解决方案。应用程序可执行文件被封装起来,因此如果它被修改就不会运行。数字签名的许可证信息被发送到应用程序。我正在使用带有
BCRYPT_RSA_ALGORITHM
或 BCRYPT_ECDSA_P256_ALGORITHM
之一的 CNG API 来生成签名。我担心的是,我目前正在调用 BCryptVerifySignature
来验证签名,如果有人用一个总是返回 STATUS_SUCCESS
的假函数来挂钩这个函数,他们可能会欺骗应用程序认为收到的许可证信息是真实的。理想情况下,我想自己使用公钥解密签名,然后比较受保护的应用程序可执行文件中的哈希值。这可能使用 CNG 吗?