- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于UML模型的NGN业务安全分析
在更细的粒度上,用户可以在send()方法中指定具体安全机制的相关参数,对所使用的安全机制进行更精确的控制。
图5是对通信机密性进行保护的安全能力抽象类的类图。其send()方法应能保证消息的加密传输。Receiver类的receive()方法用于接收并解密消息。同完整性保护一样,更加细致和更加可控的机密性保护可通过对send()和receive()方法的重载实现。
除了图4和图5中列举的用于保护通信完整性和机密性以及实体访问控制的安全能力抽象类外,还可以根据业务的实际安全需求抽象更多的安全能力抽象类。每个类实现某一特定的安全功能,如可以在多媒体会议中定义群密钥管理功能抽象类,用于满足群密钥生成、分发与认证的功能。
图4 安全功能抽象类图示例
图5 消息机密性安全功能类
二、业务安全的实现机制
基于上述分析,可以将NGN业务的安全需求从安全特性上加以划分并进行抽象,形成一系列细粒度的安全功能抽象类。通过对每一个安全功能抽象类的实现可以满足业务的安全需求。文献[8]提出了一种基于模型驱动的细粒度的访问控制框架AC-PIM,将一个统一的高层的访问控制模型(AC-PIM)映射到多种具体的访问控制机制中,如OASIS的SAML(SecurityAssertionMarkupLanguage)和XACML(eXtensible Access Control Markup Language),OMG的RAD(Resource Access Decision Facility)以及Java Authentication and Authorization中定义的Java访问控制模型。AC-PIM提供了一个实现图4中的AccessGuard抽象类的途径。
下面说明如何利用GSS-API实现保证通信完整性的安全能力抽象类,通过状态图说明保证通信完整性的Sender类的send()方法及Receiver类的receive()方法的GSS-API实现。本文中给出的是一个示意性的说明,忽略了一些错误处理过程。
图6中,在send()方法被调用后,Sender首先检测是否已有可用的安全上下文,如果可用的安全上下文已经存在,则可以利用该上下文的句柄作为参数之一,调用GSS-API的Get_GetMIC()方法。参数还包括有待进行签名的消息和可选的QoP。如果对消息签名可以正常完成,Sender就可以将消息与签名后生成的token一起送到目的地。如果签名发生异常,则可以通过返回的错误码判断原因。
图6 {integrity}Sender的GSS-API实现
如果在调用GSS_GetMIC()方法之前不存在可用的安全上下文,则Sender需要首先与Receiver之间建立安全上下文,通过安全机制信息的交互建立好安全上下文后可以继续调用GSS_GetMIC()方法对需要发送的消息签名。
通信完整性抽象类Receiver用于对消息完整性进行检测,过程如图7所示。经过GSS_VerifyMIC()方法检测接收到的消息及其签名是否一致以判定其完整性。如果没有合适的上下文可用,则应先建立安全上下文然后再调用GSS_VerifyMIC()。
图7 {integrity}Receiver的GSS-API实现
如果需要实现的机密性保护,则Sender类和Receiver类的约束用{secrecy}表示。可通过GSS-API的GSS_Warp()方法和GSS_Unwrap()方法实现Sender和Receiver的安全功能。
Sender和Receiver还可以通过NGSS-API来实现。NGSS-API是ParlayAPI架构下的安全应用接口,对网络的安全能力进行抽象,并为业务提供安全能力。NGSS-API中提供了IpCredentialManager、IpContextManager、IpContext等类分别用于管理证书、管理安全上下文以及基于安全上下文的完整性、机密性等网络中的安全机制提供的安全能力。使用NGSS-API实现通信的完整性、机密性保护的过程与GSS-API类似。
GSS-API和NGSS-API都可用于实现根据业务安全需求抽象出的安全功能抽象类。GSS-API通常由本地的程序语言类库实现,适合于运行在终端和网络实体上的业务实例使用,保证本地与目的地交互的安全性。NGSS-API基于ParlayAPI,主要面向应用服务器等第三方业务实体,适合于运行在应用服务器上、与Parlay网关进行交互的业务实例使用,其安全需求通过Parlay网关协调网络中的实体实现,保证整体的安全性。GSS-API考虑的安全粒度是消息级的,而NGSS-API考虑的安全粒度相对要大一些,从应用服务器业务逻辑的视点出发,保证一个呼叫方或一个用户接口的安全性。
GSS-API和NGSS-API都独立于具体的安全机制,可以采用不同的安全机制和安全协议实现。
三、结语
本文根据NGN的网络特点对UMLsec进行了扩展,利用扩展后的UMLsec对NGN的网络环境和业务的安全需求进行了分析。将NGN业务的安全需求抽象成细粒度的安全能力抽象类,用UMLsec加以描述,通过这些类的组合完整表达NGN业务所需的安全特性。通过对安全能力抽象类的实现可以满足NGN业务的安全需求。本文通过用例说明了如何利用安全应用接口实现安全能力抽象类。基于安全应用接口的实现与具体安全机制的细节无关,且具有可移植性,使得业务的安全特性在不同的环境下可通过不同的安全机制实现。下一步的研究工作将包括对业务可用性等安全特征进行建模,并完善需求模型与实现模型之间的转换规则,以实现模型之间的自动转换与验证。
来源:天极网