电力产品 License 认证方案V1.0

电力产品 License 认证方案V1.0

1. 概述

1.1 需求背景

      在电力产品的项目要求下,需要实现一个认证授权的应用,能通过授权机对电力产品的系统进行认证激活。需要实现电力产品在授权机的认证授权过后才可以正常使用全部功能,授权机会获取电力产品的认证信息并保存。

1.2 功能描述

      根据对需求的分析,需要实现2个模块,一个是客户端模块:在电力产品没有经过验证,通过定时器设定重启时间限制用户的使用,主动进行认证操作,在通过网络或串口获得验证信息后,不会再对系统功能进行限制,系统可以正常使用;另一个是服务端模块,服务端需要时刻等待客户端发送的认证请求,并且正确下发认证信息,在认证操作成功之后还要对客户端电力产品的信息进行保存。

2. 架构设计

2.1 硬件架构组成

2.1.1 基本框架

      电力产品 License 认证系统由服务端和客户端两部分组成,如图 2-1所示。
      1) 客户端
            客户端就是电力产品中的一个限制单元,此单元会通过定时重启限制系统功能,并且负责和客户端的通信机制;
      2) 服务端
            服务端是提供的一个单独认证机,认证机可以接收客户端的认证请求,恢复客户端认证信息并本地保存;

                                                                                           图 2-1 硬件基本框架

2.2 软件架构组成

2.2.1 客户端软件架构

在客户端中主要有定时器作为系统功能的限制单元以及License认证线程两个部分。根据要求设置要系统限制单元的重启时间。认证线程会检查本地是否有License认证通过后产生的文件以及其内容,如果已经通过认证且内容正确,线程会解除系统的重启限制;如果没有通过认证,客户端会向服务端发送申请,验证通过会生成本地文件,再次检查认证内容,检查通过后会解除系统的重启限制,如图 2-2所示。

                                                                                                图 2-2 客户端软件结构

2.2.2 服务端软件架构

在服务端段中分为状态查询线程和认证功能服务器两个部分。查询线程会回复查询设备的当前License认证数量以及总License数量,开启或者关闭服务器。认证功能服务器会监听远端的认证请求,建立一个新的线程实现验证功能,包括密钥计算,数据发送接收以及本地信息存储,如图 2-3所示。

                                                                                                    图 2-3 服务端软件架构

3. 流程设计

3.1 系统限制流程

系统会在启动时先启动限制功能,也就是启动一个定时器,定时器触发的时间就是设定的系统重启的时间,定时器的回调函数对系统进行重启。接下来客户端的认证线程对License进行认证如果本地已经通过认证或从远端获取了认证,认证线程会停止并删除定时器,此时系统的限制也就解开,如图 3-1所示。

图 3-1 系统限制流程图


3.2 认证流程

      设备的认证中身份识别主要通过机器码也是唯一识别码,机器码由硬盘ID、网卡MAC地址、EMMC ID、T3 芯片编号组成,实际的设备不需要同时具有以上外设,机器码会根据外设拥有的情况调整机器码长度,但是至少保证芯片编号的存在确保机器码的唯一性。机器码通过加密的接口计算出密钥,客户端根据是否拥有密钥判断电力产品是否通过认证。

      客户端检测到本地没有存储密钥的文件判断电力产品没有通过认证,将通过网络或者串口发送License认证的请求,发送的请求是包含了电力产品机器码的报文,服务端收到后会基于应答,客户端收到应答表示机器码发送成功。接着再次发送报文表示请求服务端回复认证所需要的密钥,收到密钥后,客户端会对本地机器码计算出一个本地密钥并且比较两个密钥,如果密钥一致则通过认证,客户端会把密钥存储在本地文件系统中,最后切除系统定时器限制。

      服务端会一直监听客户端的连接,在建立连接之后,服务端会启动一个认证线程对客户端电力设备进行认证。认证线程接收来自客户端的机器码报文,将报文中的机器码计算出一个密钥,并且给予客户端一个应答。再次接收到客户端请求密钥的报文后,服务端会将计算出的密钥回复给客户端。回复过后服务端会将客户端电力设备的机器码以及密钥存储在本地的数据库或者一个文件中,如图 3-2所示。
                                                                                          图 3-2 认证通信流程


4. 协议设计

