读零信任网络:在不可信网络中构建安全系统10认证身份

news/2025/3/14 9:32:34/文章来源:https://www.cnblogs.com/lying7/p/18343584

1. 用户所知道的信息

1.1. 只有用户本人知道的信息

1.2. 密码

  • 1.2.1. 密码是常用的认证机制

  • 1.2.2. 密码验证就是确认用户“所知”性的较好途径

  • 1.2.3. 用户可以利用密码管理器来便捷地管理多个高强度密码,从而有效降低数据泄露风险

  • 1.2.4. 长度足够长

  • 1.2.4.1. 最近的NIST密码标准建议密码长度最小为8位

  • 1.2.4.2. 具有高度安全意识的个人通常使用的密码长度为20位以上

  • 1.2.4.3. 使用密码短语可以帮助用户记住位数较长的密码

  • 1.2.5. 难以猜测

  • 1.2.5.1. 用户通常会高估他们选取随机数的能力

  • 1.2.5.2. 最好利用随机数生成器生成的数值作为密码

  • 1.2.5.3. 它们的记忆难度可能会给用户带来不便

  • 1.2.6. 不重复使用

  • 1.2.6.1. 密码会被存储在某些应用服务数据库中

  • 1.2.6.2. 在不同应用或服务中使用相同的密码,那么安全性最弱的系统决定了这个密码的安全强度

  • 1.2.7. 在任何情况下,都不能以明文形式直接存储密码,而应该存储密码的加密散列值

  • 1.2.7.1. 散列算法的复杂度决定了暴力破解密码的开销

  • 1.2.7.2. 由破解所需的时间和/或内存表示

  • 1.2.7.3. NIST周期性发布的标准文件中包含了推荐的加密算法

  • 1.2.7.4. 最好根据最新的行业实践选择最佳算法

2. 用户所持有的凭证

2.1. 用户可以提供的物理凭证

2.2. 时间型动态口令令牌

  • 2.2.1. 基于时间的一次型口令(TOTP)是一种常见的认证标准

  • 2.2.2. 它要求用户提供随时间改变的口令

  • 2.2.3. RFC 6238定义了适用于硬件设备和软件应用的TOTP算法标准

  • 2.2.4. 推荐使用移动设备/手机上的应用程序来产生动态口令

  • 2.2.5. TOTP都要求用户和服务之间共享一个随机的种子密钥,将种子密钥和当前时间戳结合,使用一个加密散列算法就可生成一次性口令

  • 2.2.6. 种子密钥在设备和认证服务器上的安全存储至关重要

  • 2.2.6.1. 密钥泄露将对这种认证机制造成永久性破坏

  • 2.2.6.2. RFC推荐使用类似TPM的硬件设备存储加密的密钥,并限制对硬件设备中加密数据的访问

  • 2.2.6.3. 与认证服务器相比,移动设备上存放的种子密钥更容易泄露,移动设备无意间连接上一个恶意服务就可能导致密钥泄露

  • 2.2.6.4. 可以使用一种TOTP的备选方案,通过加密信道给用户手机发送一个随机验证码,然后在另外一台设备上输入该验证码,验证用户目前是否持有对应的手机

  • 2.2.7. 只要用户设备和服务器的时钟大致同步,则二者计算的TOTP一定相同,通过对比这个口令就可以确认用户是否拥有共享密钥

  • 2.2.8. SMS并不是安全的通信信道

  • 2.2.8.1. 利用随机验证码认证,需要保证验证码送达目标设备且确保没有在传输过程中被暴露或劫持

  • 2.2.8.2. 以前通常将验证码作为短信传输,但是因为SMS系统对验证码的传输并没有足够的安全保证,所以不推荐使用SMS信道传输验证码

