{"id":15943,"date":"2022-11-09T10:00:28","date_gmt":"2022-11-09T10:00:28","guid":{"rendered":"https:\/\/exa.net.uk\/?p=15943"},"modified":"2024-01-23T11:21:50","modified_gmt":"2024-01-23T11:21:50","slug":"kerberos-from-rc4-to-aes","status":"publish","type":"post","link":"https:\/\/edit.exa.net.uk\/knowledge-hub\/technical\/kerberos-from-rc4-to-aes\/","title":{"rendered":"Kerberos from RC4 to AES"},"content":{"rendered":"\t\t
This change was linked to the as-yet undisclosed vulnerability CVE-2022-37966<\/a>, which is mitigated by setting the default encryption type as AES on accounts that are not already marked with a default value. We have historically required Kerberos tokens to be encrypted using the RC4 cipher due to support across all of our customer installations and this change resulted in our servers refusing to serve web content since we were unable to verify user identity.<\/p> To restore service for the affected customers, our engineers deployed an update across the SurfProtect proxy servers to enable support for AES. This change ensures that the Microsoft patches can be applied with no need for any intervention by local administrators in order for SurfProtect SSO to continue to function as normal.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Our engineers recently undertook work to add support for AES in the SurfProtect web proxy. This change addresses concerns about the security of RC4-HMAC, as detailed below, and also provides a migration path in anticipation of client support being withdrawn for the deprecated encryption mechanism.<\/p> Before the release of Microsoft’s November 2022 security update, AES support was rolled out to a limited number of customers and verified to be functional. After a small number of sites experienced errors when attempting to access the SurfProtect Active Directory service, the decision was made to expedite deployment of the feature and emergency maintenance was performed to push the feature to all of our SurfProtect clusters.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Due to the ongoing phased rollout of the new SurfProtect software stack, some servers in both London and Manchester were not able to accept the update without additional changes and work is scheduled for this weekend, beginning 2022-11-12, to migrate them to the new software. This older version of the service responds differently to the new default when encountering errors decoding Kerberos tokens and fails open so that users are filtered with a default profile. We are actively monitoring for this behaviour and will migrate affected customers directly to the new platform in order to avoid unexpected filtering behaviour.<\/p> Most customers on the new platform are still providing proof of identity encrypted with RC4 but instructions for manually switching to AES are provided at the end of this article. Details of the upcoming service migration are available on our\u00a0status page<\/a>\u00a0and we recommend waiting for confirmation that the work was carried out before making any changes.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t So, effectively, the string-to-key function used by RC4-HMAC returns the NTLM hash of a user’s password.<\/p> NTLM password hashes are constructed from a single pass of the MD4 algorithm over the user’s password in UTF-16LE format, producing a 16-byte key that wouldn’t be practical to brute force. They had the undeniable benefit of being available from data migrated from existing NT domains but unfortunately don’t themselves provide protection against brute force attacks: in particular, they lack salts and require only a single iteration of the MD4 algorithm so an attacker can feasibly search in a practical amount of time through all the possible keys that can be generated from weak passwords.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Fortunately, this isn’t actually useful for compromising normal user accounts thanks to pre-authentication, where a client is required to prove that it already knows the user’s password hash before the server will respond to authentication requests. In the case of services such as SurfProtect where Kerberos is used to prove user identity for Single Sign-on, however, any domain-authenticated user with rights to access the service will on request be provided with a Service Ticket. This ticket is encrypted with a key derived from the corresponding service-user password and can therefore be used to potentially identify that service user’s password with no need for any further interaction with the AD server or remote service.<\/p> Typically it’s expected that service accounts may require elevated privilages so the attacker, who already has local user access to the domain, has now gained administrator rights. Since the SurfProtect account is created with no elevated privileges, the impact of a local user gaining access is significantly reduced.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t Suggested<\/span> Next Read <\/i><\/span><\/p>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\tUpdate<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Background<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
string-to-key<\/code>.\n\nRFC-4757<\/a>\u00a0(The RC4-HMAC Kerberos Encryption Types Used by Microsoft Windows) declares that:\n
On upgrade from existing Windows NT domains, the user accounts would not have a DES-based key available to enable the use of DES base encryption types specified in [RFC4120] and [RFC3961]. The key used for RC4-HMAC is the same as the existing Windows NT key (NT Password Hash) for compatibility reasons.<\/blockquote>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Mitigation<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
properties<\/code>\u00a0to open the properties window, then navigate to the tab labelled\u00a0
Account<\/code>. Scroll through the\u00a0
Account Options<\/code>\u00a0and check one or both of: – This account supports Kerberos AES 128 bit encryption – This account supports Kerberos AES 256 bit encryption\n\nClick on\u00a0
Apply<\/code>\u00a0and users will immediately begin to receive AES-encrypted service tickets the next time the log in and start to use the SurfProtect service.\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t