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

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

返回顶部