Trên thực tế, đó là một câu hỏi thú vị và tôi không thể chắc chắn 100% cho bạn, nhưng suy nghĩ của tôi về vấn đề này là: Khi Máy chủ đã gửi thông báo "Đã hoàn tất", nó có thể bắt đầu gửi Dữ liệu ứng dụng (mặc dù Máy khách chưa gửi đã gửi tin nhắn Xong chưa). Do đó, điều hợp lý là server_application_traffic_secret liên quan đến ClientHello....ServerFinished.
Liên quan đến resumption_master_secret, tôi sẽ lập luận rằng vì nó được sử dụng để nối lại phiên, điểm liên quan đến ClientHello...ClientFinished là có toàn bộ quá trình bắt tay liên quan đến bí mật này. Hơn nữa, nếu máy chủ yêu cầu xác thực chứng chỉ của máy khách, thì đây cũng sẽ là một phần của bản ghi của quá trình bắt tay.
Theo như tôi biết, thông số kỹ thuật không biện minh cho tất cả các quyết định thiết kế, nhưng cá nhân tôi nghĩ rằng điều này có ý nghĩa, vì (như bạn có thể thấy trong giao thức bắt tay bên dưới), việc có ClientHello...ClientFinished liên quan đến toàn bộ quá trình bắt tay.
Máy khách
Key ^ ClientXin chào
Exch | + key_share*
| + signature_algorithms*
| + psk_key_exchange_modes*
v + pre_shared_key* -------->
Máy chủXin chào ^ Key
+ key_share* | hối đoái
+ pre_shared_key* v
{EncryptedExtensions} ^ Máy chủ
{CertificateRequest*} v Thông số
{Chứng chỉ*} ^
{Xác minh chứng chỉ*} | xác thực
{Kết thúc} v
<-------- [Dữ liệu ứng dụng*]
^ {Chứng chỉ*}
Xác thực | {Xác minh chứng chỉ*}
v {Đã kết thúc} -------->
[Dữ liệu ứng dụng] <-------> [Dữ liệu ứng dụng]
```