2.3. 证书

  • 2.3.1. 为每个用户签发X.509证书是认证用户的另外一种有效方式

  • 2.3.1.1. X.509证书一般通过计算机进行提交和认证识别,它是“机器”凭证

  • 2.3.1.2. 其信息量比密码之类的“人类”凭证要大得多

  • 2.3.1.3. 作为认证凭证时可以提供更丰富的信息

  • 2.3.1.4. 以将用户的元数据嵌入或绑定到证书,由于可信机构对证书进行了签名,因此这些元数据也成为可信信息

  • 2.3.1.5. 在不成熟的网络下,采用这种做法在一定程度上可以减少对可信用户目录的建设需求

  • 2.3.2. 证书通过一个高强度的私钥生成,然后使用签发CA的私钥对证书进行签名

  • 2.3.3. 对证书进行任何修改都会导致CA的签名无效,因此该证书可以作为任何信任其签发CA的服务的认证凭证

  • 2.3.4. 推荐在特定硬件上产生和存储私钥以防数字盗窃

2.4. 安全令牌

  • 2.4.1. 一种主要应用于用户认证的的硬件设备,但它们也有一些额外的应用

  • 2.4.2. 凭证/私钥本身就是由安全令牌生成的,并且凭证信息永远不会离开硬件令牌

  • 2.4.3. 用户设备通过API与硬件进行交互,代表用户执行加密操作,以证明用户确实持有安全令牌

  • 2.4.4. 企业倾向于使用硬件机制来认证用户身份,诸如智能芯片和Yubikey这类的硬件设备提供1:1的身份断言,将用户身份与硬件设备绑定,大大减小了用户凭证被复制和盗窃的风险

  • 2.4.4.1. 可能只有真正盗取硬件设备才能获得用户凭证

  • 2.4.5. 使用特定硬件设备存储私钥是目前较安全的存储方法,而这些私钥是许多认证机制的基石

  • 2.4.6. 通用第二因子(Universal 2nd Factor, U2F)认证

  • 2.4.6.1. 作为成熟PKI机制的替代者,U2F针对网页服务提供了一种轻量级的挑战应答协议

  • 2.4.7. 无论选择哪种认证机制,只要它依赖于非对称加密算法,那么最好使用安全令牌

  • 2.4.8. 并不能保证自身的安全性

  • 2.4.8.1. 被盗

  • 2.4.8.2. 被滥用

  • 2.4.9. 需要意识到令牌虽然是构建安全系统的一个不错的选择,但并不能彻底代替其他用户的身份验证机制,如果需要确保某个用户确实是其宣称的身份,那么仍然强烈建议使用附带额外认证因子的安全令牌(如口令或者生物特征)

3. 用户所固有的特征

3.1. 用户的固有特征

3.2. 通过物理特征识别用户被称为生物特征识别

3.3. 随着日常使用的各种设备越来越多地被嵌入各种高级传感器,生物特征识别的采用正变得越来越普遍

  • 3.3.1. 指纹

  • 3.3.2. 掌纹

  • 3.3.3. 视网膜扫描

  • 3.3.4. 语言分析

  • 3.3.5. 人脸识别

3.4. 虽然生物特征识别有助于提升系统安全性,但这种机制的一些天然缺陷也不可忽略

  • 3.4.1. 生物特征认证极大地依赖于物理特征的精准度量,攻击者可能欺骗传感器,从而通过认证

  • 3.4.2. 针对指纹传感器的攻击方式已经获得成功,攻击者设法获取指纹图片,然后通过3D打印技术进行复制,从而成功欺骗指纹传感器

3.5. 生物特征的另一个缺点是它们不可变更

  • 3.5.1. 这是人类与生俱来的物理特征

  • 3.5.2. 这会引发一些潜在的访问问题

  • 3.5.2.1. 有些人天生就没有指纹(皮纹病)

  • 3.5.2.2. 在一场事故中失去了指纹

3.6. 生物特征识别还面临意想不到的法律问题

  • 3.6.1. 在美国,法庭可以强制要求公民提供指纹从而解锁一个设备,但不可以强制要求公民说出他们的口令

  • 3.6.1.1. 根据《美国宪法第五修正案》中公民拥有的自证其罪的权利

