回到首页

输入关键词,多个关键词用空格分隔。

← 软件架构与设计 · 系列目录

软件架构与设计 第 17 课 Security and Trust

约 2 分钟
本页目录

安全和信任,同样也是系统设计中不可以获取的一部分,这节课我们来了解一下常见的解决方案和应用场景。


所谓安全,其实就是保证系统的集成性、可用性以及保密性。一些常见的原则有:

  • 最小特权:每个组件只有其所需的特权
  • 默认失败保护:如果没有权限,那么就拒绝访问
  • Economy of Mechanism:采用简单的安全机制
  • Complete Mediation:确保允许每次访问
  • 设计:安全不应该依赖秘密
  • 特权隔离:引入安全组以避免特权冲突
  • 最小公共机件:关键资源只在小部分机件中共享
  • 心理接受度:使安全机制可用
  • 深度防御:有多层安全措施

访问控制模型

这个模型用来控制对于某个资源的访问是否能被允许。动态访问控制是针对不同的请求者,有不同的权限控制。强制访问控制则是基于不同的规则的。

动态访问控制的例子

强制访问控制的例子

连接器为中心的访问控制

  • 决定连接的组件执行哪些操作
  • 在连接器中决定组件是否有足够权限
  • 在不安全的组件间提供安全交互方式
  • 在架构访问检查中传播特权
  • 参与决定架构连接
  • 根据已有的策略来转发消息

去中心化

  • 没有统一的中央调度
  • 独立节点进行自治
  • 可能会有恶意节点
  • 需要有机制来保证不受恶意节点攻击

但是仍旧可能会有以下威胁:

  • Impersonation:可以假扮其他人
  • Fraudulent Actions:不完成操作就停止执行
  • Misrepresenting Trust:可以广播虚假消息(如某个节点不可信)
  • Collusion:共同广播虚假消息(如某个节点不可信)
  • Addition of Unknowns

信任管理

主要有两种机制

  1. Credential and Policy-based
  2. Reputation-based

具体的机制

  1. 选择合适的基于声望的信任模型
  2. 准确描述信任模型
  3. 把这个模型应用到软件架构上(Software architectural style fro trust management, PACE)
  4. 最后我们的架构会包含
    • 封装了信任模型的组件
    • 其他处理威胁的信任技术

针对前面提到的集中威胁,对应的方法是:

PACE Components

总体来说,安全是一个很大的话题,不过我个人对这个领域兴趣不是特别大,更多可能只是使用现有的权限控制应用。

相关文章