4.1 机器码组成

      机器码由硬盘ID、网卡MAC地址、EMMC ID、T3 芯片编号组成,当实际设备没有其中部分设备时,机器码会自动调整其长度,如表 4-1所示。
                                                                                                           表 4-1 机器码组成

硬盘 ID

网卡 MAC 地址

EMMC ID

T3 芯片编号

 

4.2 通讯报文格式

      服务端和客户端通过指定的报文格式进行通讯,主要包括数据类型,数据长度,数据,CRC校验值。服务端和客户端都按照此报文格式进行数据的组包和解包,如表 4-2所示。

                                                                                                          表 4-2 通讯报文格式

编号组成

字节数

说明


数据类型


1字节

区分报文是机器码传输还是密钥传输

数据长度

1字节

机器码或密钥的长度

系统类型号

n字节

实际的机器码或密钥数据

CRC

2字节

上面所有数据的CRC校验码

结束

1字节

最后一字节必须是0

4.3 客户端密钥存储格式

      客户端的密钥通过文件存储在指定目录,文件中直接单独存放密钥数据。

4.4 服务端数据存储格式

      服务端存储的客户端电力产品的机器码以及对应的密钥。

4.4.1 数据库形式

      数据库中创建了一个表来存放机器码以及对应密钥,名称为key的一列存储机器码,名称为value的一列存储对应的机器码。通过计算表中存储的数据条数获得当前已注册的设备数量。
4.4.2 文件形式
      文件的首8字节用来存储已经验证的设备数量,后面按照每256字节存储一个设备机器码和密钥的长度存储每一条数据,如表 4-3所示。


                                                                                                表 4-3 服务端文件形式数据存储

编号组成

字节数

说明

设备数量

8字节

认证机已经认证的设备数量

机器码1

128字节

设备1的机器码

密钥1

128字节

设备1的密钥

机器码2

128字节

设备2的机器码

密钥2

128字节

设备2的密钥


...

...

...

 








    • Related Articles

    • 通过 license 区分 RealEvo-IDE 版本

      Q:license 如何区分 IDE 版本? License 使用说明: License 和 RealEvo-IDE 版本没有直接关系。 如:license 可以激活 3.9.1 版本的 RealEvo-IDE,也能在 3.9.9、4.0.0 等版本上进行激活, 但与 RealEvo-IDE 的使用权限有关。 如:License 第 3 位到第 4 位与版本的对应关系: 01--------体验 02--------专业 05--------旗舰 ...
    • IDE 使用:System time wrong! License invalid!

      Q:IDE使用提示:System time wrong! License invalid!? 方式一: 将 ide 目录下的 timeinfo 文件删除。 删除timeinfo文件 方法二: 删除.realevoide 配置文件夹,该文件在 Windows 用户组的隐藏文件夹中 删除.realevoide文件夹 参考文章:IDE 注册:System time wrong! License invaild!
    • IDE 打开弹窗 license invalid 解决办法

      问:license invalid !Please contact with the software supplier。 (1)重新使用 license 激活 IDE,排除 license 无效或未生效问题; (2)查看网卡禁用情况包括无线网卡; (3)确定网卡硬盘无更换,排除升级或更换 网卡、硬盘造成的原因; (4)查看电脑是否安装了特殊软件,如:保密相关软件或其他限制软件;       (5)若win7 系统 升级到 win10 系统 ,也会造成 license ...
    • License can not authorize this product!

      使用加密狗对 ide 激活成功后,每次打开 ide 仍会弹窗提示"License can not authorize this product", 但 ide 仍可正常使用,弹窗如下: A:该弹窗是由于 IDE 软件与加密狗的版本类型不一致导致,使用浮动 license 或加密狗注册的软件都有可能会出现这种情况,虽版本不匹配造成弹窗,IDE 功能仍可继续使用。解决方式为重装同加密狗相同版本类型的 ide 或者联系商务重新获取同软件版本一致的加密狗工具。
    • RealEvo-IDE 过期处理方式

      Q:RealEvo-IDE 过期处理方式 在RealEvo – IDE的license过期后,需要与翼辉的工作人员沟通,获得在用 IDE 对应版本的新的 license。 其中安装包的后缀可辨识不同版本 即 : ULT 对应的是旗舰版、 PRO 对应的是专业版、 EXP 对应的是试用版。 获得新的 license 后,不需要重新安装 RealEvo – IDE 打开 IDE 的安装位置,找到 IDE 目录下的 RealEvo-Register 程序, 或者打开 Windows ...