NCache 提供了一套强大的 安全性 旨在保护分布式缓存环境且不影响性能的功能。例如,它提供的访问控制功能允许您定义特定缓存和节点的用户权限,确保只有授权用户才能执行某些操作。此外,LDAP 集成支持集中式身份验证,使管理整个系统的安全访问更加轻松。
此外,为了保护敏感数据, 数据加密 使用 AES、3DES 和 AES FIPS 等算法在内存和传输过程中保护数据。然而,这会增加性能成本。为了更高效的网络安全, 传输层安全性 (TLS) 加密 以较少的开销保护客户端、服务器和网桥之间的通信,并允许您选择要保护的通信路径。此外, HTTPS支持 确保访问 NCache Windows 和 Linux 上的管理中心均使用 TLS 证书,确保安全加密的管理访问。这些安全功能包括: NCache 可分为以下三个主要领域:
用户安全 NCache 通过管理与缓存集群交互的用户的身份验证和授权,确保安全的访问控制。
NCache 通过产品内置的身份验证和授权提供安全性。 NCache 根据以下两种不同的安全级别对用户进行分类:
NCache 实施基于角色的访问控制 (RBAC),以确保只有授权用户才能访问或管理集群。通过与支持 LDAP 的目录服务(例如 Microsoft Active Directory)原生集成, NCache 它强制执行集中式身份验证,使组织能够在现有的身份基础架构内管理安全策略。 NCache 启用安全机制后,所有与缓存集群的连接都必须首先通过缓存服务器上的 LDAP 目录进行身份验证。在此过程中,用户必须提供用户名、专有名称 (DN) 和密码。如果这些凭据身份验证失败,则连接请求将被拒绝。
在这种情况下,如果与域控制器的连接中断,验证将失败,用户将无法执行任何操作。为了避免这种情况, NCache 提供凭据缓存功能,用户的凭据存储在其中。 NCache 这样,已通过身份验证的用户在流程生命周期内无需重复进行身份验证。此功能默认禁用,用户可以通过服务配置文件启用它。您需要根据安全级别在以下位置指定用户凭据。更多详细信息,请参阅[此处应插入相关文档]。 NCache 文件记录.
节点管理员: 添加节点管理员如下:
Add-NCacheUserOrGroup -Server 20.200.20.40 -AccessLevel Admin -AdminCredentials(Get-Credential john_smith) -UserOrGroupName john_smith -UserOrGroupDN "CN=John Smith,OU=engineers,DC=example,DC=com" -DomainController test_domain
然后你可以 启用安全性 正如你下面看到的:
Enable-NCacheSecurity -Server 20.200.20.40 -AdminCredentials(Get-Credential john_smith) -WriteCredentialsToServiceConfig
您还可以使用以下方式配置节点级别安全性 NCache 管理中心.
您已成功保护节点及其缓存的安全。如前所述,要限制某些用户在没有完全管理权限的情况下执行缓存操作,请将其添加为“缓存用户”。对于节点管理员,请使用相同的 cmdlet,方法是将 AccessLevel 指定为 Cache,并将 CacheName(您希望用户访问的缓存名称)指定为 Cache。运行以下命令:
Add-NCacheUserOrGroup -Server 20.200.20.40 -AccessLevel Cache -CacheName demoCache -AdminCredentials(Get-Credential john_smith) -UserOrGroupName john_smith -UserOrGroupDN "CN=John Smith,OU=engineers,DC=example,DC=com" -DomainController test_domain -EnableSecurity Yes
您还可以配置凭据 以编程方式。下面显示了如何使用所需的用户凭据调用此方法的示例:
// Specify cache name and user credentials
string cacheName = "demoCache";
string userId = "userid";
string password = "mypassword";
// Initialize the CacheConnectionOptions
var options = new CacheConnectionOptions();
// Enter the credentials
options.UserCredentials = new Credentials(userId, password);
// Connect to the cache using the security credentials
ICache cache = CacheManager.GetCache(cacheName, options);
为一个节点设置好安全配置后,您需要确保集群中的所有节点都具有相同的安全配置。在一个节点上担任节点管理员的用户,也应该是该集群中所有其他节点的管理员。同样,在一个节点上担任缓存用户的用户,也应该是其他节点的缓存用户。如果集群中所有节点的安全配置不一致,您在管理和运行缓存时可能会遇到各种问题。
后 NCache 成功验证到缓存的连接,它检查 NCache 缓存服务器上的配置文件来授权此连接。一旦连接通过 Active Directory 的身份验证,它就会从 安全.ncconf 文件或 客户端.ncconf 根据您是否分别使用节点级别或缓存级别安全性。
如果您的应用程序处理您想要保护的机密和敏感数据,并且您正在使用 内存分布式缓存,您需要确保您的分布式缓存通过加密保护这些敏感数据免受不必要的访问。
NCache 它支持丰富的行业标准加密算法,包括 AES-256 和符合 FIPS 标准的 AES,帮助企业满足 PCI-DSS、HIPAA 和 GDPR 等监管要求。这确保您的敏感数据始终受到 NIST 推荐的加密标准的保护。 NCache 支持以下加密算法:
以下是每种算法及其支持的变体的详细信息:
三重数据加密标准 (3DES)
三重数据加密标准 (3DES) 是一种对称密钥分组密码算法,对每个数据块应用三次 DES 加密算法。以下 3DES 算法的不同变体支持 NCache 是:
高级加密标准(AES)
高级加密标准 (AES) 是一种对称分组密码算法,其分组/块大小为 128 位。它使用 128、192 和 256 位的密钥转换这些单独的分组。加密这些分组后,它会将它们连接在一起形成密文。AES 算法支持的不同变体 NCache 是:
NCache 数据加密和解密发生在内部 NCache 客户申请流程。 因此,在您的应用程序和缓存集群之间通过网络传输的所有数据都已加密。 同样,只有加密数据存储在缓存存储中。 您提供的加密密钥 NCache 用途,保存在里面 NCache 安全配置文件 在每个缓存服务器上以加密方式保存数据。连接成功后,加密密钥会自动发送给客户端,供其在内存中使用。
您可以通过以下方式启用加密 NCache 管理中心 无需您进行任何编程工作。 启用加密后, NCache 客户端在将它们发送到缓存集群之前自动开始加密您的对象。 而且,它会自动解密从缓存中获取的对象,然后再将它们传递给您的应用程序。
加密密钥管理 NCache 涉及安全地处理所有加密密钥,包括密钥加密密钥 (KEK)、数据加密密钥 (DEK) 和凭证加密密钥 (CEK),如下所述。
为了安全地交换加密密钥和用户凭证, NCache 采用基于RSA的公钥/私钥加密。RSA加密仅用于客户端与服务器之间通信以及服务器之间交换期间的密钥和凭证传输。
而 NCache 它包含数据加密功能,可以保护内存中的数据以及网络传输过程中的数据安全。然而,数据加密会带来额外的性能开销。另一方面,传输层安全协议 (TLS) 遵循行业标准,提供了一种更全面的方式来保护网络传输中的数据。虽然 TLS 也会对性能产生影响,但它通常比数据加密这种替代方案消耗的资源更少。
传输层安全性 TLS 加密可确保服务器与客户端、不同服务器、缓存和网桥之间的数据交换安全。用户可以启用任何已颁发或自签名的证书来与客户端建立连接,也可以启用组件到组件的连接。 NCache。这保证了加密数据传输,与 TLS 保护的数据是分开的。
NCache 提供强大的传输层安全协议 (TLS 1.2 和 1.3),以保护传输中的数据。这包括对双向 TLS (mTLS) 的支持,可在客户端和服务器之间提供双向身份验证。这确保了所有通道(包括客户端到服务器、服务器到服务器以及 WAN 桥接连接)上的加密通信。为了建立这些安全通道,TLS 依赖于数字证书进行身份验证。这些证书可以安装在受信任的根证书存储区或个人(我的)证书存储区中,从而为组策略可能限制根证书存储区使用的环境提供了灵活性。建议使用公共 CA 颁发的证书,以避免额外的信任配置。但是,也可以使用私有 CA 证书,前提是颁发机构已添加到所有服务器和客户端的受信任根证书存储区中。
NCache 支持标准 TLS 和双向 TLS 两种安全认证方式。在标准 TLS 中,每个服务器上都会安装一个服务器证书。 NCache 服务器允许客户端在握手期间验证服务器的身份。双向 TLS 通过要求客户端也提供证书来进一步加强这一过程,确保客户端和服务器在建立安全连接之前相互验证身份。为了在整个分布式缓存环境中实现安全通信,TLS 现在不仅保护客户端与服务器之间的交互,还保护服务器之间的通信以及通过桥接连接交换的数据。
NCache 它提供了一种通过新方式无缝配置传输层安全 (TLS) 的方法。 启用-NCacheTLS 和 禁用-NCacheTLS cmdlet。证书安装完毕并启用 TLS 后,所有参与节点之间将强制执行安全通信。配置更改需要 NCache 服务重启后生效,用户可以通过管理中心或日志验证加密状态,日志会显示 TLS 握手操作成功。
要在 Windows 或 Linux 中配置 TLS 加密,请按照 配置 TLS 加密 NCache
| 安全层 | 技术/标准 | 目的 |
|---|---|---|
| 认证 | LDAP/活动目录 | 集中化身份管理;根据现有的企业域控制器验证用户身份。 |
| 授权 | RBAC(管理员 vs. 用户) | 通过将管理任务限制在特定授权角色范围内,强制执行最小权限原则。 |
| 数据隐私 | AES-256 / FIPS 140-2 | 使用 NIST 推荐的加密标准,确保数据在静态、内存和传输过程中的机密性。 |
| 网络完整性 | TLS 1.3 / mTLS | 提供端到端加密;双向 TLS 可防止中间人攻击 (MITM) 并确保双向验证。 |
| 管理权限 | HTTPS/TLS | 确保 NCache 管理中心(Windows 和 Linux),具备加密管理通信功能。 |