Re: Potential kTLS issue with TLS-PSK, GnuTLS + Rawhide - how to debug it?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Friday, 25 November 2022 13:57:26 GMT Richard W.M. Jones wrote:
> Turns out this is fixed in upstream gnutls (not the version in
> Rawhide).  The commit which fixes it is:
> 
> commit 67843b3a8e28e4c74296caea2d1019065c87afb3
> Author: Frantisek Krenzelok <krenzelok.frantisek@xxxxxxxxx>
> Date:   Mon Sep 5 13:05:17 2022 +0200
> 
>     KTLS: fallback to default
>     
>     If an error occurs during setting of keys either initial or key update
>     then fallback to default mode of operation (disable ktls) and let the
>     user know
>     
>     Signed-off-by: Frantisek Krenzelok <krenzelok.frantisek@xxxxxxxxx>
> 
>  lib/handshake.c        |  7 ++++++-
>  lib/tls13/key_update.c | 23 +++++++++++++++++++----
>  2 files changed, 25 insertions(+), 5 deletions(-)
> 
> With full debugging you can see the message caused by this commit:
> 
> nbdkit: null[1]: debug: gnutls: 4: HSK[0x7fc9e00010a0]: TLS 1.3 set read key
> with cipher suite: GNUTLS_CHACHA20_POLY1305_SHA256
 nbdkit: null[1]: debug:
> gnutls: 13: BUF[HSK]: Emptied buffer
> nbdkit: null[1]: debug: gnutls: 13: BUF[HSK]: Emptied buffer
> nbdkit: null[1]: debug: gnutls: 5: REC[0x7fc9e00010a0]: Start of epoch
> cleanup
 nbdkit: null[1]: debug: gnutls: 5: REC[0x7fc9e00010a0]: Epoch #0
> freed nbdkit: null[1]: debug: gnutls: 5: REC[0x7fc9e00010a0]: Epoch #1
> freed nbdkit: null[1]: debug: gnutls: 5: REC[0x7fc9e00010a0]: End of epoch
> cleanup nbdkit: null[1]: debug: gnutls: 1: disabling KTLS: failed to set
> keys 
> Is this because kTLS doesn't support PSK?
> 
kTLS doesn't do key management, so it doesn't know the difference between PSK 
and X.509 (it gets the symmetric keys from userspace after the key exchange is 
done).

However, looking at https://gitlab.com/gnutls/gnutls/-/blob/master/lib/system/
ktls.c, GnuTLS only supports using kTLS with GNUTLS_CIPHER_AES_128_GCM and 
GNUTLS_CIPHER_AES_256_GCM cipher suites, while your debugging output shows 
that this connection is using GNUTLS_CHACHA20_POLY1305_SHA256.

As a result, the upstream fix you point to does the right thing because you 
can't use GnuTLS's kTLS support on this connection (at all), and the only 
thing that makes sense is to disable kTLS.

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/
include/uapi/linux/tls.h suggests that kTLS has some degree of support for 
ciphers other than the two GnuTLS enables it for, but I don't know enough 
about TLS to know whether enabling all the ciphers current kernels support in 
GnuTLS would enable it to be used for this connection.

-- 
Simon Farnsworth

_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux