From GlusterFS to Azure Files: A Real-World Migration Story
June 4, 2025Azure Managed HSM and Azure Key Vault Premium are now FIPS 140-3 Level 3
June 4, 2025Howdy, everyone! I wanted to write this blog post to discuss the new Kerb3961 library introduced in Windows Server 2025 / Windows 11 24H2. It is (hopefully) making encryption type (etype) usage within Kerberos much easier to anticipate and understand.
Let’s start with…
What is Kerb3961?
Kerb3961, named after RFC3961, is a refactor of the Kerberos cryptography engine in its own library. This library is now the authoritative source of:
- Etype selection
- Etype usage
- Etype management
For the average IT administrator, the part that is going to be most interesting is #1.
The Kerb3961 policy engine is what will authoritatively determine what etypes are available given different Kerberos key usage scenarios. Whereas in previous Windows releases, there were instances of hard coded etype usage due to technical limitations at the time of implementation.
Kerb3961 still leverages existing Kerberos etype configuration group policy: Network security Configure encryption types allowed for Kerberos – Windows 10 | Microsoft Learn. However, it no longer honors the legacy registry key path of:
HKEY_LOCAL_MACHINECurrentControlSetControlLsaKerberosParameters
REG_DWORD SupportedEncryptionTypes
As a reminder, the group policy mentioned above is used to configure the supported encryption types for a machine account. The machine then propagates this information into Active Directory (AD) where it is stored in the msds-SupportedEncryptionType attribute for the account.
It has no effect on non-etype related Kerberos settings such as those outlined in Registry entries about Kerberos protocol and Key Distribution Center (KDC) with the exception of the DefaultDomainSupportedEncTypes registry key.
The biggest change is the reduction of hard-coded etype usage.
We have heard the frustrations of customers who are trying to eliminate RC4 usage, and the seemingly unexplainable instances of RC4 usage with their environments. This new library removes these hard-coded dependencies and aggregates all those decisions into one place.
With the goal of:
- More secure Kerberos operations by default
- More predictable Kerberos etype usage
- More stable etype additions
- More stable etype removals
For example, if we had not done this refactor, the DES deprecation and on-going work towards RC4 deprecation would not be possible.
Why did this need to happen?
Kerberos was added to Windows in the early 2000’s as a part of beginning the move away from NTLM and into modern cipher usage. Over these decades, there have been incredible strides in security hardening that the original developers could not have foreseen. As a result, some of the design decisions made during that initial implementation impacted our ability to reliably change the way Kerberos operates.
This can be seen in things like:
Additionally, with the long tail of code in this area and the etype that has been historically used, it had become a near impossibility to add or remove a cipher due to how the etypes were directly associated in Kerberos.
What does this mean going forward?
The Kerb3961 library has key implications going forward. The biggest one is the removal of hard-coded cipher usage and a stronger adherence to the administrators’ configured encryption types.
The environment will operate as configured.
Meaning IT administrators can have a high degree of confidence that their configurations will be honored.
This increases the amount of knowledge required by administrators. Misconfigurations, previously hidden by loose adherence to the configured etypes, will now be exposed. For more information about Kerberos etype selection, refer to the Kerberos EType Calculator.
What needs to be done?
To configure an environment requires understanding what etypes are used within an environment. To help aid in this endeavor, we have improved Key Distribution Center (KDC) auditing.
- 4768(S, F) A Kerberos authentication ticket (TGT) was requested. – Windows 10 | Microsoft Learn
- 4769(S, F) A Kerberos service ticket was requested. – Windows 10 | Microsoft Learn
We have also published two PowerShell helper scripts that leverage these new events. The goal of these scripts is to allow for easier identification of both etype usage and account key availability.
These scripts are published on the Microsoft Kerberos-Crypto GitHub repository, where, going forward, we will be using scripts and information published there to better interface with the community.
We acknowledge that substantial changes can introduce regressions and friction points for those with mature environments. It is our goal to allow for a smooth adoption of these new features and prevent any unnecessary pain for our already overworked and under-appreciated system administrators.
Please be sure to leverage Feedback Hub to share your experiences with us. If you would like to see any of these features early, we highly recommend leveraging the Windows Insider Program and opting into Continuous Innovation and sharing feedback directly with the development team.
We understand that this can be challenging, and Microsoft is committed to ensuring that the knowledge needed to make an informed decision about what is right for your environment.