图 2-1 硬件基本框架
在客户端中主要有定时器作为系统功能的限制单元以及License认证线程两个部分。根据要求设置要系统限制单元的重启时间。认证线程会检查本地是否有License认证通过后产生的文件以及其内容,如果已经通过认证且内容正确,线程会解除系统的重启限制;如果没有通过认证,客户端会向服务端发送申请,验证通过会生成本地文件,再次检查认证内容,检查通过后会解除系统的重启限制,如图 2-2所示。
图 2-2 客户端软件结构
在服务端段中分为状态查询线程和认证功能服务器两个部分。查询线程会回复查询设备的当前License认证数量以及总License数量,开启或者关闭服务器。认证功能服务器会监听远端的认证请求,建立一个新的线程实现验证功能,包括密钥计算,数据发送接收以及本地信息存储,如图 2-3所示。
图 2-3 服务端软件架构
系统会在启动时先启动限制功能,也就是启动一个定时器,定时器触发的时间就是设定的系统重启的时间,定时器的回调函数对系统进行重启。接下来客户端的认证线程对License进行认证如果本地已经通过认证或从远端获取了认证,认证线程会停止并删除定时器,此时系统的限制也就解开,如图 3-1所示。
图 3-1 系统限制流程图
硬盘 ID | 网卡 MAC 地址 | EMMC ID | T3 芯片编号 |
编号组成 | 字节数 | 说明 |
| 1字节 | 区分报文是机器码传输还是密钥传输 |
数据长度 | 1字节 | 机器码或密钥的长度 |
系统类型号 | n字节 | 实际的机器码或密钥数据 |
CRC | 2字节 | 上面所有数据的CRC校验码 |
结束 | 1字节 | 最后一字节必须是0 |
表 4-3 服务端文件形式数据存储
编号组成 | 字节数 | 说明 |
设备数量 | 8字节 | 认证机已经认证的设备数量 |
机器码1 | 128字节 | 设备1的机器码 |
密钥1 | 128字节 | 设备1的密钥 |
机器码2 | 128字节 | 设备2的机器码 |
密钥2 | 128字节 | 设备2的密钥 |
... | ... | ... |