基于 PKI体系的电力监控系统的安全研究

(整期优先)网络出版时间:2020-04-27
/ 2

基于 PKI体系的电力监控系统的安全研究

艾开波

国网江西省电力有限公司吉安供电永丰县分公司 江西省吉安市 331500

摘要:随着计算机和网络通信技术的快速发展,电力监控系统的安全性受到越来越多的关注。身份认证是电力监控系统的重要一环,若没有有效的身份认证手段,即使投入再多的人力、资金,建立再安全、坚固的安全防范体系都会形同虚设。针对现有监控系统在身份认证过程中安全性不足的问题,提出一个综合用户名-密码认证技术和USBKey认证的身份认证系统。USBKey认证过程中,以公钥基础设施(PKI)体系为基本框架,同时提供PIN码保护,采“挑战/应答”方式实现用户身份认证。

关键词:公钥基础设施;USBKey;数字证书;私钥安全

一、PKI体系概述

公钥基础设施(PublicKeyInfrastructure,PKI)是目前公认的保障应用安全的最佳体系。在这一体系中,它使用一组非对称的密钥对,分别是一把公开的加密密钥(公钥)和一把保密的解密密钥(私钥)。用一把密钥加密的信息,只能通过另一把密钥来解开。私钥可以于解密和签名;公钥可以用于加密和验签。

构成PKI体系的主要因素包括:1。实体终端;2.数字证书认证机构(CA);3.注册机构(RA);4.证书存储

其中,实体终端是PKI服务的最终使用者,可以是个人、组织等;CA机构提供用户证书的管理功能;RA提供用户身份的审核等,可以作为CA的一部分也可以独立;证书存储库对用户申请、证书、密钥、日志等信息进行存储管理。

数字证书就是按照一定的格式规范将用户的公钥及用户相关信息封装起来,并由CA机构签名。目前,PKI体系中应用最为广泛的数字证书标准就是X.509标准。

二、USBKey在监控系统中的应用

1.密钥的存储

私钥的安全是整个PKI体系中最重要的一环,如果当前监控系统中不止一个用户拥有私钥的副本,这样就无法保证PKI系统的有效性。私钥的存储和保护是整个私钥使用过程的关键。在本次设计中,采用USBKey认证方式。USBKey不依赖读卡器,本身可以直接与工作站的USB接口相连,而且市面上的操作系统大部分都支持USB接口。另外,USBKey内置加密算法程序,可以内部产生密钥对,并且和智能卡一样,能够确保私钥始终无法从外部读取,签名、加密运算均在USBKey内部进行,不会被读入计算机内存中,而且设置有PIN码共同保证安全性。

按照相关安全规定,电力监控系统本身是具有“半封闭”的特点,为了保证监控系统的安全稳定运行,数字证书的签发系统与监控系统保持相互独立的,不加入监控系统的局域网中。所以,简化相关的PKI体系流程,用户数字证书采用“离线式”申请和签发,手动导出用户数字证书和根证书到监控系统相关节点。

2.身份认证

(1)用户通过用户模块提出监控系统访问请求;

(2)USBKey要求用户输入PIN码进行验证;

(3)PIN码校验通过后,用户发送认证请求至认证模块;

(4)认证模块产生随机数R1,传递给USBkey,即“挑战”,请求对随机数R1进行私钥签名;

(5)USBKey将随机数R1的签名结果返回给认证模块;

(6)认证模块验签之前,首先利用本地根证书校验本地存储用户X.509证书的合法性;

(7)认证模块使用用户证书中的公钥和随机数R1对签名结果进行验签。如果成功,则用户身份认证通过,否则认证失败。

3.接口的实现

USBKey认证接口——Ukey_authenticate的实现基于OpenSSL软件包和符合PKCS#11标准的USBKey驱动程序,其中OpenSSL库以标准C作为开发语言,能够跨平台运行,可以提供当前安全认证所需的对称、非对称加解密算法。

