Điểm:1

Loại Xác thực lẫn nhau này có an toàn không?

lá cờ in

Sau đây là một vấn đề trong thế giới thực. Trong một giao thức được tiêu chuẩn hóa, các máy khách có thể kết nối với máy chủ bằng cách sử dụng xác thực 4 bước lẫn nhau trên kênh TCP không được bảo mật:

  • pass-1: Máy khách gửi Thử thách C ngẫu nhiên đến máy chủ
  • pass-2: Máy chủ trả lời bằng cách gửi ngẫu nhiên thử thách S cho máy khách
  • pass-3: Client chuẩn bị res(S, K) và gửi cho S
  • pass-4: Server trả lời client với res(C, K)

res(.) là thẻ GCM-GMAC phụ thuộc vào khóa đối xứng K (thực tế là AES128, nhưng điều này có thể không liên quan ở đây)

Sau khi xác thực lẫn nhau thành công, máy khách và máy chủ có thể tiếp tục giao tiếp dưới cái gọi là "hiệp hội", ví dụ: khách hàng có thể yêu cầu một số dữ liệu từ máy chủ.

nhập mô tả hình ảnh ở đây

Tuy nhiên, điều gì sẽ xảy ra nếu kẻ tấn công (không có khóa) đang lắng nghe trên mạng và bắt đầu một kẻ trung gian cũng như một máy khách độc hại (màu đỏ). Khi client thật bắt đầu pass-1 và gửi C1 đến server, đồng thời client xấu gửi C2. Máy chủ đáp ứng cả hai yêu cầu, nhưng MitM quản lý để tiêm S2 để gửi đến máy khách tốt, máy khách này sẽ chuẩn bị res(S2) và gửi nó đến máy chủ. Nhưng MitM nắm bắt độ phân giải (S2) và thêm nó dưới dạng pass-3 để gửi đến máy chủ. Bây giờ, máy chủ xác thực ứng dụng khách xấu và gửi lại res(C2), mà ứng dụng khách xấu bỏ qua. Vì vậy, một kết nối dường như được xác thực lẫn nhau đã được thiết lập giữa máy khách và máy chủ xấu.

nhập mô tả hình ảnh ở đây

Tôi tự hỏi, liệu loại xác thực lẫn nhau này có thực sự hiệu quả hay không.

Maarten Bodewes avatar
lá cờ in
Trong sơ đồ trên, các phím bị thiếu. Tôi không nghĩ rằng cuộc tấn công MitM của bạn có thể xảy ra với việc quản lý khóa phù hợp. Tệ hơn nữa, nếu không có phần quản lý khóa, câu hỏi có thể không được trả lời đầy đủ và tôi không thích điều đó khi người dùng phải đoán loại khóa nào và loại khóa nào có thể được sử dụng. Vui lòng [chỉnh sửa] câu hỏi của bạn để bao gồm các phím.
knaccc avatar
lá cờ es
Bạn nên sử dụng khóa phiên dựa trên dữ liệu ngẫu nhiên từ cả máy khách và máy chủ để bạn không dễ bị tấn công lặp lại. Bạn cũng nên nghĩ đến việc thiết lập và luân phiên khóa phiên theo thời gian (nếu các phiên chạy trong thời gian dài) để bạn có được tính bảo mật về phía trước.
MichaelW avatar
lá cờ in
@Maarten Bodewes: Tôi đã cập nhật ảnh bằng Key. Nó chỉ là một khóa AES128 được chia sẻ trước mà từ đó GCM-GMAC sẽ tạo ra một thẻ: Res(S, K) = GMAC(S, K, IV), với một vectơ khởi tạo luôn tăng dần .
MichaelW avatar
lá cờ in
@knaccc: Giao thức này không phải là "phát minh" của tôi và cũng không thể thay đổi. Tôi chỉ muốn hiểu.
knaccc avatar
lá cờ es
@MichaelW, bạn đang nói rằng khóa K 128 bit được sử dụng trực tiếp làm khóa mã hóa/giải mã cho phiên, nơi mã hóa được thực hiện bằng AES128?
MichaelW avatar
lá cờ in
@knaccc: vâng, K được sử dụng để tạo thẻ được sử dụng để xác thực lẫn nhau, cũng như để mã hóa/xác thực thư sau khi phiên đó được thiết lập. Có lẽ tôi không hiểu câu hỏi của bạn.
knaccc avatar
lá cờ es
Nếu K được sử dụng trực tiếp làm khóa AES128 cho giao tiếp phiên, thay vì tạo khóa đối xứng mới dựa trên K và C1 và S1, thì một cuộc tấn công MITM có thể chỉ cần đợi một phiên được xác thực đầy đủ và sau đó thực hiện một cuộc tấn công lặp lại. gửi một bản sao của yêu cầu được mã hóa đã quan sát trước đó để lừa máy chủ thực hiện điều gì đó. Do đó, tôi không coi thông tin liên lạc phiên được xác thực đúng cách.
MichaelW avatar
lá cờ in
@knaccc: có thể tùy ý đính kèm thông báo yêu cầu bằng thẻ xác thực; thẻ này phụ thuộc vào một vectơ khởi tạo phải khác nhau mỗi lần và không được lặp lại (thực tế là có một bộ đếm tăng lên mỗi lần). Vì vậy, một phát lại đơn giản sẽ bị chặn bởi máy chủ.
knaccc avatar
lá cờ es
Nếu bạn không ràng buộc khóa phiên với các thách thức xác thực và không sử dụng mã hóa được xác thực, thì bạn đang vi phạm Nguyên tắc Doom mật mã https://moxie.org/2011/12/13/the-cryptographic-doom-principle. html
MichaelW avatar
lá cờ in
hmmm... sau khi thiết lập phiên xác thực, cùng một khóa chia sẻ trước luôn được sử dụng. Tuy nhiên, có cái gọi là bộ đếm khung, bộ đếm này phải được tăng lên mỗi lần và chuyển vào vectơ khởi tạo cho GCM-GMAC. Đây là một chút câu hỏi ban đầu của tôi, nhưng dù sao, tôi sẽ đọc bài báo vì nó có vẻ thú vị.

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