现在很对付费软件都是用的他人的网络验证系统,但是很多系统安全性并不高,更有甚者使用HTTP+MD5来做数据验证,下文我们就来谈一谈如何安全地实现网络验证
STEP1.生成注册码
当软件被购买时生成一个带有签名数字证书并提供给用户
STEP2.上传到软件验证服务器
将数字签名上存放的软件序列号,软件激活码,以及机器码,时间戳,随机Nonce,新的公钥和使用私钥签名过的哈希一同上传到软件验证服务器
STEP3.软件验证服务器下发临时许可证
软件服务器使用提供的信息签发一个新的数字证书并下发给用户,数字证书的有效日期不要太长,一般1天-1周即可.此证书的过期时间不要超过购买时下发证书的有效期。软件将缓存此秘钥直到过期。如果有未过期的缓存的秘钥将会跳过第2,3步
STEP4.软件向时间服务器请求当前时间
软件生成CHALLENGE_CODE并发给时间服务器,时间服务器发回时间,经数字签名过的[CHALLENGE_CODE与当前时间的哈希]发回客户端,客户端验证后即可进入主逻辑