目录
一、身份与访问管理(IAM)相关知识
(一)IAM
1、IAM概念
IAM的主要目标是确保正确的人或“物”出于正确的原因,能够在正确的时间、正确的地点从正确的设备中获取到正确的资源(应用、数据等)。
2、IAM管理架构
IAM管理架构中支持多维组织设计以及通过一人多账号映射的方式,能够有效将多维组织场景下的身份管理、身份切换、访问控制等过程从各应用系统中剥离出来,由IAM统一提供相关服务。
3、IAM系统统一审计功能模块
IAM将用户在身份访问管理系统中的登录行为和访问行为完整的记录下来,同时各类系统管理人员在资源中的系统维护操作也被完整的记录下来。还可以与风控模块进行联动,将审计数据输送给风险控制模块进行持续的风险和信任评估,并根据风险和信任评估结果实时做出风险决策,或阻断操作、或对用户身份进行安全级别更高的身份认证、或直接放行。
Ps:零信任
零信任的本质是以身份为基石,坚持“最小授权”原则,通过在业务系统或其它信息系资源的访问过程中,持续地进行信任评估和动态安全访问控制,即对默认不可信的所有访问请求进行加密、认证和授权,并且汇聚关联各种数据源进行信任评估,从而根据信任的程度动态对权限进行调整,最终在访问主体和访问客体之间建立一种动态的信任关系。
零信任安全架构下,被访问资源是作为核心来保护的,因此需要针对被保护的资源架构正交的控制平面和数据平面作为保护面。资源包括一切可被操作的实体,包括终端设备、服务器、数据库、API、功能等。访问的身份主体包括人员、设备、应用、系统等,通过策略引擎进行动态访问控制评估,根据信任评估和鉴权结果决定是否对访问请求放行或者执行附加校验。
(二)物理不可克隆函数(PUF)
1、PUF概念
当输入一个激励时,PUF电路利用芯片生产过程中难以预测和克隆的工艺偏差,产生一个响应,一般称为激励响应对(challenge response pair, CRP)。尽管芯片设计完全相同,但各个芯片受工艺偏差的影响并不相同,因此同一个激励在不同芯片下得到的响应也不尽相同,使CRP难以预测和克隆。
当 PUF 用于设备认证时,PUF作为唯一标识应当具有较好的随机性。为了防御重演攻击,每次认证时不能重复使用相同的CRPs 数据,PUF应当能够产生足够大的 CRPs 集合。
2、PUF特性
1)唯一性:PUF能够产生独立的、随机的响应的能力。
在相同环境条件下输入相同激励,通过比较结构相同的PUF实例输出响应间的差异程度,来判定PUF是否唯一。
2))可靠性:在误差允许范围内,PUF结构在重复测试中保持稳定输出的能力。
3)不可克隆性:包括物理不可克隆性和数学不可克隆性。
4)不可预测性:攻击者获取了CRP的一部分子集和对应的响应,对于随机的激励,也很难预测其响应。
5)防篡改性:PUF 电路在遭到篡改之后检测篡改行为的能力。
6)随机性:PUF的概念在2001年首次被提出,可以应用于芯片水印、知识产权保护、协议认证和密钥生成等。
(三)MTA
MFA (Multi Factor Authentication)为多因子认证,通过将“拥有因素”、“知识因素”、“内在因素”进行组合,形成比单一因子认证更加安全的认证组合方式。只有当两种及其以上不同因子的认证方式通过后,才能获取计算机资源。
(四)单点登陆SSO
1、SSO概念
SSO(Single sign-on)是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
SSO又可以分为Web-sso和非Web-sso两种。非Web的SSO的实现比较复杂,目前业界使用较少。Web- sso在实现上完全基于Web架构实现,对浏览器无特殊要求,业界使用普遍。云管理中使用的SSO实际上就是Web-SSo。开源的、多协议的SSO解决方案: CAS 、OAuth 、OpenID、RESTfulAPI、SAML2.0等。
2、单点登录的优点
1)提高用户的效率。用户不再被多次登录困扰,也不需要记住多个 ID 和密码。另外,用户忘记密码并求助于支持人员的情况也会减少。
2)提高开发人员的效率。SSO为开发人员提供了一个通用的身份验证框架。实际上,如果SSO机制是独立的,那么开发人员就完全不需要为身份验证操心。他们可以假设,只要对应用程序的请求附带一个用户名,身份验证就已经完成了。
3)简化管理。如果应用程序加入了单点登录协议,管理用户账号的负担就会减轻。简化的程度取决于应用程序,因为SSO只处理身份验证。所以,应用程序可能仍然需要设置用户的属性(比如访问特权)。
3、单点登录的缺点
1)不利于重构。因为涉及到的系统很多,要重构必须要兼容所有的系统,可能很耗时
2)无人看守桌面。因为只需要登录一次,所有的授权的应用系统都可以访问,可能导致一些很重要的信息泄露
当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录:根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据ticket;用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性(4,6)。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。
(五)SAML协议
1、SAML内容
Security Assertion Markup Language(SAML)中文描述为安全断言标记语言,是OASIS组织安全服务技术委员会(Security Services Technical Committee)制定的一种第三方认证标准,它是一个基于XML的标准,用于在不同的安全域(security domain)之间交换认证和授权数据。SAML标准定义了身份提供者(identity provider)和服务提供者(service provider),这两者构成了前面所说的不同的安全域。
2、特点
1)当用户未登录状态访问SAAS应用中的某个资源则生成一个 SAML Request
2)将SAML Request提交到saaslogin中
3)saaslogin应用将从URL参数中取出SAMLRequest
4)让用户输入用户名/密码登录,用户登录成功之后,生成一个SAML Response
5)此时saasloign将会返回SAMLResponse
6)用户点击页面上的确定按钮能将SAMLResponse做为一个表单项通过POST的方式传递到系统中
(六)OAuth协议
1、OAuth内容
OAuth在"客户端"与"服务提供商"之间,设置了一个授权层(authorization layer)。"客户端"不能直接登录"服务提供商",只能登录授权层,以此将用户与客户端区分开来。"客户端"登录授权层所用的令牌(token),与用户的密码不同。用户可以在登录的时候,指定授权层令牌的权限范围和有效期。"客户端"登录授权层以后,"服务提供商"根据令牌的权限范围和有效期,向"客户端"开放用户储存的资料。
2、主要运行流程
1)用户打开客户端以后,客户端要求用户给予授权。
2)用户同意给予客户端授权。
3)客户端使用上一步获得的授权,向认证服务器申请令牌。
4)认证服务器对客户端进行认证以后,确认无误,同意发放令牌
5)客户端使用令牌,向资源服务器申请获取资源。
6)资源服务器确认令牌无误,同意向客户端开放资源。
(七)多端融合认证
在其中一个触点完成认证后,可以进入其他系统。如在手机完成人脸识别后,用户可以进入到web应用或者Windows应用。
二、LDAPAD认证
(一)LDAP功能概述
1、LDAP
是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写,顾名思义,LDAP是设计用来访问目录数据库的一个协议,它基于X.500标准。
2、目录服务
由目录服务数据库和目录访问协议组成。
3、目录服务数据库
是一种数据库,这种数据库相对于我们熟知的关系型数据库(比如MySQL,Oracle),主要有以下几个方面的特点:
1)它成树状结构组织数据,类似文件目录一样。
2)它是为查询、浏览和搜索而优化的数据库,也就是说LDAP的读性能特别强,但是写性能差,而且还不支持事务处理、回滚等复杂功能。
为了能够访问目录数据库,必须设计一台能够访问目录服务数据库的协议,而LDAP是其中一种实现协议。
4、目录树

