摘要:异构身份联盟是解决网络空间中多域多形态身份管理问题的一个重要研究方向,异构身份联盟统一身份标识是构建异构身份联盟系统的一个基础核心模块。本文针对当前网络环境下的身份联盟管理问题,在异构身份联盟的基础框架下,提出了一种异构身份联盟统一身份信息标识模型,并研究了如何基于该模型实现异构身份联盟的身份关联、跨域访问、信任评价功能。
0 引言
互联网时代,网络应用程序成为人们工作生活中不可或缺的一部分,当网络服务为我们提供越来越多便利的同时,大量的网络应用账户也成为了用户管理自身网络身份的负担,如何构建一种网络身份管理技术,为用户提供全生命周期的身份管理,是学术界的一个研究热点。
身份管理系统是当前网络应用的一个核心模块,尽管已有大量身份管理研究,但是在现实网络空间中,不同体系结构、不同应用领域的身份联盟协同并存,海量、异构、跨域、多态的网络身份管理安全挑战日益严峻,如何统一管理网络实体的多域多形态身份是一个挑战性问题。国内外大量身份管理基础设施在理念上以应用、信息系统为中心,其身份管理差别大、实现手段各异、结构松散,形成了一个个身份管理“孤岛”,为跨域身份共享、业务融合、系统集成带来了诸多不便。目前的网络身份管理存在身份管理平台多样,不互通;多维度身份认证体验差,管理难;跨域身份管理的可信评估缺失;身份隐私信息易被滥用和误用;身份信息易被复制和伪造等问题,利用各种身份管理系统和认证协议漏洞造成的网络安全事件近年来层出不穷。
面对以上的网络身份管理问题,本文引入异构身份联盟实现跨域身份管理。异构身份联盟是一种将各类多域多形态的身份联盟系统进行统一管理的联盟架构体系。近年来,已经有研究者对这一问题进行了相关研究,包括异构身份联盟的审计追踪、异构网络的身份管理、跨异构域身份鉴别系统 以及异构认证系统间身份同步等问题。目前,相关研究成果主要集中在异构身份联盟的功能方面,缺少对异构身份联盟统一身份标识模型的研究。
本文将对异构身份联盟的统一身份标识进行研究,提出一种以用户为中心的统一身份信息标识模型,并论述如何通过该模型支撑异构身份联盟中异构身份管理系统之间的信任传递、跨域访问、可信评价功能,并对该模型面临的安全问题进行分析。
1 异构身份联盟
异构身份联盟是一种由跨体系结构、跨应用领域的多个身份管理平台组成的,能够提供统一、安全可信、身份全生命周期管理和服务的体系,是一种以用户为中心的面向异构网络实体身份联盟管理模型。异构身份联盟的核心在于如何整合各个跨域异构的身份管理系统,形成一个统一的身份联盟,并且各身份管理体系可以通过该联盟系统实现对用户身份信息的全周期管理。
从功能角度,定义异构身份联盟需要实现以下基础功能:
(1)身份关联:同一实体用户在不同身份管理域中有不同的身份信息结构和标识,当同一实体用户所在的不同身份系统都加入了异构身份联盟后,异构身份联盟系统需要维护该用户与其在不同系统中标识的映射信息,通过该映射可以将用户在不同系统中的身份标识关联在一起。
(2)跨域访问:同一实体用户在网络空间的不同应用中存储有各自系统对应的资源数据,跨域访问是指用户在一个身份管理域中,向另一个身份管理域发出资源访问请求,来获取自己在另一系统中的资源,该过程应该需要考虑如何对用户的跨域行为进行管理,包括资源访问权限管理,以及用户认证的管理,防止攻击者冒用身份来盗取正常用户资源。
(3)信任评价:异构身份联盟应具有一套统一的信任评价标准,该标准以用户的信息完整性和行为记录等作为参数,在一定的周期内对该用户给出一个该周期的信任值,在异构身份联盟中,该评价值可以作为跨域资源访问时的参考,当信任值低于某个阈值时,系统可能会限制其跨域的权限。
异构身份联盟是一种以用户为中心的实体身份管理模型,在本文的研究中,我们提出一种异构身份联盟统一身份信息标识模型,该统一身份标识信息为每一个实体用户分配一个全局标识。系统可以通过该统一身份标识信息实现用户的全局标识与各身份管理域中标识的映射,并基于此实现异构身份联盟的其他功能。用户统一身份标识信息的构建需要保证用户信息是真实可信的,否则会导致身份关联错误和跨域访问攻击等问题,因此,在为新加入系统的用户分配统一身份标识之前,需要一些权威的基础身份信息库提供用户身份真实信息的核验功能,例如公安人口库、政府人员信息库和学校学籍信息库等。
统一身份标识是异构身份信息管理的一个核心模块,异构身份联盟的功能与统一身份标识的关系如图 1 所示。异构身份联盟的基础功能都需要依赖统一身份标识信息来实现,本文中提出了一种适用于异构身份联盟的统一身份标识模型,详细的模型设计将在第 3 章节中进行阐述。
2 异构身份联盟架构设计
2.1 异构身份联盟基础架构设计
为解决异构身份管理系统之间的统一身份标识以及异构身份联盟系统的信任传递、跨域访问、可信评价、隐私保护、行为监管分析等问题,我们提出了一种基于联盟链的异构身份互信互通架构设计。如图 2 所示,该架构模型由异构身份联盟链、各身份管理系统(例如电商身份系统和电信身份系统)、基础身份信息库(如公安人口信息库)、异构联盟统一身份标识信息库以及第三方监管审计机构组成。
在该架构模型中,各组成部分功能如下:
(1)基础身份信息库:是由可信权威部门提供的,能对用户真身身份信息提供核验功能的数据库服务系统,例如公安部门提供的人口基础身份信息库,大学信息系统提供的学籍信息库等,外部系统可以通过调用基础身份信息库的接口来对用户的真实身份信息进行核验。在该架构中,基础身份信息库为加入联盟的系统提供用户真实身份核验功能,只有通过身份核验的用户才能继续分配统一身份标识信息。
(2)异构身份联盟统一身份标识信息库:用于存储和维护新加入用户的统一身份标识信息,统一身份标识是异构身份联盟实现各种功能的基础,跨域访问、可信评价等功能都需要调用该信息库对外提供的接口,与统一身份信息标识进行交互后实现。统一身份标识信息库由各个加入异构身份联盟的节点进行分布式维护。
(3)各身份管理系统:是指各个不同域、不同体系结构的身份管理联盟或身份管理域,在该系统中作为联盟成员加入异构身份联盟,用户所在的身份管理域加入异构身份联盟后,系统可以对用户身份进行核验并生成对应的统一身份标识信息,成员可以通过该统一身份标识信息进行各个身份管理系统之间的跨域访问等功能。
(4)异构身份联盟链:由加入异构身份联盟的各个身份管理系统节点组成的联盟区块链,该链的一个功能是实现各身份管理联盟的动态加入和退出,另一个功能是记录统一身份信息标识库索引信息,以及用户在异构身份联盟中执行操作的摘要信息,为异构身份联盟的数据提供信任背书。同时,该联盟链上能够执行智能合约,可以通过智能合约来自动化执行部分异构身份联盟的功能。
(5)第三方审计监管机构:第三方机构主要用于实现异构身份联盟的可信评价和监管等功能,当需要对用户信息进行可信评价时,可以向第三方专业机构开放部分接口,在保护用户隐私的前提下实现对统一身份标识信息库中用户的可信值评估。
异构身份联盟链的节点由各身份管理系统通过各自的机构接入点加入后构成,当有新的身份管理系统需要加入联盟链时,需通过联盟节点投票和扩展机制进行。异构身份联盟统一身份信息库中存储了联盟用户的统一身份标识信息,由各联盟节点分布式运维管理,并由异构身份联盟链存储统一身份标识信息的索引和操作记录,当身份系统加入联盟链后,需要通过基础身份信息库验证用户信息,验证通过后为该用户分配或更新统一身份标识,各身份管理系统可以通过该统一身份标识实现用户的异构身份跨域访问和信任评价等功能。
2.2 安全威胁
针对本文中的异构身份联盟基础架构和统一身份标识信息,我们将系统面临的主要安全威胁归纳如下:
(1)身份冒用:攻击者试图假冒某身份管理系统 A 中的正常用户登录系统,并向其他身份管理系统发起跨域访问。若攻击者假冒身份成功,除了系统 A 中的用户资源会遭受攻击外,攻击者通过异构身份联盟的跨域访问还会导致该用户在其他身份管理域中的资源数据遭到非法访问,同时,攻击者在异构身份联盟中的身份冒用行为还会导致被攻击者的行为记录受到影响,造成可信评价值的降低。
(2)重放攻击:在用户进行一次系统 A 到系统 B 的跨域访问后,攻击者可能会截获用户上一次跨域访问的信息,并利用该信息重新向系统发起针对该用户的跨域访问,导致身份认证过程的安全性被破坏,攻击者即可盗取该用户在系统 B 中的资源。
(3)隐私泄露:由于在身份关联阶段,加入异构身份联盟的实体用户在各个身份系统中的标识都关联到各自的 UID 上,攻击者可能会通过一些额外的辅助数据,对用户的统一身份标识与真实身份进行关联,导致匿名性遭到破坏,造成用户隐私泄露。
(4)数据篡改:攻击者试图篡改统一身份标识信息表中的数据,造成数据管理错误和异构身份联盟功能错误。例如,攻击者通过篡改数据库信息,将两个不同用户在不同身份管理域中的身份信息进行关联,则当正常用户进行跨域访问或者可信评价时,会造成用户访问他人的错误资源,以及信任评价不正确的问题。
3 统一身份标识设计
基于 2.1 节的架构设计,联盟可以在基础身份信息库的基础上,为加入异构身份联盟的用户分配统一身份标识信息,异构身份联盟的信任传递、跨域访问、可信评价等功能都需要依赖用户统一身份标识信息来实现,统一身份标识结构设计如图 3 所示。
一个统一身份标识信息主要由三个部分组成:
(1)全局基础信息表:存储用户在异构身份联盟中的全局统一标识 UID、基础公钥 PK0以及联盟信任评价值 Credit Score。UID 作为用户在系统中的唯一标识,起到了索引的作用。
(2)各身份系统信息表:存储该用户对应该身份管理系统的 ID 信息、以及对应该系统的公钥和信任评价值信息。一个统一身份信息标识中可能有多张身份系统信息表,假设一个用户的统一身份标识信息中有三个身份系统信息表,则表示该用户在联盟中的三个身份管理系统中都有相关的身份信息。
(3)用户行为记录条目:该部分用于记录用户在异构身份联盟中的操作行为,包括用户的加入、身份关联记录和跨域访问的记录等,这些记录可以作为用户可信评价时的参考。
每一个用户对应一张统一身份标识信息表,当某个身份管理系统 A 接入联盟链后,联盟链会为系统中的用户生成一个全局身份标识 UID,基础公私钥对(PK0,SK0),以及对应于原系统 A 的标识AID和密钥对(PKA,SKA),并将 UID 和公钥PK0,PKA存入联盟统一身份信息库中。此外,该表中还存储该用户的行为记录条目,用于对用户进行信任评价,信任评价值产生后,将添加到该表中。当另一个身份管理系统 B 加入联盟后,系统在核验身份时判断B 系统的用户是否在 A 系统加入时已经生成过统一身份标识,如果找到对应的统一身份标识信息,则直接向该表中添加该用户对应 B 系统的 BID 和 PKB。
在存储方面,由于区块链不适合存储大量数据,因此可以对异构身份联盟统一身份信息库进行链下存储,由各联盟链节点进行分布式存储和维护,联盟链上只负责存储数据库的索引信息和用户操作记录的摘要信息。
4 基于统一身份标识的联盟协议设计
基于异构身份联盟基础系统架构设计和统一身份标识模型,我们对异构身份联盟的基础功能实现进行了初步的设计,包括身份关联、跨域访问和信任评价。在本章节中,我们主要说明了各个功能的基本设计方案,以及统一身份标识如何在协议流程中发挥作用,最后,针对 2.2 节中的安全威胁,对系统的基本功能进行了安全性分析。
4.1 身份关联
身份关联是实现其他功能的前提,其目的是将不同域中同一网络实体通过统一身份标识信息关联在一起,协议流程如图 4 所示。
(1)身份管理系统 A 向异构身份联盟系统发出请求,申请自身系统加入异构身份联盟链;
(2)联盟链通过调用基础身份信息库的开放接口,对系统 A 中的用户身份真实性进行核验;
(3)若(2)中核验通过,则为该用户生成全局统一身份标识 UID、基础公私钥对(PK0,SK0)、用户在 A 系统中对应的标识 AID 和公私钥 对(PKA,SKA), 并 将 UID、AID、PK0、PKA 和操作记录写入异构身份联盟统一身份标识信息库中,系统 A 保存 UID、SKA 和 AID;
(4)身份管理系统 B 加入异构身份联盟链,过程同(1);
(5)联盟链通过基础身份信息库对系统 B中的用户进行身份核验,过程同(2);
(6)B 系统用户通过核验后,检查联盟统一身份信息库,若该用户已有UID,则生成该 UID 用户对应的 B 系统标识 BID 和公私钥对(PKB,SKB),并将 BID 和 PKB 添加到该 UID对应的身份信息表中,系统 B 保存 UID、SKB和 BID,完成 A 和 B 系统中同一用户的身份关联。
4.2 跨域访问
当两个不同域的系统 A 和 B 都加入异构身份联盟链后,都具备对联盟统一身份认证的支持,此时,若在 A 系统中登录的某用户要跨域访问自己在 B 系统中的资源,即可通过异构身份联盟链和统一身份标识实现,协议流程如图 5所示:
(1)用户在 A 系统中向联盟链发出访问 B系统资源的请求,请求中携带有该用户的全局标识 UID 和在 A 系统中的标识 AID。用户使用自己私钥对请求信息进行签名。
(2)联盟链收到请求后,触发智能合约,根据用户的 UID 可以查询到对应的统一身份标识信息表,再根据 AID 信息查询得到 A 系统相关的公钥信息,来对用户签名进行验证,若验证通过则向联盟链和用户统一身份信息表中写入带有当前时间戳的请求记录,最后将 UID 对应的 B 系统的公钥 PKB 以及时间戳发送给 A系统。
(3)A 系 统 收 到 UID 对 应 的 B 系 统 公 钥PKB 和时间戳后,向 B 系统发送使用 PKB 加密的请求信息和 SKA 生成的数字签名,其中请求信息中包含了该用户的全局统一标识 UID。
(4)B系统收到访问请求后,使用私钥SKB 获得请求的明文信息,然后向联盟链发送一个带有 UID 的请求,获取之前的 A 系统访问请求记录和用户对应的 A 系统公钥,检查访问请求记录是否与收到的请求信息是否一致,并验证时间戳是否超时,最后使用 PKA 验证签名,检查请求信息完整性。
(5)若请求信息通过 B 系统验证,则 B 系统与 A 系统建立安全连接,向 A 系统发送该用户请求的资源。
4.3 信任评价
在异构身份联盟系统中,信任评价的主要依据为该用户在各身份系统中的评价值,以及在统一身份标识信息表中的操作记录条目,具体的信任评价值获取流程如图 6 所示:
(1)各个身份管理系统对用户分别进行信任评价,评价依据为该用户在本身份管理域中的身份属性信息的真实性和完整性,以及访问行为的合规性等因素,形成各个管理系统的可信评价值,通过用户的 UID 找到用户统一身份信息标识表,将信任评价值填入对应的身份管理系统表格中。
(2)联盟链按照异构身份联盟的统一评价标准,对用户统一身份标识信息表中的用户行为记录条目进行审计分析,将得到的评价值存入该用户 UID 对应的 Credit Score 中。
(3)联盟链触发智能合约,将该用户的各个评价值与对应各系统的权值结合,得到最终的可信评价值。
其中,步骤(2)的审计分析功能可以由联盟链执行智能合约实现,也可以由第三方监管审计机构接入联盟链来实现。
4.4 安全性分析
针对上文提出的安全威胁,我们对所设计模型以及功能进行以下的安全性分析:
(1)身份冒用:假设攻击者想要假冒身份管理系统 A 中某个用户的身份来跨域访问该用户在 B 系统中的资源,则攻击者首先需要假冒被攻击者的身份登录到 A 系统中,这一步需要攻击者获取被攻击用户的口令才能执行,如果A 系统采用安全度较高的身份认证方式,如生物特征认证和实时动态口令等方法,即可大幅度减小攻击者冒用身份登录的可能性。假设攻击者有能力冒用身份登录到 A 系统中,在进行跨域请求的过程中,需要使用用户的私钥来进行签名操作,攻击者在没有私钥的情况下是无法进行跨域访问的,两个因素结合在一起,可以使攻击者攻击成功的概率降到很低。
(2)重放攻击:假设攻击者有能力截获某次跨域访问的请求数据,并利用本次通信的数据重新发起跨域资源请求。根据协议流程,被访问方系统在检查访问请求时,需要连接到联盟链检查本次请求的记录,若记录显示本次跨域访问已完成或时间戳与当前时间之差超过阈值,则拒绝本次请求操作,防止攻击者利用上一次的请求数据进行重放攻击。
(3)隐私保护:在用户隐私数据保护方面,通过分层密钥派生体系,实现联盟链上用户身份匿名不可关联的隐私保护。对于接入的第三方机构,只有监管机构通过监管密钥,才能实现异构身份联盟统一身份标识与基础身份信息库中的实体身份之间的关联分析。对攻击者和普通用户而言,实现了用户匿名和隐私保护。
(4)数据篡改:假设攻击者具有获取统一身份信息标识信息数据库的能力,为防止数据库被攻击者随意篡改,我们在工程实现时可以使用加密数据库来存储统一身份标识信息,所有存入数据库的敏感信息都经过加密处理,攻击者在缺少密钥的情况下只能得到密文数据,无法对数据库信息进行修改。
5 结语
异构身份联盟是解决异构环境下身份管理问题的有效方法,而实现异构身份联盟功能的一个核心问题就在于如何构建用户实体的统一身份标识信息,以实现联盟中各个身份管理系统之间的身份关联,进而实现跨域访问和信任评价等功能。
本文基于这一问题对异构身份联盟的统一身份标识信息进行了设计,该标识信息中包含了实体用户在异构身份联盟系统中的全局标识UID 和用户在各个身份管理系统中对应的标识信息,通过这种关联关系,我们可以实现同一用户在不同系统中的身份关联,在实现身份关联的基础上,我们可以通过用户的统一身份标识信息和公钥加密算法来构建协议,实现关联身份之间的跨域资源访问功能。另外,还可以通过向每一个 UID 对应的身份管理系统收集用户的评价值,结合用户在异构身份联盟中的操作记录,得出该 UID 对应用户在系统中的可信评价值。此外,我们还对模型和功能的安全性进行了简单分析。
异构身份联盟的最终目标是解决网络空间中多域多形态身份的管理问题,本文的研究面向异构身份联盟的基础部分,对其统一身份标识模型进行了初步的研究设计,并对基于该模型的异构身份联盟基础功能协议进行了简单的方案设计。未来的研究方向可以致力于对异构身份联盟统一身份标识信息进行内容和结构上的扩充,使其能支持异构身份联盟实现更多的功能,并且对系统的功能协议进行细粒度的设计。
作者:
杨淳,电子科技大学,计算机科学与工程学院, 硕士,主要研究方向为身份管理。
李经纬,电子科技大学,计算机科学与工程学院, 博士,副教授,主要研究方向为云存储安全。
李洪伟,电子科技大学,计算机科学与工程学院, 博士,教授,主要研究方向为密码学及其应用。
郝尧, 中国电子科技集团公司第三十研究所,硕士,高级工程师,主要研究方向为身份管理、区块链。
董贵山,中国电子科技集团公司第三十研究所, 博士,研究员,主要研究方向为信息安全。
(本文选自《信息安全与通信保密》2019年第六期)
声明:本文来自信息安全与通信保密杂志社,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。