为方便集成于当前电力监控系统,USBKey身份认证过程提供两组接口供上层应用使用,一种提供“一键式”认证,另一种为“逐过程”认证。

“一键式”认证接口如下:NR_usbKeyLogin(…),上层调用者只需要传入PIN码、用户名、证书路径、证书类型(RSA还是SM2)、root根证书路径。

4.多因子认证机制

考虑到认证系统的可靠性、安全性和可扩展性,设计一种结合用户名-密码和基于PKI的USBKey的多因子认证机制:登录过程中需要插入每个用户对应的USBKey设备,采用PIN码保护USBKey的读取安全,采用不对称加密算法(支持RSA和国密SM2算法)验证用户身份的合法性;结合原有鉴权系统中用户名、密码认证,从而实现多个认证因子对用户进行身份认证。

多因子认证机制保证了监控系统用户身份认证过程的准确性和安全性。监控系统登录时,用户必须在知晓用户名-密码的基础上,拥有对应的USBKey,缺一不可。当因木马、病毒等情形出现用户名密码泄露时,只要用户的USBKey不被盗取,他人依然无法冒用身份;若用户的USBKey设备遗失或者被盗取时,USBKey的PIN码校验和监控系统本身的用户名-密码认证也保证了监控系统的安全,避免系统合法身份被冒用。

功能测试

监控系统增加USBKey认证之后,相较于之前的系统,仅在用户登陆界面上稍有变化,增加用户手动输入PIN码的对话框,其余权限校验等功能保持不变,减少用户的学习成本。

1.USBKey认证

该部分主要测试认证模块中针对USBKey的认证功能。离线签发一个测试用户的USBKey数字证书后。

(1)校验USBKey硬件是否存在。当用户输入完毕相关信息,但未插入USBKey登陆时,认证模块会弹出对话框提示“未检测到USBKey”;

(2)在用户插入USBKey,输入错误的PIN码登陆会提示“PIN码不正确”,只有输入USBKey正确的PIN码才能进行下一步;

(3)当本地数字证书无效或者不匹配时,用户掺入USBKey,输入完毕所有信息登陆时,会提示用户“USBKey验签失败,请检查数字证书合法性”。

以上功能均能测试通过,说明该USBKey认证模式在继承PKI优点的基础上,简化流程同时保证安全性。

2.多因子认证功能

该部分主要测试监控系统改进后的身份认证模块功能,测试多因子强身份认证。在插入USBKey,正确输入相关USBKey的PIN码后,只有正确输入登陆用户名的密码,才能正常登陆。如果密码错误,依旧会提示用户“密码不匹配”。连续输错超过5次,则锁定当前用户。

如果用户名密码输入正确,PIN码不正确,则依旧身份认证失败,不允许登陆。在用户名密码以及PIN码都正确,检测数字证书无效时,用户依旧无法登陆监控系统。

以上功能测试通过,表明改进后的认证模块,在继承PKI优点的基础上,已经形成多因子强身份认证体系,用户登陆过程中,每一个认证因子缺一不可。

结语:本文在分析监控系统现有身份认证模式的基础上,提出一种结合用户名-密码和USBKey的多因子认证系统。基于USBKey的认证方式,在保证安全的前提下,简化PKI相关架构,以数字证书来作为用户的合法公钥并离线导出,用户私钥存储于USBKey内部且不可导出,为用户身份的认证安全提供有力保障。通过在监控系统中的应用测试,证明多因子身份认证模式,能够有效避免用户合法身份被冒用,大大增强了监控系统的安全性。

参考文献

[1]章思宇,黄保青,白雪松,等.基于动态口令的增强身份认证[J].华东师范大学学报(自然科学版),2015(S1)

[2]崔久强,徐祺.移动互联网身份认证技术研究[J].信息安全与技术,2015(7)

[3]林璟锵,荆继武,张琼露,等.PKI技术的近年研究综述[J].密码学报,2015(6)