1)目录树:如上图所示,在一个目录服务系统中,整个目录信息集可以表示为一个目录信息树,树中的每个节点是一个条目。
2)条目:每个条目就是一条记录,每个条目有自己的唯一可区别的名称(DN) 。比如图中的每个因圈都是一条记录。
3)属性:描述条目具体信息。比如cn=Tom,ou=support,dc=sangfor,dc=com,他有属性name为Tom,属性 age为11,属性school为xx。
4)Ps:
dc:域名的部分 uid:用户ID ou:组织单位 cn:公共名称 sn:姓
dn:一条记录的唯一位置 rdn:相对辨别名,类似于文件系统中的相对路径
示例:CN=test,OU=developerDC=domainname,DC=com
在上面的代码中cn=test可能代表一个用户名,ou=developer代表一个 active directory 中的组织单位。这句话的含义可能就是说明test 这个对象处在domainname.com域的 developer 组织单元中。
(二)AD
在AD中有两种类型的组:通讯组(distribution groups)和安全组(Security groups)
1、通讯组(Distribution groups)
通讯组只能在一种情况下使用,就是在电子邮件应用程序中对一组用户发送电子邮件的时候使用,比如微软的Exchange邮件系统。
2、安全组(Security groups)
安全组提供一种非常有效的方式来访问网络上的资源。安全组可以实现以下两个方面的功能:
1)给AD中的安全组分配用户权限(user rights)
给安全组分配了用户权限以后,就可以决定词组中的用户可以在域或者林中做哪些操作。在AD安装的时候一些用户权限被自动授予一些安全组。这样做的目的可以帮助管理员定义一些自己的管理角色。例如:被添加到Backup Operators group中的用户可以对AD中每个域控制器中的文件和目录进行备份和还原。
2)分配网络上资源的权限给安全组(permissions)
给网络上的资源分配权限给安全组,权限(permission)和用户权限(user rights)是两个不同的东西。权限决定谁可以访问网络上的资源及访问级别,比如,完全控制。