安保防护
NCache 提供一个安全框架,通过身份验证、授权和加密通信来保护缓存服务器节点。它支持基于 LDAP/Active Directory 的用户验证和基于角色的访问控制。 NCache 该缓存采用基于 RSA 的凭证交换和 TLS 加密技术进行安全通信。这种多层架构将管理与数据层访问分离,确保只有经过身份验证的用户才能与缓存交互,同时保持线速吞吐量。
认证与授权
NCache 提供与 LDAP 集成的安全机制,以保护缓存节点。节点安全设置完成后,该节点上定义了两个访问级别:
- 机器级授权:这是由目标服务器上的操作系统级管理员执行的。
- NCache-级授权这控制着谁可以管理。 NCache 谁可以访问安全缓存。
注意:
受保护节点上的所有缓存都会自动受到保护。
操作系统级管理员,也称为机器管理员,是指在服务器机器上拥有本地管理员权限的用户。该用户不必是 LDAP 或 Active Directory 用户。如果机器管理员未添加到…… NCache 出于安全考虑,该用户不被视为节点管理员或缓存用户。此类用户仅有权授权启用或禁用某些功能。 NCache 安全。
一旦 NCache 节点上已启用安全功能。 NCache 使用已注册的安全用户来授权管理和缓存操作。 NCache 支持以下类型的安全用户:
- 节点管理员
- 缓存用户
- gMSA 缓存用户
机器管理员
机器管理员是指在服务器上拥有本地管理员权限的操作系统级用户。 NCache 安全功能正在启用或禁用。此用户用于授权在机器级别进行安全配置更改。
机器管理员权限并非自动授予。 NCache 管理或缓存访问权限。执行 NCache 启用安全功能后,管理操作中还必须将用户添加为节点管理员。 NCache 安全。
如果机器管理员帐户无法查询 LDAP 或 Active Directory 目录,您可以提供单独的目录浏览凭据来验证节点管理员身份。
节点管理员
节点管理员是 超级用户 并拥有对缓存的完全控制权——他们可以创建、修改、删除缓存,以及执行任何其他缓存管理操作。
缓存用户
如果您希望限制某些用户只能访问缓存 API,而不能执行管理操作,请将他们配置为缓存用户。缓存用户只能通过相关的 API 执行数据操作,包括添加、删除、更新和检索。
如果您不想为用户定义不同的访问级别,并且希望所有用户都能对缓存执行所有类型的操作,则无需配置缓存用户,因为节点管理员已经拥有管理和操作缓存的权限。
gMSA 缓存用户
NCache 支持 gMSA 帐户作为特殊类型的缓存用户,用于在以下环境下运行的应用程序: Windows gMSA 身份与标准 LDAP 用户不同,gMSA 帐户不需要提供或存储密码,而是…… NCache 客户端 SDK 在运行时自动从 Windows 获取 Kerberos 令牌,并将身份验证委托给 Windows 身份验证(SSPI/LSA),后者从 Kerberos 密钥分发中心 (KDC) 获取 Kerberos 票据。gMSA 帐户可以添加为 缓存用户(非节点管理员) 并通过与标准 LDAP 用户相同的方式向 Active Directory 进行身份验证。指定帐户名时必须使用“$”后缀(例如,user1gmsa$)。
注意:
支持 gMSA 帐户 缓存用户 仅限。gMSA 支持需要 NCache 5.3.7以上.
凭证验证和缓存
NCache 通过配置的域控制器验证 LDAP 和 Active Directory 用户。当用户或组添加到域控制器时,会执行此操作。 NCache 安全, NCache 验证该身份是否存在于目录中。
如果在验证期间域控制器不可用,则操作失败,并且无法添加或验证用户身份。
为了减少进程生命周期内的重复身份验证, NCache 提供凭据缓存功能。启用后,已通过身份验证的用户的凭据将被缓存。 NCache 这样,用户在同一流程生命周期内就不需要重复进行身份验证。
凭据缓存默认处于禁用状态。要启用它,请进行以下设置: NCacheServer.EnableCredentialCaching 标签设置为 True NCache 服务配置文件。
同质安全设置
为一个节点建立安全设置后,您需要确保该集群中的所有节点都具有类似的安全设置。在一个节点上担任节点管理员的用户应该也是该集群中所有其他节点上的管理员。同样,在一个节点上担任缓存用户的用户应该也是其余节点上的缓存用户。
如果集群所有节点上的安全设置不一致,则在管理和操作缓存时可能会遇到各种问题。
注意:
- 作为缓存集群中第一个节点的安全节点应防止添加易受攻击的节点。
- 作为缓存集群中的第一个节点的易受攻击的节点应阻止添加安全节点。
数据加密
在分布式缓存系统中,通信主要发生在网络通道上。 数据以序列化形式传输并驻留在缓存中,如果数据未加密,任何窃听您连接的人都可以轻松拦截您的数据。 NCache 数据加密可以将信息转换为密文。只有授权人员(即拥有相应密钥的人)才能解密代码并获取原始信息。 NCache 支持 AES、3DES 和 AES FIPS 加密算法.
数据加密工作流程
当您将数据添加到缓存时,系统会在客户端使用已配置的加密算法和加密密钥对其进行加密。加密数据存储在缓存中,确保数据安全。现在,当获取加密数据时,系统会从缓存中检索数据,并在使用前在客户端进行解密。这种端到端加密方法可确保数据在传输过程中和静态时均受到保护,从而 NCache 用于缓存敏感信息的安全解决方案。
加密密钥管理
加密密钥管理 NCache 涉及安全处理所有加密密钥,包括 密钥加密密钥 (KEK), 数据加密密钥 (DEK)和 凭证加密密钥 (CEK),如下所述。
密钥加密密钥 (KEK):密钥加密密钥 (KEK) 基于 AES 256 加密,通过加密数据加密密钥 (DEK) 来保护数据加密密钥 (DEK)。此密钥必须在 NCache 服务器上的服务配置文件。为了确保分布式环境中所有缓存服务器的一致性和安全性,每台服务器必须使用相同的密钥加密密钥 (KEK)。
数据加密密钥 (DEK):数据加密密钥 (DEK) 负责在用户数据存储到缓存之前对其进行加密。此 DEK 本身也使用 KEK 进行加密。这种方法确保只有经过授权的工具或进程才能检索和使用加密密钥。
凭证加密密钥 (CEK): NCache 加密存储在客户端配置文件中的用户凭证(客户端.ncconf) 使用凭证加密密钥 (CEK)。此密钥必须在 NCache 服务配置文件。与 KEK 类似,每台服务器必须使用相同的凭据加密密钥 (CEK)。这确保了一致性,并在分布式环境中有效地保护了客户端凭据。
管理工具的密钥交换和身份验证机制
NCache 采用先进的加密技术,为管理工具进行安全密钥交换和身份验证,例如 NCache 管理中心、PowerShell 等,如下所述。
密钥加密密钥管理
对于管理工具,密钥交换过程涉及在流程生命周期内生成 RSA-256 公钥/私钥对。该工具与服务器共享其公钥。然后,服务器使用此公钥加密 KEK,并与该工具共享加密的 KEK。管理工具使用其私钥解密 KEK。此 RSA 密钥对仅在工具生命周期内有效,从而确保交换的短暂性和安全性。启用用户访问控制 (UAC) 后,只有经过授权的工具和客户端才被允许从服务器获取 KEK。
凭证加密密钥管理
管理工具使用基于 RSA 的安全密钥交换从缓存服务器获取 CEK。与 KEK 管理类似,该工具在其生命周期内生成一个基于 RSA-256 的公钥/私钥对。公钥与服务器共享,服务器使用该工具的公钥加密 CEK,并将加密后的 CEK 共享给该工具。然后,管理工具使用其私钥解密 CEK,并使用该解密后的 CEK 加密用户凭据。 客户端.ncconf 文件中。
客户端密钥交换
类似地,客户端连接到服务器并使用基于 RSA 的安全密钥交换请求 CEK。服务器使用客户端的公钥加密 CEK,客户端使用其私钥解密 CEK,从而能够解密存储在 客户端.ncconf.
传输层安全性 (TLS) 加密
而 NCache 包括 数据加密 功能,它可以保护内存中和网络传输过程中的数据。 然而,数据加密会带来额外的性能成本。 另一方面, 传输层安全性(TLS) 遵循行业标准实践,提供更全面的方法来保护网络传输期间的数据安全。
尽管 TLS 也会对性能产生影响,但它往往比替代方案(即数据加密)占用更少的资源。 因此,更重要的是 NCache 操作,其中涉及以多种方式通过网络传输数据:
- 服务器和客户端之间
- 不同服务器之间
- 缓存和网桥之间
In NCache,您可以决定在网络上传输的通信类型,并使用 TLS 进行加密。这种选择让您完全掌控数据安全。通常,人们会加密公共互联网上的流量,例如用于 WAN 复制的 Bridge 通信。但是,对于安全敏感的应用程序,您可能应该加密客户端与服务器之间以及不同服务器之间的流量。
TLS 证书注意事项
实施 TLS 时,证书存储在 个性化服务 或 受信任的根证书颁发机构存储 并可在 用户 和 本地机器 水平。 放置在本地计算机级别的证书可供所有用户访问,而用户级证书仅限于特定用户。
此外,这些证书需要验证。 服务器端证书必须在客户端进行 TLS 验证,验证客户端是否信任证书颁发机构。 如果您使用的是公开认可的证书颁发者,则可能不需要在客户端的受信任根证书颁发机构存储中安装颁发者的证书。 但是,对于自签名或私有证书,您必须确保颁发者的证书安装在客户端的受信任根证书颁发机构存储中,以避免任何机会 TLS握手 失败。
对于客户端和服务器之间的双向 TLS 连接,客户端必须将其证书共享给服务器。在这种情况下,服务器必须信任客户端证书的颁发者,并且该颁发者的证书必须安装在服务器的受信任根证书颁发机构 (TrustedRoot Certificate Authority) 存储区中。同样,当在服务器之间启用 TLS 连接时,参与通信的其他服务器也必须验证彼此的证书。
NCache 在服务器框中搜索证书时遵循特定顺序:
- 本地计算机:受信任的根
- 本地机器:个人
- 当前用户:受信任的根
- 当前用户:个人
了解这些注意事项将确保您的部署 NCache TLS 加密顺利进行。
HTTPS 用于 NCache 管理中心
与 TLS 类似,HTTPS(安全超文本传输协议)是一种广泛使用的协议,用于保护网络通信的安全。 像这样, NCache 支持 HTTPS NCache Windows 和 Linux 中的管理中心使用 TLS 证书。
在本节中
用户安全
解释如何配置节点和缓存的安全性。
甲磺酸
描述如何使用以下方式添加 gMSA 缓存用户或组: NCache 管理中心和 PowerShell 命令。
TLS
描述如何在 Windows 和 Linux 中启用和配置缓存的 SSL 加密。
加密
描述如何启用和配置缓存加密。
HTTPS 用于 NCache 管理中心
描述如何启用和配置 HTTPS NCache 管理中心。