技术开发 频道

基于UML模型的NGN业务安全分析

    二、业务安全的实现机制

    基于上述分析,可以将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的安全功能。

0
相关文章