
1. 公钥基础设施1.1. PKI1.2. 数字证书本身并不能解决身份认证问题1.2.1. 需要一种方法来验证获得的公钥的确属于某人1.2.2. 公钥基础设施(PKI)解决了这个问题1.3. PKI定义了一组角色及其职责,能够在不可信的网络中安全地分发和验证公钥1.4. PKI的目标是允许无特权的通信双方通过共同信任的第三方来验证对方身份的真实性1.5. PKI利用注册中心(RA)把通信实体的身份与其公钥进行绑定,然后把这种绑定关系内嵌入数字证书,并由可信的第三方进行数字签名1.5.1. 只要发送方和接收方信任同一个第三方,发送方就可以使用经过第三方签名的证书来证明自己的身份1.6. 证书授权中心(CA)和信任网络(WoT)是较受欢迎的两类供应商1.6.1. CA的信任依赖于数字签名链,用户能够根据数字签名链回溯到初始的可信根节点1.6.1.1. CA的流行程度远远超过信任网络1.6.2. WoT没有使用信任链的形式,而是允许参与通信的系统断言对等方身份的有效性,最终形成相互背书的网状结构1.6.2.1. WoT在PGP系统中得到了广泛使用1.7. PKI通常被部署为公共的信任系统,签发和管理互联网上使用的X.509证书2. CA2.1. CA是数字证书链的信任锚,它们签署并公开发布公钥及其绑定的身份信息,允许无特权实体通过数字签名来验证这种绑定关系的有效性2.2. CA证书用于表明CA自己的身份,CA证书对应的私钥用于签署由其颁发的客户证书2.3. CA证书是众所周知的,所以通信实体可以使用CA证书来校验该CA颁发的客户证书的数字签名2.4. CA作为可信的第三方,能够为客户签发并维护数字证书的有效性2.5. CA作为可信的第三方拥有非常高的特权,因此必须不惜一切代价保护CA的安全性2.5.1. CA的安全性一旦遭到破坏,就会导致灾难性的后果2.6. X.509数字证书标准支持证书链,所以根CA可以保持离线状态2.6.1. 离线状态的根CA可以得到更好的安全保护,这也是绝大多数PKI体系的根CA的标准做法3. 零信任模型中PKI3.1. PKI是零信任模型身份认证的基石,大多数零信任网络都采用PKI来证明身份的真实性3.1.1. PKI可以绑定实体的身份和公钥3.1.2. 需要安全地保存实体的私钥,并且应当使其尽可能靠近实体的物理位置,这在身份认证机制中是非常重要的一点3.2. 零信任网络颁发的证书数量可能会很多,因此非常有必要对证书进行自动化管理3.2.1. 数字证书的签发毕竟是敏感度很高的工作,因此很多系统在设计时都会保留人工可以介入的审批流程3.3. 虽然公共PKI非常适合作为互联网的信任基础设施,但是却不适合零信任网络3.4. 为什么公共PKI不适合零信任网络?3.4.1. 突出缺点是成本3.4.1.1. 机构都是商业化运作的,签发证书需要收取费用3.4.1.2. 零信任网络可能会使用大量的证书,如果考虑到凭据轮换策略,证书的使用量会更大,这会产生高昂的证书签发费用,很多组织难以承受3.4.2. 另一个重大缺点,那就是CA机构的可信度问题3.4.2.1. 很多公共的CA机构是由不同的国家和政府运营的3.4.2.2. 任何一个CA机构出现问题,都会切断整个零信任网络的信任3.4.2.3. 只使用特定的某一个公共CA,但是如果它与其他组织使用的CA没有交集,那么如何建立和保持信任就是一个挑战3.4.3. 使用公共CA会影响零信任网络的灵活性和可扩展性3.4.3.1. 零信任网络为了完成身份认证,可能需要在证书中存储与组织相关的元数据,比如用户角色或用户ID等3.4.3.2. 规定并不一定适用于特定组织的零信任网络3.5. 使用公共PKI总比完全没有PKI要好3.5.1. 如果在零信任网络建设的初期选择使用公共PKI,那么在意识到风险变大时,需要有明确的路径能够切换成使用私有PKI4. 最小特权4.1. 最小特权原则是指一个实体应该只被授予完成任务所需要的特权,而不是被授予该实体想要得到的权限4.2. 最小特权原则能够极大降低用户或应用程序滥用权限的可能性4.2.1. 对应用程序来说,最小特权通常意味着其运行在服务账号、容器或“监狱”(Jail)中4.2.2. 对用户来说,最小特权通常表现为“只有工程师才能访问源代码”这样的安全策略4.2.3. 终端设备也同样需要考虑最小特权原则,但通常情况下终端设备采用与用户或应用程序相同的策略4.3. 以保护隐私的名义进行网络数据包加密是一种经常被忽视的最小特权应用4.4. 如果确实需要更高的访问权限,那么用户可以并且只能在需要的时候获得这些特权4.4.1. 当需要提升权限时,则需要使用拥有更高权限的独立账户执行操作4.4.2. 提升用户的权限通常需要验证其身份4.5. 零信任网络的情形与之类似,用户在大多数情况下以最小特权模式访问网络资源,只在需要执行敏感操作时才提升权限4.5.1. 对于风险相对较低的操作,特权提升过程可以很简单,只需重新提示用户输入口令、要求出示双因素认证令牌或者给用户的手机推送认证通知4.5.2. 对于高风险的操作,可以选择通过带外方式要求相关人员进行主动确认4.6. 强制性关联身份认证的过程和现实世界是一个不错的办法,这能够避免已被攻陷的系统干扰正常的操作4.6.1. 人们在配置一台新的计算机时,第一步往往就是禁用保护计算机应用程序的安全框架,这几乎成了常态4.7. 零信任网络中的特权比传统网络更具有动态性4.7.1. 除了用户,零信任网络也应当为应用程序配置最小特权4.7.2. 零信任网络还需要考虑设备的特权4.7.2.1. 这种方式有效地降低了用户凭据丢失或被盗而造成的损失和影响4.8. 传统网络中的安全策略往往是静态的,如果遇到需要更高特权的情形,则特权的请求者通常需要说服系统管理员变更安全策略,或者请求系统管理员代替他们执行操作,后一种做法更普遍4.8.1. 在管理相对宽松的组织中,特权数量会随着时间的推移而逐渐增长,最终导致最小特权原则失效4.8.2. 无论组织的管理是宽松还是严格,系统管理员都被赋予了更高的访问权限,这会导致其成为攻击者实施网络钓鱼攻击的主要目标4.9. 零信任网络依靠网络活动的诸多属性来分析当前访问请求的风险4.9.1. 时间属性4.9.1.1. 某用户在正常活动时间窗口之外的访问请求更加可疑4.9.2. 空间属性4.9.2.1. 某用户从与上次访问不同的地理位置发起访问请求4.9.3. 行为属性4.9.3.1. 某用户试图访问通常情况下不应该访问的资源4.9.4. 用户在正常工作时间从其正常地理位置访问数据库的请求应该被授权,但是从新的地理位置或者在非工作时间访问数据库的请求则被要求使用多因子身份认证4.9.5. 基于网络活动的风险分析主动调整访问权限的能力是零信任网络的安全特性之一4.9.5.1. 通过动态调整安全策略和访问权限,零信任网络能够积极应对已知和未知的恶意攻击5. 可变的信任5.1. 信任管理是网络安全管理中非常困难的工作5.1.1. 安全网络的黄金标准:根本就不存在高特权的系统管理员5.2. 定义信任策略这项工作通常由安全工程师手工完成5.2.1. 初级的用户权限区隔(如超级用户、管理员和普通用户),很难满足高级用户的需求5.2.2. 安全策略变更之后导致的影响范围也同样很难界定,于是系统管理员对策略的变更非常谨慎5.2.3. 权限分配通常也是手工作业,系统管理员根据用户在组织中的职责为其分配相应的权限5.2.4. 管理员不得不制造出许多信任池(pool of trust)5.3. 安全策略动态性不足,无法应对日益变化的网络安全威胁5.3.1. 需要重新思考网络参与者的信任关系,意识到网络参与者的信任是基于参与者过去和当前的行为而不断变化的5.3.2. 安全策略的定义不仅基于确定性的描述,还要基于不断变化的度量分值,这为系统提供了一种防御任意威胁的机制5.3.2.1. 持续监视参与者的网络活动,并据此持续更新其信任评分,然后使用这个评分作为授权策略判定的依据之一5.3.2.2. 能够对确保信任所需的检查与平衡进行细粒度的决策判定5.4. 安全成熟度比较高的组织会针对网络活动部署审计设备,执行审计流程,但是审计工作的执行频率往往不高,而且坦率地说,网络活动的审计工作非常乏味,以至于没人愿意认真做好这件事5.5. 由于零信任网络中的所有网络流量都是加密的,因此传统的流量监听方法很难达到预期的效果,只能看到有限的内容5.6. 强策略是信任的“增压器”5.6.1. 基于信任评分的策略能够根据历史行为等多种变量动态影响授权的判定结果,这将极大地改善网络的安全态势5.6.2. 经由这种机制检查和授权的访问会话有更高的可信度5.6.3. 这种信任评分积累机制可以显著降低此依赖,从而改善用户的使用体验5.6.4. 用户的信任评分能够基于历史行为而降低,同样也可以基于历史的可信行为而增加5.6.4.1. 只要延长用户积累信任所需的“正常”行为的时间,就能够延缓攻击者积累信任的进度,从而应对这种威胁5.6.4.2. 把敏感操作的若干条信息公布给控制平面,并将其配置成只有可信位置的可信用户才能够访问5.6.4.3. 既可以显式描述确定的授权策略,又可以通过计算信任评分的方式应对未知的威胁5.6.5. 单一的评分值是否足以保护所有的敏感资源5.7. 安全策略和用户组织角色之间的解耦可能会给最终用户带来一定的困扰6. 控制平面和数据平面6.1. 基本思想是,网络设备有控制平面和数据平面两个逻辑域,这两个逻辑域之间存在清晰的接口6.2. 数据平面的作用是转发网络流量,它需要高速处理数据包,因此其处理逻辑相对简单,通常使用专用硬件6.2.1. 零信任网络中的数据平面由直接处理网络流量的应用程序、防火墙、代理服务器和路由器组成6.2.2. 不能使用数据平面上的服务来获得控制平面的特权,从而在网络中横向移动6.2.2.1. 数据平面与控制平面之间的接口必须非常清晰,确保数据平面中的系统不会因为被攻陷而导致在网络内横向移动6.2.3. 数据平面和控制平面系统之间的交互请求必须使用私有PKI系统进行身份认证和加密,以确保接收方的可信度6.3. 控制平面可以看作是网络设备的大脑,系统管理员用它来配置管理网络设备,因此控制平面会随着策略的变化而变化6.3.1. 控制平面的强可塑性导致其无法处理高速网络数据包流量6.3.2. 任何在数据平面执行的策略行为,都要尽可能减少向控制平面发送请求(相对于网络流量速率来说)6.3.3. 控制平面和数据平面之间的接口应当类似于操作系统内核空间和用户空间之间的接口,为了防止提权攻击,两个系统之间的交互需要进行高度隔离6.3.4. 控制平面是整个网络的信任授予者6.3.4.1. 由于控制平面对网络行为的控制力度非常大,因此其自身的可信度至关重要6.3.4.2. 零信任网络中存在这样一个具有极高特权的参与者6.3.5. 控制平面授予数据平面的某个参与者的信任应该具有时效性6.3.5.1. 租用访问令牌或短生命周期证书是实现这一原则的较合适的解决方案6.3.5.2. 通过限制数据平面和控制平面进行凭据交互的时间窗口,能够降低对网络进行物理攻击的可能性