一种面向电力调度控制系统的统一身份认证方法
技术领域
本发明涉及一种面向电力调度控制系统的统一身份认证方法,属于身份认证系统技术领域。
背景技术
新一代调度控制系统,多级调度机构,“物理分布,逻辑统一”架构需要统一的身份认证服务,实现用户本地登录,全网访问的需求。
随着公司信息化建设的不断深入,新一代调度控制系统的研发设计已提上日程。新一代调度控制系统应用先进成熟技术,采用“物理分布、逻辑统一”的全新架构,基于统一的支撑平台,由部署于调度端的监控系统和部署于云端的模型数据中心及分析决策中心等部分组成,其目标是实现“全业务信息感知、全系统协同控制、全过程在线决策、全时空优化平衡、全方位负荷调度”的愿景,全面支撑新一代电力系统运行。
新一代调度控制系统采用“物理分布、逻辑统一”的全新架构,具有各个业务系统广域分布,业务服务远程使用的特点,同时新系统采用人机云终端实现构建位置无关、同景展示功能,支持调控人员本地、异地无差别监视控制。因此,新一代调度控制系统对身份认证和访问授权管理提出了更高的要求:
(1)本地认证的高可靠性。随着网络技术的发展,传统的基于用户名密码的身份认证手段,已不能适应新环境下的安全需求,需要研究调度数字证书、人脸识别、指纹识别等多种识别技术相结合的身份认证手段,实现人员本地登录的强身份认证,保证人员在本地登录时,身份的可靠。
(2)跨系统访问时的身份认证。新系统的人机云终端支持本地、异地无差别浏览,需要研究广域认证技术,解决本地用户在全系统范围内的身份识别问题,实现人机云终端的本地、异地无差别浏览。
目前电力调度控制系统中,办公人员通常是使用电力调度数字证书系统来进行身份认证,办公人员的电脑作为客户端,业务系统的服务器作为服务端,双方的证书都需要相互验证身份,即业务系统的服务器需要验证办公人员的客户端证书,客户端的电脑要验证业务系统服务器的证书。客户端和服务端的证书都由对应级别主管的电力调度部门颁发,其中业务系统服务器端的证书采用的是p12文件格式的软证书,存储在磁盘上,而面向办公人员的客户端的证书采用的是电力调度专用的USB Key介质。客户端证书存放在USB Key中,无法复制、无法导出私钥,可以有效防止黑客或他人盗取证书,安全性高。即使登录名和密码泄露,但是没有该电子钥匙介质,也不能查看到敏感信息。同时USB Key如普通U盘大小,携带方便,办公人员可以随身携带,随走随用。
调度数字证书系统必须使用电子钥匙介质才能进行身份认证,这就限制了其只能用于带USB接口的设备,身份认证方式单一,无法支持新一代调度控制系统中的移动云终端的身份认证。且目前电力调度控制系统中的用户都是本地用户,身份认证也都是基于本地进行认证,因此本地用户无法访问异地业务系统,无法满足新一代调度控制系统人机云终端本地、异地无差别浏览的需求。
发明内容
针对现有技术存在的不足,本发明目的是提供一种面向电力调度控制系统的统一身份认证方法,根据人机云终端的不同类型,采用多种识别技术相结合的身份认证方法,能够实现人员本地登录的强身份认证;基于国产密码算法的用户身份标识实现了用户在全网范围内的广域身份认证。
为了实现上述目的,本发明是通过如下的技术方案来实现:
本发明的一种面向电力调度控制系统的统一身份认证方法,包括以下步骤:
在业务系统中部署广域身份认证模块,所述广域身份认证模块与身份认证中心进行通信,发送广域网内的异地用户发来的用户身份标识给所述身份认证中心,并接收身份认证中心返回的验证结果,实现异地用户的广域身份认证;
在人机云终端部署用户凭证获取模块,所述用户凭证获取模块根据人机云终端设备类型的不同选择不同的认证方式,在非移动人机云终端上采用调度数字证书和人脸识别相结合的身份认证方式;在移动人机云终端上采用用户名密码和人脸识别相结合的身份认证方式;
每个身份认证中心的认证中心证书管理模块都采用国产密码算法生成一个秘钥对,并写入p12文件生成一个软证书,保存在自己认证中心的磁盘上,同时将公钥写入pem文件生成一个公钥证书,并分发给新一代调度控制系统中部署的其他身份认证中心。
新一代调度控制系统由国分-省两级组成的架构体系,身份认证系统分为国分-省两级部署,国分层面,部署一个国分级身份认证中心,用于国分级用户的本地身份认证和各个省级用户身份的识别认证;省级层面,每个省部署一个省级身份认证中心,负责本省用户的本地身份认证和国分级以及其他各个省级用户身份的识别认证。
异地业务系统收到用户身份标识后,将所述用户身份标识发送给所属的身份认证中心,所述身份认证中心解析明文部分,获取其所属的认证中心,根据认证中心名,获取该中心的公钥证书,对身份标识的签名部分进行验签,验签通过,则广域身份认证成功,异地业务系统允许其访问。
上述广域身份认证步骤如下:
(1-1)异地业务系统Sys_B接收附带身份标识的用户User_A的访问请求,调用广域身份认证模块,将身份标识发送给业务系统Sys_B的身份认证中心IAC_B;
(1-2)身份认证中心IAC_B收到身份标识后,使用Base64解码身份标识中的身份信息,获取用户名、所属认证中心名IAC_A、生成时间、超时时间;
(1-3)身份认证中心IAC_B获取当前时间,判断身份标识是否超时,如果超时,返回验证失败,否则,执行下一步;
(1-4)身份认证中心根据用户所属的认证中心名IAC_A,获取IAC_A的公钥证书,并使用该公钥证书中的公钥对身份标识进行验签,如果验签失败,返回验证失败,否则,返回验证成功,执行下一步;
(1-5)业务系统Sys_B的广域身份认证模块收到用户身份标识验证成功的信息后,通知业务系统Sys_B用户可信,业务系统Sys_B响应用户User_A的访问请求。
在所述非移动人机云终端上采用调度数字证书和人脸识别相结合的身份认证方式,具体方法如下:
(2-1)系统启动摄像头,获取用户人脸图像,提取特征信息,生成人脸数据F;
(2-2)将用户名UA、随机数M、电子签名S和人脸数据F作为身份凭证,发送到身份认证中心;
(2-3)身份认证中心根据用户名UA,查询数据库,获取该用户的公钥证书,解析公钥证书获取公钥,对随机数M、电子签名S进行验签,如果验签通过,则执行下一步,否则身份认证失败,返回错误信息;
(2-4)身份认证中心使用用户名UA、查询数据库,获取该用户的人脸特征数据T,调用人脸比对算法计算T和F是否是同一个人,如果是同一个人,则身份认证成功,执行下一步,否则身份认证失败,返回错误信息;
(2-5)身份认证成功,身份认证中心为该用户生成一个全网唯一的用户身份标识,返回给用户,用于在访问异地业务系统时,表明自己的身份。
在移动人机云终端上采用用户名密码和人脸识别相结合的身份认证方式,具体方法如下:
(3-1)系统通过摄像头,获取用户人脸图像,提取特征信息,生成人脸数据F;
(3-2)将用户名UA、密码P、人脸数据F作为身份凭证,发送到身份认证中心;
(3-3)身份认证中心根据用户名UA,查询数据库,进行用户名密码验证,如果验证通过,则执行下一步,否则身份认证失败,返回错误信息;
(3-4)身份认证中心使用用户名UA、查询数据库,获取用户的人脸特征数据T,调用人脸比对算法计算T和F是否是同一个人,如果是同一个人,则身份认证成功,执行下一步,否则身份认证失败,返回错误信息;
(3-5)身份认证成功,身份认证中心为用户生成一个全网唯一的用户身份标识,返回给用户,用于在访问异地业务系统时,表明自己的身份。
上述用户身份标识包括身份信息和签名信息,所述用户身份标识用于在广域身份认证时,向认证中心表明自己是可信的,是经过认证中心认证过的用户。
上述身份信息使用JSON格式表示,使用Base64算法将JSON对象转换为字符串保存;所述签名信息是使用国产密码算法对身份信息进行签名后的一个字符串;
签名信息的生成公式为:
SignInfo=enc(Base64(IdInfo),密钥)
分别将身份信息和签名信息以Base64算法进行编码后,以'.'相连共同组成用户身份标识,最终生成的用户身份标识ISM为Base64(IdInfo).Base64(SignInfo)。
基于国产密码算法的用户身份标识的生成方法如下:
(4-1)认证中心根据用户名,生成身份信息,并序列化为JSON格式;
(4-2)对JSON格式的身份信息使用Base64算法进行编码,得到Base64(IdInfo);
(4-3)解析用户所属认证中心的p12证书文件,获取SM2私钥;
(4-4)根据国产SM3算法,使用SM2私钥对Base64(IdInfo)进行签名,生成签名信息SignInfo;
(4-5)对签名信息使用Base64算法进行编码,得到Base64(SignInfo);
(4-6)使用'.'将Base64算法进行编码后的身份信息和签名信息连接起来生成用户身份标识Base64(IdInfo).Base64(SignInfo)。
上述用户身份标识的验证方法如下:
(5-1)获取身份标识的Base64(IdInfo)部分,使用Base64算法解码得到JSON格式的IdInfo;
(5-2)反序列化JSON格式的IdInfo得到用户名、所属认证中心名、生成时间、失效时间;
(5-3)获取当前时间,根据失效时间,对比生成时间,确定标识是否失效,如果失效,则验证失败,否则,执行下一步;
(5-4)根据所属认证中心名,获取认证中心的公钥证书,解析公钥证书获取公钥;
(5-5)获取身份标识的Base64(SignInfo)部分,使用Base64算法解码得到SignInfo;
(5-6)使用公钥对Base64(IdInfo)、SignInfo进行验签,如果验签成功,则身份标识验证成功,否则,验证失败。
本发明采用调度数字证书、人脸识别、指纹识别多种识别技术相结合的身份认证方法,能够实现人员本地登录的强身份认证;基于国产密码算法的用户身份标识,用于用户在广域网范围内访问异地业务系统时的身份认证。根据人机云终端的不同类型,对非移动人机云终端(大屏、PC机、工作站等)设计了结合数字证书系统和人脸识别的双因素身份认证方式,对移动人机云终端(手机、平板等)设计了结合用户名密码和人脸识别的双因素身份认证方式,有效提高了本地身份认证的可靠性。本发明的基于国产密码算法(国产SM2算法)的身份标识,该标识具有全局唯一、防篡改和自签名等特性,用户在通过本地身份认证后,认证中心为其生成一个身份标识,在跨域访问异地业务系统时,无需再次进行复杂的身份认证,只需对异地业务系统提供身份标识,异地身份认证中心验证身份标识合法即可完成广域身份认证,解决了本地用户在广域网范围内的身份认证问题,实现了用户在全网范围内的广域身份认证。
附图说明
图1为本发明的一种新一代调度控制系统统一身份认证系统的系统框图。
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
参见图1,本发明的一种新一代调度控制系统统一身份认证系统的构建方法如下:
将广域身份认证模块部署在新一代调度控制系统的各个业务系统中,用于与身份认证中心进行通信,发送广域网内的异地用户发来的身份标识给所述身份认证中心,并接收身份认证中心返回的验证结果,实现异地用户的广域身份认证。
根据新一代调度控制系统由国分-省两级组成的架构体系,身份认证系统分为国分-省两级部署,国分层面,部署一个国分级身份认证中心,负责国分级用户的本地身份认证和各个省级用户身份的识别认证;省级层面,每个省部署一个省级身份认证中心,负责本省用户的本地身份认证和国分级以及其他各个省级用户身份的识别认证。身份认证中心包括用户管理、用户凭证管理、用户身份认证、身份标识管理、认证中心证书管理等功能。用户凭证管理功能包括每个用户的用户密码、人员证书和人脸数据等的管理;用户身份认证功能包括用户名密码认证、电子钥匙认证、人脸识别认证等;身份标识管理功能包括用户身份标识的生成、解析、验证等功能;认证中心证书管理功能包括认证中心自己的p12软证书生成、公钥证书生成、公钥证书分发等。
在人机云终端部署用户凭证获取模块,用户凭证获取模块根据人机云终端设备类型的不同提供不同的认证方式,在非移动人机云终端(大屏、PC机、工作站等)上部署电力调度数字证书系统和人脸识别系统,获取用户电子钥匙中的签名信息和用户人脸数据,将签名信息和人脸数据作为用户凭证,发送给身份认证中心进行认证,以提供调度数字证书和人脸识别的双因素认证方式;在移动人机云终端(手机、平板等)上部署人脸识别系统,获取用户人脸数据,将用户名密码和人脸数据作为用户凭证,发送给身份认证中心进行认证,以提供用户名密码和人脸识别的双因素认证方式。
部署完成后,每个身份认证中心的认证中心证书管理模块都都采用国产SM2算法生成一个秘钥对,并写入p12文件生成一个软证书,保存在自己认证中心的磁盘上,同时将公钥写入pem文件生成一个公钥证书,并分发给新一代调度控制系统中部署的其他身份认证中心;最终新一代调度控制系统中部署的每个身份认证中心都保存有一个自己的p12软证书、自己的公钥证书和所有其他身份认证中心的公钥证书。
本地身份认证
非移动人机云终端的身份认证
在非移动人机云终端(大屏、PC机、工作站等)上采用调度数字证书和人脸识别相结合的身份认证方式,其身份认证步骤如下:
1.系统启动摄像头,获取用户人脸图像,提取特征信息,生成人脸数据F;
2.将用户名UA、随机数M、电子签名S和人脸数据F作为身份凭证,发送到身份认证中心;
3.身份认证中心根据用户名UA,查询数据库,获取该用户的公钥证书,解析公钥证书获取公钥,对随机数M、电子签名S进行验签,如果验签通过,则执行下一步,否则身份认证失败,返回错误信息;
4.身份认证中心使用用户名UA、查询数据库,获取该用户的人脸特征数据T,调用人脸比对算法计算T和F是否是同一个人,如果是同一个人,则身份认证成功,执行下一步,否则身份认证失败,返回错误信息;
5.身份认证成功,身份认证中心为该用户生成一个全网唯一的用户身份标识,返回给用户,用于在访问异地业务系统时,表明自己的身份。
移动人机云终端的身份认证
在移动人机云终端(手机、平板等)上采用用户名密码和人脸识别相结合的身份认证方式,其身份认证步骤如下:
1.系统启动摄像头,获取用户人脸图像,提取特征信息,生成人脸数据F;
2.将用户名UA、密码P、人脸数据F作为身份凭证,发送到身份认证中心;
3.身份认证中心根据用户名UA,查询数据库,进行用户名密码验证,如果验证通过,则执行下一步,否则身份认证失败,返回错误信息;
4.身份认证中心使用用户名UA、查询数据库,获取该用户的人脸特征数据T,调用人脸比对算法计算T和F是否是同一个人,如果是同一个人,则身份认证成功,执行下一步,否则身份认证失败,返回错误信息;
5.身份认证成功,身份认证中心为该用户生成一个全网唯一的用户身份标识,返回给用户,用于在访问异地业务系统时,表明自己的身份。
基于国产密码算法的身份标识生成
用户身份标识主要用于在广域身份认证时,向认证中心表明自己是可信的,是经过认证中心认证过的用户。
用户身份标识有两部分组成:身份信息(IdInfo)和签名信息(SignInfo)。
身份信息的数据结构如下:
身份信息使用JSON格式表示,使用Base64算法将JSON对象转换为字符串保存。
签名信息是使用国产密码算法对身份信息(IdInfo)进行签名后的一个字符串。
签名信息的生成公式为:
SignInfo=enc(Base64(IdInfo),密钥)
最后分别将身份信息和签名信息以Base64算法进行编码后,以'.'相连共同组成用户身份标识,最终生成的用户身份标识(ISMI)是一个形如"Base64(身份信息).Base64(签名信息)"的字符串,即"Base64(IdInfo).Base64(SignInfo)"。
用户身份标识生成算法如下:
1.认证中心根据用户名,生成身份信息,并序列化为JSON格式;
2.对JSON格式的身份信息使用Base64算法进行编码,得到Base64(IdInfo);
3.解析该用户所属认证中心的p12证书文件,获取SM2私钥;
4.结合国产SM3算法,使用SM2私钥对Base64(IdInfo)进行签名,生成签名信息SignInfo。
5.对签名信息使用Base64算法进行编码,得到Base64(SignInfo);
6.使用'.'将Base64算法进行编码后的身份信息和签名信息连接起来生成用户身份标识,即"Base64(IdInfo).Base64(SignInfo)"。
用户身份标识验证算法如下:
1.获取身份标识的Base64(IdInfo)部分,使用Base64算法解码得到JSON格式的IdInfo;
2.反序列化JSON格式的IdInfo得到用户名、所属认证中心名、生成时间、失效时间;
3.获取当前时间,根据失效时间,对比生成时间,确定标识是否失效,如果失效,则验证失败,否则,执行下一步;
4.根据所属认证中心名,获取该认证中心的公钥证书,解析公钥证书获取公钥;
5.获取身份标识的Base64(SignInfo)部分,使用Base64算法解码得到SignInfo;
6.使用公钥对Base64(IdInfo)、SignInfo进行验签,如果验签成功,则身份标识验证成功,否则,验证失败。
用户身份标识示例如下:
身份信息(IdInfo):
{
"username":"张三",
"organization":"江苏省调认证中心",
"createtime":1548314236,
"overtime":600
}
Base64(IdInfo):
"eyJ1c2VybmFtZSI6ICJcdTVmMjBcdTRlMDkiLCAib3JnYW5pemF0aW9uIjogIlx1NmM1Zlx1ODJjZlx1NzcwMVx1OGMwM1x1OGJhNFx1OGJjMVx1NGUyZFx1NWZjMyIsICJjcmVhdGV0aW1lIjogMTU0ODMxNDIzNiwgIm92ZXJ0aW1lIjogNjAwfQ=="
根据该身份信息生成的Base64(SignInfo)签名信息:
"XyY5K++TLMYagrDsKrozJygpTjjCkwsMrDx+lXTV/ml/oqa4xRmJClkQmEW6TvA8jHmk7v49Z3bF5osnlKTQ2g=="
最终的用户身份标识:
"eyJ1c2VybmFtZSI6ICJcdTVmMjBcdTRlMDkiLCAib3JnYW5pemF0aW9uIjogIlx1NmM1Zlx1ODJjZlx1NzcwMVx1OGMwM1x1OGJhNFx1OGJjMVx1NGUyZFx1NWZjMyIsICJjcmVhdGV0aW1lIjogMTU0ODMxNDIzNiwgIm92ZXJ0aW1lIjogNjAwfQ==.XyY5K++TLMYagrDsKrozJygpTjjCkwsMrDx+lXTV/ml/oqa4xRmJClkQmEW6TvA8jHmk7v49Z3bF5osnlKTQ2g=="
广域身份认证
用户跨域访问异地业务系统时,异地业务系统需要对用户进行广域身份认证。用户发送身份标识给异地业务系统,异地业务系统收到身份标识后,将身份标识发送给所属的身份认证中心,认证中心解析明文部分,获取其所属的认证中心,根据认证中心名,获取该中心的公钥证书,对身份标识的签名部分进行验签,验签通过,则说明用户确实是经过当地认证中心认证过的用户,则广域身份认证成功,异地业务系统允许其访问。
广域身份认证步骤如下:
1.异地业务系统Sys_B接收附带自己身份标识的用户User_A的访问请求;业务系统Sys_B收到请求后,调用广域身份认证模块,将身份标识发送给业务系统Sys_B的身份认证中心IAC_B。
2.身份认证中心IAC_B收到身份标识后,使用Base64解码身份标识中的身份信息,获取用户名、所属认证中心名IAC_A、生成时间、超时时间;
3.身份认证中心IAC_B获取当前时间,判断身份标识是否超时,如果超时,返回验证失败,否则,执行下一步;
4.身份认证中心根据该用户所属的认证中心名IAC_A,获取IAC_A的公钥证书,并使用该公钥证书中的公钥对身份标识进行验签,如果验签失败,返回验证失败,否则,返回验证成功,执行下一步;
6、业务系统Sys_B的广域身份认证模块收到用户身份标识验证成功的信息后,通知业务系统Sys_B用户可信,业务系统Sys_B响应用户User_A的访问请求。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。