没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记171(2007)3-21www.elsevier.com/locate/entcs一种端到端的分布式策略语言实现方法(延伸摘要)汤姆Chothia1Centrum voor Wiskunde en Informatica(CWI)Kruislaan 413,1098 SJP.O. Box 94079,1090 GB AmsterdamThe Netherlands.多米尼克·达根2史蒂文斯理工学院计算机科学系,美国新泽西州霍博肯07040。叶武3史蒂文斯理工学院计算机科学系,美国新泽西州霍博肯07040。摘要访问控制和信息流控制的基于数据库的安全方法在某种程度上必须依赖于用于表达策略的语言。然而,对于任何给定的应用,通常将存在针对正确的策略语言的若干选择,以及针对在应用中实现策略语言的若干选择。给定域。 本文考虑了一种在应用程序级别实现策略语言的方法,该方法依赖于可信的加密库,其接口安全保证用于验证策略语言实现的正确性。关键词:访问控制,策略语言,加密库,抽象数据类型。1引言许多软件应用程序在不受信任的网络上运行。程序员使用加密操作库来保护这些网络上的通信在1电子邮件:T. cwi.nl2电子邮件:dduggan@cs.stevens.edu3电子邮件:ywu1@cs.stevens.edu1571-0661 © 2007 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2007.03.0104T. Chothia等人/理论计算机科学电子笔记171(2007)3通过使用这些库,它们隐含地强制执行正在交换的数据的安全策略。这一政策通常没有说明,或者只是在程序注释中非正式地说明。如果这些安全策略以适当的正式策略语言陈述,则可以验证对这些策略的遵守,通常使用自动或半自动技术。以基于语言的安全性为例的一种特殊方法是用合并到类型系统中的策略语言来表达策略。然后,类型检查提供了一种根据程序类型中表达的安全策略来检查数据操作是否正确的途径。然后,这些安全策略可以经由用于加密操作的类型化API与用于保护网络通信的加密库相关,所述类型化API表达这些操作旨在实施的安全保证(例如,用于保密的加密、用于完整性的数字签名)。需要解决的一个明显问题是在类型系统中用于表达安全策略的策略语言的形式问题是,任何策略语言都不可避免地(事实上相当快)会遇到它不适合的应用程序。例如,JIF语言[26,25,28]包含了一种基于访问控制列表(AccessControl List,简称ACL)的策略语言,并增加了一种委托主体权限的形式 对于JIF策略语言,一个明显的扩展是某种形式的基于角色的访问控制(RBAC),包括一些基于角色的权限委托的概念[7]。但是,即使只考虑基于角色的访问控制的扩展,也可以添加RBAC的许多变体Li等人[22,23]的RT语言家族是这种策略语言的良好候选者,因为它似乎是最接近分布式RBAC的代表团)。但是RT家族中有许多变体,而且可能还有更多的变体有待提出。此外,不断有人提出超越RBAC和委托的新策略语言,例如主体共享资源访问控制的策略语言。“端到端”方法将允许各个应用程序定义自己的策略语言,或者从可能的策略语言库中进行选择,而不是为所有应用程序提供单一的策略语言。不是在类型系统中提交特定的策略语言,而是可以在每个应用程序的基础上加载任意的策略语言,作为抽象数据类型。 姐这种方法在过去已经成功地用于几个应用:定理证明环境的逻辑框架[21,32],认证编译环境和证明携带代码[4,36,4,12],以及证明携带认证[3,5]。在本文中,我们考虑一种方法,该方法使用加密库将应用程序定义的策略语言与应用程序定义的网络安全性联系起来。这种方法结合了两种研究途径(i) 基于类型的加密操作,使用类型化API将操作与它们旨在跨网络实施的安全属性相(ii) 定义语言和逻辑的框架, 尤其是T. Chothia等人/理论计算机科学电子笔记171(2007)35Th∈Theory Signature::=( {k},{t:KProp},{c:Tc},{c:t:K.T→repF},CE)CE∈Constants Env::=({t:K},{c:t:K.T →repP})D∈Datatype::=datatypetc:K Typewithc:t:Kc.T →tc(TJ)TE ∈ Type Env::={}|{t:K}|TE1TE2VE ∈Value Env::={}|{x:T}|VE1和VE2格式良好的上下文 Th、D、TE、VE上下文Kind FormationThursday类型地层Th,D,TET:K价值形成Th,D,TE,VEe:TK ∈ Kind::=类型| Prop| Prin| K1和K2|K1⇒ K2T,P,F∈Type,Prin,Prop::=t|TC|T1→T2|作者:K.T|(T1T2)|P说F|repF e∈Exp::=x,y,z|a、b、c|λ x:T. e|(e1e2)|Λt:K。e|(eT)|c(t,x)的情形eFig. 1. 微型语言的发展图二. 类型判断证明携带认证[3,5]。作为一个主要的例子,我们认为一个特定的政策语言实现为这样一个框架中的库。 之所以选择这种政策语言,是因为它 有两种完全不同的实现,涉及完全不同的加密操作集。这证明了将策略语言的实现从语言本身转移到库中的明智之举。 期望一种通用策略语言满足所有应用程序的需求不仅是不切实际的,而且如果存在一种匹配所有应用程序的策略语言我们提出了一种元语言的规范,作为一种显式类型的函数语言,以简化演示。这使我们能够给出策略语言语义的等式规范。然后,我们能够将策略语言实现的这种处理与抽象数据类型的代数语义学中的经典工作联系起来,确保实现对于等式规范是 正 确 的 [17 , 20] 。 “Equational correctness” in this set- ting means that anauthentication operation will extract well-formed “evidence” for policy我们在第2节中给出了类型系统的描述。策略语言实现示例见第3六、我们将其与第7节中的基于类型的访问控制和信息流控制联系起来。第8节审议相关工作,9得出了一些结论。6T. Chothia等人/理论计算机科学电子笔记171(2007)3(λx:T.e)v−→ {v/x}e(Λt:K.e)T−→ {T/t}e(caseci(T ,v)ofc(t,x)e)−→{T/ti,v/xi}eie1−→e2E[e1]−→E[e2](REDFUN)(REDTFUN)(REDCASE)(REDCONG)Th,D,TE,VE_context(x:T)∈VETh,D,TE,VETh,D,TE,VE={x:T1}x:T2Th,D,TE,VE(λx:T1.e):(T1→T2)Th,D,TE,VEe1:(T2→T1) Th,D,TE,VEe2:T2Th,D,TE,VE(e1e2):T1Th,D,TE{t:K},VEe:TTh,D,TE,VE(Λt:K.e):(Λt:K.T)Th,D,TE,VEe:(t:K.T)Th,D,TET:KTh,D,TE,VET(e T): {T/t}T(VALVAR)(VALFUN)(VALAPP)(VALTh,D,TE,VEe:(tcT)Di=(数据ty petc:Kty pewithc:Kt1:K1. K2. TJ→tc(TJJ))K=K1T={T/t1}TJJTh,D,TE{t2:K2},VE{x:{T/t1}TJ} eJ:T{t2} ftv(T)={}Th,D,TE,VE(caseofc(t2,x)eJ):T(VALCASE)图三. 类型系统2型系统见图4。 评估规则我们的迷你语言的语法如图1所示。 我们用记号... 为了表示序列,例如, T表示类型T1,...,对于一些n。 类型系统包括值、类型和种类的三级系统。 种 是检查类型的良构性所必需的,因为后者的丰富性。类型的重要形式是:(i) 普通类型用于检查值的格式是否正确。除了函数和多态类型,我们还包括用于基本结构的数据库。这些数据库以两种重要的方式超越了ML数据库:它们允许非正则递归类型描述,并且它们允许数据构造器类型中的自由(隐式存在量化)类型参数。 这两个设施 对我们已经开发的例子至关重要(ii) 命题是特定于应用程序的策略语言的基础。本质上,访问控制限制是用命题来表述的,其中命题本身是使用谓词形成的。每个谓词都被定义为T. Chothia等人/理论计算机科学电子笔记171(2007)37⇒--特定于应用程序的策略语言的签名kind包括kind常量k,由策略语言的签名引入。这是因为我们在类型级别对安全策略进行建模,因此需要为策略中引用的实体提供类型级别的见证。例如,策略语言可以为主体和角色引入种类常量,比如分别为Prin和Role我们添加了一个原始的概念的校长的目的,例子,虽然在节讨论7.对于如何代表委托人,有多种选择为了支持参数化的类型和谓词,我们也有一种类型操作符K1K2.这也允许例如参数化角色的表示。在类型级别,我们添加了一个原语谓词PsaysF,表示由主体做出的访问策略“语句”。如何在语言中生成这样的语句是一个有趣的这涉及到两个问题:如何在值级别表示这种类型级别的语句,以及如何确保这种语句的完整性。对于表示,我们为类型级命题F的值级表示添加表示类型repF。这也为策略语言实体的值级别代表提供了一种表示类型例如,如果P是主体(在类型级别),则repP是此主体的值表示(例如,主体可以在值级别由其公钥表示值级别语言是适度常规的,除了情况构造掩盖了存在(局部抽象)类型的使用。例如,这在抽象凭证链类型中的我们假设一个定义的let构造:(设x:T=e1ine2)<$(λx:T.e2)e1.特定于应用程序的策略语言由 理论签名 日政策语言规范包括:(i) 新类型常量的声明(例如,角色的Role(ii) 类型级谓词常量的声明,应该更恰当地将其视为用于在策略语言的元语言表示中形成语句的构造函数。(iii) 策略语言中推理规则的值级别构造函数的声明,这些规则允许从现有凭据派生新凭据。(iv) 用于表示策略语言语句的值级别构造函数的声明一般来说,命题F的表示具有类型repF。(v) 一个常量环境CE,用于在策略语言中建模的实体的值级别表示。这个常量环境包括一些在类型级别建模的实体的名称t的集合(可能是无限的)(例如,主体和角色的名称)。常量环境还包括一些用于值级别的构造函数的集合(可能是无限的)。8T. Chothia等人/理论计算机科学电子笔记171(2007)3这些实体的代表。在许多情况下,这些是简单的常量(例如,公钥标识主体,字符串标识角色),但在某些情况下,结构化表示可能是必要的(例如,对于参数化角色)。我们将rep视为一个特殊的类型构造函数,而不是引入kind多态性,这在技术上是必要的,因为rep的参数的形式可能涉及不同的类型(命题,主体,角色等)。理解类型F和代表F之间的区别是很重要的。前者表示证书的类型,用于验证策略语言中的语句是否有效。这样的证书是使用语言的推理规则的构造器构建的后者表示策略语言语句的值级别表示的类型。它只检查其格式是否良好,而不是其真实性。对于本文中的示例,我们为主体添加了一种Prin,并为任意策略语言中的语句添加了命题形式PsaysF。基于此的策略语言的规则将包括用于组合证书的规则,以便可以检查组合并验证结果语句。一个有趣的问题随之而来:如何生成原始的策略语言语句,同时确保其完整性。一种方法是依赖于私有签名密钥,例如,类型操作PrivateKey(P)→(repF)→P表示F。这实际上是一种携带证据的认证方法。我们认为,其他的方法,基于基于类型的访问控制和信息流控制,在节。7 .第一次会议。图2中提供了判断的形式,图2中3 .第三章。这些判决包括几个方面:(i) 有一个理论签名的集合。(ii) 有一个数据集的集合,为了简单起见,我们假设它们是全局声明的,并且相互递归地使用理论签名。(iii) 有一个类型环境将类型参数映射到它们的种类。(iv) 有一个值环境映射变量x,y,z和常量a,b,c(其可以包括加密类型)到它们的类型。通过以下方式定义语言中的值v::= x|c(T,v)|λx:T.e|Λ t:K.e值包括使用数据构造函数构造的常量和表达式。通过以下方式定义评估环境E[ ]::= [ ] | (E [ ] e) | (v E [ ]) | (E [ ] T )(c(t,x)∈e的情况E[ ])评估规则见图10。四、引理2.1(主题归约) 如果Th,D,TE,VE∈e:T且e−→eJ,则T. Chothia等人/理论计算机科学电子笔记171(2007)39►Th,D,TE,VE eJ:T.引理2.2(进展)如果Th,D,TE,VEe:T,则不存在约简e=e0−→··· −→en其中en不包含任何redice,并且不是值。3基于角色的策略语言实现我们的主要示例说明了将策略语言的各个方面置于可信计算基础(TCB)之外并将其实现为库的一般方法。如第1节所述,采取这种做法的部分动机是政策语言有多种可能性。即使要确定一种策略语言,也可能有几种可能的实现策略与之相关联。本节和以下章节中的示例说明了一种端到端的方法,该方法基于在TCB之外实现的策略语言本身一般委托在某些圈子中受到批评,因为凭证链发现和检查凭证链的费用[38]。级联委托是一种更有限的委托形式,仅允许凭证链在一个方向上扩展[29,37]。级联委托是为分布式系统中的委托而开发的。基于角色的级联委托(RBCD)综合了基于角色的访问控制和级联委托[38]。已为区域合作和发展提出了两项执行战略(i) 简单朴素的方法使用凭证链和传统的签名算法,如RSA或DSA [15,34]。(ii) 受朴素方法的凭证检查成本的影响,另一种方法是使用分层基于证书的加密(HCBE)算法来签署凭证链[16]。这种方法不需要不断地重新检查凭证链,而是允许将一系列签名凭证合并(聚合)为单个凭证[38]。应该强调的是,我们的方法在HCBE方法是否真的比简单的RSA方法更快的问题上是完全不可知的。 这里的重点是展示将策略语言合并到基于语言的安全性中的方法如何能够适应不同的语言和替代的实现策略。在下面,我们将RBCD,RSA和HCBE的本质提炼成简单的函数操作。我们将CascDelADT的语言称为源级别,将其翻译成的语言称为目标级别。4基于角色的级联委派图5提供了RBCD策略语言的规范。符合 正式系统概述在节。2、理论签名由若干集合组成10T. Chothia等人/理论计算机科学电子笔记171(2007)3关于 我们⇒→}⇒谓词A.r=DAPar谓词D. 优先级=0谓词D0。priv=codeDDPA.rar规则授权:(D说D。优先级=00A.r)→(A表示A.r=APD)→(D说D。优先级=DP00规则委托:(D0表示D0。priv=D)→(D表示D0。priv=A.r)→(D0表示D0。priv=0A.r)arDParD)arCascDel(D. 优先级=0A.r)发起 :(SimpleCert(D,(D. 优先级=ar0 0→CascDel(D0. priv=1. r1)arA. (r))1 1延伸 : CascDel(D. 优先级= ar0A. r)的1 1→(SimpleCert(A,(A.R=AP1 1 1→SimpleCert(D,(D. 优先级=arD)0A.(r))2 2→CascDel(D0. priv=A2. r2)ar说:CascDel(D. 优先级=ar0A. r)的→(SimpleCert(A,(A.r=D)AP→(D0说(D0. priv=D))sayCert:SimpleCert(D,F)→(DsaysF)SAY(INITIATE(c),rc)=authorize(sayCert(c),sayCert(rc))SAY(EXTEND(ch,rc,c),rc0)=authorize(delegate(SAY(ch,rc),sayCert(c)),sayCert(rc0))AP图五. 区域局业务由策略语言规范中的谓词子句指定。我们将示例语言中的谓词定义为固定谓词,因为这是文献中通常描述的方式。 有七个-定义了一个访问谓词:A.r=apD,用于角色记忆,D。priv=arA.rfor 0获得特权D. 把(由D控制的)优先权交给A。r和D. priv=dpD0 0 0授予校长特权D.那里是阿尔索一些收集的推理规则构造函数{c:t:K.TrepF,由策略语言规范中的规则子句指定。 链接凭据有两条规则(以明文形式):(i) authorize基于角色成员资格证书向主体授予特权。(ii) 委派由已获得权限的主体将该权限委派给角色。授权和委托规则依赖于基于类型检查的静态编译时凭证检查。 使用这些规则构建的凭据的正确性基于参数的类型,参数是无符号的明文。基于这些规则的凭证在跨地址空间传输时易于伪造和篡改。因此,应该有一些方法来构建凭证链,使用加密签名,以防止这些形式的攻击。T. Chothia等人/理论计算机科学电子笔记171(2007)311数据类型SimpleCert(D,F)关于Scert :(DsaysF)→Signed(F)→SimpleCert(D,F)//派生操作makeCert:(DsaysF)→PrivateKey(D)→SimpleCert(D,F)authCert:Signed(F)→PublicKey(D)→SimpleCert(D,F)sayCert:SimpleCert(D,F)→DsaysFgetCert:SimpleCert(D,F)→Signed(F)makeCert= λc。λk。 scert(c,sign(k,c))authCert= λcphtxt。λk。 let clrtxt = auth(k,cphtxt)in scert(clrtxt,cphtxt)sayCert = λsc。scert(clrtxt,)的case sc =clrtxtgetCert = λsc。scert(,cphtxt)的casesccphtxt类型Signed(F)auth(k+,sign(k−,v))=v签署:私钥(D)→(D说F)→签名(F)auth:公钥(D)→签名(F)→(D说F)见图6。 RSA签名和身份验证见图7。 简单证书CascDel抽象数据类型是包含密文的凭证链的规范。 这个类型由四个参数参数化,所以我们写它作为CascDel(D0. priv=arA. r):这是一个信条,证明了授予访问D 0的权限。A.r.角色中的主体 有三种操作 对于此ADT:(i) INITIATE根据对角色的初始权限授予启动凭据链。(ii) EXTEND扩展了这样一个凭证链,它基于被授予角色中的主体将特权委托给另一个角色。(iii) SAY使用凭证链和被授予角色的角色成员资格证书来生成主体已被授予特权的证明这些操作将凭据作为参数。提供类型D的明文凭证表示F是不充分的:组合凭证通常会捆绑在一起并在不安全的网络中重新传输,并且导出明文凭证的原始凭证的数字签名因此,我们使用SimpleCert(D,F)类型的组合明文和密文凭证,而不是D类型的明文凭证说F。这种类型的值是一对密文凭证(签名主体省略)和底层明文凭证(签名主体D在类型中显式)。在编组和解组期间,在密文凭证和这些凭证对之间进行映射是很简单的12T. Chothia等人/理论计算机科学电子笔记171(2007)3ar数据类型RBCD(D . 优先级=0使用rbcd:SimpleCert(D,D. 优先级=A.r)ar0 0A. r)的0 0→链(D. priv,A. R=博士00 0→RBCD(D0. priv=A.r)arA. r)的CascDel(D. 优先级=ar0A. r)]]= RBCD(D. 优先级=ar0A.r)[[INITIATE]] = λc:(SimpleCert(D,(D.优先级=ar0 0rbcd(c,emptyChain)A. (r)。1 1[[EXTEND]]= λch:[[CascDel(D. 优先级=ar0A.(r)]]。1 1λrc:(SimpleCert(A1,(A1. r1=(D)。APλc:SimpleCert(D,(D. 优先级=ar0A.(r))。2 2rbcd(cert,chain)的casechrbcd(cert,combineChain(chain,simpleChain(rc,c)))[[SAY]]= λch:[[CascDel(D. 优先级=ar0λrc:(SimpleCert(A,(A. r=(D)。A.(r)]]。APauthorize(loop(ch),rc)其中loop = λch:[[CascDel(D. 优先级=ar0A.(r)]]。并且loop0 = λcert:(D表示D. 优先级=rbcd(cert,chain)的casech循环0(sayCert(cert),chain)ar0 0A. r)。0 0λchain:Chain(D. priv,A.R=博士00 0案例链A. r)的| simpleChai n(rc0,c0)⇒del egat e(authoriz e(cert,emptyChain认证sayCert(rc0)),sayCert(c0))| combineChain(chn1,chn2)在以下情况下,让cert 0=loop0(cert,chn1)循环(证书0,通道2)数据类型Chain(D . priv,A .r=博士01 1 2 2 A .r)使用emptyChain:Chain(D . priv,A.r=博士0SimpleChain:SimpleCert(A,A .r=A.r)AP1 1 1→SimpleCert(D,D. 优先级=D)ar0A .r)2 2→链(D0. priv,A1.r1=A2.r2)博士和combineChain:Chain(D . priv,A .r= 博士011年A.r)→链(D . priv,A.r=博士0A .r)2 2→链(D0. priv,A1.r1=A2.r2)博士见图8。 角色委托见图9。 将RBCD翻译成Chained Delegation5在RSA图6给出了RSA数字签名的操作。签名操作省略了生成语句F的主体的标识,并且身份验证在运行时加密检查之后重新公开该主体标识。签名操作从明文凭据映射到密文等效项,身份验证操作是一个检查操作,用于再次映射回来符号k+和k−分别表示公钥-私钥对的公钥和私钥部分图7给出了简单证书的规范,它将密文证书及其明文证书捆绑在一起作为一对。makeCert操作由明文凭证的发起者用于生成密文等效物,T. Chothia等人/理论计算机科学电子笔记171(2007)313►12使用他或她的私有签名密钥。authCert操作由密文凭据的接收者使用,以使用签名身份验证将密文凭据与其明文对等项配对最后,sayCert和getCert分别提取简单证书的明文和密文部分。RBCD的RSA实现使用数字签名凭据链。 Chain数据类型用于实现这些链。一般来说,这样的凭证链表示访问权限的委托(对于特权D0。priv)从角色的1. r1到角色A2。r2,因此我们将其记为Chainn(D0. priv,A1. r1=dr 一台2. r2)。图9提供了使用使用RSA签名的链式凭证的RBCD的实现。凭证表示为一对凭证,授予对角色A.r0的初始访问权限,然后是对某个角色的委托链A.R.隐式使用存在类型来省略类型中的中间角色A0.r0。INITIATE操作创建一个空链,EXTEND操作将该链扩展一个角色,SAY操作在结果链上递归,使用访问控制逻辑的推理规则构建一个明文凭证。在SAY的操作期间没有数字签名检查;假设这将使用解组来完成,使用PublicKey(D)的认证密钥从Signed(F)类型的编组凭证创建一对SimpleCert(D,F通过增加(RSA)加密操作,我们必须考虑到由于身份验证失败定理5.1(Modified Progress)如果Th,D,TE,VEe:T,则不存在约化e=e0−→··· −→en其中en不包含任何redices,也不是值,或者en具有以下形式E[auth(k+,sign(k-,v))],其中k1/= k2。如上所述,这并不影响RBCD操作的实现,因为它们不执行身份验证。身份验证在解组签名证书和构建简单证书的过程中执行。如果简单证书形成仅限于makeCert(生成新的简单证书)和authCert(从密文构建新的简单证书)操作,则认证失败被隔离到后者。我们通过对原始类型推导的归纳来验证以下内容定理5.2(类型保持)如果Th,D,TE,VE在源层上是e:T,那么Th,D,TE,[[VE]]在目标层上是[[e]]:[[T]]。下面的结果是一个简单的验证,基于输入到loop0函数在[SAY]的定义中:定理5.3(终止)INITIATE、EXTEND和SAY操作的翻译保证在所有参数上终止。这确保SAY操作的结果是格式良好的证书14T. Chothia等人/理论计算机科学电子笔记171(2007)3CascDel(D. 优先级=ar0A. r)]]= SimpleCert(D,D. 优先级=ar0 0A.r)INITIATE = λc:(SimpleCert(D,(D.优先级=ar0 0A. (r)。 C1 1EXTEND= λch:[[CascDel(D. 优先级=ar0A.(r)]]。1 1λrc:(SimpleCert(A1,(A1. r1=(D)。APλc:SimpleCert(D,(D. 优先级=ar0haggregate(haggregate(ch,rc,authorize),c,delegate)A.(r))。2 2SAY= λch:[[CascDel(D. 优先级=ar0λrc:(SimpleCert(A,(A. r=(D)。A.(r)]]。APhaggregate(ch,rc,类型HSigned(F)hsign:HPrivateKey(D0)→(D0saysF)→HSigned(F)hauth:HPublicKey(D0)→HSigned(F)→(D0saysF)[ ]−:PrivateKey(D)→HPrivateKey(D)[ ]+:公钥(D)→HPublicKey(D)@−:HPrivateKey(D1)→HPrivateKey(D2)→HPrivateKey(D1)@+:HPublicKey(D1)→HPublicKey(D2)→HPublicKey(D1)haggregate:SimpleCert(D1,F1)→SimpleCert(D2,F2)→((D1说F1)→(D2说F2)→(D1说F))→SimpleCert(D1,F)数据类型SimpleCert(D,F)与hcert:(DsaysF)→HSigned(F)→SimpleCerthaut h([k+, . ,k+]+,hsig n([k-, . ,kn−]−,v))=v1n1haggregate(hcert(hsign(k1,c1),cJ1),hcert(hsign(k2,c2),cJ2),p)=hcert(hsign((k1@−k2),p(c1,c2)),p(cJ1,cJ2))//派生操作makeHCert : ( DsaysF ) →HPrivateKey ( D ) →SimpleCert( D , F ) authHCert : HSigned ( F ) →HPublicKey ( D )→SimpleCert ( D , F ) sayHCert : SimpleCert ( D , F )→DsaysFgetHCert:SimpleCert(D,F)→HSigned(F)见图10。 HCBE签名、身份验证和聚合图十一岁 将RBCD翻译成HCBE验证使用所述策略语言逻辑的推理规则构造的所述策略语言语句。我们通过使用EXTEND操作构造的凭证链的大小的归纳来验证以下内容:定理5.4 CascDel ADT的方程通过其在RSA中的实现而得到满足。6使用HCBE图10提供了基于用于签名的HCBE的操作。现在数字签名的算法是不同的,因此简单证书SimpleCert(D,F)的实现也是不同的。这些签名算法的显著特征是聚合或合并两个签名凭证的haggregate操作T. Chothia等人/理论计算机科学电子笔记171(2007)3151►n1n12合二为一我们为简单证书(明文和密文证书对)而不仅仅是密文证书定义了这种聚合操作,以便继续对底层明文证书进行格式良好性检查,而不必进行数字认证。聚合操作将用于在合并密文凭据时组合底层明文凭据的推理规则作为其第三个参数。HCBE行动引入的新概念是联合符号- 和认证密钥。HCBE的聚合操作通过使用原始私有签名密钥的组合对底层明文进行签名,从两个签名的密文构建新的密文。然后使用相应公钥的组合进行身份验证。HCBE方法相对于RSA方法的一个优点是,除了链中的第一个主体之外,签名主体的身份不需要透露,从而在凭证链检查中提供了一些隐私概念。我们使用将简单密钥注入到复合密钥中的操作(分别用于私钥和公钥的[ ]-和[ ]+)以及组合复合密钥的操作(分别用于私钥和公钥的@-和@+)来表示密钥组合。这些操作的类型反映了这样一个事实,即只有链中第一个签名主体的身份才能通过这些复合密钥产生的签名来揭示。我们假设组合运算@−和@+是左结合的和双结合的:[k1−, . ,kn−]−[k1−]−@+· · ·@+[kn−]−[k+,.,k+]+[k+]+@+··@+[k+]+这些签名操作在图11中用于实现RBCD的操作。与RSA实现不同,不再使用凭证链,因此不需要递归算法来验证数字凭证链。相反,HCBE的聚合操作用于在EXTEND操作期间和SAY操作期间组合凭证(将最后一个角色成员资格凭证与聚合凭证链组合)。定理6.1(Modified Progress)如果Th,D,TE,VEe:T,则不存在约化e=e0−→··· −→en其中en不包含任何redices,也不是值,或者en具有以下形式E[hauth(k+,hsign(k-,v))],其中k1和k2是复合密钥,并且k1/= k2。和前面一样,在原始类型推导中通过归纳验证以下内容定理6.2(类型保持)如果Th,D,TE,VE在源层上是e:T,那么Th,D,TE,[[VE]]在目标层上是[[e]]:[[T]]。定理6.3(终止)INITIATE、EXTEND和SAY操作的翻译保证在所有参数上终止。验证以下内容需要归纳haggregate操作中复合键的大小,haggregate操作是HCBE中RBCD证书的底层表示:16T. Chothia等人/理论计算机科学电子笔记171(2007)3我们的优势定理6.4 CascDel ADT的方程通过其在RSA中的实现而得到满足。7与基于存储的信息流控制有关节中2我们讨论了如何生成原始策略语言状态的问题,形式为P说F,同时确保语句的完整性。简单地创建一个表示类型为rep(P表示F)的数据结构显然是不够的。在Sect中提到的方法2类似于携带证明的认证方法,依赖于主体的私有签名密钥来生成这些状态。在本节中,我们考虑另一种方法,与基于语言的安全性中的完整性检查有关。JIF语言[26,25,28]演示了在编程语言类型系统中进行访问检查和信息流控制检查的方法。除了类型之外,程序变量还具有控制(读和写)对这些变量的访问的标签。标签是一组策略。策略本质上是一个访问控制列表,写为A:B1,...,B m允许访问主体B1,...,嗯。委托人A可以控制该策略,也就是说,A可以解密受该策略保护的信息。JIF允许为程序变量定义几个不同的安全策略,以支持安全的信息共享:不同的主体可以独立控制存储在程序变量中的信息的共享一般来说,程序变量具有带标签的类型T L1,L2其中L1是保密标签,限制可以从该变量读取的主体,而L2是完整性标签,限制可以写入该变量的主体。在携带证明的认证中,高阶逻辑被用作策略语言的元语言。在带有say谓词的对象语言中,有一条规则允许从带符号的语句中导出逻辑结论对于所有主体P,(P签署F)(P说F)其中F是逻辑中的公式。作为一种替代,在诸如带有标记类型(或类型系统中编码的任何类型的完整性约束)的JIF语言中,我们可以在策略语言的理论规范中指定以下规则我的天A. B. (rep F L,{A:{B}}→(B says F)L,{A:{B}}.标签类型中的完整性约束确保这是策略语言中的有效原语语句。 与上述方法不同,它不依赖于 密码库的信息因此,只要凭证保持在进程地址空间内,就避免了凭证创建和操纵的昂贵的加密签名操作和关于密钥管理的一些假设。再进一步,我们可以把PsaysF当作缩写:P说F(rep F){},{P:{P}}.T. Chothia等人/理论计算机科学电子笔记171(2007)317因此,原始策略语言语句F对应于该公式的值级别表示,其中完整性检查该术语是由(代表)对应的主体生成的。现在我们可以更进一步,将这个缩写推广为:L表示F(rep F){},L.在这种情况下,我们概括了谁完整地表达了策略语言语句的概念,从生成状态的主体的一些原始概念,到根据安全标签L指定的完整性策略允许做出该语句的任何主体的更一般概念。标签和策略仍然依赖于一些主体的概念,至少在JIF框架中是这样。然而,可以探索替代方案,其中策略的形式是从访问策略中概括出来的,并且其中主体然后成为派生概念(从访问策略派生)。这是我们目前正在开展的一项有趣的进一步工作。8相关工作这项工作的动机是需要适当的编程抽象,以开发必须管理部分或全部安全任务的应用程序 在网络环境下的沟通。Abadi [1]考虑了一种类型系统,用于确保在该类型系统中实现的安全协议中保持机密性。Gordon和Je Escherey [18,19]开发了一种基于类型的方法来验证身份验证协议。Abadi和Blanchet [2,6]追求一种分析安全协议的方法,最初是为了保密性,但后来推广到它的完整性属性。所有这些工作都集中在验证安全协议的保密性和完整性。 因此,他们使用的类型系统比一般程序员使用的要复杂得多,同时它们提供了非常强的保密性和完整性保证。我们工作的重点不是协议验证,而是构建可问责的系统:设计一个可以记录访问的系统,但这样做的方式是,该系统不会被证书检查的需求所扼杀。因此,例如,我们没有尝试应对重放攻击。其他关于编程语言安全性的工作集中在确保不可信代码的安全属性[31,30,24]和防止程序中不必要的安全漏洞[13,27,42,33]。Sabelfeld和Myers [35]对基于语言的信息流安全工作进行了很好的概述。如前所述,这项工作基本上结合了两方面的工作:(i) 基于类型的加密API,将加密操作与它们旨在实施的安全策略相关联[14]。(ii) 用于编码策略语言(签名和凭证形成规则)的框架,以便将特定策略语言置于TCB之外[3,5]。Appel、Baujer和Felten18T. Chothia等人/理论计算机科学电子笔记171(2007)3前者的一致性。相反,我们的方法更接近LF方法,将策略语言定义为理论签名中的抽象数据类型,而不是HOL中的编码。该系统可以被视为一个依赖类型系统,其中类型可能依赖于值。我们的方法保持了值和类型之间的“阶段区别”,因此类型不依赖于值,而是依赖于值级别实体的类型级别名称(例如,主体),以及将两者联系起来的单例类型。这样做的部分动机是,为了超越当前帐户[10]的目的,在类型级别上定义一些相等的概念是有用的(例如,相等主体名称),为此,似乎最好保持级别不同。正如所讨论的,我们感兴趣的是将这种方法与基于类型的方法联系起来,以实施安全策略,例如JIF语言的分散式标签模型[26,25,28]。JIF的分布式版本已经实现
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功