Enable post quantum hybrid ECDHE + ML-KEM groups - #147
Conversation
|
Generally speaking, the priority lists are supposed to be configured by the system (ie, the TLS library and the system's security policies). I'll try to get other reviewers to have a look at this proposal. |
|
@chucklever actually i tried adding something like to besides, none of the post-quantum kex groups were enabled by default as of gnutls 3.8.13, which is a fairly recent version and supports PQ indeed, while this patch enables them out-of-box. |
dd8d53d to
8dcbd1e
Compare
|
Thank you for the patch. I reviewed it against GnuTLS 3.8.13, the GnuTLS sources, and the release NEWS. The group names and version gates check out: X25519-MLKEM768 and SECP256R1-MLKEM768 arrived in 3.8.8, SECP384R1-MLKEM1024 in 3.8.9, and the resulting priority string parses and produces the intended group order. However, I found two problems, one of them fatal on common distributions. 1. The version check provides no runtime protection, and ML-KEM is a GnuTLS build option, not a version guarantee.
Meanwhile, the MLKEM entries in the GnuTLS group table are compiled under A runtime probe avoids both failure modes: 2. tlshd builds its priority strings with On the platforms where tlshd is primarily deployed this is also redundant: Fedora, RHEL 10, and Oracle Linux already list the three hybrids first via crypto-policies ( For these reasons tlshd should not carry a hardcoded group list. If tlshd does anything here, it would be appending the hybrid groups without Minor points: these are hybrid ECDHE + ML-KEM groups rather than "EC groups", so the title and code comment should say that; and the long concat lines should wrap at 80 columns to match the rest of the file. |
|
@chucklever IIUC, the 1st issue is that the prerequisites of MLKEM hybrid group to be available it not only a GNUTLS library greater than certain version, but the lib should also be linked to leancrypto, which is identified as a lib focus on post-quantum cryptographics. (after a quick search of its name) therefore the availability of MLKEM groups should be checked via the 2nd issue is the hard-coded priority string ( if theres no gap between the issues u mentioned and my interpret to them then the 2 commits fixed both, plus the inaccurate |
|
Thanks for the quick turnaround. Issue 1 is fully resolved: gating each keyword on Issue 2 is also addressed -- dropping
That is the right behavior for tlshd -- it should not be reordering the administrator's group preferences -- but it means "prioritize" no longer describes what the code does. It enables the PQ hybrids where the system policy has not already. Please reconcile the title, description, and the Two smaller items remain:
Finally, please squash the |
this mitigates 'store-now-decrypt-later' attack. Signed-off-by: Leo <i@hardrain980.com>
56ce258 to
45ec59a
Compare
|
@chucklever PR title & desc updated, long lines truncated & wrapped and all commits squashed into one ;-D |
chucklever
left a comment
There was a problem hiding this comment.
Both issues from the earlier review are resolved: gating each keyword on gnutls_group_get_id() covers version skew and libgnutls builds without leancrypto/liboqs, and dropping -GROUP-ALL keeps the system crypto policy in charge while still enabling the hybrids where policy has not. I'll tidy the changelog wording when I squash-merge. Thanks for the careful iterations.
this patch enables post-quantum ECDHE + ML-KEM hybrid groups. (i.e. those which suffixed with
-MLKEM768or-MLKEM1024)"store-now-decrypt-later" attack conducted by adversaries who have access to quantum computers could be mitigated by enable quantum-safe key exchange algorithms, which strengthened security for RPC-TLS.