Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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:-
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.