`Microsoft.AspNetCore.Identity.PasswordHasher<TUser>` 是否在幕后使用 ASP.NET 核心数据保护?
Does `Microsoft.AspNetCore.Identity.PasswordHasher<TUser>` use ASP.NET Core Data Protection under the covers?
背景:
我有一个 ASP.NET Core 3.1 应用程序 运行 在 AWS FARGATE 容器中(在 Linux 上)。
我需要做的事情:
我需要使用内置的 .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 核心数据保护,我需要知道是否需要这样做。 TIA
不,不是。我通过查看代码知道这一点,可在 https://github.com/dotnet/aspnetcore/blob/master/src/Identity/Extensions.Core/src/PasswordHasher.cs.
编辑:
根据 Barry Dorans (@blowdart) 的说法,它不使用 ASP.NET 数据保护:
https://github.com/dotnet/aspnetcore/issues/21331#issuecomment-621345491
背景: 我有一个 ASP.NET Core 3.1 应用程序 运行 在 AWS FARGATE 容器中(在 Linux 上)。
我需要做的事情: 我需要使用内置的 .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 核心数据保护,我需要知道是否需要这样做。 TIA
不,不是。我通过查看代码知道这一点,可在 https://github.com/dotnet/aspnetcore/blob/master/src/Identity/Extensions.Core/src/PasswordHasher.cs.
编辑: 根据 Barry Dorans (@blowdart) 的说法,它不使用 ASP.NET 数据保护:
https://github.com/dotnet/aspnetcore/issues/21331#issuecomment-621345491