一种scada系统的访问控制方法

文档序号:10473745阅读:554来源:国知局
一种scada系统的访问控制方法
【专利摘要】本发明公开了一种SCADA系统的访问控制方法,步骤1、建立SCADA系统中的安全主体,包括用户USER、认证AUTHENTICAION、操作OPERATION、安全级SECURITY_LEVEL、域DOMAIN和角色ROLE;步骤2、建立SCADA系统中的安全客体,包括对象OBJECT;步骤3、建立SCADA系统中的安全主体和安全客体之间的相互关系;步骤4、对于总线层的访问控制为:SCADA系统的底层数据总线对于每次写入操作均先匹配发起者的角色ROLE,如果发起者的角色ROLE与待写入的数据对象目标属性设置的ROLE一致则允许写入,否则阻止;对于应用层的访问控制为:应用层的各项操作执行前都会判断其是否包含于当前登入用户的当前安全等级中,是则允许,否则阻止。实现SCADA系统在安全与用户访问控制方面的配置灵活、功能完善。
【专利说明】
一种SCADA系统的访问控制方法
技术领域
[0001 ]本发明涉及一种SCADA系统的访问控制方法。
【背景技术】
[0002]SCADA(Supervisory Control And Data Acquisit1n)系统可以对现场的运行设备进行监视和控制,以实现数据采集、存储、分析、设备控制、物理量测量、参数调节以及各类信号报警等各项功能。在电力系统如发电厂电气/变电所监控、电网调度控制以及各级各类变电站综合自动化系统及终端配网自动化应用中,SCADA系统应用最为广泛,技术发展也最为成熟。
[0003]随着世界各国将信息安全的重要性一再提高,我国也于1999年出台了《计算机信息系统安全保护等级划分准则》,“准则”将信息系统分成5个安全级,NCS/DCS/变电站综合自动化系统等SCADA系统通常需要满足第三级“安全标记保护级”的各项安全要求。准则中,要求处于安全标记保护级的信息系统必须满足12.1.4.1f) “应采用两种或两种以上组合的鉴别技术对管理用户进行身份鉴别。”及12.1.4.2f) “应对重要信息资源设置敏感标记,主机不支持敏感标记的,应在系统级生成敏感标记,使系统整体支持强制访问控制机制。”
[0004]当前,主要厂家的SCADA软件产品均能支持一些简单的安全标记技术,也能够支持单一的密码化登录鉴别技术及用户权限管理,其主要技术手段如下:
[0005](I)为系统增加额外的安全机制,如发明专利CN201010568405.7公开了“一种用于保障信息安全的前置安全系统”,其通过增加包含安全登录、认证、代理、转发、审计的前置安全系统来提供安全性。由于其需要额外的安全系统,应用成本通常较高,而且存在于已有SCADA系统的整合问题,同时,其单一登录手段也不能满足等保三级系统的安全要求。
[0006](2)网络报文扩展,如CN201310671068.8公开的“一种对网络数据包进行强制访问控制的方法”方案所示,通过在标准的协议报文的可选字段加入扩展标记信息,基于通讯带外数据实现系统的各项安全机制。由于数据总线过于依赖标准通信协议,反而将系统传输层直接置于网络攻击的危险之中,而且更改后的IP数据包也可能因为部分联网设备的兼容性问题而产生通讯异常,同时由于IP报头空间有限,基于该机制之上也难以实现功能完善的系统主客体安全标记及访问控制机制
[0007](3)在SCADA系统中实现主客体安全标记,如CN201310146795.2“一种基于安全标记的电力二次系统访问控制方法及系统”,通过为系统中所有参与安全相关行为的主体和客体提供身份认证和安全标记匹配来实现各项系统安全功能。其在应用层(功能层)实现了基于安全标记的访问控制,但由于提出较早,未能提供两种或两种以上用户身份组合鉴别技术,而且,由于其机制仅基于应用层实现,一旦攻击者掌握系统的应用开发接口,可以轻易通过直接编码绕过有关安全机制实现各种动作。

