四、链接参数防篡改方案
4.1、RSA算法应用防篡改
非对称加密算法是一种密码体制,其加密算法和解密算法使用不同的密钥:一个是公钥,一个是私钥。
RSA算法:
以下方案采用数字签名方式对链接参数进行加密和校验,具体描述如下:
1、签名算法:RSA
2、签名哈希算法:SHA1
原理:
利用RSA非对称算法可进行数字签名的特性,发送方将参数按一定规则拼接后作为明文,使用私钥对其进行签名,连同对应公钥的模和指数发送给发送方,由发送方生成公钥进行签名验证。因为RSA为非对称加密,即加密与解密不能使用同一个密钥,因此,即使第三方得到公钥的模和指数并生成了公钥,也无法生成有效的数字签名,从而保证参数的可靠性。
使用URL参数中的模和指数生成公钥进行验证会存在以下问题,因此公钥的模和指数不再通过URL参数进行传递,改为其他方式交给签名验证方(文件、邮件或其他方式),并由验证方根据情况选择保存公钥的模和指数或保存由模和指数生成的公钥。发送方需要保存私钥,并在私钥发生变更时,及时与验证方联系并提供新的公钥指数和模。
特殊情况:
假设:
篡改者知道原文的拼接规则以及签名的哈希算法:
当使用URL参数传递公钥的模和指数时,如果篡改者自行生成私钥并对篡改后的参数 进行签名,此时验证方仍可通过验证,但数据已被篡改。
具体实施方案: