1.一种轻量级的无证书工业物联网访问控制方法,其特征在于主要包括认证、带资源访问令牌的访问及访问退出三个流程,其中:
所述认证流程包含如下步骤:
步骤1:客户应用APP向资源服务器RS发起携带资源访问身份信息的认证请求;其中资源访问身份信息包括客户应用APP身份信息、用户身份信息;
步骤2:资源服务器RS接收认证请求,并生成一个随机数NRS;然后利用本地中央服务器LCS的公钥KLCS将随机数NRS、接收到的资源访问身份信息、资源服务器RS的身份标识加密后构成身份信息数据包,发送给本地中央服务器LCS;
步骤3:本地中央服务器LCS接收资源服务器RS的身份信息数据包并用本地中央服务器LCS的私钥 解密数据,生成一个随机数作为认证令牌NAToken,并根据资源服务器RS的身份标识从预存的资源服务器公钥数据库中得到对应资源服务器RS的公钥KRS和地址信息;然后将资源访问身份信息、资源服务器RS的地址信息和认证令牌NAToken等存入即将到访用户表中;再利用资源服务器公钥KRS将认证令牌NAToken、随机数NRS加密后构成认证令牌数据包,发送到资源服务器RS;
步骤4:资源服务器RS接收本地中央服务器LCS的认证令牌数据包,用资源服务器RS的私钥 解密数据包,然后将认证令牌NAToken和本地中央服务器LCS的地址信息构成的认证重定向响应包,发送给客户应用APP;
步骤5:客户应用APP接收资源服务器RS的认证重定向响应包,从中提取本地中央服务器LCS地址信息和认证令牌NAToken;判断客户应用APP的本地存储中是否含有该本地中央服务器LCS的公钥,若不包含则随机生成根服务器GRS与客户应用APP之间的通信密钥KG-A,然后利用根服务器GRS的公钥KGRS将KG-A、本地中央服务器LCS的地址信息加密后构成本地中央服务器LCS验证包,发送到根服务器GRS,跳转到步骤6;若包含则跳转到步骤8;
步骤6:根服务器GRS接收客户应用APP发来的本地中央服务器LCS验证包,用根服务器GRS的私钥 解密验证包,判断接收到的本地中央服务器LCS地址信息是否与预先存储的对应信息一致;若一致则验证通过,并利用通信密钥KG-A将该本地中央服务器LCS的公钥KLCS加密后构成本地中央服务器LCS验证确认包,发送到客户应用APP,跳转到步骤7;若不一致则返回错误响应到客户应用APP;
步骤7:客户应用APP接收根服务器GRS发回的本地中央服务器LCS验证确认包,用通信密钥KG-A解密验证确认包,提取本地中央服务器LCS的公钥KLCS,将该公钥KLCS和本地中央服务器LCS地址信息作为一个记录存储到本地;然后生成一个随机数NAPP,并利用KLCS将用户身份信息、客户应用APP公钥KAPP、认证令牌NAToken和随机数NAPP进行加密,构成用户身份认证数据包发送到本地中央服务器LCS,进行用户身份认证,跳转到步骤9;
步骤8:客户应用APP根据本地中央服务器LCS的地址信息从本地存储中提取本地中央服务器LCS对应的公钥KLCS,生成一个随机数NAPP;然后利用KLCS将用户身份信息、客户应用APP公钥KAPP、认证令牌NAToken和随机数NAPP进行加密,构成用户身份认证数据包发送到本地中央服务器LCS,进行用户身份认证,跳转到步骤9;
步骤9:本地中央服务器LCS接收客户应用APP发送的用户身份认证数据包,先查询该用户身份认证数据包源地址是否在即将到访用户表中,若不存在则返回错误响应到客户应用APP;若存在则用本地中央服务器LCS的私钥 解密该用户身份认证数据包后,查验用户身份认证数据包中的NAToken、用户身份信息是否与本地存储中数据全部一致,若否则验证不通过,则返回错误响应到客户应用APP,若是则验证通过,则本地中央服务器LCS再根据认证令牌NAToken、随机数NAPP、随机数NRS随机生成资源访问令牌NAccToken、客户应用APP与资源服务器RS通信密钥KA-RS和资源服务器RS与本地中央服务器LCS通信密钥KRS-L;然后利用资源服务器公钥KRS将NAccToken、KA-RS、KRS-L和NRS等信息进行加密,构成用户认证成功数据包发送到资源服务器RS,跳转到步骤10;同时利用客户应用APP公钥KAPP将NAccToken、KA-RS和NAPP等信息进行加密,构成用户认证成功响应包发送到客户应用APP,跳转到步骤11;
步骤10:资源服务器RS接收本地中央服务器LCS的用户认证成功数据包,利用资源服务器RS的私钥 进行解密,提取并存储资源访问令牌NAccToken、资源服务器RS与本地中央服务器LCS通信密钥KRS-L和客户应用APP与资源服务器RS通信密钥KA-RS;
步骤11:客户应用APP接收本地中央服务器LCS的用户认证成功响应包,利用客户应用APP的私钥KAPP进行解密,提取资源访问令牌NAccToken和客户应用APP与资源服务器RS通信密钥KA-RS;
带资源访问令牌的访问流程包含如下步骤:
步骤1:客户应用APP用通信密钥KA-RS加密携带资源访问令牌NAccToken的资源访问请求,发送到资源服务器RS;
步骤2:资源服务器RS接收客户应用APP的资源访问请求,利用通信密钥KA-RS解密数据包,从中提取资源访问令牌NAccToken,通过NAccToken索引资源服务器RS中与之对应的资源授权策略,并与请求的资源操作命令进行比对;若该资源操作命令存在于NAccToken对应的资源授权策略中,则资源服务器RS与要请求的资源设备RE进行通讯,发送资源操作请求,跳转到步骤5;若该资源操作命令不存在于NAccToken对应的资源授权策略中,则用通信密钥KRS-L加密携带资源访问令牌NAccToken的资源授权确认包,发送到本地中央服务器LCS,跳转到步骤3;
步骤3:本地中央服务器LCS接收资源服务器RS的资源授权确认包,用通信密钥KRS-L解密数据包,提取资源访问令牌NAccToken;然后查询资源授权数据库,确认该客户应用APP是否有权进行该资源访问请求,利用KRS-L将资源授权结果和与该资源访问令牌对应的资源授权策略进行加密,构成资源授权数据包发送到资源服务器RS;
步骤4:资源服务器RS接收本地中央服务器LCS的资源授权数据包,利用通信密钥KRS-L解密,并将资源授权策略保存到内存中;当资源授权结果为允许时,资源服务器RS与要请求的资源设备RE进行通讯,发送资源操作请求,跳转到步骤5;若资源授权结果为不允许时,则返回错误响应到客户应用APP;
步骤5:资源设备RE接收资源服务器RS的资源操作请求,返回操作结果到资源服务器RS;
步骤6:资源服务器RS接收资源设备RE的操作结果,利用KA-RS将操作结果加密后发送到客户应用APP;
步骤7:客户应用APP接收资源服务器RS返回的操作结果,并用KA-RS解密;
带资源访问令牌的访问退出流程包含如下步骤:
步骤1:客户应用APP用通信密钥KA-RS加密携带资源访问令牌NAccToken的资源访问退出请求,发送到资源服务器RS;
步骤2:资源服务器RS接收客户应用APP的资源访问退出请求,利用通信密钥KA-RS解密数据包,提取资源访问令牌NAccToken,并根据NAccToken释放相关资源;然后用密钥KRS-L加密携带资源访问令牌NAccToken的资源访问退出请求,发送到本地中央服务器LCS;
步骤3:本地中央服务器LCS接收资源服务器RS的资源访问退出请求,利用通信密钥KRS-L解密数据包,提取资源访问令牌NAccToken,并根据NAccToken释放相关资源。
2.一种轻量级的无证书工业物联网访问控制系统,其特征在于主要包括客户应用APP,与资源服务器通信的资源设备RE,与客户应用APP、本地中央服务器LCS通信的资源服务器RS,与客户应用APP、资源服务器RS通信的本地中央服务器LCS,与客户应用通信的根服务器GRS;其中:所述客户应用APP预先存储有根服务器GRS的公钥和地址信息;用于参与认证流程、参与带资源访问令牌的访问流程、参与带资源访问令牌的访问退出流程;
所述资源设备RE用于接收资源服务器RS的操作命令,并返回操作结果到资源服务器
RS;
所述资源服务器RS预先存储有本地中央服务器LCS的公钥和地址信息;用于向授权客户应用APP提供服务并参与认证流程;
所述的本地中央服务器LCS存储并统一管理客户应用APP的身份信息、对各资源设备RE的访问权限策略以及各资源服务器RS的公钥、地址信息等信息;用于授权客户应用APP访问资源设备RE并参与认证流程;
所述的根服务器GRS预先存储有本地中央服务器LCS的IP地址、公钥等信息,当系统中添加一个本地中央服务器LCS后,需要在根服务器GRS中添加本地中央服务器LCS的相关信息;用于参与认证流程。
3.如权利要求2所述的系统,其特征在于所述客户应用APP参与认证流程具体包括本地中央服务器LCS的身份认证和用户的身份认证:所述本地中央服务器LCS的身份认证是发送认证请求后接收经资源服务器RS传送的本地中央服务器LCS地址信息和认证令牌NAToken,判断本地存储中是否含有与之对应的公钥KLCS,若不包含则对随机生成的通信密钥KG-A、本地中央服务器LCS地址信息进行加密,发送到根服务器GRS;若包含则验证通过,根服务器GRS返回验证确认包到客户应用APP;
所述用户的身份认证是将用户身份信息、客户应用APP公钥KAPP、认证令牌NAToken等信息加密后构成用户身份认证数据包发送到本地中央服务器LCS;若验证通过,本地中央服务器LCS返回利用客户应用APP公钥KAPP加密资源访问令牌NAccToken、客户应用APP与资源服务器RS通信密钥KA-RS的用户认证成功响应包到客户应用APP。
4.如权利要求2-3任一所述的系统,其特征在于所述客户应用APP参与带资源访问令牌的访问流程,具体包括:
客户应用APP接收本地中央服务器LCS的用户认证成功响应包,利用客户应用APP的私钥KAPP解密,提取资源访问令牌NAccToken和客户应用APP与资源服务器RS通信密钥KA-RS,并利用通信密钥KA-RS加密携带资源访问令牌NAccToken的资源访问请求,发送到资源服务器RS;接收资源服务器RS返回的资源设备RE操作结果。
5.如权利要求2-4任一所述的系统,其特征在于所述客户应用APP参与带资源访问令牌的访问退出流程,具体包括:
客户应用APP接收本地中央服务器LCS的用户认证成功响应包,利用客户应用APP的私钥KAPP解密,提取资源访问令牌NAccToken和客户应用APP与资源服务器RS通信密钥KA-RS,并利用通信密钥KA-RS加密携带资源访问令牌NAccToken的资源访问退出请求,发送到资源服务器RS。
6.如权利要求2-5任一所述的系统,其特征在于所述向授权客户应用APP提供服务具体是通过从客户应用APP资源访问请求中提取出的资源访问令牌NAccToken索引与之对应的资源授权策略,判断请求的资源操作命令是否存在于该资源授权策略中,若存在则与要请求的资源设备RE进行通讯,否则发送资源授权确认包到本地中央服务器LCS,并接收返回的资源授权结果。
7.如权利要求2-6任一所述的系统,其特征在于所述参与认证流程即用户的身份认证具体是接收客户应用APP的认证请求后将身份信息数据包发送到本地中央服务器LCS,接收本地中央服务器LCS返回的认证令牌NAToken,并和本地中央服务器LCS地址信息组成一个认证重定向响应包发送给客户应用APP;客户应用APP验证通过本地中央服务器LCS的身份后,本地中央服务器LCS接收客户应用APP的用户身份认证数据包并返回用户认证成功数据包到资源服务器RS。
8.如权利要求2-7任一所述的系统,其特征在于所述资源服务器RS授权客户应用APP访问资源设备RE具体是通过查询资源授权数据库,确认客户应用APP是否有权进行该资源访问请求,并将资源授权结果和与该资源访问令牌对应的资源授权策略发送到资源服务器RS。
9.如权利要求2-8任一所述的系统,其特征在于所述资源服务器RS参与认证流程具体包括本地中央服务器LCS的身份认证和用户的身份认证,分别是接收资源服务器RS的身份信息进而生成认证令牌NAToken,然后将NAToken和NRS发送到资源服务器RS;接收客户应用APP发送的用户身份认证数据包,核对验证相关信息后生成用户资源访问令牌NAccToken、通信密钥KA-RS和KRS-L,然后将NAccToken、KA-RS和KRS-L等信息发送到资源服务器RS,将NAccToken、KA-RS等信息发送到客户应用APP。
10.如权利要求2-9任一所述的系统,其特征在于所述根服务器GRS参与认证流程即认证本地中央服务器LCS,具体是接收客户应用APP发送的本地中央服务器LCS的地址信息,判断是否与预先存储的对应信息一致;若一致则验证通过,并将该本地中央服务器LCS的公钥KLCS发送到客户应用APP。