控制和监控访问

控制和监控访问

  1. 安全
  2. 1 week ago
  3. 16 min read

比较访问控制模型

比较权限、权利和特权

权限

权限通常是指授予对客体的访问权限,并明确允许对客体执行的操作。

权利

权利主要是指对某个客体采取行动的能力。

特权

特权是权利和权限的组合。

理解授权机制

访问控制模型使用许多不同类型的授权机制或方法来控制哪些主体访问特定客体。

隐式拒绝

访问控制的基本原则是隐式拒绝,大多数授权机制使用隐式拒绝。

访问控制矩阵

访问控制矩阵是一种包含主体、客体和分配权限的表格。

能力表

能力表关注主体(用户、组或角色)。例如,为会计角色创建的能力表包括允许会计角色访问的所有客体列表。

约束接口

应用程序利用受约束或受限制的接口,限制用户可执行或可查看的内容。

基于内容的控制

基于内容的访问控制依据客体内容来限制对数据的访问。

基于上下文的控制

基于上下文的的访问控制在授予用户权限之前需要用户执行特定的活动。

因需可知

这个原则确保主体仅能访问完成工作任务和工作职能而需要知道的内容。

最小特权

最小特权原则确保主体仅拥有执行工作任务和工作职能所需的权限。

职责分离

职责分离原则确保将敏感职能划分为两个或多个员工共同执行的任务。

介绍访问控制模型

第一项介绍自主访问控制,其余项目是非自主访问控制。

自主访问控制

自主访问控制(DAC)模型的一个关键特征是每个客体都有一个所有者,所有者可以允许或拒绝其他主体的访问。

基于角色的访问控制

采用基于角色或基于任务的访问控制的系统,根据主体角色或分配任务来定义访问客体的能力。基于角色的访问控制(RBAC)通常通过组来实现。

基于角色的访问控制可以预防特权蠕变,有助于加强最小特权原则的实施。特权蠕变是用户随着角色和访问需求的变化而积累特权的趋势。理想情况下,管理员在用户更换岗位职责时应该撤销原岗位权限。但如果用户的权限是直接分配的,则很难识别和撤销一个用户的所有不必要的权限。

基于规则的访问控制

基于规则的访问控制模型的一个关键特征是采用适用于所有主体的全局规则。

基于规则的访问控制模型使用一组规则、限制或过滤器,决定系统允许和禁止发生的操作。

基于属性的访问控制

基于属性的访问控制(ABAC)模型的一个关键特征是使用包含多个属性的规则。

强制访问控制

强制访问控制(MAC)模型的一个关键特征是使用应用于主体和客体的标签。例如如果具有绝密标签,用户则可以具备对绝密文档的访问权。MAC模型有时类似于格子,因此MAC被称作基于格子的模型。

基于风险的访问控制

基于风险的访问控制模型在评估风险后授予访问权限。

实现认证系统

互联网上实现SSO

XML

多个供应商的数据库可以依托XML格式导入和导出数据,从而使XML成为交换信息的通用语言。XML存在许多特定模式,如果公司之间对XML模式达成共识,则公司之间可以轻松共享信息。许多云提供商使用基于XML的语言来共享身份认证和授权信息。许多云提供商不是直接使用XML, 而是使用其他基于XML的语言。

SAML

安全断言标记语言(SAML)是一种基于XML的开放标准,通常用于在联邦组织之间交换身份认证和授权(AA)信息。SAML提供支持浏览器访间的SSO功能。

OAuth

OAuth2.0(意含开放授权)是RFC 6749中描述并由互联网工程任务组(IETF)维护的授权框架。互联网上的许多公司使用0Auth2.0与第三方网站共享账户信息。

OAuth是一个授权框架,而不是身份认证协议。 OAuth交换API消息并使用令牌来显示访问是否已获得授权。

OpenID

OpenID 提供去中心化身份认证,允许用户使用一组凭证登录多个不相关的网站,这些凭证由第三方服务维护,这类第三方被称为 OpenID 提供商。

当用户访问支持OpenID的网站(也称为依赖方)时,系统会提示用户提供 OpenID 标识作为 URI。

OIDC

OpenID Connect (OIDC)是使用 0Auth2.0 授权框架的身份认证层。关键点是OIDC同时提供身份认证和授权。与OpenID一样, OIDC由OpenID基金会维护。

比较 SAML、 OAuth、 OpenlD 和 OIDC

SAML要点概述如下:

  • SAML2.0是一种基于XML的开放标准。
  • OASIS在2005年将SAML2.0纳入标准。
  • SAML2.0使用三个实体,即主体、服务提供商和身份提供者。
  • SAML可以提供主体的认证、授权和属性信息。

OAuth要点概述如下:

  • OAuth是一个授权框架,而不是一个认证协议。
  • RFC6749描述了OAuth2.0。
  • OAuth使用API交换信息。
  • 应用程序从身份提供者那里获取访问令牌。随后,应用程序包含用于授权的令牌。

OpenID要点概述如下:

  • OpenID是一种身份认证标准。
  • 由OpenID Foundation维护。
  • OpenID提供商提供去中心化的身份认证。

