软件架构与设计 第 17 课 Security and Trust
约 2 分钟· 本文阅读 次
本页目录
安全和信任,同样也是系统设计中不可以获取的一部分,这节课我们来了解一下常见的解决方案和应用场景。
所谓安全,其实就是保证系统的集成性、可用性以及保密性。一些常见的原则有:
- 最小特权:每个组件只有其所需的特权
- 默认失败保护:如果没有权限,那么就拒绝访问
- Economy of Mechanism:采用简单的安全机制
- Complete Mediation:确保允许每次访问
- 设计:安全不应该依赖秘密
- 特权隔离:引入安全组以避免特权冲突
- 最小公共机件:关键资源只在小部分机件中共享
- 心理接受度:使安全机制可用
- 深度防御:有多层安全措施
访问控制模型
这个模型用来控制对于某个资源的访问是否能被允许。动态访问控制是针对不同的请求者,有不同的权限控制。强制访问控制则是基于不同的规则的。


连接器为中心的访问控制
- 决定连接的组件执行哪些操作
- 在连接器中决定组件是否有足够权限
- 在不安全的组件间提供安全交互方式
- 在架构访问检查中传播特权
- 参与决定架构连接
- 根据已有的策略来转发消息
去中心化
- 没有统一的中央调度
- 独立节点进行自治
- 可能会有恶意节点
- 需要有机制来保证不受恶意节点攻击
但是仍旧可能会有以下威胁:
- Impersonation:可以假扮其他人
- Fraudulent Actions:不完成操作就停止执行
- Misrepresenting Trust:可以广播虚假消息(如某个节点不可信)
- Collusion:共同广播虚假消息(如某个节点不可信)
- Addition of Unknowns
信任管理
主要有两种机制
- Credential and Policy-based
- Reputation-based
具体的机制
- 选择合适的基于声望的信任模型
- 准确描述信任模型
- 把这个模型应用到软件架构上(Software architectural style fro trust management, PACE)
- 最后我们的架构会包含
- 封装了信任模型的组件
- 其他处理威胁的信任技术
针对前面提到的集中威胁,对应的方法是:


总体来说,安全是一个很大的话题,不过我个人对这个领域兴趣不是特别大,更多可能只是使用现有的权限控制应用。
相关文章
- 软件架构与设计 习题课 6 设计模式进阶练习2016-03-30
- 软件架构与设计 习题课 5 设计模式练习2016-03-20
- 软件架构与设计 第 20 课 设计模式2016-03-17
- 软件架构与设计 第 19 课 People, Role, Teams2016-02-27
已恢复到上次阅读位置