基于Kerberos在调度自动化的应用

时间:2022-07-28 05:58:12

基于Kerberos在调度自动化的应用

摘要:调度自动化已经在电网运行中起到至关重要的作用。针对目前电网调度自动化平台存在的风险,对调度平台的特点,提出了基于Kerberos协议的调度平台的安全访问策略。结合实际运行情况,对协议进行改进,引入智能卡机制,增加系统运行的安全性。

关键词:调度自动化;Kerberos;白名单;智能卡

中图分类号:TP311.52文献标识码:A文章编号:16727800(2011)012009203

作者简介:厉优栋(1982-),男,浙江杭州人,上海交通大学在职硕士研究生,上海市市北供电公司助理工程师,研究方向为信息安全。

0引言

企业根据统一的规划建设和调度上海电网,为上海的经济社会发展提供安全、经济、可靠的电力供应和服务。电力调度一直是电力部门的重点,目前调度自动化在电力企业在生产实践中得到了广泛的运用。特别是近年来随着远程操作,远程控制、远程调度等技术的不断推广使用,使得电力调度已经突破传统的调度模式,向着电子信息化方向发展。

在调度自动化水平蓬勃发展的同时,信息安全的问题也日益突出,根据我们的调查研究发现,远程调度自动化操控平台使用传统的口令模式进行操控。在实际使用中,为了便捷操作,调度部门的口令往往比较简单,而且不同的人员的密码处于混用状态,在调度内部口令也处于半透明的状态。因此这种简单的单因素控制模式,在实际生产中存在很大的安全隐患。

身份认证是确保远程调度自动化系统安全使用的技术手段,只有让合法的用户在特定的时间,特定场合内安全、可靠的登录使用远程控制系统才能保证电力运行的安全性。通过认证系统来验证用户身份信息的真实性,以及防止在验证数据传送过程中被截获、修改、重放等情况的发生。

在实际生产中这种单因素的控制模式,还存在着以下几个问题:①口令简单,口令的变化没有周期性,往往一个口令的生命周期是终生的;②在远程调度自动化控制平台中,由于用户的账号的权限相同,存在某账号在该平台处于长期登录状态。在实际操作中,无法鉴别是否是该用户在正常使用;③在不少单位,因为图简便,每个员工的操作密码相同、相似;④密码的单一性,使得非法用户利用漏洞,入侵系统造成不可估量的损失;⑤这个系统中用户通过一个公开的信道将消息送给服务器,因此在实际验证过程中还要鉴别消息是否来自合法的用户及消息是否经过篡改。

Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为用户/服务器应用程序提供强大的认证服务。也就是说通过Kerberos,只有合法的用户才能通过服务器的验证,从而使用服务器内部资源。非法的用户无法使用服务器所提供的服务。

1基于Kerberos的身份认证机制研究

本文主要讨论Kerberos的认证模型认证过程,如图1所示。

图1Kerberos基本模型

Kerberos协议在很大程度上依赖于共享密钥的认证技术。主要的理念是:双方都知道加密的手段和解密的密钥。Kerberos协议就是为了防止这个密钥在流传中被非法用户所截获,同时验证用户的合法信息,于是验证双方之间要进行相互身份核实和密钥安全交互。

在Kerberos中客户端C要访问应用服务器V,需要进行6次协议交换。

第一阶段 客户端与AS之间的交互,从AS处获取票据Tickettgs

Client AS: IDcIDtgsTS1(1)

客户端向AS发出访问TGS的信息请求,该信息包括用户的名称,要访问TGS的地址,客户端的IP地址,以及时戳。时戳用于向AS传递发送该次请求的时间。信息以明文方式发送。

ASClient:EKc[Kc,tgsIDtgsTS2Lifetime2Tickettgs](2)

Tickettgs=EKtgs [Ec,tgsIDcADcIDtgsTS2Lifetime2]

AS收到客户请求报文后,在其数据库中查找客户的加密密钥Kc,并返回给用户。AS向客户端发出应答,由于应答消息是由用客户提供的密钥Kc进行加密的,即只有该客户才能解密该消息的内容。

