Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Security improvements #3455

Open
wants to merge 1 commit into
base: devel
Choose a base branch
from

Conversation

matt335672
Copy link
Member

Fixes #407

RDP 'classic' security is widely appreciated as insecure. The 'fips' mode, which is the most secure variant, is based on FIPS 140-1 which was withdrawn in 2002:-

https://csrc.nist.gov/pubs/fips/140-1/upd1/final

In classic security fips mode, we pass the client a 'server proprietary certificate' ([MS-RDPBCGR] 2.2.1.4.3.1.1) which uses an MD5 hash ([MS-RDPBCGR] 5.3.3.1.2). MD5 is not a permitted hashing algorithm under FIPS 140-2 and later.

RHEL 9 is in the process of transitioning from FIPS 140-2 compliance to FIPS 140-3 compliance:-

https://access.redhat.com/compliance/fips

We recently added a function to os_calls.c in 39ec708 which allows xrdp to determine if a system is in 'FIPS mode'. I'm proposing to use this function to implement the following functionality:-

  1. If the server is in FIPS mode, Classic RDP security is not allowed at all.
  2. If the server is in FIPS mode, FIPS mode xrdp-keygen creates an empty file.
  3. Logging improved around the security negotiation
  4. Warnings now generated if Classic RDP security is negotiated under any circumstances.

The documentation wording around the security_level setting in xrdp.ini is also improved.

I'd appreciate any feedback on this, particularly as it's security-related. If there's anything wrong with my thinking above, please challenge it.

1) In FIPS mode, Classic RDP security is not allowed at all.
2) In FIPS mode xrdp-keygen creates an empty file
3) Documentation wording improved around the security_level setting
4) Logging improved around the security negotiation
5) Warnings now generated if Classic RDP security is negotiated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

xrdp-keygen not FIPS compliant
1 participant