Điểm:1

Trong TLS 1.3, đâu là lý do hợp lý để sử dụng các bản ghi bắt tay khác nhau cho Bí mật chính về Tiếp tục so với Bí mật lưu lượng truy cập ứng dụng?

lá cờ in

TLS 1.3 RFC, phần 7.1 liệt kê đây là phần cuối cùng của lịch trình chính:

https://datatracker.ietf.org/doc/html/rfc8446#section-7.1

            ...
   0 -> HKDF-Trích xuất = Bí mật chính
             |
             + -----> Derive-Secret(., "c ap traffic",
             | ClientXin chào...máy chủ Đã hoàn tất)
             | = client_application_traffic_secret_0
             |
             + -----> Derive-Secret(., "s ap traffic",
             | ClientXin chào...máy chủ Đã hoàn tất)
             | = server_application_traffic_secret_0
             |
             + -----> Dẫn xuất-Bí mật(., "exp master",
             | ClientXin chào...máy chủ Đã hoàn tất)
             | = nhà xuất khẩu_master_secret
             |
             + -----> Dẫn xuất-Bí mật(., "res master",
                                   ClientXin chào...khách hàng Đã hoàn tất)
                                   = tiếp tục_master_secret

Ba phép tính đầu tiên lấy bí mật bậc thầy, kết hợp chúng với nhãnS "giao thông c ap" / "lưu lượng ap" / "thầy exp" (tương ứng), và một bảng điểm bắt tay băm của Xin chào khách hàng xuyên qua Máy chủ kết thúc. Kết quả của mỗi trong số này là ba chìa khóa: client_application_traffic_secret_0, server_application_traffic_secret_0, export_master_secret.

Phép tính cuối cùng lấy bí mật bậc thầy, kết hợp nó với nhãn "phục hồi chủ"và một bảng điểm bắt tay băm của Xin chào khách hàng xuyên qua khách hàng đã hoàn thành. Kết quả của việc này là tiếp tục_master_secret.

Câu hỏi của tôi:

Lý do đằng sau việc sử dụng Xin chào máy khách thông qua Máy khách đã hoàn tất thay vì Xin chào máy khách thông qua Máy chủ đã hoàn tất khi tính toán Bí mật tổng thể tiếp tục là gì?

Điểm:1
lá cờ gb

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]
```
Eddie avatar
lá cờ in
Cảm ơn vì câu trả lời. Nó có ý nghĩa hoàn hảo tại sao bao gồm "cả hai bên" của cái bắt tay.Nhưng tôi đoán mối quan tâm chính của tôi là tại sao không bao gồm Máy chủ đã hoàn thành trong phép tính khóa tiếp tục? Tại sao 3 key trước bao gồm Server Finished nhưng key tiếp tục lại chỉ bao gồm Client Finished. Tại sao làm cho khóa *that* khác với các khóa trước?
Eddie avatar
lá cờ in
Err đợi đã... khi trả lời bạn, tôi nghĩ bây giờ tôi hiểu rõ hơn về phản hồi của bạn.Máy chủ đã hoàn tất là quá trình bắt tay đầy đủ tại thời điểm mà Máy chủ có nghĩa là bắt đầu sử dụng các khóa lưu lượng ứng dụng C/S. Nhưng tại thời điểm đó, máy chủ không sử dụng khóa tiếp tục, do đó, nội dung sẽ đợi cho đến khi thông báo tiếp theo từ máy khách để tính toán nó - do đó, khóa tiếp tục bao gồm thông tin "thêm" từ lần bắt tay ban đầu.
Eddie avatar
lá cờ in
Tôi đang cho bạn dấu kiểm. Xem những gì diễn ra trong các khóa so với bắt tay sẽ cho thấy rõ lý do tại sao khóa tiếp tục có cơ hội bao gồm nhiều bản ghi bắt tay hơn trong quá trình tạo khóa so với các khóa lưu lượng ứng dụng. Cảm ơn Repiz!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.