首页 > 编程知识 正文

软件设计,软件开发设计文档示例

时间:2023-05-06 19:01:33 阅读:55890 作者:3273

文章目录一、软件设计与软件安全设计1、软件设计主要工作2、软件安全设计主要工作2、软件安全设计原则1、经典设计原则2、通用安全设计原则介绍3、软件安全功能设计1、应用安全功能设计2、基于安全模式的软件

一、软件设计和软件安全设计1、软件设计主要工作

1)总体设计和详细设计

总体设计:根据需要确定软件和数据的总体框架,包括系统设计过程和结构设计过程。 设计细节:是将总体设计结果进一步细分为软甲的算法标识和数据结构。2)主要工作

从技术角度看,软件设计阶段的主要工作包括软件体系结构设计、接口设计、模块/子系统设计、数据模型设计、流程/算法设计和部署设计等。

2、软件安全设计主要工作1)软件安全设计的目的与作用

软件设计的目的是在软件体系结构中设计安全属性,以实现软件产品的本质安全。

软件安全设计在软件安全中起着重要的作用,大多数软件安全问题都是由于软件设计中对安全的考虑不足和不完善所引起的。

2)软件设计与软件安全设计的关系

简而言之,软件安全设计是将软件安全需求转化为软件功能结构的过程。 软件设计通常包括体系结构设计、接口设计、算法设计等。 也就是说,软件安全设计不仅需要考虑系统体系结构和相关的安全问题,还需要考虑如何通过将安全要求集成到开发体系结构中来与软件集成,从而有效地提供安全服务

3)软件架构的安全性设计

的体系结构通常分为三类:

逻辑体系结构:描述软件系统中组件的关系,包括用户界面、数据库和外部接口。 物理体系结构:描述软件组件在硬件上的部署模式。 系统体系结构:描述系统的功能特征,包括可扩展性、可靠性和灵活性。 二、软件安全设计原则1、经典设计原则1)saltzer和Schroeder提出的安全设计8条原则:

经济默认安全配置完全控制开放设计权限分离最小特权最小共享机制心理容限2)John viga 和 yyddb Mcgraw总结的10条设计原则

作为最弱保护的一环,深度防御是小安全、最小权限的分离、保留、轻松隐藏隐私保护信息册的困难,不轻易使用社区资源……

2、通用安全设计原则介绍攻击面削减原则最小授权原则权限分离原则纵深防御原则默认安全配置原则开放设计原则保护最弱环节原则最低共用机制原则安全机制心理可接受原则平衡安全设计原则3、软件安全功能设计1、应用安全功能设计身份认证:一次性密码、动态密码认证、 用户名和密码认证证书认证(设计用户对资源的访问限制、拒绝对未授权用户的访问、同意的访问控制机制、后天管理控制方案等输入/输出认证)认证所有来源不明的数据,并针对用户输入采用多种认证方法使用正确的数据类型、cxdxs的数据长度等)进行配置管理)确保配置存储安全、使用最小权限流程和服务帐户、确保管理界面安全的会话管理:登录后,建立新会话并进行会话删除应确保会话数据传输的安全,及时结束会话,设计合理的会话库存时间,避免伪造交叉点请求。 参数操作:避免使用包含敏感术语的查询参数,加密查询字符串参数,不信任HTTP标头,避免用户绕过检查。 异常管理:使用结构化异常处理机制,使用通用错误消息审核和日志检查。 2、基于安全模式的软件安全设计安全模式展示:

安全模式名义焦点认证功能验证尝试访问系统的对象是否是他/她声称的基于id用户或系统认证角色的访问控制。 基于人类任务分配功能和权限访问控制安全的“模型-尝试-控制器”使用设置了MVC模式的系统,在用户之间进行交互安全系统的交互传输层安全虚拟专用每个端点都需要验证和访问控制安全通信安全日志和审核来记录用户行为并分析审核该日志基于安全模式的设计方法:

1 )风险决策阶段:

这个阶段主要有两项工作,识别风险,评估风险。 通过分析业务需求、用户需求、安全需求等,所有没有利用历史威胁记录和经验最终实现系统的都是安全体系结构。

2 )系统安全体系结构阶段:

在此阶段消除风险并评估解决方案。 在此基础上构建系统高层体系结构图。 主要工作包括浏览模式库、选择安全模式、评估安全模式和构建系统高级体系结构。

3 )系统设计细分阶段:

此阶段的主要任务是构建业务类图、实例化安全模型、系统集成和适当的重建。

四、威胁建模1、威胁建模概念1)什么是威胁建模

通过抽象的概念模型将影响软件系统的威胁识别为系统的评价。2)为什么要威胁建模

及早发现安全风险,了解安全需求,设计和提供更安全的产品,解决其他技术无法解决的问题2、威胁建模流程1)确立安全目标

r> 确立安全目标包括确立软件系统设计的资产,以及围绕这些资产的业务目标和安全目标。
2)创建应用程序概况图
主要目的是分析应用程序的功能、体系结构、物理部署配置以及构成解决方案的技术 。
3)分解应用程序
主要目的是通过分解应用程序的结构来确认信任边界、数据流、数据入口点和数据出口点。
4)确定威胁
确定肯影响到应用程序和危及安全目标的威胁的最大难题是系统性和全面性,特别是对于一些不断变化的技术和发展中的攻击技术,没有一种方法能够识别复杂软件产品中的所有威胁。所以,在这一个步骤中,需要执行的是确定常见威胁,以及深入的分析其他可能威胁。
5)威胁评估
常见的评估方法由Delphi排序、平均排序、以及概率*影响因子排序
6)确定威胁缓解计划或策略
常见威胁的缓解措施:

威胁缓解措施假冒验证主体:windows身份认证、Kerberos身份验证、PKI系统、IPsec、数字签名等篡改数字签名、消息认证、完整性控制等否认强身份验证、安全日志审计、数字签名、时间戳等信息泄露加密、访问控制拒绝服务访问列表控制、授权、高可用性设计权限提升访问列表控制、权限、输入验证等

7)验证威胁
验证的内容包括威胁模型、列举的缓解措施等。其目的是说明列举出威胁如何进行攻击、攻击的内容和以及缓解措施。
8)威胁建档
威胁建档可以迭代使用,需要在整个生命周期中对威胁模型中已经识别的威胁实施适当的控制。威胁建模也需要更新。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。