【发明内容】

[0008]针对上述问题,本发明提供一种SCADA系统的访问控制方法,实现SCADA系统在安全与用户访问控制方面的配置灵活、功能完善,并能够充分满足国家信息系统等保三级“安全标记保护级”的各项要求。
[0009]为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
[0010]—种SCADA系统的访问控制方法,其特征在于,包括如下步骤:
[0011]步骤1、建立SCADA系统中的安全主体,包括用户USER、认证AUTHENTICA1N、操作OPERAT1N、安全级SECURITY_LEVEL、域DOMAIN和角色R0LE,各对象的具体架构如下:
[0012]a)用户USER对象包括如下属性:
[0013]NAME:名称;
[0014]AUTHENTICAT1NS:对身份鉴别技术提供支持;
[0015]SECURITY_LEVELS:为创建帐户时给出的用户可以具有的安全等级的列表,用户登录时将自动启用其中权限最小的安全等级;
[0016]CURRENT_SECUR I TY_LEVEL:为用户主动选择的当前安全等级;
[0017]DOMAINS:标识出该用户可以访问的域的列表;
[0018]R0LES:给出该用户的角色;
[0019]L0GIN_FAILS:登录失败次数;
[0020]b)认证AUTHENTICA1N对象包括如下属性:
[0021]NAME:名称;
[0022]STATUS:认证状态;
[0023]AUTH_DATA:用于存放身份鉴别信息;
[0024]I1ME0UT:单次身份鉴别超时时间;
[0025]c)操作OPERAT1N对象包括如下属性:
[0026]NAME:名称,标识相应安全等级用户所能执行的操作;
[0027]d)安全级SECURITY_LEVEL对象包括OPERAT1NS属性,其中:
[0028]SCADA系统中的每个用户被授予一组安全等级SE⑶RITY_LEVEL,用户通过多级身份鉴别机制成功登入系统后将自动应用其操作数最小的安全等级作为其动态的CURRENT_SECURITY_LEVEL,登入后,用户可在为其配置的SECURITY_LEVELS列表中选择,根据当前OPERAT1N的需要动态选择当前的CURRENT_SECURITY_LEVEL,实现在不同工作环境中对于操作权限的动态变更;
[0029]e)域DOMAIN对象包括NAME属性:
[0030]f)角色ROLE对象包括NAME属性,其中,系统中的每个用户USER被赋予唯一的角色;
[0031]步骤2、建立SCADA系统中的安全客体,包括对象OBJECT,包括如下属性:
[0032]D0MAN_LINK:链接类型,指向该数据对象所属的域DOMAIN,每个对象仅能从属于一个域;
[0033]若干个角色ROLE:对象中的每个运行时可操作属性均附有一个唯一的ROLE;
[0034]步骤3、建立SCADA系统中的安全主体和安全客体之间的相互关系;
[0035]步骤4、对于总线层的访问控制为:SCADA系统的底层数据总线对于每次写入操作均先匹配发起者的角色R0LE,如果发起者的角色ROLE与待写入的数据对象目标属性设置的ROLE—致则允许写入,否则阻止;对于应用层的访问控制为:应用层的各项操作执行前都会判断其是否包含于当前登入用户的当前安全等级中,是则允许,否则阻止。
[0036]优选,用户身份鉴别方法为:
[0037]若当前尝试登录用户未被锁定,则对其名称进行识别,遍历其所有的身份鉴别方式并逐一调用对应的驱动程序模块执行身份鉴别,登录失败时将递增该用户对象的L0GIN_FAILS属性;如所有身份鉴别机制均通过,则返回登录成功信息,令该用户正确登入。
[0038]优选,登录失败次数检查如下:登录模块的后台扫描识别每个用户的首次登录失败并启动计时,在该超时时间内若登录失败次数达到允许的最大值,则锁定该对象一段时间T,T为系统设定的时间。
[0039]优选,用户一经成功登录,即可自行在为其配置的安全等级列表中选择当前应用的安全等级。
[0040]优选,步骤3中,安全主体和安全客体之间的相互关系为:
[0041 ] 一个用户USER对应一个角色ROLE;
[0042]一个用户USER对应至少二个认证AUTHENTICA1N;
[0043]一个用户USER对应至少一个域DOMAIN;
[0044]一个用户USER对应至少一个安全级SECURITY_LEVEL;
[0045]每个对象OB JECT对应一个域DOMAIN;
[0046]一个安全级SECURI TY_LEVEL对应O个或多个操作OPERAT1N。
[0047]本发明的有益效果是:
[0048]本发明由于结合了面向对象化的应用层主/客体安全标记机制与基于自有数据通信总线实现的总线级的数据访问控制机制,能够支持用户采用两种以上用户身份组合鉴别技术登入并实现权限、责任分区/分域、角色/权限动态更新及底层总线级的数据访问控制。依据该方法实现的SCADA系统在安全与用户访问控制方面配置灵活、功能完善,并能够充分满足国家信息系统等保三级“安全标记保护级”的各项要求,设计上优于现有的SCADA系统安全标记与访问控制技术。
【附图说明】
[0049]图1是本发明涉及的数据实体及其之间的相互关系示意图。
【具体实施方式】
[0050]下面结合附图和具体的实施例对本发明技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
[0051 ]本发明描述的安全标记与访问控制体系将SCADA系统中的所有安全实体分为安全主体和安全客体(安全主体即为与系统安全操作直接相关的实体,如参与者、动作、权限、等级、域、操作、认证等;安全客体为系统中与安全操作不直接相关的其他实体,如配置对象、数据对象等等)两类进行标记,数据描述基于先期实现的面向对象式的实时数据库SACTata,下面进行详细介绍:
[0052 ] 一种SCADA系统的访问控制方法,包括如下步骤:
[0053] 步骤1、建立SCADA系统中的安全主体,包括用户USER、认证AUTHENTICA1N、操作OPERAT1N、安全级SECURITY_LEVEL、域DOMAIN和角色R0LE,各对象的具体架构如图1所示,数据描述基于先期实现的面向对象式的实时数据库SACData,其具体定义如下::
[0054]a)用户USER对象包括如下属性:
[0055]NAME:名称;
[0056]AUTHENTICAT1NS:对身份鉴别技术提供支持;
[0057]SE⑶RI TY_LE VELS:为创建帐户时给出的用户可以具有的安全等级的列表,用户登录时将自动启用其中权限最小的安全等级;
[0058]CURRENT_SECUR I TY_LEVEL:为用户主动选择的当前安全等级;
[0059 ] DOMAINS:标识出该用户可以访问的域的列表;
[0060]ROLES:给出该用户的角色;
[0061 ] L0GIN_FAILS:登录失败次数。
[0062]系统中的每个用户帐户对应一个U S E R对象,该对象包含一个认证列表AUTHENTICAT1NS(配置属性,运行时禁止写入,预设为两项且可以增加)提供对各种密码、RFID卡、生物识别等身份鉴别技术提供支持;SECURITY_LEVELS(配置属性,运行时禁止写入)为创建帐户时给出的用户可以具有的安全等级的列表,用户登录时将自动启用其中权限最小的安全等级,而⑶RRENT_SE⑶RITY_LEVEL(运行属性,支持应用程序对其动态更新)为用户主动选择的当前安全等级;DOMAINS(配置属性,运行时禁止写入)标识出该用户可以访问的域的列表;ROLES(配置属性,运行时禁止写入)给出了该用户的角色,用于执行数据总线写操作时的安全标记比对;登录失败次数将被记录与L0GIN_FAILS属性中。
[0063]b)认证AUTHENTICA1N对象包括如下属性:
[0064]NAME:名称;
[0065]STATUS:认证状态;
[0066]AUTH_DATA:用于存放身份鉴别信息;
[0067]I1ME0UT:单次身份鉴别超时时间。
[0068]用于用户身份鉴别的每种技术手段在系统中均有一个AUTHENTICAT1N对象对应,AUTH_DATA属性(配置属性,禁止应用程序运行时读取,仅供特权进程读取)中存放了身份鉴别信息,如密码密文、RFID编码及其他类型的特定用户生物识别信息,I1ME0UT为单次身份鉴别超时时间,相关驱动程序(SCADA系统特权进程)从输入设备接收用户输入,如在超时时间内收到用户的输入并确认合法,则将相应认证对象的STATUS属性(运行属性)设置为成功,示意系统身份鉴别可进入下一项,如果已是最后一项则结束整个身份鉴别过程。
[0069]c)操作OPERAT1N对象包括如下属性:
[0070]NAME:名称,标识相应安全等级用户所能执行的操作。
[0071]SCADA系统应用层的各项操作例如遥控、置位、浏览、打印等等均唯一对应于一个OPERAT1N对象,该对象仅包含名称,通常包含于各个安全等级中,标识相应安全等级用户所能执行的操作。
[0072]d)安全级SECURITY_LEVEL对象包括OPERAT1NS属性,其中:
[0073]SCADA系统中的每个用户被授予一组安全等级SE⑶RITY_LEVEL,用户通过多级身份鉴别机制成功登入系统后将自动应用其操作数最小的安全等级作为其动态的CURRENT_SECURITY_LEVEL,登入后,用户可在为其配置的SECURITY_LEVELS列表中选择,根据当前OPERAT1N的需要动态选择当前的CURRENT_SECURITY_LEVEL,实现在不同工作环境中对于操作权限的动态变更,有效加强了系统安全性,防范了误动;
[0074]e)域DOMAIN对象包括NAME属性:
[0075]SCADA系统采用面向对象建模,系统中的每个受控设备以及系统自身运行所需要的辅助信息体在运行时均采用对象实例来表示,每个对象实例都通过一个链接类型的属性指向其所属的域DOMAIN对象。系统通过该机制,实现运行时的责任划分,在用户发起应用层操作时,禁止其对不具有领属关系的DOMAIN(即不在该USER对象的DOMAINS列表属性中)中的对象执行各项操作。
[0076]f)角色ROLE对象包括NAME属性,其中,系统中的每个用户USER被赋予唯一的角色。
[0077]系统中的每个用户(USER)被赋予唯一的角色,例如组态工程师、调度员、浏览者等等,该属性一经设置将在用户的整个生命周期中有效。某用户成功登录后,在其退出系统之前,其通过各种系统应用程序下发的各项操作(应用层)如果生成实时数据写操作,相应被执行写入的对象的目标属性(采用面向对象方式描述的每个数据对象均有多个属性,“目标属性”即为当前被操作即写入的属性)所含的ROLE必须与该用户符合,否则写操作将失败返回。该机制在数据总线层支持安全标记,实现了基于角色的数据更新访问控制。由于该机制工作于SCADA系统的数据总线层,即使恶意用户掌握了系统的应用开发接口 API,进而可以任意对实时数据下发写操作,仍不能有效规避该机制对于安全敏感数据对象中的关键属性的访问控制。
[0078]步骤2、建立SCADA系统中的安全客体,包括对象OBJECT,包括如下属性:
[0079]D0MAN_LINK:链接类型,指向该数据对象所属的域DOMAIN,每个对象仅能从属于一个域;
[0080]若干个角色ROLE:对象中的每个运行时可操作属性均附有一个唯一的ROLE。
[0081]本专利涉及的安全机制的应用环境为面向对象化设计的SCADA系统,其中每个受控设备以及系统自身运行所需要的各种辅助信息体在运行时均用内存实时数据库中的对象实例来表示,作为全体数据对象实例的父类,OBJECT对象类型中包含了如下信息,用于实现对于所有数据客体(对象实例)的安全标记:D0MAN_LINK为链接类型,指向该数据对象所属的域DOMAIN,每个对象仅能从属于一个域;对象中的每个运行时可操作属性均附有一个唯一的R0LE,即仅当数据写入命令的发起者(系统数据总线使用带外数据传送)具有与试图更新的数据对象的某实时属性相同的ROLE时,该操作才会被总线执行。
[0082]步骤3、建立SCADA系统中的安全主体和安全客体之间的相互关系,图1给出了整个监控系统安全标记与访问控制方法中涉及的数据实体及其之间的相互关系。其中,DOMAIN对USER的0..1中的O表示有的系统关键域仅授权内核程序操作,而不从属于任何用户,所以其对应的USER数可为0;USER对DOMAIN端的O表示系统中的某些用户可以不指定相应的安全域;AUTHENT ICAT1N端的2..*表示至少需要指定两种认证方式;OPERAT1N端的O表示某些SECURITY_LEVEL可以不包含具体的操作。
[0083]优选,步骤3中,安全主体和安全客体之间的相互关系为:
[0084]一个用户USER对应一个角色R0LE;
[0085]一个用户USER对应至少二个认证AUTHENTICA1N;
[0086]一个用户USER对应至少一个域DOMAIN;
[0087]一个用户USER对应至少一个安全级SECURITY_LEVEL;
[0088] 每个对象OB JECT对应一个域DOMAIN;
[0089 ] 一个安全级SECURI TY_LEVEL对应O个或多个操作OPERAT1N。
[0090]步骤4、对于总线层的访问控制为:SCADA系统的底层数据总线对于每次写入操作均先匹配发起者的角色R0LE,如果发起者的角色ROLE与待写入的数据对象目标属性设置的ROLE—致则允许写入,否则阻止;对于应用层的访问控制为:应用层的各项操作执行前都会判断其是否包含于当前登入用户的当前安全等级中,是则允许,否则阻止。
[0091 ]优选,用户身份鉴别方法为:
[0092]若当前尝试登录用户未被锁定,则对其名称进行识别,遍历其所有的身份鉴别方式并逐一调用对应的驱动程序模块执行身份鉴别,登录失败时将递增该用户对象的L0GIN_FAILS属性;如所有身份鉴别机制均通过,则返回登录成功信息,令该用户正确登入。
[0093]优选,登录失败次数检查如下:登录模块的后台扫描识别每个用户的首次登录失败并启动计时,在该超时时间内若登录失败次数达到允许的最大值,则锁定该对象一段时间T,T为系统设定的时间。
[0094]优选,用户一经成功登录,即可自行在为其配置的安全等级列表中选择当前应用的安全等级。
[0095]本发明由于结合了面向对象化的应用层主/客体安全标记机制与基于自有数据通信总线实现的总线级的数据访问控制机制,能够支持用户采用两种以上用户身份组合鉴别技术登入并实现权限、责任分区/分域、角色/权限动态更新及底层总线级的数据访问控制。依据该方法实现的SCADA系统在安全与用户访问控制方面配置灵活、功能完善,并能够充分满足国家信息系统等保三级“安全标记保护级”的各项要求,设计上优于现有的SCADA系统安全标记与访问控制技术。
[0096]以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或者等效流程变换,或者直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
【主权项】
1.一种SCADA系统的访问控制方法,其特征在于,包括如下步骤: 步骤1、建立SCADA系统中的安全主体,包括用户USER、认证AUTHENTI CA 1N、操作OPERAT1N、安全级SECURITY_LEVEL、域DOMAIN和角色R0LE,各对象的具体架构如下: a)用户USER对象包括如下属性: NAME:名称; AUTHENTICAT1NS:对身份鉴别技术提供支持; SECURITY_LEVELS:为创建帐户时给出的用户可以具有的安全等级的列表,用户登录时将自动启用其中权限最小的安全等级; CURRENT_SECURITY_LEVEL:为用户主动选择的当前安全等级; DOMAINS:标识出该用户可以访问的域的列表; ROLES:给出该用户的角色; L0GIN_FAILS:登录失败次数; b)认证AUTHENTICA1N对象包括如下属性: NAME:名称; STATUS:认证状态; AUTH_DATA:用于存放身份鉴别信息; I1ME0UT:单次身份鉴别超时时间; c)操作OPERAT1N对象包括如下属性: NAME:名称,标识相应安全等级用户所能执行的操作; d)安全级SECURITY_LEVEL对象包括OPERAT1NS属性,其中: SCADA系统中的每个用户被授予一组安全等级SE⑶RITY_LEVEL,用户通过多级身份鉴别机制成功登入系统后将自动应用其操作数最小的安全等级作为其动态的CURRENT_SECURITY_LEVEL,登入后,用户可在为其配置的SECURITY_LEVELS列表中选择,根据当前OPERAT1N的需要动态选择当前的CURRENT_SECURITY_LEVEL,实现在不同工作环境中对于操作权限的动态变更; e)域DOMAIN对象包括NAME属性: f)角色ROLE对象包括NAME属性,其中,系统中的每个用户USER被赋予唯一的角色; 步骤2、建立SCADA系统中的安全客体,包括对象OB JECT,包括如下属性: D0MAN_LINK:链接类型,指向该数据对象所属的域DOMAIN,每个对象仅能从属于一个域; 若干个角色ROLE:对象中的每个运行时可操作属性均附有一个唯一的ROLE; 步骤3、建立SCADA系统中的安全主体和安全客体之间的相互关系; 步骤4、对于总线层的访问控制为:SCADA系统的底层数据总线对于每次写入操作均先匹配发起者的角色R0LE,如果发起者的角色ROLE与待写入的数据对象目标属性设置的ROLE一致则允许写入,否则阻止;对于应用层的访问控制为:应用层的各项操作执行前都会判断其是否包含于当前登入用户的当前安全等级中,是则允许,否则阻止。2.根据权利要求1所述的一种SCADA系统的访问控制方法,其特征在于,用户身份鉴别方法为: 若当前尝试登录用户未被锁定,则对其名称进行识别,遍历其所有的身份鉴别方式并逐一调用对应的驱动程序模块执行身份鉴别,登录失败时将递增该用户对象的LOGIN_FAILS属性;如所有身份鉴别机制均通过,则返回登录成功信息,令该用户正确登入。3.根据权利要求1所述的一种SCADA系统的访问控制方法,其特征在于,登录失败次数检查如下:登录模块的后台扫描识别每个用户的首次登录失败并启动计时,在该超时时间内若登录失败次数达到允许的最大值,则锁定该对象一段时间T,T为系统设定的时间。4.根据权利要求1所述的一种SCADA系统的访问控制方法,其特征在于,用户一经成功登录,即可自行在为其配置的安全等级列表中选择当前应用的安全等级。5.根据权利要求1所述的一种SCADA系统的访问控制方法,其特征在于,步骤3中,安全主体和安全客体之间的相互关系为: 一个用户USER对应一个角色ROLE; 一个用户USER对应至少二个认证AUTHENTICA1N; 一个用户USER对应至少一个域DOMAIN; 一个用户USER对应至少一个安全级SECURITY_LEVEL ; 每个对象OB JECT对应一个域DOMAIN; 一个安全级SECURI TY_LEVEL对应O个或多个操作OPERATI ON。
【文档编号】H04L29/06GK105827651SQ201610347511
【公开日】2016年8月3日
【申请日】2016年5月24日
【发明人】金舒, 周金国, 戴宏斌, 白忠贺
【申请人】南京国电南自美卓控制系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1