信息安全从业人员^_^
一个未入门de情报学胖子(邮箱:tenghm1986@163.com)
Toggle navigation
信息安全从业人员^_^
主页
About Me
归档
标签
云安全实用指南--第4章 身份与访问管理
2020-11-24 10:21:08
555
0
0
heming
身份与访问管理(Identity and Access Management,IAM)最重要的一组安全控制措施。 - authentication(认证) - authorization(鉴权) --- **tips:**零知识加密(zero-knowledge encryption) 云提供商在技术上无法解密你的数据,因为你只会向其发送加密后的数据 --- # 4.1 与传统IT的区别 传统IT环境,访问管理通常一部分由物理访问控制或网络访问控制来执行。 - 一些服务提供长期有效的授权令牌(authentication token),即使失去“登录”能力,令牌还可以继续工作 - 云IAM # 4.2 身份与权限的生命周期 最简单IAM生命周期: <center> ![IAM](https://leanote.com/api/file/getImage?fileId=5fbb11cdab64410cea000073) </center> - 人 - 工具也有身份,例如应用 ## 4.2.1 申请 - 创建一个身份 - 删除一个身份 - 向一个已有身份授权 - 撤销对一个已有身份的授权 在云环境中,申请处理经常发生在“带外(out of band)” ## 4.2.2 审批 隐式访问(符合一定规则,访问被允许或者授权): - 提供合法手机号 - “我不是机器人” - 提供信用卡卡号 显式审批(最少两级审批): - 直属领导 - 系统拥有者 ## 4.2.3 创建、删除、授权或撤回 - 申请/审批系统会对接云提供商的API来创建身份或授予身份访问权限 - 工单/邮件/其他通知 # 4.3 认证 区分身份仓库(identity store)和用来认证用户、验证用户身份所使用的协议(protocol) - 身份仓库是存储所有身份的数据库 - 协议(**OpenID/SAML/LDAP**) ## 4.3.1 cloud IAM 云提供商为用户提供了免费的IAM服务: - Amazon IAM - Azure Active Directory B2C - Cloud Identity - Cloud IAM ## 4.3.2 企业对消费者和企业对员工 终端用户的身份 - 使用一个现成的身份服务 - 使用与应用相关的客户身份 ## 4.3.3 多因素认证(multi-factor authentication) 多因素认证是**保护弱凭证或防止凭证被盗**的最佳方式 多因素: - 你知道的某样东西(密码) - 你拥有的某样东西(一个访问凭证/一个手机) - 你个人的一些特征(指纹/视网膜) 2FA(Two-Factor Access,双因素认证): - 你知道的东西(密码) - 你拥有的东西(手机) 对一些高风险的操作最好都采用2FA 2FA的“你拥有什么”的方式: - 发送手机短信(SMS) - 逐渐失宠,盗取手机号或者窃取短信很容易 - 基于时间的一次性密码(Time-based One-Time Password TOTP) - 移动设备,时钟源 - 推送通知 - 已有经过认证的APP,APP与服务器连接推送一次一密 - 硬件设备 ## 4.3.4 密码与API密钥 密码: - 永远不要重复使用相同的密码 - 不重复使用相同密码最终将使你拥有大量密码,密码管理器 - 对于不需要记住的密码,安全的随机数生成器 - 对于需要记住的密码,密码管理器的密码 ### 4.3.5 共享ID - 一般不推荐使用共享ID - 精确区分谁在使用这个共享ID ### 4.3.6 联合身份 在两个系统中拥有身份,两个系统的管理员都同意将这两个身份联系起来 #### 4.3.7 单点登录 与其每个网站都向用户索要用户名和密码,不如网站直接将用户重定向到一个它信任的中心式身份提供者(Identity Provider,IDP) ### 4.3.8 SAML and OIDC SAML(camel) and OpenID Connect(OIDC) 是最常见的SSO技术 SAML简化版本: - 1.浏览器输入想访问的网址(简称SP) - 2.SP:你没有SAML cookie,请先从IDP那里获取一个cookie,将你重定向一个IDP页面 - 3.IDP页面输入用户名和密码,可能还有二重认证 - 4.IDP确定你是你后,它会给浏览器提供一个cookie,其中附带一个加密签名的XML“声明”,大概内容:"我是身份提供者,这个用户通过了认证",然后将你重定向到之前的网页 - 5.浏览器将cookie移交到第一个页面(SP),SP严证过加密签名后"你已经通过IDP验证" SP与IDP没有任何通信 ### 4.3.9 实例元数据和身份文档 <center> ![身份文档](https://leanote.com/api/file/getImage?fileId=5fbc568aab64410cea000467) </center> 一个运行在特定系统上的进程,访问一个众所周知的服务端点,服务端点会告诉这个进程关于它所在系统的所有信息;而进程也可以通过加密签名的方式证明系统的身份(相互认证) ### 4.3.10 机密信息管理 管理员级的用户和终端设备需要机密管理(secret management) 几个原则: - 定期修改机密应当很容易,在任何时候有任何理由认为机密可能已经被泄露时,对机密做出修改也应当很容易 - 机密应当永远被加密,然后落盘存储和动态存储到其他地方 - 如果有可能,任何人都不应当知道这些机密信息(最小化知道该机密的人数) - 存储和分发这些机密的系统应该得到良好的保护 - 在系统可以正常工作前提下,机密应当对攻击者尽可能无用。(最小权限原则,不要有“天国密钥”) - 所有对机密的访问和修改都应当有日志记录 忽视机密管理,应用服务器连接数据库的用户名/密码;机密写到源代码里等。 部署: - 应用代码 - 本次部署的配置 - 本次部署的机密信息 四种机密管理方式(从最不安全到最安全): - 1.使用已有的配置管理系统和部署系统来存储机密 - Ansible vault and Chef encryption data bag,对机密信息进行严格的访问控制 - 2.机密服务器 - 从机密服务器拿到机密配置信息(另外一个机密可以通过IP地址范围限定/访问日志/更新机密等加以限制) - 3.安全引导方式降低攻击者获得机密服务器访问权限的可能性 - 部署工具与机密服务器通信,获取一次性机密 - 应用将这个一次性机密发给机密服务器获取真正的机密,并将其存储到内存中 - 4.利用云平台提供的一些内置功能完成这些工作 - 云提供商为云上系统提供实例元数据或身份文档(云提供商为我加密签名了这份文档用于证明我身份) - 机密服务器知道了云上服务器的身份和相应元数据信息,进行认证授权后提供机密信息 --- tips: **动态存储** 动态存储变量是在程序执行过程中,使用它时才分配存储单元,使用完毕立即释放 --- ## 4.4 鉴权 鉴权两个重要概念: - 最小权限(用户、系统或工具只应该访问他们完成自身工作所需的资源,其他资源一律无权访问) - 职责分离(任何人无法完全破坏整个环境的安全,有能力修改系统的人不应当同时有能力去修改这些系统的日志) ### 4.4.1 集中式鉴权 身份散落可以通过联合身份和SSO解决,集中式鉴权 ### 4.4.2 角色 - 组是多个实体的集合 - 角色是多个权限的集合 ## 4.5 重新验证 定期检查每个授权,以保证哪些权限依然是被相应的用户所需要 - 基于特定参数的自动化重新验证 - 人的判断(主动确认/被动确认) ## 4.6 串联到示例应用中 <center> ![IAM示例](https://leanote.com/api/file/getImage?fileId=5fbc6e09ab64410f1d00064d) </center>
上一篇:
云安全实用指南--第5章 漏洞管理
下一篇:
云安全实用指南--第3章 云资产管理与保护
0
赞
555 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网
Please enable JavaScript to view the
comments powered by Disqus.
comments powered by
Disqus
文档导航