Skip to content

Breaking changes in identity hashing algorythms check #61726

Open
@piskov

Description

@piskov

Is there an existing issue for this?

  • I have searched the existing issues

Describe the bug

In .NET 7 @adityamandaleeka introduced breaking changes.

PasswordHasherCompatibilityMode.IdentityV3 logic was modified: algo changed to HMACSHA512 from HMACSHA256, iterations count changed to 100k from 10k, etc.

We recently upgraded from .net 6 to .net 9 and some of our legacy systems (still under .net framework, not .net core) now fail to login after they login in .net core app under the same account.

If I understand correctly, this is due to the introduced mandatory rehashing of v3 (old) to v3 (new) password on login. Which completely broke auth logic for .net framework (not .net core) clients as they under v3 compatibility expect previous values.

Please fix this because people still have great deal of legacy .NET Framework code.

From what I understand (most likely incorrect) this should never happened and instead of changes of v3 logic, PasswordHasherCompatibilityMode.IdentityV4 should have been introduced. Because — duh :) — that was the purpose of different compatibility modes in the first place.

Expected Behavior

Log in under .net 7+ and IdentityV3 compatibility shouldn’t rehash passwords from sha256 and 10k to sha512 and 100k iterations. For that new compatibility level v4 should be introduced.

Steps To Reproduce

No response

Exceptions (if any)

No response

.NET Version

.net7+

Anything else?

No response

Metadata

Metadata

Assignees

Labels

area-identityIncludes: Identity and providers

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions