请教一下关于 激活(授权)的方案

查看 27|回复 3
作者:victimsss   
最近有一个关于手动激活的需求,大概就是出售硬件之后,需要联网激活,不同设备的质保可能不一样。
目前我考虑的流程大概是:
1 、只生成两对密钥对,将设备私钥、服务端公钥烧录到所有设备上
2 、联网激活的时候,读取设备的指纹信息,使用设备私钥加密发送到服务端
3 、服务端用设备公钥解密确定产品信息,然后用服务端私钥生成一个 license 入库并下发
4 、设备端输入 license 后,会用服务端公钥解密,与本地指纹信息进行匹配,都符合则向云端发送激活请求
5 、最后完成激活。
想问一下:
1 、这样设计逻辑是否过于冗余或者是否闭环
2 、中间有无可能被篡改或者伪造信息。
3 、最好说一下更简单更成熟的方案。
89ao   
不是设计者,我是用户。
反正经验来看,所有的不限次数的,基本都会被重复利用;
不联网续签的,也基本都会被滥用;
cassidy0134   
@victimsss YubiHSM ,用这东西,这是个物理密钥,他插在哪儿,哪台机器能用。
本地程序调用 HSM 接口拿信息、key 、滚动 token ,上传远端验证,信息过期、key 不对、token 过期,直接拒绝。
YiXinCoding   
看着就麻烦了。
1. 设备烧录一个全局唯一的 ID 和公钥。
2. 后台维护每个设备 ID 的质保有效期和激活状态(同一个 ID 二次激活需要人工审核)。
3. 设备联网的时候取到包含有效期和私钥签名的 License 存起来,每次设备启动的时候公钥验签一遍就完事了。
License 只有服务端的私钥能加签名,伪造不了。要破解只能重新烧录。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部