Security Target and Mechanism

less than 1 minute read

Published:

安全目标

  • 保密性、机密性/Confidentiality
    • 保护信息内容不会被泄露给未授权的实体
  • 完整性/Integrity
    • 保证信息不被未授权地修改,或者可以检测出非授权修改
  • 可用性/Availability
    • 保证资源的授权用户能够访问到应得资源或服务

安全服务

一种由系统提供的对系统资源进行特殊保护的处理或通信服务。安全服务通过安全机制来实现安全策略。

ITU-I推荐方案X.800即OSI安全框架,定义了一种系统方法,为网络管理员提供了一种安全组织方法。X.800提供了以下安全服务:

  • Confidentiality/保密服务:攻击者无法读数据,或者读到的数据无法理解
    • 防止传输的数据遭到泄露
      • 连接保密服务:保护一次连接中的所有用户数据
      • 无连接保密服务:保护单个数据块里的所有用户数据
    • 防止流量分析等:防止攻击者观察到消息的源、目的、频率、长度或者其他流量特征
  • Integrity/数据完整性保护:攻击者无法写数据或者篡改的数据可被检测
    • 完整性可对消息流、单条消息或者消息的选定部分进行保护,防止或检测未授权篡改
      • 面向连接的完整性服务保证收到的消息和发出的消息一致(一致性/consistency)
      • 面向无连接的完整性服务仅保证单条消息不被修改(抗篡改/tamper-proof)
  • Availability/可用性服务:用户始终可以访问,或者能够快速灾难恢复
    • 定义:根据系统的性能说明,能够按照授权的系统实体(主体)的要求存取或者使用系统或系统资源(客体)的性质
    • 常用机制:资源冗余备份/灾难恢复
  • Authentication/认证服务:保证通信的真实性(Authenticity)
    • 对等实体认证/Peer entity Authentication:面向连接的应用
      • 参与通信的实体身份是真实的,还需要保证该连接不受第三方非法干扰(第三方不能伪装成其中一个实体进行非授权的传输或者接受数据)
    • 数据源认证/Data origin Authentication:面向无连接的应用
      • 对数据的来源提供确认,但是对数据的复制和修改不提供保护
  • AccessConrol/访问控制服务:限制主体对客体的访问权限,通常是经过认证的合法的主体才可以访问特定客体
    • 标识与认证是访问控制的前提
      • Authentication:访问主体,授权对象
      • Authorization:授权操作,何种授权
      • Accountability/Auditability/raceability:可归责/审计/溯源
  • Non-repudiation/抗抵赖服务:防止发送方否认传输过或者接收方否认接受过某条信息
    • 源发抗抵赖/proof-of-origin:消息发出后,接收方能够证明消息是由声称的发送方发出的
    • 交付抗抵赖/proof-of-delivary:消息接收后,发送方能够证明消息事实上确实由声称的接收方收到了

其他服务:

  • Privacy/隐私性:个人或者群组可以隔离自我、或者隔离自我相关的信息,以及选择性地表达自我的能力,主观性很强
    • Ownership/所有权(数据确权):数据的归属权,数据的控制权

安全机制