第二阶段客户与TGS之间的交互,及获取访问应用服务器的票据Ticketv

ClientTGS:IDvTickettgsAuthenticatorc(3)

Tickettgs= EKtgs [Ec,tgsIDcADcIDtgsTS2Lifetime2]

Authenticatorc= Ec,tgs [IDcADcTS3]

客户端向TGS发送访问应用服务器S的请求报文,报文内容包括要访问的应用服务器的地址,TGS的票据Tickettgs以及认证符客户端产生的合法票据Authenticatorc。

TGS收到客户端发来的信息后,对该次信息进行解密。从而得到用户已经从AS出得到身份认证,同时对由客户端发送来的密钥Ec,tgs进行比对核实,来判断该用户的合法性。

TGSClient:EKc,tgs[Kc,vIDvTS4Ticketv](4)

Ticketv= EKv [Kc,vIDcADcIDvTS4Lifetime4]

TGS通过解密检验后,对于合法的客户会产生随机会话密钥Kc,v,该密钥用于客户端和应用服务器共享的会话密钥。在TGS回复的信息是经过密钥EKc,tgs中进行加密。客户端收到TGS的应答回复后,用会话密钥EKc,tgs对密文进行解密,可以得到访问应用服务器的票据Ticketv,以及与应用服务器通讯的随机会话密钥Kc,v。

第三阶段客户端/服务器的交互,及身份验证

ClientV:TicketvAuthenticatorc(5)

Ticketv= EKv [Kc,vIDcADcIDvTS4Lifetime4]

Authenticatorc= EKc,v [IDcADcTS5]

客户端向应用服务器发送访问信息,该信只有服务器解开Ticketv才会得该密钥EKc,v这样可以使得此次会话安全性得到保障。Authenticatorc包括客户的名字,客户的地址,发送信息的时节和有效期。

应用服务器收到客户端发来的请求信息后,对信息进行密钥EKv对票据Ticketv进行解密,验证客户信息的安全合法性后,对客户的访问请求进行回复。

VClient:EKc,v[TS5+1] (相互认证)(6)

应用服务器在完成对信息身份的检验后,对该次请求合法性进行比对后,对于合法的用户,在Authenticatorc中的TS1,然后用与客户端共享的会话密钥EKc,v加密后作为应答报文发给客户。

客户收到应用服务器发来的应答信息后,通过双方共享的密钥EKc,v进行解密后,对应答的时戳进行验证,通过比对TS的有效性实现对应用端的认证。在双方身份确立后,即整个kerberos协议交互过程完成后,客户和应用服务器之间就拥有了共享的会话密钥,这样客户端和应用服务器端之间就能进行联协操作,进行后续通信作业。

2Kerberos协议模型在实际运用中存在问题

Kerberos协议很好地解决了合法用户可以合理简单地使用应用服务的过程,这为调度自动化平台提供了技术支持。但是由于调度在日常工作流程中,涉及的人员流动性的特性,电网调度是处于全年365天无休状态,因此调度人员的安排是根据经过公司批准的人员值班表进行的。为了保证电网调度平台的安全性,只有保证当且仅当当值的调度人员才能使用调度自动化平台。因此对传统的Kerberos模型进行一些修改。在AS中配置一份白名单。

白名单中记录的是当前时间内的当值调度员的人员列表。在进行认证过程中,AS服务器会对客户端的人员名称进行比对,只有在当前列表中的人员才能通过AS服务的认证,这样就解决了当且仅当当值的调度人员才能使用调度自动化平台的理念。白名单中的人员列表是根据调度员的工作排班列表,经过公司审批后,输入AS服务器的,因此该列表是具有实时性,可以满足日常工作流程。

采用白名单进行AS认证可以避免一部分非法用户的入侵,但是由于白名单列表是处于半公开的,这在技术上存在一定的安全隐患。而且由于电力企业的安全性是关系到国民生产的命脉的国有重点企业,电网调度又是电力安全生产的关键性单位,为了防止非法用户和内部用户截取口令,利用白名单的半透明性,传统的Kerberos采用的基于口令的认证方式来确认身份的技术也已不能满足现阶段信息安全的需要。为了抵消上述问题带来的隐患,在考虑到实际生产工作环境,采取传统口令和智能身份卡共用的认证模式。