4. 一种或多种方法认证用户

4.1. 具体应该使用哪种/哪些认证方式取决于所需的信任等级

4.2. 对于需要多因子认证的高风险操作,最好不要选取同一类型的认证方式,即需要组合用户所知道的信息、所持有的凭证和所固有的特征这3种类型的认证方式

  • 4.2.1. 因为攻击向量在特定分组中通常是相似的

4.3. 如何选取认证因子进行组合,很大程度上和用户所使用的设备相关

  • 4.3.1. 用户设备是台式机,那么可以将密码(用户所知道的信息)和硬件令牌(用户所持有的凭证)组合起来提供高强度的认证机制,以保证极高的安全性

  • 4.3.2. 移动设备的场景,指纹(用户所固有的特性)和密码(用户所知道的信息)的组合是一个更好的选择

5. 用户的物理安全

5.1. 影响用户信任度

5.2. 可以强迫用户阻止这些机制

5.3. 用户可能被威逼利诱,从而泄露他们的凭证或者授权某人操作他们的可信账户

5.4. 通过用户行为分析和历史操作日志分析可以发现异常,缓解这些攻击向量带来的影响

6. 带外认证

6.1. 采用带外认证方式认证用户时,会特意使用一个额外的通信信道,这个通信信道和用户首次认证所用的信道完全不同

6.2. 使用带外认证方式,可以提升账号破解的难度,因为攻击者必须控制/攻破带外认证的信道才能得逞

6.3. 主要的带外认证手段

  • 6.3.1. 邮件方式可以告知用户最近发生的潜在敏感操作

  • 6.3.2. 完成请求前让用户二次确认

  • 6.3.3. 联系第三方以确认是否允许操作请求

  • 6.3.4. 究竟该选择哪种形式取决于每次认证交互所需的认证强度

6.4. 带外认证使用得当可以极大地增加系统的安全性

7. 单点登录

7.1. 用户需要交互的服务数量越来越多,业界倾向于将认证和最终的服务实现解耦

7.2. 单点登录(SSO)是一个非常成熟的概念

  • 7.2.1. 在SSO模式下,用户通过集中授权进行身份认证后会被授予令牌

  • 7.2.2. 此令牌会用于后续和其他受保护服务的通信,这些服务收到带有令牌的用户请求后,通过安全的传输通道向认证服务验证这些令牌的合法性

7.3. 用户只需要与一项服务进行认证

7.4. 相关认证信息存储于一个有严格安全标准的特定服务上

7.5. 安全凭证存放位置的减少意味着暴露面减小,这降低了风险,并且更有利于变更凭证

7.6. 采用非集中式认证的零信任网络通过控制平面向数据平面推送凭证和访问策略,这样数据平面可以在任何时候按需完成认证,并且确保认证策略受控于控制平面

7.7. 需要尽可能确保到集中认证服务验证令牌的频率,因为每次调用控制平面验证令牌都提供了潜在的撤销令牌或趁机修改信任等级的机会

7.8. 服务在支持SSO认证的同时管理自己的登录机制

  • 7.8.1. 控制平面只负责对初次请求进行授权,剩下的所有认证授权决策则交由服务自己负责

  • 7.8.2. 信任的变更(甚至失效)是零信任网络的主要特点,因此,在采用这种模式之前需要谨慎评估

7.9. 已有的SSO技术

  • 7.9.1. SAML

  • 7.9.2. Kerberos

  • 7.9.3. CAS

7.10. 在零信任网络中,认证应该始终是控制平面的关注点

7.11. 设计零信任网络的认证体系时,应该尽可能多地考虑控制平面的参与性,并且理所当然地应该让控制平面验证授权请求的频率尽可能高

8. 向本地认证解决方案转移

8.1. 扩展本地认证,使其和远程服务相结合,这种机制越来越受到认可

