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

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.rhkb.cn/news/392580.html

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

相关文章

数据结构——优先队列

文章目录 一、基本介绍二、基本操作三、实现1 实现的思路2 大顶堆实现2.1 概念2.2 完全二叉树的实现方式2.3 优先队列的图示2.4 对于基本操作实现的讲解2.4.1 检查队列是否为空 ( isEmpty )2.4.2 检查队列是否已满 ( isFull )2.4.3 查看 ( peek )2.4.4 插入 ( offer )2.4.5 删除…

本地GitLab runner自动编译Airoha项目

0 Preface/Foreword 1 GitLab runner环境 具体情况如下: Gitlab-ruuner运行在wsl 1中的Ubuntu 18.04 distro上专门为GitLab-runner分配了一个用户,名为gitlab-runner 2 自动编译 2.1 Permission denied 编译过程中,有两个文件出现权限不允…

基于风险的完整性和检查建模(RBIIM)MATLAB仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 Prior Density (先验密度) 4.2 Posterior Perfect Inspection (后验完美检验) 4.3 Posterior Imperfect Inspection (后验不完美检验) 4.4Cumulative Posterior Imperfect Inspection…

嵌入式安全:Provencore Secure os

嵌入式安全有何独特之处? 嵌入式安全领域的领导者 ProvenRun 宣布,其旗舰产品 ProvenCore for ARM™ Cortex-A 最近获得了 通用标准 (CC) EAL7 认证。这是全球首创,因为没有其他操作系统或可信执行环境 (TEE) 达到该安全级别。相比之下,移动安全市场上第二安全的 TEE(对于…

C语言菜鸟入门·数据结构·链表超详细解析

目录 1. 单链表 1.1 什么是单链表 1.1.1 不带头节点的单链表 1.1.2 带头结点的单链表 1.2 单链表的插入 1.2.1 按位序插入 (1)带头结点 (2)不带头结点 1.2.2 指定结点的后插操作 1.2.3 指定结点的前插操作 1.3 …

如何对人工智能系统进行测试|要点,方法及流程

当今社会,人工智能发展非常快。现在人工智能的发展已经渗透到了我们生活的方方面面,自动驾驶、或者我们手机里经常用到的一些应用都或多或少涉及到了一些人工智能的功能,比如说美图秀秀、新闻推荐、机器翻译以及个性化的购物推荐等等都涉及到…

视频监控汇聚平台LntonCVS视频监控管理平台解决方案和常见的接入方式

一、视频融合平台 LntonCVS是一款支持多种协议和设备接入的视频汇聚流媒体平台。它能够统一管理和整合不同品牌、不同协议的视频资源,构建视频数据资源池,并通过视频资源目录为各类业务场景提供丰富、实时、高清的视频资源。 二、接入方式 1. 前端设备…

视频汇聚平台EasyCVR接入移动执法记录仪,视频无法播放且报错500是什么原因?

GB28181国标视频汇聚平台EasyCVR视频管理系统以其强大的拓展性、灵活的部署方式、高性能的视频能力和智能化的分析能力,为各行各业的视频监控需求提供了优秀的解决方案。视频智能分析平台EasyCVR支持多协议接入,兼容多类型的设备,包括IPC、NV…

【unittest】TestSuite搭建测试用例示例二

1.1 打开串口示例 常用的模组则包含AT指令测试,或串口数据测试,则可添加串口配置,将指令通过串口发送出去,如下所示: import serial def open_serial_port(port, baudrate115200, timeout2): try: # 创建并配置串…

Cocos Creator2D游戏开发(10)-飞机大战(8)-计分和结束

现在游戏基本能完了, 飞机能发射子弹,打了敌机,敌机也能炸; 接下来要做计分了; 步骤: 搞出一个lable让lable显示炸了多少飞机 开搞: ①创建一个Lable标签 ② root.ts文件 添加 property(Label) player_score: Label; // 标签属性 标签绑定 ③ 代码添加 注册 然后回调 contac…

计算机网络-数据链路层

基本概念 数据链路和链路 链路:指的是从一个节点到相邻节点的一段物理线路,且中间没有任何其他的交换节点 数据链路:传输数据时,除了一条物理线路,还需要一些必要通信协议来控制这些传输。 数据链路层的三个基本问…

【架构】客户端优化

这篇文章总结一下服务器网关及之前部分的优化,如客户端的优化,CDN/DNS等。 这里我们先谈一谈客户端缓存优化的手段。一般我们后端在说到缓存,第一时间想到的往往是redis,其实缓存在架构层次还有很多其他可以实现的地方&#xff0…

度言软件介绍

度言软件管理员操作后台 https://www.duyansoft.com企业后台为公司管理员操作后台,共计有七个功能版块 控制台 成员管理——员工管理 成员管理——员工管理(添加员工) 成员管理——团队管理 公司管理员可以新建/编辑/删除团队&#xff0c…

SSM整合快速学习

目录 步骤: 一、环境搭建 1.创建JdbcConfig配置类 2.创建JdbcConfig配置类 3.创建MybatisConfig配置类 4.创建jdbc.properties 5.创建SpringMVC配置类 6.创建Web项目入口配置类 二、功能模块开发 步骤1:创建数据库及表 步骤2:编写模型类 步骤3:编写Dao接…

Java面试题--JVM大厂篇之Java中Parallel GC的调优技巧与最佳实践

目录 引言: 正文: 1. 理解Parallel GC的工作原理 2. 常见痛点与解决方案 痛点一:长时间暂停 痛点二:频繁的Minor GC 痛点三:内存溢出 3. 调优参数推荐 4. 实战经验分享 结束语: 引言:…

定时任务-xxl-job

一. 为什么定时任务可以定时执行 定时任务可以定时执行的原理是通过操作系统提供的定时器实现的。 以下是定时任务能够准时执行的基本原理和相关技术: 操作系统的调度器: 操作系统(如Linux、Windows等)内部都有一个调度器&#x…

electron 配置、打包 -报错解决

目录 一、配置途中遇到的问题: 二、 make 配置好后开始打包 三、Electron-builder 打包报错 一、配置途中遇到的问题: 1. 安装 yarn add electron -D 一直卡在这里失败 一直卡可以使用下面这个,然后再重新装依赖 1. 采用新的镜像地址 npm …

机械学习—零基础学习日志(高数22——泰勒公式理解深化)

核心思想:函数逼近 在泰勒的年代,如果想算出e的0.001次方,这是很难计算的。那为了能计算这样的数字,可以尝试逼近的思想。 但是函数又不能所有地方都相等,那退而求其次,只要在一个极小的范围,…

Modbus-RTU详解

目录 Modbus-RTU协议 帧结构示例 CRC16校验算法 CRC16算法的过程 modbus-rtu的使用 发送数据 接收数据 tcp网口完整实现modbus-rtu协议 使用NModbus4实现modbus-rtu协议 安装NModbus4库。 串口实现NModbus4 Modbus-RTU协议 Modbus RTU 协议是一种开放的串行协议,广…

GroupMamba实战:使用GroupMamba实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度,DP多卡,EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…