由于智能身份卡已经电力系统中得到全面的使用,因此调度人员的智能身份卡已经采集备案,这便于智能身份模式和口令模式可以在调度自动化平台启用和推广。在用户进行认证前,将智能卡读卡机介入客户端,校对与AS服务器的时钟,确保客户端和AS服务器的实时性。

3改进的Kerberos协议模型

改进的Kerberos协议模型如图2所示,同样认证过程分为3个阶段,分别由二组消息交换来完成。改进的Kerberos协议认证过程如下:

图2改进后的Kerberos模型图

第一阶段,基于认证服务器的信息交换。

(1)用户登录调度自动化平台前,需要将自己的身份智能卡信息通过读卡机读取该用户的身份信息IDu。

(2)CAS: IDcIDuIDtgsTS1

首先客户端用户的把用户名、智能卡信息IDu、访问的TGS名称以明文的形式一起发送至AS认证服务器,请求与TGS进行通信所需要的会话票据和共享密钥。

(3)ASC:{EKc[Kc,tgsIDtgsTS2Lifetime2Tickettgs] } EKu

Tickettgs= EKtgs [Ec,tgsIDcADcIDuIDtgsTS2EKuLifetime2]

AS接收到用户请求信息后,通过对IDu和时戳时效性TS2与AS内部的白名单进行实时比对,确定是该用户在特定的时间内访问,则AS生成与Client与TGS通信所需要的会话票据及共享密钥,同时根据IDu的信息生成EKu,基于用户智能身份卡的信息对整个信息进行加密。如果IDu和时戳时效性TS2与AS内部的白名单比对失败,则AS服务器丢弃该次请求,并记录相关信息。这样就可以保证只有合法的用户在有效的时间内才能对应用系统平台进行访问。

(4)ClientTGS:IDvTickettgsAuthenticatorc

Tickettgs= EKtgs [Ec,tgsIDcADc IDuIDtgsTS2EKuLifetime2]

Authenticatorc= {Ec,tgs [IDcADcIDuTS3]} EKu

Client接收到上述消息之后,首先利用基于自己智能卡信息的导入密钥EKu解密整条消息,而后提取出Tickettgs。而后将Tickettgs根据Kerberos协议向TGS进行传输。

(5)TGSClient:{EKc,tgs[Kc,vIDvTS4Ticketv]} EKu

Ticketv= EKv [Kc,vIDcADcIDuIDvTS4EKuLifetime4]

TGS接收之后,用自己的密钥对信息解密后,检验用户的合法性,如果合法就为Client产生去应用服务器的会话凭证Ticket,密钥Kc,v,经过EKu 加密后发送至客户端。如果是非法的请求,TGS丢弃该次请求,并记录相关信息。和客户端和应用服务器之间的交互同理,这里就不再多做叙述。

4结束语

单一的用户口令除了外部很容易受到字典式攻击,在内部也很容易造成口令泄露等事件,为了避免上述情况,改进后的Kerberos加入协助认证的机制,在客户端向AS认证服务器发认证信息时,AS服务器在认证的过程中,除了使用白名单实效比对外,还会伸出一个加密的密钥,该密钥和用户的口令和智能身份卡相关,这样可以有效地避免一些非法用户的攻击,增加非法入侵的复杂性。由于智能卡自动生成密钥是用户实现无法得到的隐性数据,因此可以避免密钥的泄露,但能有效防范口令猜测攻击。

通过时间的同步校验,使得合法用户可在有效的时间内,登录调度自动化平台,从而满足电力系统生产安全的需要。参考文献:

[1]WILLIAM.Cryptography and Network Security[M].北京:电子工业出版社,2001.

[2]张永健.电网监控与调度自动化[M].北京:中国电力出版社,2009.

上一篇:云计算数据中心网络安全的实现原理 下一篇:面向绿色制造的典型机械产品并行设计系统关键...