网络授权认证设计方案v1021.docx
- 文档编号:30335126
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:11
- 大小:308.30KB
网络授权认证设计方案v1021.docx
《网络授权认证设计方案v1021.docx》由会员分享,可在线阅读,更多相关《网络授权认证设计方案v1021.docx(11页珍藏版)》请在冰豆网上搜索。
网络授权认证设计方案v1021
网络授权认证设计方案
拟制人:
日期:
评审人:
日期:
批准人:
日期:
修订记录
日期
版本
修改章节
修改描述
作者
2016-05-23
v1.00
2016-07-06
V1.01
2016-09-27
V1.02
添加错误码及通信接口
授权认证设计方案
1前言
网络授权是一种SaaS模式的授权。
软件在本地运行,授权许可始终保存在授权服务器——“云端”。
网络授权要求客户端软件具备连网条件,可以根据具体的情况要求时刻连网或每隔一个固定的时间连一次网,以便跟踪和管理授权。
相比本地授权,云授权的安全级别要更高,这是因为授权的核心机制只存在于服务器上,而服务器与应用软件之间采用了高安全性通讯协议。
2系统概述
当前的加密方案无法满足android、IOS、ARM等平台的算法保护、销售手段。
针对此问题,开发一套网络加密授权系统。
本期主要针对android平台。
1、做jar包,选择要应用到android平台上的算法SO进得封装做android上可调用的jar包。
2、加密,通过加密客户端选择已做好的算法jar包,填写项目ID(必须唯一)、项目名称、公司信息、及加密版本,并将项目ID、服务器IP及连接端口写入该jar包同时将项目信息提交至网络认证服务器。
3、授权,通过授权客户端对生成项目进行授权,支持时间、并发数量、使用次数等多种控制方式,并将授权配置信息提交至网络认证服务器,用于算法认证。
4、认证,加密后的jar包提供给客户开发使用,APP启动后调用该jar包时,jar包会和网络认证服务器通信,采集本地硬件信息、jar包信息等向网络认证服务器注册、申请使用,得到认证后,jar包也会定期向服务器发送认证信息包。
为了提高数据安全性,通信采用SSL加密,而且在发认证包之前,会随机发送心跳包。
3方案设计
整个系统主要由服务器,加密客户端,授权客户端,apk应用程序包组成。
认证过程由jar包和服务器通过gsoap通信进行数据交互验证。
3.1系统结构
3.2系统详细设计
3.2.1做jar包
调用算法SO,重新封装成SO,新的SO主要有3个接口函数:
初始化算法、调用算法、退出算法。
同时新的SO中还封装有与认证服务器认证及心跳的私有接口,当初始化算法时就会先启用心跳及认证接口,如果认证失败,则不能调用算法接口。
把新的封装好的SO通过java做成jar包,供加密客户端加密用。
jar包封包流程:
3.2.2加密
仅支持已集成好的算法jar包。
可查询已有的项目、公司信息等;可新建公司信息。
3.2.3授权
授权方法:
1、输入公司名称查找项目名称然后进行授权。
2、直接输入项目名称进行授权。
3、列出所有项目选择需要进行授权的项目进行授权。
授权流程:
登录授权客户端,输入项目名称,查询是否已授权,
已授权处理:
1、用户可以选择是否重新授权,重新授权内容包括:
修改使用期限、使用次数、使用数量等。
2、用户可以查询、删除验证表中的设备认证信息,如:
设备损坏时,可以删除设备。
3、
未授权处理:
可以添加新的授权策略,授权信息记录到下表:
3.2.4jar包认证
移动端流程:
移动端流程描述:
APP调用jar包初始化算法,jar内部启动与云端服务网络连接,首先jar包会发送随机次数的心跳包后再发送认证包,如果认证包得到回效,且认证成功,APP才可以调用算法接口处理数据。
其它情况都视为初始化算法失败,不能调用算法接口。
在APP调用算法的过程中,jar包还会定时发送随机次数的心跳包及认证包来验证算法是否能运行。
认证包主要内容有设备硬件指纹、APP绑定ID,jar包中的加密ID。
其中网络通信采用SSL加密。
服务端流程:
注意:
1、加载Jar包的时候先发随机次数心跳包,经过一段合适时间再发送请求token给服务端,避免第一时间发送请求token被截获。
2、请求token包含项目UUID、设备UUID、AppUserID。
3、返回token包含下一次需要验证的时间,到达这一指定时间客户端需要重新进行验证。
4、网络不通时候可以发心跳包给服务端,服务端有回应时再发请求token,避免持续请求token被截获。
4数据库
4.1关系模式
主要有四张表:
项目表,公司信息表,项目关系表,验证表。
客户与授权关系如下:
5通信
移动端与云端服务器通信,采用的是gsoap协议。
5.1请求接口
函数
request(UserInputuserIn,OutInfo&infoOut)
参数
UserInputuserIn
请求数据结构体
OutInfo&infoOut
回复数据结构体
返回值
int
=0成功、<0通信失败
说明
此函数用于视频分析,可返复调用分析视频
5.2移动端请求结构体对像
structUserInput
{
intnHeartbeat;//1表示心跳、0表示数据请求
intnIsFirstLogIn;//1表示第一次启动算法、0表示定时检证
char*szProjectID;//项目ID(加密ID)
char*szDevUUID;//设备ID
char*szAppUserID;//APP提供绑定ID(可有可无)
}
5.3移动端请求回复结构体对像
structOutInfo
{
intnHeartbeat;//1表示心跳回复、0表示数据回复
intnIsSuccessful;//与返回码对应
char*szTime;//下次检证的时长,位单为秒例如“600”
}
6配置需求
运行环境
Windows2008以上版本
硬件要求
服务器一台,备份服务器一台
等三方库
Mysql(v5.1)、gsoap9(v2.8)、java1.6及以上版本的jdk
7返回码
即OutInfo请求回复结构体中的nIsSuccessful为返回识别码
协议号
含义
0
(当非心跳时)请求成功
10000
心跳
10001
未授权
10002
超过使用期限
10003
项目ID不存在
10004
超过使用数量
10005
超过使用次数
10006
数据库操作失败
10007
参数错误
10008
未连接
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 授权 认证 设计方案 v1021