信息技术保障组件开发(ADV)、组合(ACO)、保障组件依赖关系的交叉引用.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《信息技术保障组件开发(ADV)、组合(ACO)、保障组件依赖关系的交叉引用.docx》由会员分享,可在线阅读,更多相关《信息技术保障组件开发(ADV)、组合(ACO)、保障组件依赖关系的交叉引用.docx(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、附录A(资料性)开发(ADV)A. 1 ADV.ARC:安全架构的补充材料A. 1. 1概述本附录包含辅助材料,为ADV:开发类的族中提出的话题做进一步解释和提供额外的例子。安全架构是TSF所展示的一组属性;这些属性包括自保护、域分离和不可旁路。拥有这些属性为TSP 正在提供安全服务提供了信心。本附录提供了关于这些属性的附加材料,以及对安全架构描述内容的讨 论。本节首先解释了这些属性,然后讨论了描述TSF如何展示这此属性所需的信息。A. 1.2安全架构属性“自叔,指的是TSF保护自己不受外部实体操纵的能力,这些操纵可能导致TSF的改变。如果 没有这些属性,TSF可能无法执行其安全服务。通常情况
2、下,TOE基F其他IT实体提供的服务或资源来执行其功能(例如,依赖其底层操作系统 的应用程序)。在这些情况下,TSF不能完全凭借自身保护自己,因为它依赖其他IT实体来保护其使 用的服务。彼分密是这样一种属性,TSF为每个操作其资源的不可信活跃实体创建各自的交金域以对其资源 进行操作,并使这些域彼此分离,以便任何实体都不能在其他域中运行。例如,操作系统TOE为与不 可信实体相关的每个进程提供一个单独的域(地址空间、进程环境变量)。对于某些TOE来说这样的域是不存在的,因为所有不可信实体的操作都是由TSF代理的。包过滤防 火墙就是这种TOE的一个例子,它没有不可信实体域;只有TSF维护的数据结构。
3、因此,域的存在取 决于1) TOE的类型和2) TOE的安全功能要求。若TOE确实为不可信实体提供单独的安全域,本族 要求这些域彼此隔离以防止一个域中的不可信实体篡改另一个不可信实体的域(不受TSF代理的影 响)。不可旁路性是TSF (用SFR指定)安全功能经常调用的一个属性,并且对于特定机制它不会被旁路。 例如,如果对文件的访问控制被指定为TSF的一种能力,那么在调用TSF的访问控制机制(通过原始磁 盘访问可能是这样一个接口的例子)之前必须不能存在直接访问此文件的接口。拿自保护做例子,有些TOE可能很自然地依赖它们所处的环境,在TSF的不可旁路性中发挥作用。例 如,某安全应用TOE要求它可由
4、底层操作系统调用。类似的,防火墙依赖于这样一个事实,即不存在内 部和外部网络的直接连接通路,所以它们之间的通讯必须通过防火墙。A. 1.3安全架构描述安全架构的描述解释了 TSF如何展示.上述属性。它描述了域是如何定义的,以及TSF如何将它们 分离。它描述了如何防止不可信进程接触到TSF并对其进行修改。它描述了怎么确保TSF控制下的所有 资源得到充分保护,以及确保TSF所要满足的SFR相关的所有行为。它解释了所有情况下环境扮演的角色 (例如,假设它被其底层环境正确地调用,它们的安全功能是如何被调用的?)。耦合是软件模块之间相互依赖的方式和程度;耦合类型包括调用耦合、公共耦合和内容耦合。卜.面
5、描述了这些模块耦合类型的特征,以其可取性递减的顺序列出。a)调用耦合:如果两个模块严格通过调用其文档说明的函数进行通信,则这两个模块就是调用耦 合;调用耦合的实例是数据、戳和控制,定义如下。1)数据:如果两个模块严格通过使用表示单个数据项的调用参数进行通信,则它们是数据耦 合的。2)戳:如果两个模块严格通过使用包含多个字段或具有有意义的内部结构的调用参数进行通 信,则它们是戳耦合的。3)控制:如果一个模块传递旨在影响另一个模块内部逻辑的信息,则它们是控制耦合的。b)公共耦合:如果两个模块共享公共数据区或公共系统资源,则它们是公共耦合的。全局变量标 明使用这些全局变量的模块是公共耦合的。通过全局
6、变量的公共耦合通常是被允许的,但只是 在有限的程度上。例如,只被一个模块使用的变量放在全局区域是不合适的,应删除。在评估 全局变显的适用性时需要考虑的其他因素是:1)修改全局变量的模块数量:一般情况下,应该只分配一个模块来负责控制全局变量的内容, 但可以由第二个模块共同承担该职责,在这种情况下,必须提供充分的论证。由两个以上 的模块分担此责任是不可接受的。(在进行此评估时,应注意确定实际负责变量内容的模 块;例如,如果使用单个例行程序来修改变量,但该例行程序只是执行其调用者请求的修 改,则是调用模块负责,并且可能有多个这样的模块)。此外,作为复杂度确定的一部分, 如果两个模块负责一个全局变量的
7、内容,则应该清楚地说明它们之间如何协调修改。2)引用全局变量的模块的数最:虽然通常对引用全局变量的模块数最没有限制,但应该检查 多个模块进行引用的情况的有效性和必要性。c)内容耦合:如果一个模块可以直接引用另一个模块的内部结构(例如,修改另一个模块的代码 或引用另一个模块的内部标签),则两个模块是内容耦合的。内容耦合的结果是一个模块的部 分或全部内容将有效地包含在另个模块中。内容耦合可以被认为是使用未公开的模块接口; 这与调用耦合相反,后者只使用公开的模块接口。A. 3.3程序软件的复杂度复杂性是对代码执行的决策点和逻辑路径的度量。软件工程学将复杂度作为软件的一个负面特征, 因为它阻碍了对代码
8、逻辑和流程的理解。另一个阻碍理解代码的因素是存在不必要的代码,即它是未使 用的或冗余的。使用分层来分离抽象级别并最小化循环依赖以便更好地理解TSF,从而更加保障TOE的SFR在实现 中被准确和完整地实例化。降低复杂度还包括减少或消除相互依赖性,这既适用于单个层中的模块,也适用于不同层中的模块。 相互依赖的模块可能互相依赖,以得到某单一的结果,这可能导致进入死锁状态,或者更糟糕的紊乱状 态(例如检查时间vs使用时间问题),其最终的结论可能是不确定的,并且受特定时刻的计算环境的影 响。设计复杂度最小化是参考验证机制的一个关键特征,其目的是得出一个容易理解的TSF,从而可以 对其进行完整地分析。(参
9、考验证机制还有其他重要特征,如TSF自保护和不可旁路性;这些其他特征 被ADV_ARC族的要求所覆盖)。A.4 ADV_TDS:子系统和模块A. 4.1概述本节提供了关于TDS族的附加指南,以及其对术语“子系统”和“模块”的使用的额外指导。随 后讨论了随着有更多细节的要求的出现,如何减少有较少细节的要求。A. 4. 2子系统如图A.3所示,根据TSF的复杂度,设计可以从子系统抽模块维度来描述(子系统比模块的抽象级 别更高);或者也可仅从一个抽象级别进行描述(例如,较低保障级别中的子系统,较高保障级别中的 德决)。如果从低抽象级别(模块)进行描述,那么也默认满足了对高抽象级别(子系统)的要求。这
10、 个概念在下面关于子系统和模块的讨论中得到进一步的阐述。图A.3子系统和模块开发者应使用子系统来描述TOE的灵讨。术语“子系统”用起来比较模糊,它可以用来指代适用 于TOE的单元(例如,子系统、模块)。子系统甚至可以在范围上是不均匀的,只要满足子系统描述的 要求即可。子系统的第一个用途是区分TSF的边界;即,包含TSF的TOE部分。一般而言,如果某个子系统具有 影响任何TSF正确操作的能力(无论是通过设计还是实现),那么它就是TSF的一部分。例如,对于依 赖不同硬件执行模式来提供域隔离(见A.1)的软件,其中SFR-执行代码在一个域中执行,那么在该域 中执行的所有子系统都将被视为TSF的部分。
11、同样,如果该域外的台服务器实现了SFR (例如,对 其管理的对象实现访问控制策略),那么它也将被视为TSF的一部分。子系统的第二个用途是提供一种描述TSF的结构,在描述TSF如何工作时,不一定包含模块描 述中的低层实现细节(稍后讨论)。可对子系统进行高级别描述(缺乏丰富的实现细节)或细节层面描 述(提供对实现的更多洞察)。为子系统提供的描述级别取决于该子系统对某SFR的实现程度。S/7?-热分子系统是提供执行任何SFR元素的机制的子系统,或直接支撑实现某个SFR的子系统。如 果一个子系统提供(实现)一个SFR-执行TSF1,那么这个子系统就是SFR-执行的。子系统也可以被识别为S/W-支撑和无
12、关子系统。SFR-支撑子系统受SFR-执行子系统依赖以实 现SFR,但它不像SFR-执行子系统那样直接发挥作用。SFR-无关子系统是不依赖于支撑或执行作用而实 现SFR的子系统。A. 4.3模块模块通常是一个相对较小的架构单元,可以根据TSF内部结构(ADV_INT)中讨论的属性进行表征。 当PP或ST中同时存在ADV_TDS.3基础模块设计(或以上)要求和TSF内部(ADVJNT)要求时., TOE设计(ADV_TDS)要求中的“模块”与TSF内部(ADVJNT)要求中的“模块”是同一实体。与子系 统不同,模块很详细地描述了实现,可以指导对实现表示的评估。需要注意的是,基于TOE产品形态,模
13、块和子系统可能为同一抽象层。对于ADV TDS. 1基础设计和 ADV_TDS. 2结构化设计(不需要在模块级别进行描述),子系统描述提供了关于TSF的最低级别细节。 对于ADV_TDS. 3基础模块化设计(需要模块描述),这些描述提供最低级别细节,而子系统描述的详 细程度应考虑(如果它们作为单独的实体存在)上下文中的模块描述。也就是说,如果存在模块描述, 则无需提供详细的子系统描述。在足够简单的TOE中,不需要单独的“子系统描述”;可以通过模块 提供的文档来满足要求。对于复杂的TOE,子系统描述(关于TSF的)的目的是为读者提供上下文,以 便他们可以适当地聚焦他们的分析。这种差异如图A3所示
14、。SFR-执行模块是实现ST中完全或部分实现一个SFR的模块。此类模块可能会实现SFR-执行TSFI,但 SFR中陈述的某些功能(例如,审计和客体重用功能)可能不会直接绑定到这一单个TSFI。与子系统的 情况一样,SFR-支撑模块是SFR-执行模块所依赖的模块,但不直接负责实现SFR。SFR-无关模块是不直接 或间接地处理SFR实现的那些模块。需要注意的是,对“直接实现的含义的确定有一定的主观性。从狭义上来讲,“直接实现”可以解 释为通过执行类似“比较”、“归零操作”等的一两行代码以实现某安全要求。从广义上来讲,它包括 响应SFR-执行类TSFI所调用的模块,以及该模块可能依次调用的其他模块(
15、依此类推,直到调用完成)。 这两种解释都不是特别令人满意,因为第一种解释的狭隘性可能导致重要的模块被错误地归类为SFR- 支撑模块,而第二种解释则可能导致实际上并非SFR-执行的模块被归类为SFR-执行。模块的描述应该可以根据模块描述创建其实现,且产生的实现将:1)在呈现的接口方面与实际的 TSF实现相同,2)接口的使用与设计中提及的相同,3)功能与TSF模块目的所描述的信息保持一致。例 如,RFC793提供TCP协议的高层次描述。它必须是独立实现的。虽然它提供大量细节,但它不是一个 合适的设计描述,因为它在实现方面不是具体的。在实际实现中,可以向RFC中规定的协议中添加内 容,且实现中的选择
16、(例如,在实现的各个部分中使用全局数据与本地数据)可能对执行的分析产生影 响。TCP模块的设计描述会列出实现相关的接口(而不仅是RFC793中定义的接口),以及处理与实现 TCP模块相关的算法描述(假设它是TSF的一部分)。在设计中,模块的详细描述包括:提供的功能(目的)、呈现的接口(当标准要求时)、接口的返 回值、调用的其他模块接II (以及其他模块调用的本模块的接I I),以及描述它们如何使用适合于实现 模块的技术方法来提供其功能。模块的目的宜说明该模块提供什么功能。描述宜足以让读者大致了解模块在架构中的功能。模块提供的接口是其他模块用来调用所提供的功能的那些接口。接口包括显镰口(例如其他
17、模块 调用的调用序列)和嬷式接口(例如模块操作的全局数据)。接口通过其调用方式和返回值来进行描述。 接口描述应包括参数列表及对这些参数的描述。如果一个参数被要求从一组值中取值(例如,“flag”参 数),则要描述该参数会影响模块处理的取值的全集。同样,描述数据结构的参数,要标识和描述数据 结构的每个字段。对全局数据的描述信息要确保可理解其目的。全局数据结构所需的描述等级需要与模 块接口的描述水平相同,其中输入参数和返归I值对应于数据结构中的各个字段及其可能的值。全局数据 结构可与操作或读取它们的模块分开描述,只要模块的设计中包含关于全局数据结构更新的足够信息 或从全局数据结构中提取的信息即可。
18、请注意,不同的编程语言可有额外不明显的“接口”:例如C+中的重载运算符/函数,这种“隐式 接口”也将作为模块设计的一部分描述。请注意,尽管一个模块可仅呈现一个接口,但更常见的情况是 一个模块呈现一小组相关接口。当需要描述一个模块所使用的接I I时,必须在模块的设计描述或被调用模块的目的中明确此类接 口,以及期望从被调用模块中得到什么服务。例如,如果模块A被描述,并且它使用模块B的冒泡排 序程序,那么模块之间交互的描述必须说明为什么调用模块B的冒泡排序程序以及这个调用对SFR的 实现有什么贡献。模块B的冒泡排序程序接口和目的必须作为模块B接口的一部分进行描述(提供 ADV_TDS的级别和模块B的
19、分类需要一个对它的接口的描述),基于此,模块A只需要识别需要使用此 程序进行排序的数据。一个适当的描述是:“模块A调用模块B的接口而漏/。_加历左。按字母顺序 对用户名进行排序”。请注意,如果用户名的这种排序对于执行任何SFR并不重要(例如,它只是为了提升性能,并且 模块A的算法实现也可以避免对用户名进行排序),使用模块B的冒泡排序程序不是SFR-执行,在模 块A的描述中充分解释用户名按字母顺序排序是为了提升性能即可。模块B可仅被归类为“SFR-支 撑”,选择的ADV_TDS级别会明确是否需要描述SFR-支撑模块的接口,或仅描述模块B的目的即可。如前所述,模块的算法描述应该以算法的方式描述模块
20、的实现。这可以在伪代码中完成,通过流程 图,或(在ADVJDS.3基础模块设计)非正式文本。它讨论了如何使用模块的输入和调用的函数来完成模 块的功能。它记录了模块产生的全局数据、系统状态以及返回值的变化。基于这些细节层面的描述,可 以得出一个与TOE实际实现非常相似的实现。需要注意的是,源代码不符合模块文档要求。虽然模块设计描述了实现,但它分不走其ZT的实现。 如果源代码中的注释对源代码含义进行了解释,那么这些注释可能是足够的文档说明。仅仅说明每行代 码是做什么的行内注糅是无用的,因为它们没有解释该模块旨在完成什么。在下面的元素中,为子系统和模块讨论的标签(SFR-执行、SFR-支撑和SFR-
21、无关)用于描述开发者 需要提供的信息的数量和类型。这些元素已被结构化了,因此不要期望开发者仅提供特定的信息,也就 是说,如果开发者的TSF文档提供了以下要求中的信息,则开发者不会更新他们的文档并将子系统和 模块标记为SFR-执行、SFR-支撑、SFR-无关。这种标记的主要目的是允许使用不太成熟开发方法(以 及相关构件如详细的接口和设计文档)的开发者在不产生不必要成本的情况下提供必要的证据 飞A. 4. 4分级方法由于确定什么是SFR-执行与SFR-支撑(以及在某些情况下,甚至确定什么是SFR-无关)带有主观性, 在本族中采用下面的范例。在本族的早期组件中,开发者提供适当的信息以说明子系统分类为
22、SFR-执行 等,并且很少有额外的证据提供给评估者用于检查这种分类的正确性。随着所需保障级别的增加,在开 发者确定分类的同时,评估者也获得了越来越多的证据用于确认开发者的分类。为了将评估者的分析集中在TOE中与SFR相关的部分,尤其是在较低保障级别中,对族的组件进行 了分级,以便最初只需要对SFR-执行架构实体进行最详细的描述。随着保障级别增加,SFR-支撑和(最 终)SFR-无关的实体也需要提供更多的信息。应该注意的是,即使需要完整的信息,也不要求对所有这 些信息进行相同程度的详细分析。在所有情况下,重点应放在是否已提供和分析了必要的信息。表A.1总结了本族每个组件所需的用于描述结构实体的信
23、息。表A. 1分级详细描述TSF子系统TSF模块SFR-执行SFR -支撑SFR -无关SFR -执行SFR -支撑SFR -无关ADV_TDS. 1基础设 计(非形式化陈 述)结构、SFR-执行 行为概述、交 互指定支撑指定支撑ADV_TDS. 2结构化 设计(非形式化陈 述)结构、SFR-执行 行为详细描 述、。行为、其 他行为的概述、 交互结构、其他行 为的概述、交 互指定支撑、 交互ADV_TDS. 3基础模 块设计(非形式化 陈述)描述、交互描述、交互描述、交互目的、SFR接CIb交互、目的交互、目的ADV_TDS. 4半形式 化模块设计(半形 式化陈述)描述、交互描述、交互描述、交
24、互目的、SFR 接口目的、SFR 接口交互、目的ADV_TDS. 5完全半 形式化模块设计 (半形式化陈述)描述、交互描述、交互描述、交互目的、所有 接口,目的、所有 接口目的、所有 接口ADV_TDS. 6带形式 化高层设计表示的 完全半形式化模块 设计(半形式化陈 述、附加的形式化 陈述)描述、交互描述、交互描述、交互目的、所有 接口目的、所有 接口目的、所有 接口“指定支凝;味着只需要提供足以支持子系统/模块分类的文档。、SFR接意味着模块描述包含每个SFR-相关接口的返回值和调用的其他模块的接口。所有度Z7意味着模块描述包含每个接口的返回值和调用的其他模块的接口。A. 4.5安全相关性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息技术 保障 组件 开发 ADV 组合 ACO 依赖 关系 交叉 引用
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内