【发布时间】:2020-08-13 20:54:42
【问题描述】:
背景: 我有一个在 AWS FARGATE 容器(在 Linux 上)中运行的 ASP.NET Core 3.1 应用程序。
我需要做什么: 我需要使用内置的 .NET Core 解决方案对密码进行哈希处理。我更喜欢使用不需要管理密钥轮换的解决方案;但如果没有其他选择,就会这样做。
我想使用Microsoft.AspNetCore.Identity.PasswordHasher<TUser> 对密码进行哈希处理。但是,我不知道这是否使用某种密钥轮换机制(例如 DPAPI)来生成哈希。根据ASP.NET Core Data Protection,default 实现处理密钥生成和轮换 - 即密钥存储在 LOCAL CryptoRing 默认每 90 天轮换一次。因此:
- 密钥不可转让
- 解密密钥的有效期仅为 90 天
如果我需要处理密钥轮换,我认为(不确定)基于云的解决方案是生成一个加密密钥并添加到 Azure。但是,如果我只使用Microsoft.AspNetCore.Identity.PasswordHasher<TUser> 来散列密码而不使用任何 ASP.NET Core 数据保护,我需要知道是否需要这样做。 TIA
【问题讨论】:
标签: asp.net-core .net-core asp.net-identity password-hash dpapi