- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课件10:第4-5~6节基于编译的机制
4.5 基于编译的机制 本节内容是根据Denning, D.E. 及其合作者建立起来的简单的程序证明机制。 它是为了证明“执行在其他安全系统中的应用程序的内部流”而开发的,不是用于证明安全核的。 这种机制可以保证程序中每一语句的安全执行,其中包括可能不被执行的语句。 这种机制很容易集成到任何一个编译器中。但是这种机制是不精确的,它会拒绝一些安全语句。 例如,语句 if x=1 then y:=a else y:=b 要求 SC(a)≤SC(y)和SC(b)≤SC(y)都成立,才能允许执行。 但如果仅当x=1时SC(a)≤SC(y)成立,仅当x≠1时SC(b)≤SC(y),这个语句将会不精确地被拒绝执行。 更精确的机制需要使用程序安全性证明技术解决。 4.5.1 关于流的说明 将研究具有下述语法结构的过程流的安全性证明。 Procedure Pname (x1,x2,…,xm, var y1, y2, ……, yn); Var z1, z2, ……, zp; /* 局部变元说明 */ S /* 过程体 */ end Pname 这里x1,…..,xm是输入参数,y1,…..,yn是输出参数(或输入/输出参数),假定S不涉及全局变元。 因此,每一过程所涉及的非局部客体必须通过过程参数显式地传送。 设u表示输入参数x或输入/输出参数;v表示参数或局部变元,v的说明形式为: v:type Security-Class {u| u?v是允许的 } 安全类说明“Security-class {u1,……,un}”指定了允许流入v的所有参数的集合。 Security-class简写为SC 具体地说,输入参数x的类SC(x)={x}(变量自己可以流向自己,下同)。 输入/输出参数y的类SC(y)={y,u1,……,uk},其中,u1,……,uk是流入y的其他输入。 如果y是唯输出的,SC(y)={u1,u2,…,uk} (即y?SC(y))。 y的值在进入过程时必须被清除,以保证它的旧值不能流入过程内。 局部变元z的类SC(z)={u1, u2,……,uk}。 安全类形成一个子集格的关系,用于表示可允许的输入/输出关系。子集格的总体称为流说明。 有了流说明,在程序证明中每一客体都有固定的安全类,避免了由可变类引起的问题。 实际参数的安全类仅需要满足对形式参数定义的关系即可。 例4-19 计算最大值的过程的流说明如下: Procedure max (x: integer Security-Class{x}; y: integer Security-Class{y}; var m: integer Security-Class{x,y}); begin if xy then m:=x else m:=y end end max 为输出m指定的安全类蕴涵着SC(x)≤SC(m)和SC(y)≤SC(m)。 例4-20 下面的过程交换两个变元x和y的值,并把记录交换次数的计数器i加1。Procedure swap (var x,y: integer Security-Class{x, y}; var i: integer Security-Class{i}); var t: integer Security-Class{x, y}; begin t:=x;x:=y;y:=t;i:=i+1 end end swap 为了安全性,需要SC(x)≤SC(y)和SC(y)≤SC(x)同时成立,说明中给出了SC(x)=SC(y)。 类似的,这一安全类也指派给了局部变元t。i自己构成一类,因为它不接收来自x与y的信息。 4.5.2 各种语句的安全性要求 如果一个过程满足流说明(子集格)的要求的话,则称它是安全的。 即,如果对每一输入u和输出y,过程的执行能够导致一个流u?y,仅当指定给u和y的类满足SC(u)≤SC(y)。 各种语句的安全性要求(续) 下面递归定义出每一过程体S的安全性要求,给出每一类语句安全性的充分条件。 这些条件都表达为参数和局部变元的类上的约束,而流说明蕴涵着这些约束。这样,就将过程安全定义与安全性条件衔接起来。 不过,这些条件对安全性不都是必要的。换言之,这种证明机制不是精确的 暂时假设过程体S包括以下几种形式的语句: 1)赋值语句:y:=e; 2)复合语句:begin S1;S2;……,Sn end; 3)选择语句:if e then S1 [else S2]
您可能关注的文档
最近下载
- 装饰色彩的魅力小学六年级美术PPT课件.pptx VIP
- 婴幼儿学习与发展 课件 第五章 婴幼儿动作学习与发展.pptx
- 五年级英语上册-Unit-2-Lesson-2-Was-he-happy课件2-鲁科版.ppt VIP
- 第8课 中国古代的法治与教化 课件(共27张PPT)(内嵌音频+视频).pptx VIP
- 第34章 生物与环境.ppt VIP
- 苏教版科学三年级下册全册教案(含反思).docx VIP
- SY/T 6597-2018 油气管道内检测技术规范(标准规范).doc VIP
- 烹饪工艺美术 烹饪图案的类别和基本形式 烹饪图案的类别和基本形式.ppt VIP
- 2025年度济南市专业技术人员继续教育公需科目答案.doc VIP
- 2024年陕西省西安工大附中丘成桐少年班初试数学试卷.pdf VIP
文档评论(0)