用来保护系统免受监听、阻止安全攻击及恢复系统的机制

  • 通用安全机制:不属于任何协议层或者安全服务的安全机制
    • 可信功能/trusted functions:根据某些标准被认为是正确的
    • 安全标签/security labels:资源标志,指明该资源安全属性
    • 事件检测/event detection:检测与安全相关的事件
    • 审计跟踪/security Audit trail:收集潜在用于安全审计的数据,对系统记录和行为进行独立回顾和检查
    • 安全恢复/security recovery:处理来自安全机制的请求,如事件处理、管理功能和采取恢复行为
  • 特定安全机制:在特定的协议层实现的安全机制
    • 加密机制(密码机制)
      • 运用数学算法将数据转换成不可知的形式,数据的变换和复原依赖于算法、零个或多个加密密钥,算法是可逆的,也可以是不可逆的
      • 可以支持数据保密性,完整性等多种安全服务
    • 数字签名机制
      • 对数据源的密码变换生成的数据,附加于数据元之后,接收方能证明数据源和完整性,防止伪造
      • 签名:使用签名者独有的私有信息(私钥)
      • 验证:使用公开的信息和规程(公钥)
    • 访问控制机制:对资源进行访问控制的各种机制,可在源点/中间/目的位置进行
      • 实体必须经过认证
      • 访问控制基础手段:
        • 集中的授权信息库
        • 主体的能力表、客体的访问控制列表
        • 主体和客体的安全标签或者安全级别
        • 路由、时间、位置等属性
    • 数据完整性机制:用于保证数据元或者数据元流(序列号、时间戳)的完整性的各种机制
    • 通信业务流量填充机制:在数据流空隙中插入若干位以阻止流量分析
    • 认证机制:通过信息交换来保证实体身份的各种机制
      • 认证技术:认证信息、密码技术、被认证实体的特征
      • 防重放攻击技术:时间戳、两次或三次握手、数字签名
    • 公正机制:利用可信任的第三方来保证数据交换的某些性质
      • 保证由第三方公证人提供,公证人为通信实体所信任,并掌掌握必要信息以一种可证实方式提供所需的保证
      • 实体间通信的数据的性质(完整性、原发、时间和目的地等)能够借助公正机制得到确保

安全原则

  • know your enemy/threat model
    • threat model: 描述攻击者,攻击目标和攻击资源的模型
    • 根据treat model设计方法,只需要防御方法足够好就行了。主要关注threat model的能力,动机(金钱/政治/好玩/恐怖袭击),资源
    • 对threat model的通常假设:
      1. 可以不经通知与系统交互
      2. 知道系统的尝试信息
      3. 可以大力出奇迹
      4. 会在不同系统间进行组合攻击
      5. 有足够资源进行攻击
      6. 会尽可能保留特权
    • 可信计算基(TCB):安全所依的系统组件,通常会做得尽可能简单
      • 特性:
        1. correctness:结果要保证正确
        2. completeness:不能被绕过
        3. security:不能被篡改
      • 原则:KISS(keep it simple&stupid)原则,保持简单直观,方便开发检查
  • consider human factors
    • User:易用为先,安全为后
    • Programmer:人和工具都有犯错风险,可以通过社会工程学方法攻击他人
    • Everyone else:社会工程学攻击利用他人的信任和贪婪
    • 总结:需要考虑向用户展示的工具,并尽可能简单易用
  • security is economics
    • 防御的收益应当与攻击的成本成比例
    • 机制经济性:设计中尽量减少组建数量和复杂性,以降低成本,提高可靠性和易于维护
    • 封装/Encapsulation:隐藏内部结构,符合对象概念,易于被对象接受
    • 模块化/modularity:将结构模块化
    • 心理接受程度/psychological acceptability:安全机制不应干扰用户的正常使用
  • detect if can’t protect
    • deterrence:在攻击前阻止
    • prevention:在攻击中阻止
    • detection:在攻击后发现
    • Response:在检测到攻击发生后必须响应
      • mitigation and recovery:在攻击后恢复到工作状态
  • defense in depth
    • 需要堆叠多种类型的防御措施:使用多类型,功能重叠的防御机制
    • 同时考虑防御的经济成本
  • least privilege:仅授予一个实体或者程序正常运行必须的权利
  • separation of responsibility/privilege
    • 使用多方合作方式进行防御
    • 隔离策略:
      1. 公共访问与关键资源隔离
      2. 用户文件与其他用户隔离
      3. 安全机制单独隔离:防止访问安全机制
  • ensure complete mediation:保证每个接入点都被监控且受保护
    • reference monitor:所有访问都要经过的节点
      • 特点:正确性/完整性(无法绕过)/安全性(无法抵赖)/是TCB的一部分
  • Don’t rely on security through obscurity (设计公开原则)
    • Shanon’s maxim:永远假设攻击者肯定了解系统,不应将难懂作为一种防护机制
    • open design:设计应当是开放的
  • use fail-safe defaults
    • 构建系统时考虑安全状态失效的情况
    • 在安全系统失效时平衡安全性和可用性
  • design in security from the start
    • 将安全性作为系统的设计考量之一,而不是在之后打补丁
    • 在编码中将安全性作为考量之一