Bắt tay TLS 1.3 hoạt động như sau:
Máy khách sẽ gửi cấu trúc dữ liệu "ClientHello" đến máy chủ. Ở giai đoạn này, máy khách chưa biết máy chủ hỗ trợ "Nhóm" nào. Để tránh phải quay lại máy chủ, theo suy đoán, nó có thể chứa một "phần tử nhóm" cho nhóm mà nó muốn sử dụng. Trong trường hợp được hỏi, phần tử nhóm là khóa chung 32 byte để sử dụng với "Nhóm 29" (29 == hex 0x1d), là mã định danh TLS cho cái thường được gọi là X25519. Dưới đây là danh sách đánh số cho tất cả các nhóm được hỗ trợ TLS: https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml
X25519 nghĩa là trao đổi Diffie-Hellman sử dụng điểm cơ sở nổi tiếng G trên đường cong elip Curve25519, trong đó các phần tử nhóm nằm trong nhóm con tuần hoàn lớn chứa G trong đường cong này. Điểm G không cần phải được truyền đi, bởi vì nó được định nghĩa là một phần của Tiêu chuẩn X25519 và giống nhau đối với tất cả các lệnh của X25519.
Khóa công khai tạm thời của khách hàng là "phần tử nhóm" được gửi một cách suy đoán. Đối với X25519, nó dài 32 byte (64 ký tự hex hoặc 256 bit). Phần tử nhóm này được liệt kê dưới dạng giá trị "trao đổi khóa" trong phần "chia sẻ khóa" của cấu trúc dữ liệu ClientHello.
Máy chủ sẽ phản hồi bằng thông báo "ServerHello" nếu nó đồng ý sử dụng nhóm được bao gồm theo suy đoán của máy khách, ở đây là Nhóm 29. Điều này bao gồm thành phần nhóm của máy chủ trong giá trị "trao đổi khóa" trong phần "chia sẻ khóa".Phần tử nhóm này là khóa công khai tạm thời của máy chủ.
Với thông tin này, cả máy khách và máy chủ đều có thể tính toán cùng một bí mật được chia sẻ được gọi là "bí mật tiền chính". Điều này sau đó được kết hợp với dữ liệu ClientHello và ServerHello để lấy các khóa mã hóa đối xứng (xem https://datatracker.ietf.org/doc/html/rfc8446#section-7.1). Những điều này cho phép máy chủ và máy khách giao tiếp an toàn với nhau bằng cách sử dụng mã hóa được xác thực, chẳng hạn như AES-GCM.
Nếu máy chủ không đồng ý với nhóm được đề xuất của máy khách hoặc máy khách đã chọn không đề xuất bất kỳ nhóm nào, nhưng máy chủ đồng ý với một nhóm (khác) mà máy khách được liệt kê trong "các nhóm được hỗ trợ", thay vào đó, máy chủ sẽ gửi HelloRetryRequest để thông báo cho máy khách để thử lại ClientHello bằng cách sử dụng một nhóm được chỉ định, sau đó máy chủ sẽ chấp nhận như trên. Nếu máy chủ không đồng ý không tí nào nhóm mà máy khách hỗ trợ, nó sẽ gửi một cảnh báo lỗi và quá trình bắt tay không thành công -- trừ khi máy khách cũng đề xuất một PSK có sẵn, nhưng điều đó thường chỉ xảy ra khi tiếp tục và nếu quá trình bắt tay ban đầu không thành công thì không thể tiếp tục lại.
TLS 1.0-1.2 xử lý ECDHE theo cách khác - nếu có, bởi vì nó là tùy chọn. Trong các giao thức đó, bộ mật mã chỉ định trao đổi khóa và xác thực cũng như mật mã dữ liệu và hàm băm cho HMAC (nếu không phải là AEAD) và PRF (nếu là 1.2). Máy khách gửi các bộ mật mã liệt kê ClientHello mà nó hỗ trợ, bất kỳ, một số hoặc tất cả chúng có thể sử dụng ECDHE kết hợp với xác thực RSA hoặc ECDSA (tức là chứng chỉ), và tiện ích mở rộng nhóm được hỗ trợ (hoặc đường cong được hỗ trợ trước RFC7919) chỉ định các đường cong mà nó hỗ trợ. Nếu máy chủ đồng ý với bộ mật mã ECDHE được cung cấp và một đường cong được cung cấp, thì máy chủ sẽ gửi ServerHello chỉ định bộ mật mã, sau đó là chuỗi chứng chỉ của nó, sau đó là ServerKeyExchange chứa id đường cong và khóa công khai tạm thời của nó.Máy khách (nếu nó chấp nhận chứng chỉ) gửi ClientKeyExchange có chứa khóa công khai tạm thời của nó, sau đó quá trình tính toán bí mật dùng chung cũng diễn ra tương tự, mặc dù chi tiết về cách các khóa hoạt động được tạo ra khác với 1.3 và cả từ 1.2 trở về trước.