软件设计中的安全设计

上传人:suij****uang 文档编号:182638992 上传时间:2023-01-26 格式:DOCX 页数:4 大小:12.13KB
返回 下载 相关 举报
软件设计中的安全设计_第1页
第1页 / 共4页
软件设计中的安全设计_第2页
第2页 / 共4页
软件设计中的安全设计_第3页
第3页 / 共4页
点击查看更多>>
资源描述
软件设计中的安全设计摘要:如今,形形色色的安全问题已经被全球瞩目,如何保障资料的安全是大家关心的问题。 软件作为计算机用户常用工具,必需具备一定的安全性。提起安全,人们往往会想起一连串专 业性名词:“系统安全性参数”、“软件事故率”、“软件安全可靠度”、“软件安全性指标”等等, 它们可能出现在强制的规范性文档的频率比较多,但却不一定能在设计过程中吸引开发者的眼 球。当我们在一个严谨而平稳的软件平台上操作时,我们不禁会称赞这个平台。一个专业、有 素质的软件设计开发者必定会将软件安全性作为软件设计时一个重要指标。在这里本文将通过 对软件安全性概念的引入,以及如何通过软件测试来验证是否完成了软件安全性的设计目标, 较全面的阐述软件设计中安全方面考虑的重要性和方法。关键词:软件设计 安全分析一、软件安全性概念以及作用软件设计阶段通常包括软件概要设计阶段和软件详细设计阶段,概要设计阶段中也包含需 求阶段。当软件规模较小时也可以将而这合并为一个阶段,该阶段的主要安全性工作是进行软 件安全性设计。此外,随着软件细节的展开,还要进一步展开安全性分析以发现新的危险,补 充软件安全性需求。软件设计中的安全设计应该包括需求阶段和详细设计阶段的分析。需求阶段要求对分配给 软件的系统级安全性需求进行分析,设计人员要对系统初步结构设计文档和软件安全性分析准 备,其中包括接口、软件等需求的分析,完成系统安全性需求的映射,有了这些,设计人员才 有把握对系统做出综合的分析,从而更好地设计软件安全方面的配置;详细设计阶段要求分析 设计实现是否符合安全性要求,详细设计阶段是进一步细化代码的阶段,这部分的详细设计安 全性分析是整个相关整个软件安全的关键,经过长期的验证,已经有了一些参考参数:设计逻 辑分析、设计约束分析和复杂性多度量,它们分别是要评价软甲设计的方程式、算法等,要用 给出的约束评价软件在这些约束下运行的能力,还要利用 McCabe 或 Halstead 等这样一些复杂 性评估技术来标示出需要进一步改进的区域。对于计算机系统来说,软件的安全性设计可以保证程序在其设计的运行环境中,不会引起 (或可以容忍的小概率引起)或诱发对人员或设备的危害。例如多级火箭一级点火、二级点火 指令如果错了,火箭就会失败。但只要对火箭指令及传递机构采取足够的防错设计,错发指令 的概率就可以小到能容忍的程度。如果各关键项目的开发单位能从软件安全性这方面重视“安 全”这个题目,那么项目的安全性链条就不会轻易地由于诸如小数点错位的原因而断开。 二、设计中安全性的目标SimsonGarfinkel 和 GeneSpafford 给出定义:“假如你能够依靠一台计算机和它上面的软 件做出你期待的行为,就说它是安全的”。安全性设计的目标是实现最小风险设计,其中风险 包括软件软件缺陷产生的风险、用户操作产生的风险、费用风险和进度风险。降低这些风险的 软件安全设计原则如下:(1)降低软件和接口的复杂性;(2)对安全性关键等级高的模块,应使用更有针对性的设计方法,以降低其失效的发生;(3)对高风险的部分,提供更多的资源(时间、技术考虑等);(4)重视人因安全性,强调用户使用安全设计而非用户使用友好设计;(5)设计时应考虑测试性。 为落实以上原则,还要从分析、设计、验证三方面开展安全性工作。同时要在设计阶段或 更早阶段,选择好编程语言、编码规范、开发工具和操作系统以更好地保证软件安全性。安全性的目标也是保证用户能够安全操作不发生错误,并且保证用户资料不外泄。在设计 软件的过程中,应该注意保证操作界面的友好,保证软件的保密性。研究者曾经提出安全交互 设计的原则:(1)用户能够清楚理解授权过程,明确过程中的操作;(2)影响安全决定的用户交互界面应该便于检查;(3)在任何时候都应该答应撤销做出的安全授权;(4)用户界面不应该让用户误以为拥有实际上没拥有的权限;(5)用户与授权实体之间的通讯渠道必须是不能被欺骗和不轻易瘫痪的;(6)确认实体与确认操作在界面上应该与其他实体和操作不同;(7)交互界面应该提供足够的表达能力让用户轻易按照自己的目标表达安全决定;(8)在动作生效前应该让用户清楚授权操作的结果。现在计算机的构件都被标注成可信 的,可信不是一个yes或者no的问题,不明确下述问题,“可信”这个词是没有任 何意义的。这些问题是:(1)“谁被信任?”(2)“被信任做什么?”(3)“什么条 件下不可信?”(4)“应对的安全风险是什么?”。三、软件设计阶段安全性分析设计阶段的安全性分析主要为发现新的潜在危险,以及识别关键软件部分和单元。随着软 件设计工作的开展,可以对需求分析阶段的安全性工作进行更新,从而发现新的危险;通过部 件/单元关键性分析可以识别安全性关键部件和单元,从而加强该部件/单元的安全性设计。合适的开展时间是,在软件概要设计阶段开始,在软件概要设计、详细设计工作开展的同 时开展,至软件详细设计完成时结束。安全性分析阶段的主要工作内容分为以下两点:(1)更新需求阶段的软件安全性分析。早期在软件安全性获取过程中进行的分析因为缺 少细节只是一个开始,在此阶段可以继续进行,以发现新的软件危险,如继续开展初步危险分 析,定时、规模和吞吐量分析,软件故障树分析、软件失效模式和影像模式、控制流分析、信 息流分析、需求关键分析等。(2)进行部件/模块安全性关键性分析。在需求关键性分析的基础上,将软件安全性需求 分配到不同的软件层次,如操作系统、设备驱动程序、应用程序、应用程序接口等,然后再映 射到相应的设计部件/模块中并标识安全性关键部件/模块,以更有重点地开展后续的安全性工 作。四、安全性设计 软件工程需建立以后,常规有效的设计方法包括结构化设计法、模块化设计法、自顶向下 设计法、程序逻辑构造法、伪码等设计方法;为解决软件可靠性问题,又可以从避错设计、差 错设计、改错设计和容错设计等方面进行软件可靠性设计。常规方法和可靠性方法的应用都可 以提高软件的安全性。软件安全性设计工作主要在软件设计阶段开展,至软件设计完成时结束、它应和常规设计 紧密结合,贯穿在软件设计过程始终。软件安全设计的的主要内容和要求如下:(1)所有的软件安全性功能需求应落实在软件设计中;(2)应采用适当的安全性设计准则开展相应的安全性设计活动;(3)采用的软件设计应具有可测试性,即能对软件安全性特征和安全性需求进行彻底的 测试;(4)应将实现安全性需求或者可能通过失效或其他机制影响安全性要素的设计要素指定 为安全性关键的;(5)设计文档应明确标识出所有安全性关键的设计要素;(6)软件设计应将安全性关键的设计进行模块化,以满足实际应用的需要。五、软件设计阶段安全性验证设计阶段软件安全性验证的目的是确保软件安全性需求正确和全面的子部件/模块中落实 实。开展软件安全性验证的时机是在软件安全性设计完成之后启动,在编码工作开始之前完成。软件安全性验证的内容分为以下几点:(1) 软件安全性人员应对软件设计通过分析进行安全性验证。(2) 分析验证方法应记录在软件安全性计划中。(3)分析验证方法应至少包括如下内容: 应验证软件设计满足上述的安全设计的原则; 应验证软件设计不违反任何安全性控制措施或过程,且所有的附加的危险、危险原因和危 险的贡献都被记录下来,以及在任何运行模式中,安全性设计都能将系统维持在某个状态中。 该分析验证至少要考虑到一些常见的验证示例,比如时间约束、硬件失效、容错、并发性等。应使用安全性分析(如初步危险分析、失效模式和影响分析、故障树分析等)确定用于防 止、减轻或控制失效和故障的设计特征,以及所包含的失效/故障的组合(如一个软件失效和 一个硬件失效、或者多个并发的硬件失效)的级别。六、结束语软件安全关乎到人们工作资料、生活隐私的安全,是当代社会一个重要的议题。专业的 设计人员在设计软件的时候要充分考虑到安全方面的设计,力争使软件达到理想的安全高度。参考文献:安全性设计分析与验证 赵廷弟 国防工业出版社软件工程 齐志昌 谭庆平 宁洪 高等教育出版社
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!