Điểm:2

Làm thế nào để cuộc tấn công sinh nhật vào xác thực tin nhắn hoạt động?

lá cờ in
Tim

Trong Kỹ thuật mật mã:

2.7.1 Tấn công sinh nhật

Các cuộc tấn công sinh nhật được đặt tên theo nghịch lý sinh nhật. Nếu bạn có 23 người trong phòng, cơ hội mà hai người trong số họ sẽ có cùng sinh nhật vượt quá 50%. Đó là một xác suất lớn đáng ngạc nhiên, được đưa ra rằng có 365 ngày sinh nhật có thể xảy ra.

Vì vậy, một cuộc tấn công sinh nhật là gì? Đó là một cuộc tấn công phụ thuộc vào thực tế các giá trị trùng lặp đó, còn được gọi là xung đột, xuất hiện nhanh hơn nhiều so với Bạn mong chờ. Giả sử một hệ thống giao dịch tài chính an toàn sử dụng khóa xác thực 64-bit mới cho mỗi giao dịch. (Vì đơn giản, chúng tôi cho rằng không có mã hóa nào được sử dụng.) Có $2^{64}$ ($=18\cdot 10^{18}$ , hoặc mười tám tỷ tỷ) giá trị khóa có thể có, vì vậy điều này nên khá khó để phá vỡ, phải không? Sai! Sau khi xem về $2^{32}$ ($=4\cdot 10^9$ , hoặc bốn tỷ) giao dịch, kẻ tấn công có thể mong đợi rằng hai giao dịch sử dụng cùng một khóa. Giả sử đầu tiên tin nhắn được xác thực luôn giống nhau "Bạn đã sẵn sàng nhận giao dịch?" thông báo. Nếu hai giao dịch sử dụng cùng một xác thực khóa, thì các giá trị MAC trên các tin nhắn đầu tiên của chúng cũng sẽ là giống nhau, rất dễ phát hiện cho kẻ tấn công. Bởi biết rằng hai khóa giống nhau, kẻ tấn công bây giờ có thể chèn các tin nhắn từ giao dịch cũ hơn thành giao dịch mới hơn trong khi nó đang diễn ra. Khi chúng được xác thực bằng khóa chính xác, các thông báo không có thật này sẽ được chấp nhận, đó là một sự phá vỡ rõ ràng của giao dịch tài chính hệ thống.

Điều gì xấu làm điều này:

Bởi biết rằng hai khóa giống nhau, kẻ tấn công bây giờ có thể chèn các tin nhắn từ giao dịch cũ hơn thành giao dịch mới hơn trong khi nó đang diễn ra.

?

Giả sử hai giao dịch có cùng MAC, có nghĩa là cùng một khóa xác thực.

Không phải tin nhắn từ giao dịch cũ giống với tin nhắn trong giao dịch mới hơn sao? Vì vậy, thay thế không thay đổi?

Điểm:5
lá cờ in

Trong bối cảnh này, một giao dịch $t_i$ chứa nhiều tin nhắn $m_i^t$ trong đó mỗi tin nhắn được MAC'ed với khóa giao dịch $k_i$.

Bây giờ, giả sử rằng khóa MAC của mỗi giao dịch được tạo ngẫu nhiên thống nhất[1]. Rồi sau khoảng $2^{32}$ giao dịch, chúng tôi hy vọng một khóa sẽ xảy ra lần nữa với xác suất phần trăm 50% theo nghịch lý ngày sinh. Đây là phần va chạm. Cho rằng $t_i$$t_j$ có cùng khóa MAC $k_i$.

Như đã đề cập trong đoạn nếu thông báo đầu tiên của giao dịch giống nhau, thì kẻ tấn công lưu trữ giao dịch có thể thấy rằng khóa được sử dụng lại - khóa từ giao dịch $t_i$ được sử dụng trong giao dịch $t_j$.

cửa hàng kẻ tấn công

