
Implémentation native en Go de DTLS 1.2 et 1.3 avec échange de clés ECDHE et PSK, chiffrements AEAD, identifiants de connexion, reprise de session, 0-RTT et Encrypted Client Hello.
Implémentation native de DTLS 1.2 et DTLS 1.3 dans le langage de programmation Go.
Un objectif à long terme est une revue de sécurité professionnelle, et peut-être une inclusion dans la stdlib.
Pion DTLS prend en charge DTLS 1.2 et DTLS 1.3. Nous accueillons favorablement les contributions et les corrections de bogues.
psk_ke et psk_dhe_ke, prenant en charge SHA-256 et SHA-384ResumeWithECH (RFC 9849)Conn.AddPath, Path.Probe et Path.SwitchConn.UpdateKeysLa bibliothèque active DTLS 1.2 et DTLS 1.3 par défaut, en préférant DTLS 1.3.
Utilisez WithMaxVersion(protocol.Version1_2) pour restreindre une connexion à DTLS 1.2,
ou WithMinVersion(protocol.Version1_3) pour exiger DTLS 1.3.
Pour un serveur DTLS qui écoute sur 127.0.0.1:4444
go run examples/listen/selfsign/main.go
Pour un client DTLS qui se connecte à 127.0.0.1:4444
go run examples/dial/selfsign/main.go
Pion DTLS peut se connecter à lui-même et à OpenSSL.
// Generate a certificate
openssl ecparam -out key.pem -name prime256v1 -genkey
openssl req -new -sha256 -key key.pem -out server.csr
openssl x509 -req -sha256 -days 365 -in server.csr -signkey key.pem -out cert.pem
// Use with examples/dial/selfsign/main.go
openssl s_server -dtls1_2 -cert cert.pem -key key.pem -accept 4444
// Use with examples/listen/selfsign/main.go
openssl s_client -dtls1_2 -connect 127.0.0.1:4444 -debug -cert cert.pem -key key.pem
DTLS 1.3 prend en charge la reprise de ticket de session avec des données précoces 0-RTT optionnelles.
La reprise n'autorise que psk_dhe_ke (PSK avec ECDHE éphémère).
L'exemple de reprise illustre une première connexion authentifiée par certificat,
un stockage de session chiffré, et des connexions ultérieures avec reprise
et données précoces optionnelles. Consultez son README pour les instructions d'exécution et l'exigence
d'Claim à usage unique du magasin de sessions pour 0-RTT.
L'API State/Resume prend également en charge la restauration de connexions DTLS 1.3 établies
sans nouvelle poignée de main. Voir Resume.