Hello development list,
sorry for dropping in here.
Because I am an absolute newbie, I guess it might be better to explain major changes before I submit them in a patch.
The first section affected by this the SSL/TLS configuration used by Apache. As far as I am concerned, there are these issues at the moment:
(a) DH cipher suites Because of several reasons, I would like to see them disabled. First, they are more or less obsolete since all modern User Agents (i.e. Web Browsers) does not support them, they mostly use ECDHE instead. (Note that this is valid for web sites only; other type of servers - especially mail servers - are often maintained very badly and therefore do not support anything better.)
Second, DH is much slower and needs more CPU time on both server and client than ECDHE. While this not a problem on up-to-date hardware, it might be an issue for older systems.
Third, DH is vulnerable to LOGJAM, which is the most important reason to disable it. Fixing LOGJAM is not that easy since it would require i) Apache 2.4.x, which seems to be in development since some patches appeared here the other day ii) an individually created DH prime file, which takes usually more than 20 minutes and requires a huge amount of CPU time. So, disabling the DH cipher suites would be a relatively simple workaround.
(b) Cipher strength Currently, AES128 is preferred over AES265 nearly all the time. Since I do not see any reason for this, I would suggest to order them by strength.
(c) Unused ciphers Further, there are many unused cipher suites listed (such as SRP, DSS and PSK) which are not supported by any modern browser - and probably never will. Thereof it might make sense to remove them, since they cause the cipherlist to be quite complex and hard to understand.
(d) Certificate dual-stack At the first boot, IPFire generates an RSA host key for Apache with a size of 4096 bits.
However, there is another key exchange algorithm, called ECDSA. It has several advantages over RSA: i) Compared by key size, it is more secure. An ECDSA key with 256 bits provides the same strength as a RSA key with 3072 bits. ii) Key generation is much faster (384 bits should be sufficient for most applications, it equals about 9216 bits RSA). Especially on slower hardware or systems without a HWRNG, this will accelerate the first boot. iii) It needs less CPU resources on both server and client than RSA. Again, this might be relevant for systems running on legacy hardware. Since ECDSA and RSA can be used parallel (clients that do not understand one key exchange algorithm use the other), I suggest to generate an ECDSA key, too. Most modern User Agents even prefer it over RSA.
What do you think of those? (If I made a mistake somewhere - now or in the future -, I would be frightfully grateful for feedback. :-) )
Best regards, Peter Müller