OIDC要点概述如下:

  • OIDC使用OAuth2.0的身份认证层。
  • 它建立在OpenID身份认证标准之上。
  • 它提供身份认证和授权。
  • 它建立在OpenID之上,但使用json web令牌

在内部网络实现SSO

SSO解决方案也适用于内部网络。 Kerberos是最常见的SSO解决方案。

AAA协议

提供身份认证、授权和计费的协议被称为AAA协议。

AAA协议有助于确保内部局域网身份认证系统和其他胀务器免受远程攻击。

Kerberos

票证身份认证是一种采用第三方实体来证明身份并提供身份认证的机制。Kerberos是最常见和最著名的票证身份认证。Kerberos的主要目的是身份认证。在用户通过身份认证并证明其身份后,Kerberos使用用户已证明的身份来签发票证,用户在访问资源时出示这些票证即可。

Kerberos关键要素:

  • 密钥分发中心:密钥分发中心是提供身份认证服务的可信第三方。Kerberos使用对称密钥加密技术来向服务器验证客户端。所有客户端和服务器都需要向KDC注册,而KDC维护所有网络成员的密钥。
  • Kerberos身份认证服务: 身份认证服务器承载KDC的功能。票证授予服务(TGS)和身份认证服务(AS)。身份认证服务验证或拒绝票证的真实性和时效性。此服务器通常被称为KDC。
  • 票证:票证是一种加密消息,可证明主体被授权访问对象。票证有时被称为服务票证(ST)。
  • 票证授予的票证:票证授予的票证(TGT)提供证据,证明主体已通过KDC的身份认证并且可以请求票证来访问其他对象。 TGT是经过加密的,包括对称密钥、到期时间和用户IP地址。当请求访问对象的禀证时,主体将出示TGT。
  • Kerberos主体:Kerberos向Kerberos主体发出票证。 Kerberos主体通常是用户,但也可以是请求票证的任何实体。
  • Kerberos领域:Kerberos领域是由Kerberos控制的逻辑区域(如域或网络)。领域内的主体可以从Kerberos请求票证,而Kerberos可以向领域内的主体发出票证。

Kerberos需要一个账户数据库,它通常存储在目录服务,例如微软的目录服务(AD)。

Kerberos 登录流程的工作原理如下:

  1. 用户在客户端输入用户名和密码。
  2. 客户端使用AES对用户名进行加密并将其传输到KDC。
  3. KDC根据已知凭证的数据库来验证用户名。
  4. KDC生成一个对称密钥,该密钥由客户端和Kerberos服务器使用。KDC使用用户口令的哈希值对密钥进行加密。
  5. KDC还会生成一个加密的附带时间戳的TGT。
  6. KDC然后将加密的对称密钥、加密的带时间戳的TGT传输给客户端。
  7. 客户端存储TGT以供使用,直到它过期。客户端还使用用户口令的哈希值来解密对称密钥。

当试图访问一个对象(如托管在网络上的资源)时,客户端必须通过 Kerberos 服务器获得票证。此过程包括以下步骤:

  1. 客户端将自己的 TGT 发送至 KDC, 并请求访问资源。
  2. KDC 验证 TGT 是否有效并检查其访问控制矩阵,进而验证用户是否具有足够的权限来访问请求的资源。
  3. KDC 生成服务票证并将其发送给客户端。
  4. 客户端将服务票证发送到托管资源的服务器或服务。
  5. 托管资源的服务器或服务通过KDC验证票证的有效性。
  6. 一旦验证过身份和授权,Kerberos活动就结束了。服务器或服务主机便与客户端建立会话,并开始通信或数据传输。

Kerberos是一种通用身份认证机制,适用于本地局域网、远程访问和客户端/服务器资源 请求。但是,Kerberos存在单点故障,即KDC。如果KDC被泄露,则网络上每个系统的密钥也会泄露。此外,如果KDC脱机,则无法开展主体的身份认证。

Kerberos也具有严格的时间要求,默认配置要求所有系统保持5分钟以内的时间同步。如果系统不能在时间上同步或时间被修改,那么之前签发的TGT将会失效,系统便无法接收任何新的票证。实际上,客户端将无法访问所有受保护的网络资源。

管理员通常在网络内部配置个时间同步系统。在活动目录域中,一个域控制器(DC)与外部网络时间协议(NTP)服务器在时间上保持同步。所有其他DC将其时间与第一个DC保持同步,而其他系统在登录时将其时间和其中一个DC保持同步。

RADIUS

远程认证拨入用户服务(RADIUS)集中认证远程访问连接,例如VPN或拨号访问。

RADIUS 通常适用于组织拥有多台网络访问服务器(或远程访问服务器)的情况。用户可以连接到任意的网络访问服务器,然后该服务器将用户凭证传送至 RADIUS 服务器,开展身份认证、授权和跟踪计费。

许多互联网服务提供商(ISP)使用RADIUS实施身份认证。用户可以从任何地方访问ISP, ISP服务器将用户的连接请求转发至RADIUS服务器以进行身份认证。

RADIUS在默认情况下仅对口令的交换进行加密,但可以使用RADIUS/TLS 对整个会话进行加密。

安全 CISSP