การจับมือ TLS 1.3 ทำงานดังนี้:
ลูกค้าจะส่งโครงสร้างข้อมูล "ClientHello" ไปยังเซิร์ฟเวอร์ ในขั้นตอนนี้ ไคลเอนต์ยังไม่ทราบว่า "กลุ่ม" ใดที่เซิร์ฟเวอร์รองรับ เพื่อหลีกเลี่ยงการเดินทางไป-กลับเพิ่มเติมไปยังเซิร์ฟเวอร์ เซิร์ฟเวอร์อาจมี "องค์ประกอบกลุ่ม" สำหรับกลุ่มที่ต้องการใช้ ในกรณีที่ถามถึง องค์ประกอบกลุ่มคือคีย์สาธารณะขนาด 32 ไบต์สำหรับใช้กับ "กลุ่ม 29" (29 == hex 0x1d) ซึ่งเป็นตัวระบุ TLS สำหรับสิ่งที่เรียกกันทั่วไปว่า X25519 รายการหมายเลขสำหรับกลุ่มที่รองรับ TLS ทั้งหมดอยู่ที่นี่: https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml
X25519 หมายถึงการแลกเปลี่ยน Diffie-Hellman โดยใช้จุดฐาน G ที่รู้จักกันดีบนเส้นโค้งวงรี Curve25519 ซึ่งองค์ประกอบของกลุ่มอยู่ในกลุ่มย่อยของวัฏจักรขนาดใหญ่ที่มี G ภายในเส้นโค้งนี้ ไม่จำเป็นต้องส่งจุด G เนื่องจากถูกกำหนดให้เป็นส่วนหนึ่งของ มาตรฐาน X25519 และเหมือนกันสำหรับการเรียกใช้ X25519 ทั้งหมด
คีย์สาธารณะชั่วคราวของลูกค้าคือ "องค์ประกอบกลุ่ม" ซึ่งถูกส่งโดยคาดเดา สำหรับ X25519 จะมีความยาว 32 ไบต์ (อักขระฐานสิบหก 64 ตัว หรือ 256 บิต) องค์ประกอบกลุ่มนี้แสดงเป็นค่า "การแลกเปลี่ยนคีย์" ในส่วน "การแบ่งคีย์" ของโครงสร้างข้อมูล ClientHello
เซิร์ฟเวอร์จะตอบกลับด้วยข้อความ "ServerHello" หากตกลงที่จะใช้กลุ่มที่มีการคาดเดาของลูกค้า ซึ่งในที่นี้คือกลุ่ม 29 ซึ่งรวมถึงองค์ประกอบกลุ่มของเซิร์ฟเวอร์ในค่า "การแลกเปลี่ยนคีย์" ในส่วน "การแบ่งปันคีย์"องค์ประกอบกลุ่มนี้เป็นคีย์สาธารณะชั่วคราวของเซิร์ฟเวอร์
ด้วยข้อมูลนี้ ทั้งไคลเอนต์และเซิร์ฟเวอร์จะสามารถคำนวณความลับที่ใช้ร่วมกันเดียวกันซึ่งเรียกว่า "ความลับเบื้องต้น" จากนั้นจะรวมกับข้อมูล ClientHello และ ServerHello เพื่อรับคีย์การเข้ารหัสแบบสมมาตร (ดู https://datatracker.ietf.org/doc/html/rfc8446#section-7.1). สิ่งเหล่านี้ช่วยให้เซิร์ฟเวอร์และไคลเอ็นต์สื่อสารกันได้อย่างปลอดภัยโดยใช้การเข้ารหัสที่รับรองความถูกต้อง เช่น AES-GCM
หากเซิร์ฟเวอร์ไม่ยอมรับกลุ่มที่ไคลเอ็นต์เสนอ หรือไคลเอ็นต์เลือกที่จะไม่เสนอกลุ่มใดๆ แต่เซิร์ฟเวอร์ตกลงกับกลุ่ม (อื่นๆ) ที่ไคลเอ็นต์อยู่ใน "กลุ่มที่สนับสนุน" เซิร์ฟเวอร์จะส่ง HelloRetryRequest แทน ซึ่งจะบอก ไคลเอ็นต์เพื่อลอง ClientHello อีกครั้งโดยใช้กลุ่มที่ระบุ ซึ่งเซิร์ฟเวอร์จะยอมรับตามข้างต้น หากเซิร์ฟเวอร์ไม่ยินยอม ใดๆ จัดกลุ่มที่ไคลเอนต์สนับสนุน มันจะส่งการแจ้งเตือนข้อผิดพลาดและการจับมือกันล้มเหลว เว้นแต่ว่าไคลเอ็นต์จะเสนอ PSK ที่มีให้ด้วย แต่โดยปกติจะเกิดขึ้นเฉพาะเมื่อเริ่มต้นใหม่เท่านั้น และหากการจับมือครั้งแรกล้มเหลว การเริ่มต้นใหม่จะไม่สามารถทำได้
TLS 1.0-1.2 จัดการ ECDHE แตกต่างกัน -- หากเป็นเช่นนั้น เนื่องจากมีตัวเลือกให้เลือก ในโปรโตคอลเหล่านั้น ชุดการเข้ารหัสจะระบุการแลกเปลี่ยนคีย์และการรับรองความถูกต้อง ตลอดจนการเข้ารหัสข้อมูลและแฮชสำหรับ HMAC (หากไม่ใช่ AEAD) และ PRF (หากเป็น 1.2) ไคลเอนต์ส่งรายการรหัสลับ ClientHello ที่รองรับ บางส่วน บางส่วน หรือทั้งหมดอาจใช้ ECDHE ร่วมกับการรับรองความถูกต้อง RSA หรือ ECDSA (เช่น ใบรับรอง) และ ส่วนขยายกลุ่มที่รองรับ (หรือเส้นโค้งที่รองรับก่อน RFC7919) ระบุเส้นโค้งที่รองรับ หากเซิร์ฟเวอร์ตกลงกับชุดรหัส ECDHE ที่เสนอและเส้นโค้งที่เสนอ เซิร์ฟเวอร์จะส่ง ServerHello ที่ระบุชุดการเข้ารหัส จากนั้นจึงเชนใบรับรอง จากนั้น ServerKeyExchange ที่มีรหัสโค้งและรหัสสาธารณะชั่วคราวไคลเอนต์ (หากยอมรับใบรับรอง) ส่ง ClientKeyExchange ที่มีคีย์สาธารณะชั่วคราว หลังจากนั้นการคำนวณความลับที่ใช้ร่วมกันจะดำเนินการในทำนองเดียวกัน แม้ว่ารายละเอียดของวิธีรับคีย์การทำงานจะแตกต่างจาก 1.3 และระหว่าง 1.2 และก่อนหน้าด้วย