| (m10,MAC(m10) |(m11,MAC(m11) | ... | (m1N1,MAC(m1N1)|
| (m20,MAC(m20) |(m21,MAC(m21) | ... | (m2N1,MAC(m2N2)|
....
| (mi0,MAC(mi0) |(mi1,MAC(mi1) | ... | (miNi,MAC(miNi)|
....
| (mj0,MAC(mj0) |(mj1,MAC(mj1) | ... | (mjNi,MAC(mjNi)|

và quan sát: MAC(mi0) = MAC(mj0)
và có thể gửi

| (mj0,MAC(mj0) |(mi1,MAC(mi1) | ... | (miNi,MAC(miNi)|

Bây giờ, họ chỉ cần nhận tin nhắn $m_i^t$ từ $t_i$và chèn chúng vào một giao dịch hiện tại sử dụng cùng một khóa. Vì vậy, giao dịch mới chứa $m_j^t$ tin nhắn và chèn $m_i^t$ thông điệp có lợi cho kẻ tấn công. Kẻ tấn công có thể xóa tất cả các $m_j^t$ tin nhắn của giao dịch và có thể gửi $m_i^t$'s, quá, tùy thuộc vào lợi thế của họ.

Do đó, việc thay thế sẽ thay đổi các thông báo về giao dịch.


[1] Đây là một phần quan trọng của phần va chạm và bảo mật nữa.

Tim avatar
lá cờ in
Tim
Cảm ơn. (1) $m_i^t$ và $t_i$ có nghĩa là gì trong "họ chỉ nhận tin nhắn $m_i^t$ từ $t_i$"? Tôi không thấy chúng trong phần sau "Cửa hàng của kẻ tấn công". (2) trong phần sau "Kẻ tấn công lưu trữ", "quan sát : MAC(mi0) = MAC(mj0)", kẻ tấn công cũng quan sát "mi0 = mj0"? (3) nó cũng đúng với k khác lớn hơn 0 nhưng không lớn hơn Ni, MAC(mik) = MAC(mjk)", và "mik = mjk"? (4) Thông báo cuối cùng (mjNi,MAC( mjNi) trong giao dịch j có nghĩa là có số lượng tin nhắn Ni, như trong giao dịch i?
kelalaka avatar
lá cờ in
Giao dịch có tên $t_i$ và giao dịch có thể chứa nhiều thông báo, mỗi thông báo được đặt tên là $m_i^t$ trong đó chỉ số trên $t$ có thể nằm trong khoảng từ $1$ đến $m1N1$. Khi họ quan sát thấy rằng MAC của tin nhắn đầu tiên được lặp lại cho một giao dịch thì điều này có nghĩa là khóa MAC giống nhau. Vì chúng đã lưu trữ tất cả các giao dịch trước đó nên giờ đây những kẻ tấn công đang hoạt động có thể chơi giao dịch đang chạy hiện tại tùy thuộc vào khả năng của chúng.
kelalaka avatar
lá cờ in
Chà, số lượng tin nhắn trong mỗi giao dịch có thể khác nhau hay không tùy thuộc vào sơ đồ. Hình văn bản, mặc dù dường như cho thấy chúng giống nhau, nhưng các chỉ mục cuối cùng không nhất thiết phải giống nhau. 2) Kẻ tấn công luôn quan sát các thông báo và cho rằng thông báo đầu tiên giống nhau đối với tất cả các giao dịch. Vì vậy, nếu bạn có thể thấy thời điểm bắt đầu giao dịch, bạn có thể không cần kiểm tra khối lượng đầu tiên, tuy nhiên, điều đó rất dễ kiểm tra. 3) Không rõ ràng - hy vọng điều đó rõ ràng từ nhận xét cuối cùng. 4) Vâng.
kelalaka avatar
lá cờ in
và, **lưu ý rằng:** mặc dù tính bảo mật của MAC không phụ thuộc vào việc thư có được mã hóa hay không, cuộc tấn công này giả định rằng thư không được mã hóa.Đây là một giả định thực tế; cân nhắc rằng bạn có thể muốn gửi tin nhắn công khai, tuy nhiên, bạn cần MAC để chống giả mạo.
Điểm:2
lá cờ ar

Theo ghi nhận của kelalaka, dường như có một giả định ngầm định rằng một "giao dịch" chứa nhiều thông báo được xác thực riêng biệt và các thông báo đó không xiềng xích theo bất kỳ cách nào (ví dụ: bằng cách đưa mã thông báo MAC của tin nhắn trước vào đầu vào để tính toán MAC của tin nhắn tiếp theo).

Điều đáng chú ý là một kế hoạch như vậy không bảo vệ tính toàn vẹn của giao dịch dù sao đi nữa – kẻ tấn công MITM có thể sắp xếp lại, xóa hoặc phát lại tin nhắn trong một giao dịch đơn lẻ mà không bị MAC bắt được. Cuộc tấn công sinh nhật, như đã mô tả, chỉ cho phép kẻ tấn công tự do phát lại các tin nhắn từ giao dịch này sang giao dịch khác bằng cùng một khóa MAC, đây không phải là phần mở rộng của lỗ hổng (vốn đã khá tệ) đối với các cuộc tấn công MITM mà sơ đồ sẽ thậm chí với các khóa MAC dài hơn.


Về nguyên tắc, các cuộc tấn công sinh nhật có thể thậm chí ảnh hưởng đến các sơ đồ xác thực đa thông báo được thiết kế tốt nếu khóa MAC và/hoặc mã thông báo quá ngắn. Tuy nhiên, các chi tiết phụ thuộc rất nhiều vào sơ đồ và thông thường các cuộc tấn công như vậy sẽ yêu cầu nhiều hơn là chỉ một phím ngắn.

Ví dụ: giả sử rằng $i$-tin nhắn thứ trong giao dịch $t$ được xác thực bởi thẻ $$\tau_{i,t} = \operatorname{MAC}_{K_t}(\tau_{i-1,t} \mathbin\| i \mathbin\| m_{i,t}),$$ ở đâu $K_t$ là khóa MAC cho mỗi giao dịch, $\tau_{i-1,t}$ là thẻ MAC cho tin nhắn trước đó trong giao dịch, $i$ là số thông báo (được đệm theo độ dài cố định hoặc được phân tách rõ ràng khỏi các đầu vào MAC khác) và $m_{i,t}$ là thông điệp cần được xác thực.

Sau đó, để có thể thay thế tin nhắn được gắn thẻ $(m_{i,t}, \tau_{i,t})$ với một cái đã bị chặn trước đó $(m_{i',t'}, \tau_{i',t'})$ từ một giao dịch khác $t'$ và để nó vượt qua xác thực MAC, kẻ tấn công không chỉ cần $K_t = K_{t'}$, nhưng cũng $i = i'$$\tau_{i-1,t} = \tau_{i-1,t'}$. Cái này có thể tình cờ xảy ra, nếu độ dài kết hợp của khóa, thẻ và (giá trị điển hình của) bộ đếm thông báo đủ thấp, nhưng khả năng đó ít xảy ra hơn nhiều so với việc chỉ có hai phím va chạm. Trên thực tế, nó cũng sẽ yêu cầu thẻ (hoặc khóa!) đủ ngắn để dễ bị tấn công giả mạo bằng vũ lực ngay cả khi không khai thác hiệu ứng sinh nhật.

Vì vậy, mặc dù điểm tổng thể mà cuốn sách đang cố gắng vượt qua — rằng các phím phải đủ dài để tránh va chạm trong ngày sinh nhật— là một nguyên tắc tốt để tuân theo nói chung, tôi không tin rằng cuộc tấn công thực sự mà chúng đưa ra là một kế hoạch thực tế, ít nhất là không chống lại bất kỳ kế hoạch nào vốn không dễ bị tấn công tồi tệ hơn nhiề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.