Điểm:0

Trao đổi khóa đơn giản, một máy chủ

lá cờ gn

Tôi đang cố gắng hiểu rõ hơn về cách thức hoạt động của TLS. Tôi hiểu rằng trong trường hợp sử dụng thông thường, bạn cần các giá trị ngẫu nhiên khác nhau được tạo và sử dụng trong quá trình trao đổi khóa, để ngăn một số MITM sử dụng lại đường truyền trước đó để giả mạo máy chủ hoặc máy khách.

Tuy nhiên, chúng ta hãy giả sử một số trường hợp suy biến trong đó có một máy chủ duy nhất có khóa công khai duy nhất đã được các máy khách của nó cũng như các đối thủ khác biết đến. Trong trường hợp này, tôi nghĩ rằng tất cả những gì cần thiết để thực hiện trao đổi khóa an toàn sẽ như sau:

  1. Máy khách sử dụng khóa RSA công khai của máy chủ để mã hóa khóa phiên đối xứng ngẫu nhiên
  2. Máy khách gửi khóa phiên được mã hóa cho máy chủ
  3. Máy chủ giải mã khóa phiên bằng khóa RSA riêng của máy chủ
  4. Máy chủ sử dụng khóa phiên để mã hóa thông báo "đã hoàn tất"
  5. Máy chủ gửi cho máy khách thông báo "đã hoàn thành" được mã hóa
  6. Khách hàng sử dụng khóa phiên để giải mã thông báo "đã hoàn thành"
  7. Khách hàng xác minh thông báo là "kết thúc", quá trình bắt tay hoàn tất

Vì vậy, trong quy trình đơn giản hóa này, giá trị duy nhất thay đổi mỗi phiên là chính khóa phiên, do đó không sử dụng ngẫu nhiên máy khách hoặc máy chủ trước đó; và không có bí mật tiền chính, một lần nữa chỉ có khóa phiên.

Điều này giống như một sự đơn giản hóa quá mức của mọi thứ, nhưng tôi gặp khó khăn khi nhìn thấy những gì tôi đang thiếu. Nếu mục đích chính của trao đổi khóa là để đảm bảo máy chủ là người duy nhất nhận được khóa phiên, thì điều này có vẻ an toàn. Bằng chứng ngược lại, theo dõi lại quá trình trên, nhưng từ quan điểm của một đối thủ:

  1. Đối thủ đã có khóa công khai của máy chủ, có thể mã hóa khóa phiên đối xứng của chính nó cho mục đích MITM
  2. Kẻ thù có thể thấy khóa phiên được mã hóa từ máy khách, nhưng không thể giải mã nó; có thể gửi cho máy chủ khóa phiên MITM được mã hóa của chính nó
  3. Máy chủ giải mã khóa phiên MITM, không biết nguồn gốc của nó
  4. Máy chủ sử dụng khóa phiên MITM để mã hóa "xong"
  5. Máy chủ gửi máy khách (thực tế là đối thủ) đã mã hóa "xong"
  6. Đối thủ có thể giải mã "xong", nhưng không thể mã hóa lại và gửi cho khách hàng bằng khóa phiên của khách hàng, mà đối thủ không thể giải mã
  7. Cuối cùng, khách hàng sẽ không bao giờ nhận được "hoàn thành" được mã hóa chính xác, từ máy chủ hoặc đối thủ

Vì vậy, có vẻ như điểm yếu tiềm ẩn duy nhất ở đây là máy chủ không có cách nào để biết liệu nó đang giao tiếp với khách hàng hợp pháp hay kẻ thù - nhưng theo tôi hiểu, việc xác thực ứng dụng khách chưa bao giờ được xem xét ngay từ đầu. Việc xác thực máy chủ là cần thiết, nhưng trong trường hợp này, đó không phải là vấn đề đáng lo ngại vì chỉ có một máy chủ duy nhất.

Vì vậy, tôi có đúng không khi hiểu rằng nếu một người sử dụng kế hoạch này, thì kẻ thù sẽ không thể thực hiện một cuộc tấn công MITM? Hoặc làm thế nào điều này có thể bị đánh bại?

kelalaka avatar
lá cờ in
[Đăng chéo với Bảo mật thông tin](https://security.stackexchange.com/questions/256651/simple-key-exchange-one-server). Bạn có thể biết rằng đây không phải là một hành động tốt trên mạng SE.
Bondolin avatar
lá cờ gn
@kelalaka Tôi không biết, nhưng đã đọc meta QA từ nhận xét khác của bạn về bài đăng IS, điều đó có ý nghĩa. Nếu tôi phải chọn giữa hai cái thì có lẽ tôi sẽ để cái IS, vì nó có vẻ phù hợp hơn một chút. Tuy nhiên, bây giờ điều này đã có câu trả lời, liệu có nên xóa nó đi hay chỉ coi đây là một thời điểm có thể dạy được và tiếp tục?
kelalaka avatar
lá cờ in
Vâng, đó là vấn đề khi nó được trả lời. Một người có thể tự do xóa câu hỏi của họ, tuy nhiên, người trả lời sẽ thấy đó là một hành động thô lỗ. Người ta có thể được phép làm điều đó, điều đó sẽ mất thời gian... Có thể chỉ giữ nó lần này.
Điểm:1
lá cờ my

Một vấn đề rõ ràng với 'TLS trường hợp suy biến' của bạn là khi TLS được triển khai, máy khách không thể được giả định là có kiến ​​thức tiên nghiệm về khóa công khai của máy chủ; cần được chuyển (và xác thực) bằng cách nào đó.

Tuy nhiên, câu hỏi của bạn là:

Hoặc làm thế nào điều này có thể bị đánh bại?

Chà, một vấn đề rõ ràng là nó khá dễ bị tấn công phát lại phía máy khách. Giả sử máy khách hợp lệ thực hiện thương lượng với máy chủ hợp lệ, sau đó tiến hành gửi một số lệnh. Điều mà kẻ thù có thể làm là ghi lại những gì khách hàng đã gửi, rồi sau đó gửi lại những tin nhắn đó. Máy chủ sẽ thực hiện chính xác các hoạt động giống nhau, tạo các khóa đối xứng giống nhau và sau đó xử lý các lệnh được mã hóa giống nhau. Nó tệ đến mức nào sẽ phụ thuộc vào những lệnh đó là gì - nếu đó là yêu cầu tải xuống một trang web, không phải là vấn đề - nếu đó là lệnh để thực hiện giao dịch ngân hàng, thì có lẽ đó sẽ là một vấn đề.

Một vấn đề khác (từ quan điểm của TLS hiện đại) là nó thiếu Bảo mật chuyển tiếp hoàn hảo - nếu ai đó đánh cắp khóa riêng của máy chủ, họ không chỉ có thể giả dạng máy chủ (điều này là không thể tránh khỏi; nếu bạn tìm hiểu mọi thứ mà máy chủ biết, bạn có thể làm bất cứ điều gì mà máy chủ hợp lệ có thể làm), họ có thể quay lại và giải mã các phiên trước đó. Các phiên bản gần đây của TLS (cụ thể là TLS 1.3) không cho phép kẻ tấn công làm điều đó.

Đă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.