大四是整个大学期间最忙碌的时光,一边要忙着准备考研,考公,考教资或者实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
对毕设有任何疑问都可以问学长哦!
本次分享的课题是
基于SM9的密钥交换方案的实现与应用
随着计算机和网络技术在电力系统中的广泛应用,随之而来的安全传输问题也波及到电力系统。基于IEC 61850的变电站自动化系统由于其开放性特点,易遭受网络非法入侵的风险以及被入侵后所造成的危害及影响范围也日益严峻。如何有效保障电力调度控制系统及其网络的信息安全问题刻不容缓。
基于IEC 61850标准协议建立起来的通信网络体系结构在上层协议上是一致的,而且大大提高了变电站内设备的互操作性和互换性,但是协议的开放性、标准性同样带来一个重要的问题,即协议的安全性问题,而IEC 61850并没有涉及信息安全的内容,同时智能化变电站内由于各种智能电子设备的大量应用,变电站内运行、状态和控制等数字化信息都通过TCP/IP协议进行网络传送,也将面临着传统网络的安全风险与隐患。
在IEC 62351标准中,认证和加密是其核心内容,在标准中大量使用了国际算法和证书,本文根据变电站自动化系统数据传输协议和报文结构的特点,在IEC 61850协议基础上应用国家密码管理局发布的国密算法保证通信过程的机密性、完整性和不可抵赖性。
认证技术是互联网、物联网、工控系统信任的基础。认证技术的核心是合理的签名机制,而签名机制的实现要靠合理的密钥管理,因此没有好的密钥管理技术就很难实现较好的签名机制和认证机制。在信息安全领域存在着三种安全认证技术PKI、CPK及IBC。本文重点介绍基于IBC标识密码算法SM9在变电站中的安全防护技术。
4.1 PKI技术
PKI(公钥基础设施)是利用公钥加密技术为电子商务、工控通信及电力业务等提供一套安全基础平台的技术和规范。能够为所有网络应用透明地提供采用加密和数字签名等密码服务所必需的密钥和证书管理,从而达到保证网上传递信息的安全、真实、完整和不可抵赖的目的。利用PKI可以方便地建立和维护一个可信的网络计算环境, 从而使得人们在这个无法直接相互面对的环境里,能够确认彼此的身份和所交换的信息。
PKI系统中用户的私钥可由用户自己生成,也可由可信权威机构CA生成,用户的公钥是随机生成的,公钥和用户身份信息由CA认证签名后组成数字证书, 证书存储在公开目录中以供检索。CA是PKI的核心, 通讯双方须通过CA利用数字证书进行身份确认,即PKI身份确认的过程必须建立在对第三方的共同信任和依赖的基础之上。基于公钥基础设施(PKI)的密码体制, 如果每个用户只保存一个密钥对来分别实现加密和签名则能够显著降低密钥存储空间及公钥证书的存储空间和证书的验证时间。
PKI-CA体系架构如图1所示。
图1 PKI-CA体系架构
4.2 CPK技术
CPK(组合公钥)是南相浩教授首次在《网络安全技术概要》中提出了利用种子公钥 SPK(Seeded Research & Analysis Public Key)解决密钥管理规模化的思想。书中分别给出了基于RSA的多重公钥(LPK)和基于椭圆曲线加密(ECC)的基于标识的组合公钥(CPK)两种算法。CPK认证机制可以在可信环境中为大量用户提供简洁、安全的密钥管理。这种密钥产生和存储的新方式可以大大节省密钥存储空间,以少量的种子生成几乎“无限”个公钥,以Mb级的空间存放千万或上亿个公钥变量。CPK以简捷的方式解决了规模化的密钥管理,为构建认证体系提供了可靠的技术基础。
4.3 IBC技术
IBC(基于标识密码)是一种将用户的唯一标识(例如邮件地址等)用作公钥的加密方式。它使得任何一对用户之间能够安全的通信以及在不需要交换私钥和公钥的情况下验证每一个人的签名,并且不需要保存密钥目录及第三方服务。IBC系统中用户的私钥可由一个被称为KGC(Key Generator Center,密钥生成中心)的可信机构生成,也可以由用户自己保存私钥,KGC只做定期更新用户私钥的工作。IBC的核心是使用了超奇异椭圆曲线上的一个双线性映射Weil配对。
国外已出现了标识密码算法结合云计算技术的安全加密电子邮件,其新业务模式较好地解决了传统邮件的安全难题。如美国Voltage公司,采用标识密码技术的密钥数量已超过 5000万个,而基于标识加密邮件云2017年处理超过30亿封加密电子邮件,后续逐年处理的安全邮件数量将翻倍。
我国政府也一直重视密码技术的国产化。2007年,基于标识密码技术标准正式通过评审,2008年正式获得国家密码管理局颁发的商密算法型号:SM9算法;2016年3月,中国标识密码SM9算法正式对外发布。
基于SM9算法的邮件通信过程如图2所示。
图2 基于SM9算法邮件通信示意图
5.1 基于SM9标识密码体制
基于标识的密码学思想由Shamir在1984年首先提出。在该体制中公钥就是用户的身份信息,如主机的IP地址,用户的E-mail地址、手机号码和姓名等。私钥由KGC(密钥生成中心)根据用户的身份标识信息生成,并通过安全信道将私钥发送给相应的用户。因为用户的公钥由身份标识信息直接计算得出,所以在使用公钥的过程中就不需要存放公钥或证书,也不需要CA(第三方)提供服务。基于SM9标识密码算法包括四种方案:基于标识的加密、基于标识的签名、密钥交换算法和密钥封装算法,这里只介绍前两种方案。
基于SM9标识密码是一种基于身份的公钥体制,通信双方能够根据彼此身份ID计算出对方的公钥,因而降低了密钥交换和密钥管理的复杂程度。因此,采用基于标识的密码体制的安全防护方法既能满足变电站通信的认证安全需求,也降低了证书管理复杂度,适用于变电站自动化系统。
5.1.1 基于SM9标识密码加密
在基于SM9标识密码算法中,用户的公钥来自身份信息,私钥由KGC生成。只要获得用户A的身份信息,用户B就可以得到用户A的公钥,从而加密一条消息,使之以密文的形式在网络上安全传输给用户A,用户A从SM9密钥中心处得到自己的私钥后,即可解密该消息,基本过程如图3所示。
图3 基于SM9标识密码加密过程
5.1.2 基于SM9标识密码签名及认证
基于SM9标识密码的数字签名是基于标识密码学实现的数字签名。在传统的基于证书的密码体制下,用户A若想验证用户B的数字签名,必须首先获得用户B的证书,通过证书中已有的签名来验证用户B的身份,并通过用户B的公钥验证签名的有效性。而在基于SM9标识密码算法用户A可以通过直接获取用户B的身份信息ID来验证用户B的签名,基本过程如图4所示。
图4 基于SM9标识密码签名过程
5.2 基于SM9标识密码智能变电站安全方案
目前调度主站与变电站内的数据网关机多采用104规约进行数据通信,途径调度数据网两侧的纵向加密认证装置,对调度数据网两侧的数据流加密,保证数据在网络层传输的安全。从调度主站到变电站内的数据网关机,数据网关机到测控、保护装置的通信协议均未应用安全认证技术手段,容易被第三方伪造或窃取协议数据包、篡改协议控制类数据,增加了系统的风险。解决以上的问题需要对调度主站到数据网关机的通信协议进行扩展。而变电站站内设备间的通信均采用标准的IEC 61850协议,因此需要改造部分站内的通信协议,以满足设备间的安全通信。
可利用基于SM9标识密码的密钥中心为数据网关机、测控装置、监控主机/操作员站等变电站设备分发设备私钥,并通过设备唯一序列号来表示设备公钥,利用SM9算法的私钥签名、公钥加密来完成设备间通信的身份认证和数据加密功能。
5.2.1 智能变电站自动化系统层次结构
智能变电站采用“三层两网”的结构,“三层”指站控层、间隔层和过程层;“两网”指站控层网络和过程层网络。站控层设备主要有监控主机、操作员站、数据网关机和对时设备等。间隔层设备主要包括测控、保护、录波等。过程层设备主要包括智能终端、合并单元、一次设备等。
各层之间通过IEC 61850规范接口进行数据交换。目前变电站内进行数据交换时都采用明文方式,系统通信安全性得不到保证。基于SM9标识密码能为变电站建立完善的公钥体系,为变电站数据加密和数字签名提供安全保障,满足智能变电站数据交换的安全需求。
智能变电站自动化系统层次结构如图5所示。
图5 智能变电站自动化系统层次结构
5.2.2 基于SM9标识密码密钥中心建立
基于SM9标识密码的加密方案由四种算法构成:系统参数设置、身份私钥生成、加密和解密。签名方案也由四种算法构成:系统参数设置、身份私钥生成、签名和验证。因此变电站建立基于SM9标识密码算法的核心是SM9密钥中心的建立和私钥的发放。
SM9密钥中心是调度/变电站系统中设备密钥的生成、管理中心,是在严格的权限控制下实现密钥的注入、生成、分配、存储、保护、传输、备份、销毁等过程,它是调度/变电站系统安全防护的的核心。SM9密钥中心的密钥可分为根密钥、主密钥、传输密钥、设备密钥、通信密钥、保护密钥、MAC密钥等,包括对密钥申请的授权和密钥管理的审计和跟踪、密钥管理系统的访问控制等功能。
在基于SM9标识密码体制中,SM9密钥中心是最为重要的环节。SM9密钥中心应集中管理,这样不仅能提高变电站通信的安全等级,也将使变电站的管理更为集中。根据变电站安全防护区域的划分和变电站内部通信的特点,SM9密钥中心可在调度端集中统一设置,并为所管辖的变电站分发二级密钥,而变电站SM9密钥中心为其内部设备分发设备密钥,实现站内设备间的安全通信。如图6所示。
图6 SM9密钥生成、分发中心
(1)密钥生成
SM9密钥中心的密钥生成需要特殊的机制和合成算法来实现,要根据不同的密钥类型采用不同的机制,根密钥的生成需要多个密钥分量来合成;主密钥是通过根密钥的离散而生成;设备密钥是经过设备ID号与特定的算法计算而成;设备间通信密钥是协商而成。
(2)密钥分发
变电站装置的私钥可以通过两种方式下发,即装置在线通过安全通道下发给指定装置或离线以安全介质或加密文件的方式传递到指定的装置。由于变电站内的装置所处独立网络,正常运行时无法从SM9密钥中心获取私钥,因此,针对变电站的应用场景,私钥采用离线加密的方式下发的到装置中。
(3)密钥保护
变电站装置的私钥通过采用离线加密的方式下发到装置中,由于装置密钥的敏感性和重要性,密钥不能以明文的方式存放,必须以加密的方式保存在装置的安全区域。
(4)密钥更新
密钥更新是指系统运行了一段时期,由于管理等原因导致密钥泄漏,或密码技术的发展影响密钥的安全;需对装置密钥进行更新,鉴于现有变电站系统的情况采用离线密钥更新方案。
(5)密钥备份
SM9密钥中心的密钥备份是通过加密机来实现的,采用双机热备。装置中的私钥可以通过加密的方式保存备份(若装置内嵌安全芯片,安全芯片本身有安全机制保护密钥的安全)。
5.2.3 调度平台及变电站设备密钥分发
调度SM9密钥中心是一级密钥,是为调度主站平台分发密钥的密钥中心,也是为所管辖的变电站二级密钥中心分发密钥的密钥中心。
首先,调度SM9密钥中心为调度主站平台分发主站平台密钥,各变电站二级密钥中心为各自的站内设备分发设备密钥。基于SM9标识密码机制可以实现变电站内装置间通信的身份认证及数据加密,也可以实现调度主站到变电站内装置的远程端到端安全认证。
5.2.4 智能变电站装置间安全通信
变电站站控层网络负责实现站控层设备之间以及与间隔层之间的通信;过程层网络负责实现间隔层与过程层之间的通信。智能化变电站内涉及远方控制功能的装置及设备应采用加密及身份认证等安全防护措施。
变电站自动化系统站控层操作员站与间隔层的测控装置通信;站控层数据网关机与间隔层的继电保护通信;测控装置、保护装置与过程层的互感器和开关通信,这些设备间的通讯都需要身份认证和协议数据加密及签名。
5.2.5 站控层MMS协议安全防护
IEC 62351第4部分 [12]定义的MMS协议的安全机制,分两部分进行阐述,分别是传输层安全和应用层安全。传输层安全通过基于TCP/IP的TLS协议对安全服务要求进行设计;应用层定义了安全服务要求,引入了关联控制服务单元(ACSE)请求和响应来建立一个安全的MMS关联,主要针对安全认证和数字证书。
MMS协议的传输层安全是通过TLS协议来完成。TLS协议是一种应用于传输层的安全协议,用于构建客户端和服务端之间的安全通道。TLS协议本身基于TCP,通过实现证书认证、密钥协商、数据加解密等功能,对上层应用程序提供加密服务。
国网调度中心已经建成调度证书服务系统,可基于调度SM2算法数字证书实现MMS协议数据加密。根据以上通信协议的特点,可采用基于调度SM2证书TLS协议进行安全通信。基于调度SM2证书TLS过程如图7所示。
图7 基于调度SM2证书TLS过程
5.2.6 基于SM9标识密码远程端到端安全认证
调度主站测控装置与数据网关机、数据网关机与测控装置数据交换的安全认证采用基于SM9标识密码安全通信方式。涉及调度主站、数据网关机、测控装置间的安全通信,以遥控为例,安全认证流程如图8所示。
图8 基于SM9标识密码远程安全认证
(1)调度主站从“遥控命令”明文中采用SM3算法产生消息摘要,用自身SM9私钥对消息摘要形成数字签名。
(2)调度主站将“遥控命令”明文与数字签名发送给数据网关机。
(3)数据网关机接收到明文与数字签名后,用调度主站SM9公钥验证这个签名, 获得由调度主站所产生的明文。
(4)数据网关机将“遥控命令”明文与自身SM9私钥形成的数字签名发给测控装置。
(5)测控装置接收到“遥控命令”明文与数字签名后,使用数据网关机SM9公钥验证签名后得到“遥控命令”明文。
(6)测控装置将“遥控确认”明文与自身SM9私钥形成的数字签名发给数据网关机。
(7)数据网关机接收到“遥控确认”明文与数字签名后,用测控装置SM9公钥验证签名得到“遥控确认”明文。
(8)数据网关机将“遥控确认”明文与自身私钥形成的数字签名发给调度主站。
(9)调度主站收到“遥控确认”明文与数字签名后,使用数据网关机SM9公钥验证签名得到“遥控确认”明文。
(10)结束
5.2.7 基于SM9标识密码变电站内设备间端到端安全认证
变电站站控层和间隔层数据交换的消息认证采用基于SM9标识密码算法的安全通信方式。以操作员站和测控装置间的安全通信为例,安全防护遥控处理流程如图9所示。
图9基于SM9标识密码变电站内设备间端到端安全认证
海浪学长的作品示例:
大数据算法项目
机器视觉算法项目
微信小程序项目
Unity3D游戏项目
为帮助大家节省时间,如果对开题选题,或者相关的技术有不理解,不知道毕设如何下手,都可以随时来问学长,我将根据你的具体情况,提供帮助。