Security+ 7. 管理身份识别和访问
7. 管理身份识别和访问
7.1 身份识别和访问管理
- 身份识别和访问管理(Identity and access amangement/IAM)是一种安全流程,为用户、计算机等提供身份识别,认证和授权机制,以便能够使用网络,操作系统和应用程序等组织资产。
7.1.1 访问控制模型
**强制访问控制[Mandatory access control/MAC]:**通过比较对象的指定安全等级和主体的安全许可来控制访问。即管理员预先为对象根据它们敏感程度被分配不同级别的安全标签,主体被分配一个安全级别或许可,当主体尝试访问一个对象时,他们的许可级别必须与该对象的安全级别相对应,如果匹配,可访问,如果不匹配,拒绝访问。
**自主访问控制(Discretionary access control/DAC):**对象所有者决定谁可以访问。
基于角色的访问控制(role-based access control/RBAC):管理员预先定义主体的角色,网络对象被配置为只允许特定角色的访问。
**基于规则的访问(Rule-based access control):**管理员定义规则管理。
**基于属性的访问控制(Attribute-based access control/ABAC):**基于每个主体拥有的一组属性来控制访问。属性由管理员分配。
**物理访问控制设备:**如门禁卡、智能卡等。
**生物识别设备:**指纹扫描器、语音识别设备、视网膜扫描仪、虹膜扫描仪、面部识别设备。
生物识别因素
1. 错误接受率(False acceptance rate/FAR):未经授权的用户在生物识别系统中错误地通过验证的百分比。
2. 错误拒绝率(False rejection rate/FRR):已经授权用户在生物识别系统中被错误拒绝验证的百分比。
3. 交叉错误率(Crossover error rate/CER):FAR和FRR相等时的值,低CER值表示认证系统以最佳状态运行。
7.2 配置目录服务
- 目录服务(idrectory service):用于存储特定网络中所有对象的身份信息,包括用户,组,服务器,客户端,打印机和网络服务。还为目录对象和网络资源提供了用户访问控制。也可用于集中安全性并控制对各个网络资源的访问。
- 目录机制(schema)控制:定义了如何创建对象以及对象有哪些特征的规则。
- LDAP:轻型目录访问协议(Lightweight directory access protocol/LDAP):LDAP客户端向LDAP服务进行身份验证,服务的机制定义了客户端在访问目录数据库时可以和不可以执行的任务、目录查询必须采用的形式以及目录服务器响应的方式。
- LDAP安全:安全LDAP(LDAPS)是SSL/TLS加密协议来实施LDAP的方法。实施LDAPS的服务器需要一个由证书颁发机构颁发的签名证书,并且客户端必须在他们的机器上接受并安全证书。
- 常见的目录服务:Active Directory,Oracle Directory Server企业版本,OpenDJ, OpenLDAP,Open Directory
- 备份活动目录:Windows registry、COM+ Class Registration Database、启动和系统文件、Certificate Services数据库(如果有安装)、SYSVOL目录(如果服务器是域控制器)、IIS配置文件
7.3 配置访问服务
- 隧道:数据包被加密并封装在另一个数据包中,以隐藏包内信息。
- 远程访问协议:点到点协议(PPP)、点到点隧道协议(PPTP)存在漏洞不要使用、第二层隧道协议(L2TP):本身不提供加密,隧道以IP数据包形式,结合IPSec进行加密认证、安全套结字隧道协议(SSTP):使用PPP报头封装IP数据包,再使用SSTP报头进行封装,最后由SSL/TLS会话加密。
- 认证:
1. 基于HMAC的一次性密码(HMAC-based one-time password/HOTP):是使用基于散列的消息认证码(HAMC)生成一次性密码(one-time password/OTP)的一种算法,能够确保消息的真实性。
2. 基于时间的OTP(TOTP):HOTP和其他一次性密码有一个弱点,中巢密码从未被使用过,攻击者就能利用该密码。TOTP通过在特定时间增量内生成新密码并使之失效来解决安全漏洞。
3. 密码认证协议(Password authentication protoccol/PAP):以明文形式发送用户ID和密码的认证协议,淘汰。
4. CHAP(Chanllenge handshake authentication protocol):结合使用了MD5和challenge-handshake吃的响应机制。过时,因为MD5不能提供合适的安全性。
1) 客户端发送目录查询请求
2) 服务器发送一个质询序列,通常是一个随机值。
3) 客户端使用自己的密码作为加密密钥来加密质询序列,并将修改后的序列发送到服务器。
4) 服务器使用存储在本地证书列表中的密码加密初始质询序列。并将结果与收到的序列进行比较,相同允许,不同拒绝。
5. NTLM:win的质询-响应认证协议,容易受到暴力嘴角,对传递散列攻击没有抵抗力,推荐使用Kerberos。
6. RADIUS(Remote authentication dial-in user service):提供AAA服务协议。远程访问服务器称为网络访问服务器(Network access server/NAS)
7. Diameter(直径):RADIUS的优化升级。未普及
8. NPS:网络策略服务器是RADIUS在WIN Server上的实现,帮助管理VPN和无线网络。
9. TACACS+(Terminal access controller access-control system):为远程用户提供AAA服务,比RADIUS更安全更具可扩展性,包含认证的全程加密,RADIUS只加密密码。
10. Kerberos:基于时间敏感的票据授予系统的认证服务。
1) 用户登录到域
2) 用户从认证服务器请求票据
3) 认证服务器使用一个时间戳TGT进行响应
4) 用户将TGT返回给认证服务器,并请求服务票据访问特定资源。
5) 认证服务器使用服务票据进行响应
6) 用户将服务票据提供给他们希望访问的资源
7) 资源认证用户并允许访问。
7.4 管理账户
- 账户类型:用户账户,特权账户,访客账户,计算机和服务账户
- 多账户
- 共享账户
7.4.1 账户策略(account policy)
- 谁可以批准账户创建
- 谁被允许使用资源
- 用户是否可以共享账户或拥有多个账户
- 审核用户访问后,何时以及如何禁用或修改账户
- 用户账户在一段时间的不使用后是否应该终止,如何终止
- 何时执行一般账户的禁用
- 应对密码历史,密码强度和密码重用执行哪些规则
- 在发生可疑事件或支持尝试时,何时锁定账户
- 在账户遭到入侵或被删除后,何时以及如何恢复账户
7.4.2 密码策略
- 密码策略
- 密码复杂性
- 密码历史
- 密码重用
7.4.3 账户管理安全控制
- 标准命名惯例:账户以一致方式命名
- 账户维护:制定一个维护计划,确保不会遗漏任何必要的更改,也不会过程地移除账户
- 入职/离职:新员工进来,需要创建账户,对于离职都,及时禁用他们的账户并从系统中删除
- 访问权限重新鉴定:进行许可审计和审查,确定他们遵守最小特权原则。一些账户随着时间的推移积累了太多的权限,一种被称为许可蠕变(permission creep)的过程。
- 使用情况审计:监控用户账户在组织中的使用方式。
- 基于组的访问控制
- 基于位置的策略
- 一天中的时刻限制
- 凭证管理:创建凭证管理器(Credential manager),帮助用户和组织存储和管理账户用户名及密码。
7.4.4 组策略
- 优化账户密码的属性,如长度,复杂性和寿命
- 优化账户的锁定阈值和持续时间
- 使用可逆的加密技术存储账户密码
- 执行kerberos登录限制和票据生命周期
- 审计账户管理gkwr
- 为个人或组账户分配特定的权限和控制。
7.4.5 身份联合
- 身份联合(Identify federation):指将一个身份在多个不同身份管理系统之间进行链接的做法。
- 单点登陆(SSO):身份联合的一个子集,消除了多次登录联合系统的必要性,用户将在会话开始时登录到一个系统,如果他们最终转而使用另一个信任其联合身份的系统,则用户不会被强制要求重新进行身份验证。即一个账户多个用途。
- 可传递信任(transitive trust):A信任B,A信任C,即使B与C之间没有建立正式的信任关系,实体B也会隐式地信任实体C,反之亦然。
- 身份联合的方法:
安全声明标记语言(Security assertion markup language/SAML):基于XML框架,用于交换与安全相关的信息,通过HTTPS连接以声明的形式进行通讯,声明主体访问级别的身份和授权。
OpenID:为所有参与网站保留一个账户。
OAuth:授权服务器代表资源向用户提供访问口令,用户将口令提供给资源,资源则确定给予用户的访问级别。
Shibboleth:基于SAML方法,网站通过URL查询发送SAML认证信息,用户会被重定向到一个身份提供器中,他们可以使用SML信息与其进行身份验证。身份认证器用正确的身份验证信息响应服务提供商,网站验证此响应并根据用户的SAML信息授予他们特定资源的访问权限。
7.4.6 管理账户准则
- 实施最小权限原
- 制定包含所有账户策略要求的账户策略
- 确认账户请求和批准程序存在并得到执行
- 确认账户修改程序存在并得到执行
- 制定密码策略并在其中包含确保密码能够抵御破解尝试要求
- 限制多账户和共享账户的使用,防止滥用
- 实施账户管理安全控制,如:维护,审计和基于位置/时间的限制
- 使用证书管理软件将用户名密码存储在数据库中
- 实施组策略进行更加广泛的访问控制
- 实施身份联合系统简化系统之间的用户访问
- 思考联合身份如何成为访问不同系统的单点故障