8.2. 用户通过本地的一个可信设备认证其存在性,可信设备进一步和远程服务进行认证,确认其身份的合法性

8.3. 一些开放标准(如FIDO联盟的UAF标准)使用非对称加密算法和本地设备认证系统(如口令和生物特征)​,将信任从大量服务转移到了数量相对较少的用户可控的终端上

8.4. UAF也许更像是密码管理器,但是它管理的是私钥而非密码,同时公钥会被分发给认证服务,这样它就可以确认用户确实持有私钥

8.5. 益处

  • 8.5.1. 挑战应答系统减少了重放攻击的威胁

  • 8.5.2.  减少了中间人攻击

  • 8.5.3. 不存在同一凭证在不同服务中重复使用的情况,因为凭证和服务是1对1安全生成的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/778513.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营day04|24.两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题 02.07.链表相交,142.环形链表II

24.两两交换链表中的节点 题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/description/ 我的代码: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNod…

For SALE: State-Action Representation Learning for Deep Reinforcement Learning

发表时间:2023(NeurIPS 2023) 文章要点:这篇文章提出,在强化学习里,对于特征向量表示的任务(low-level states),而不是图像表示的任务(image-based tasks),做表征学习也是有必要的。作者认为一个任务的困难在于底层的dynamic,而不是状态空间的大小,对state-action做…

活动回顾 | 2024 搜索客社区 Meetup 首期线上直播活动圆满结束,附 PPT 下载

2024 年 7 月 31 日,由搜索客社区和极限科技(INFINI Labs)联合举办的首期线上 Meetup 技术交流直播活动圆满结束。本次直播活动吸引了超过 300 人次的技术爱好者参与,共同探讨了 Easysearch、大模型、RAG 等前沿技术和实践应用,为广大搜索技术爱好者提供了一个宝贵的学习和…

HTML概述1

HTML概述 HTML中文是超文本标记语言,它是 HyperText Markup Language首字母简称,是一种用来结构化web网页及其内容的标记语言。网页的内容是由段落、列表、图片和文字等组成。 HTML组成 HTML由一系列元素组成。元素和标签不是一个概念,典型的元素就是由开始标签。文本和结束…

VS远程调试NatApp

目录远程调试用户机器程序1. 调试工具1.1 VS远程调试服务1.2 服务路径1.3 拷贝与启动服务1.4 配置选项2. 外网穿透隧道工具2.1 工具:natapp.exe2.2 官网2.3 购买隧道:2.4 配置隧道:2.5 修改配置:3. 启动调试3.1 附加进程3.2 配置进程 远程调试用户机器程序 1. 调试工具 1.1…

R语言入门笔记:第一节,快速了解R语言——文件与基础操作

上一期 R 语言入门笔记里面我简单介绍了 R 语言的安装和使用方法,以及各项避免踩坑的注意事项。我想把这个系列的笔记持续写下去。这份笔记主要是针对 R 语言学习过程中各个容易掉进去的坑进行规避,以及根据我自身的经验提供一些学习思路。目录关于 R 语言的简单介绍到什么地…

基于强化学习的路径规划matlab仿真,对比QLearning和SARSA

1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印): 2.算法涉及理论知识概要强化学习(Reinforcement Learning, RL)是一种机器学习方法,它使代理(agent)通过与环境互动,学习采取何种行动以最大化累积奖励。在路径规划问题中,强化学习被用于自动探索环境,找…

阿里云服务器第一次使用时的配置

因为项目用到了4G模块, 测试云平台是基于阿里云 第一次远程桌面登录时,发现 使用 SocketTool 创建客户端后不能在云服务器上监听到相应的连接 根据阿里云官方的指南配置了一个专用端口 https://startup.aliyun.com/info/1074728.html 配置完成后,可观察到,使用模块也可正常发送…

关于热部署的配置

导入依赖<!-- 热部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> &l…