- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于RBAC的隐私保护模型设计与实现
摘要:对于日益增长的互联网应用,隐私保护越来越重要。目前,用于隐私保护的框架主要有P3P(Platform for Privacy Preferences), EPAL(Enterprise Privacy Authorization Language), XACML(eXtensible Access Control Markup Language)等。本文提出了一种全新的隐私保护的框架,它基于我们所熟知的RBAC访问控制模型。通过这个模型,可以实现对复杂的隐私策略的支持,例如使用该模型支持安全港协议的隐私保护规范。同时,文中还简要介绍了在一个实际开发的内容管理系统中该模型的设计与实现。
1 引言
随着互联网和移动互联网的不断发展,用户隐私越来越受到社会的关注和重视。出现了各种法案法规等用于规范企业对用户隐私数据的使用。例如,1980年经济协作和发展组织发布了在政府工作、商业组织和个人活动中隐私信息保护的指导规范; 1996年美国颁布的医疗健康保险携带责任法案(HIPAA,Health Insurance Portability and Accountability Act)制定了对医疗隐私数据访问的控制规范;2000年12月美国商务部跟欧盟建立的安全港框架(Safe Harbor Frameworks)则折衷地规范了欧盟和美国之间用户数据隐私的保护。
尽管企业已经采纳了各种各样的隐私保护策略来保护用户的隐私并且把这些隐私保护策略告诉用户,比如说在网站上提供一个基于P3P(Platform for Privacy Preferences)的隐私声明,或者是满足某些机构的隐私保护认证等方式。但在所有这些方法中,都集中在收集用户数据前,并没有一个系统的机制来描述用户的个人数据在被收集后是如何处理的。这就有可能造成企业或者组织有意或者无意的在数据处理过程中,并没有遵守他们的隐私保护声明。
针对这种情况,近年来关于如何在系统内部实现隐私保护的研究逐渐展开。例如通过添加方法调用目的来描述隐私策略并且进行访问控制的方案。而IBM在2003年提出的EPAL解决方案,旨在为企业内部隐私保护策略的具体实施制定统一规范。EPAL给出了隐私策略典型的描述方法,但对于隐私策略的执行则由各企业自己实现。国内尝试EPAL解决方案的论文中,对于流程的说明和EPAL策略的解读也不甚明确。本文中所定义模型采取了与EPAL隐私策略描述类似的形式,并结合了RBAC访问控制模型中用户角色的理念,给出了一种使用简单的业务对象描述隐私策略的表示方法。
内容管理系统是企业信息化建设和电子政务的新宠,也是一个相对较新的市场。内容管理系统通常面向不同类型的用户,管理不同途径来源的数据和信息,对于隐私保护的要求可以代表目前互联网中的绝大多数应用。伴随着移动互联网的发展,终端接入互联网的方式由传统的WAP(Wireless Application Protocol)接入方式被更有效的3GNET,Wi-Fi等方式取代,为内容管理系统的广泛应用带来了更广阔的发展空间。在内容管理系统基础上,进行隐私保护模型的设计和实现,具有很强的实用性和可复用性。另外,随着云计算的日益兴盛,隐私保护在云计算中的施行也逐渐引起业内重视。会更注重用户隐私下面,本文将介绍内容管理系统中的一种基于RBAC的隐私保护模型的设计与实现。
2 隐私保护模型的设计
内容管理系统中,最突出的特点就是用户体现的角色属性。可以将用户按照在系统中行使的权利划分为不同的角色。因此基于角色的访问控制(Role Based Access Control)在内容管理系统中得到了广泛的应用。但是,传统的访问控制技术,例如强制访问控制,自主访问控制,基于角色的访问控制等访问控制方式没有体现隐私保护的策略也并不能满足隐私保护的基本需求,主要体现在没有与数据访问的目的、条件和义务等绑定。而这些体现隐私保护的目的、条件、义务的隐私策略在所有的隐私保护规范中都有不同程度的要求或说明。
以安全港框架为例,它要求:收集个人数据的企业必须通知其数据被收集,并告知他们将对数据如何进行处理,企业必须得到允许才能将信息传递给第三方,必须允许个人访问被收集的数据,并保证数据的真实性和安全性以及采取措施保证这些条款得到实行。
2.1 传统的RBAC访问控制模型
核心RBAC模型如图1所示,它的基本元素包括用户(Users)、角色(Roles)、目标(OBS)、操作(OPS)和权限(PRMS)。通过为用户分配角色、为角色分配权限,用户由此获得访问权限。任何访问控制的目的都是保护系统资源,亦即这次所指的目标,是一个包含或接受信息的对象。
图1 核心RBAC模型
可以看到,上述定义中,并未能表达出隐私保护的策略。例如用户访问这些数据的目的是什么;在什么条件下用户可以执行对目标的操作;操作执行完毕后,有没有善后工作。所有这些隐私策略都可以通过数据访问的目的,条件和义务三个要素来表示。数据的隐私特征通常以数据访问目的来描述,即只有在特定的访问目的下才可被读取一个数据时,这个数据就具有了隐私属性。而条件则是指用户在满足什么条件下,才能执行某一操作。例如,需要得到数据所有者同意的情况下,才能执行对数据的读操作等。义务,是指执行完某一操作后,需要做的善后工作,例如通知数据所有者对数据的操作,或者记录操作执行者的信息等。
2.2 基于RBAC的隐私保护模型
通过上面的分析,我们需要在角色执行其分配的权限时,加上相应的隐私保护限制。扩展后的模型即隐私保护模型如图2所示。
图2 支持基于RBAC的隐私保护模型
新的模型除了原来的用户、角色、目标、操作、权限外,加入了体现隐私保护的三个属性,即目的(PURS),条件(CONS),义务(OBLS)。其中,用户和角色作为操作发起人的约束条件统称为用户集。形式化定义如下:
●USERS,OPS,OBS,PRMS,PURS,CONS,OBLS分别表示用户集、操作、目标对象、权限,访问目的,条件,义务的集合。
●PRIVACY={(users,ob,op,cons,obls,purs)|users∈USERS,ob∈OBS,op∈OPS,cons∈CONS,obls∈OBLS,purs∈PURS},权限的集合。
上面的形式化定义中,我们看到一个隐私策略由6个元素组成,除了目标和操作外,增加了目的,条件,义务,用户集四个要素。四个要素的具体定义如下:
●用户集USERS:该隐私策略的适用用户范围,通过用户和角色等元素来约束。用户集选项可由角色,特定用户,以及专指用户(比如内容对象创建者)构成。
●目的PURS:用户对目标(数据)执行操作时,都有一定的目的,例如是生成账单,或者审批对象或者用于数据分析等。目的的定义主要是满足隐私保护策略中,用户对企业对其隐私数据的操作有知情权的条款。也有助于限制授权用户的非法操作。
●条件CONS:描述了用户对目标(数据)执行操作前,需要满足的条件。例如在对数据操作前,必须获得该数据所有者的授权。我们可以通过定义一个形式化的变量,并找出该变量可能对应的域来刻画条件。例如数据所有者的授权:定义为OwerConsent,它对应的可能取值只可能是{yes,no};变量与取值之间的关系通过{=,≠}来描述。那么,条件"必须获得隐私数据所有者的授权"就可以表示为OwerConsent=yes。
●义务OBLS:用户操作执行完成后,系统做的善后工作。通常是满足某些隐私策略要求的方法,例如邮件发送,日志记录,数据定时删除等。
在我们的模型中,至此,我们可以用形式化的语言描述目前业界对隐私的大部分要求,仍然以安全港框架为例:
(1)告知用户企业对数据进行哪些处理:通过在义务OBLS中包含通知功能,并在目的中定义数据用途来实现。
(2)企业必须得到允许才能将信息传递给第三方:通过在条件CONS中包含数据所有者的同意来满足。
(3)允许个人访问其被收集的数据并提供修改的途径:通过授权数据所有者来实现。
3 隐私保护模型的设计与实现
本文所实现的隐私保护模型使用AOP面向切面编程技术进行的编码实现。为方便编码,设计上也以满足AOP的技术需求为主要原则。隐私保护的核心功能被封装在一个模块中,向上隐藏了实现的细节,为内容管理系统的其它模块提供访问控制和隐私保护的功能。该模块功能在切面中被调用。各功能模块只需要处理复杂的业务逻辑,而不用关心其隐私保护的具体实现。当系统业务逻辑已被实现后,再统一添加切面的切入点引入通知等,从而有效提高系统开发的效率和隐私保护模块的复用性。
3.1 核心流程设计
隐私保护系统核心流程主要体现在隐私策略的定义和实施两个方面。
如图3中所示,隐私策略定义流程包含以下几个步骤。
(1)定义事件:通过选择参与人(Users),操作(Operation),操作目标(Object)(即受保护的数据对象)三要素,组成事件定义。
(2)指明目的:下拉列表选择执行该事件的目的。
(3)定义条件:选择参数以及对应属性,指定事件执行需要满足的条件。
(4)提交:从前端页面将隐私策略数据传递到后台服务器。
(5)策略翻译:将用户提交的数据转为标准的隐私策略定义形式。
(6)冲突检测:隐私策略一旦创建完毕,会与可能发生冲突的隐私策略组进行冲突检测;存在冲突的,提示用户重新修改提交。
(7)存储到数据库:不存在冲突时,新建的隐私策略被存放到隐私策略数据库;隐私策略创建过程结束。
如图4中所示,隐私策略执行的过程包括以下几个部分。
图4 隐私策略执行流程图
(1)应用程序发送业务对象操作请求。
(2)事件拦截器拦截到方法调用,切换到隐私策略执行切面。
(3)调用前面方法,找到相应的隐私保护策略(组合)。
(4)调用条件检测方法,通过逐一对隐私保护策略中条件的比照,为每一个隐私策略返回一个判断结果,综合所有结果后得出是否允许执行。
(5)方法调用完毕后,隐私策略执行引擎将执行隐私策略中对应的义务部分。
(6)一次方法调用结束。
3.2 核心对象实现
隐私保护系统核心对象主要包括用户,系统中的业务对象,以及代表隐私策略的隐私策略对象。
如图5中所示,隐私策略是连接用户和业务对象的纽带。这也是本文中隐私保护有别于传统隐私保护中仅限于对用户注册信息保护的地方。隐私策略关联了用户和业务对象,针对不同的业务对象和用户,设计不同的隐私策略,以达到按用户制定的隐私策略要求对业务对象进行隐私保护的目的。而隐私保护切面调用隐私策略对象中的条件检测方法,给出授权结果。其实现方式使用AOP中前通知,返回后通知和周围通知的方法。其中返回后通知通过调用隐私策略中义务相应的方法,完成隐私保护的最后部分。
图5 隐私保护系统实体类关系图
隐私保护切面完成后,就可以根据系统需求,为业务对象或者业务对象的方法定义切点和通知者,以达到对业务对象进行隐私保护的效果。
4 结束语
本文中隐私保护模型,为满足互联网应用中存在的一系列隐私问题,基于常用的RBAC访问控制模型,加以改进。增加了体现隐私保护策略的功能,为隐私保护提供了更具灵活性和拓展性的支持,并以安全港隐私保护框架为依据,逐步完成了隐私保护框架的设计与实现。不仅涵盖了访问控制的原有特性,还提供了灵活的隐私保护的系统接口,方便今后不同应用系统的复用。
本系统也存在着一定的缺点和不足,包括隐私保护策略的冲突,信息流中隐藏的隐私泄露等。这些问题,将作为后续对互联网隐私保护的研究和实践中要解决的重点。
作者:高涛 朱晓民 沈奇威 来源:电信网技术