#8655 Allow to establish trust to Active Directory in FIPS mode
Closed: fixed 3 years ago by frenaud. Opened 3 years ago by abbra.

MIT Kerberos libraries consider RC4 cipher insecure and when system-wide policy disables RC4, they do not allow applications to operate on RC4 at all. At the same time, RC4 is not available in FIPS mode either. Samba 4.14 (and backports to Fedora 33+ and RHEL 8.4+) started to block use of weak crypto as well.

The cipher and hashes using RC4 are essential for two operations in SMB protocol:

  • setting up trust between domains in Active Directory environment: RC4 is used to encrypt trusted domain object credentials as an application-specific material in accordance with MS-LSAD specification;

  • in a secure channel based on AES session key communicating between SMB domain member and domain controller: as an input to set up a secure channel.

Extend FreeIPA code that establishes trust to Active Directory to be able to run in FIPS mode

In technical terms, the use of RC boils down to

  • LSA CreateTrustedDomainEx2. For any AuthInfo type, (0x00000001 (rc4hmac key) and 0x00000002 (plain text password) are the most common ones) the content in AuthenticationInformation is considered an application level payload because it is encrypted with a session key negotiated with the transport. Covered by MS-LSAD section 3.1.4.7.10 and MS-LSAD section 5.1.1

  • ServerAuthenticate3 call needs an AES session key which is calculated based on an rc4hmac of a machine account credential according to MS-NRPC section 3.1.4.3.1

Samba 4.13 and backports to 4.12 in Fedora 33+ and RHEL 8.4+ now provide a helper that wraps LSA RPC call CreateTrustedDomainEx2. This helper ensures that in FIPS mode we first check that LSA session key is AES before allowing RC4 use internally in Samba bindings. Thus, it becomes possible to establish trust to Active Directory forest in FIPS mode.

Adopt FreeIPA code to use the helper provided by Samba when it is available.


Metadata Update from @abbra:
- Custom field rhbz adjusted to https://bugzilla.redhat.com/show_bug.cgi?id=1860129

3 years ago

master:

  • cf17b7a ipaserver/dcerpc: use Samba-provided trust helper to establish trust
  • e157ea1 ipaserver/dcerpc.py: use Kerberos authentication for discovery
  • fd15f60 ipaserver/dcerpc.py: enforce SMB encryption on LSA pipe if available

ipa-4-9:

  • 753246f ipaserver/dcerpc: use Samba-provided trust helper to establish trust
  • 8ab9bf6 ipaserver/dcerpc.py: use Kerberos authentication for discovery
  • 3fa07a1 ipaserver/dcerpc.py: enforce SMB encryption on LSA pipe if available

Metadata Update from @frenaud:
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

3 years ago

master:

  • 968f8ad ipa-kdb: provide correct logon time in MS-PAC from authentication time
  • e6f8d8b ipasam: implement PASSDB getgrnam call
  • 7588251 ipasam: allow search of users by user principal name (UPN)
  • a1e2fe9 ipasam: free trusted domain context on failure
  • 08d7d90 ipasam: derive parent domain for subdomains automatically
  • 214aeb7 ipaserver/dcerpc: store forest topology as a blob in ipasam
  • 9d19c08 ipatests: use fully qualified name for AD admin when establishing trust
  • 9424256 Update ipa_sam.c
  • ae7cd47 trust-fetch-domains: use custom krb5.conf overlay for all trust operations
  • 54e5ffc use a constant instead of /var/lib/sss/keytabs

ipa-4-9:

  • f8bf374 ipa-kdb: provide correct logon time in MS-PAC from authentication time
  • 962052a ipasam: implement PASSDB getgrnam call
  • 2e8eb0f ipasam: allow search of users by user principal name (UPN)
  • e8f927d ipasam: free trusted domain context on failure
  • f103172 ipasam: derive parent domain for subdomains automatically
  • 3d706b6 ipaserver/dcerpc: store forest topology as a blob in ipasam
  • dc16c24 ipatests: use fully qualified name for AD admin when establishing trust
  • b535924 Update ipa_sam.c
  • c842d4b trust-fetch-domains: use custom krb5.conf overlay for all trust operations
  • 9f63afb use a constant instead of /var/lib/sss/keytabs

Metadata Update from @abbra:
- Custom field changelog adjusted to When IPA is deployed in FIPS mode, it is now possible to establish trust to Active Directory forest.

3 years ago

Login to comment on this ticket.

Metadata