Is it possible to establish a TLS1.3-session without any certificates/authentication?
È possibile eseguire l'autenticazione senza certificati, ma non è possibile eseguire alcuna autenticazione. Utilizzando PSK, l'autenticazione del server non viene eseguita con un certificato ma con una chiave pre-condivisa, ovvero un segreto comune noto tra client e server.
If yes, how can I instruct an openssl client (via commandline) to do so?
Con openssl1.1.1 puoi avviare un server nel seguente modo:
# use a 48 byte PSK
$ PSK=63ef2024b1de6417f856fab7005d38f6df70b6c5e97c220060e2ea122c4fdd054555827ab229457c366b2dd4817ff38b
$ openssl s_server -psk $PSK -cipher TLS13-AES-256-GCM-SHA384 -nocert -accept 2020
Se poi avvii il client con lo stesso PSK ottieni un handshake TLS 1.3 di successo senza certificati coinvolti:
$ openssl s_client -psk $PSK -connect localhost:2020
CONNECTED(00000003)
---
no peer certificate available
---
No client certificate CA names sent
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 195 bytes and written 475 bytes
Verification: OK
---
Reused, TLSv1.3, Cipher is TLS13-AES-256-GCM-SHA384
...