Điểm:3

AEAD có cung cấp bất kỳ lợi ích nào đối với mật mã thô trong cài đặt này không?

lá cờ cn

Tôi đang làm việc trên một kho lưu trữ dữ liệu mật mã, nơi các đốm màu cần được xác định và tham chiếu thông qua hàm băm của dữ liệu được mã hóa. Hãy nghĩ cây Merkle với các nút được mã hóa. Trong một cài đặt như vậy mà hàm băm đã thiết lập tính xác thực (giả sử bản thân hàm băm không bị hỏng), có bất kỳ giá trị nào khi sử dụng AEAD thay vì chỉ sử dụng trực tiếp mật mã không?

Tôi tin rằng điều này khác với chủ đề mã hóa-sau đó-MAC cổ điển vì không có hàm băm hoặc MAC nào được lưu trữ cùng với đốm màu để xác thực nó. Thay vào đó, hàm băm là một tham chiếu bên ngoài từ nơi khác đã được xác thực (không bị kẻ tấn công báo động).

Một chi tiết khác ban đầu tôi đã bỏ qua vì nghĩ rằng nó không liên quan, nhưng nhìn nhận lại thì có vẻ như nó đã làm rõ vấn đề: không có khóa đối xứng được chia sẻ trước; khóa có thể được sử dụng trong mật mã thô hoặc AEAD là khóa được lấy từ bí mật tạm thời và khóa công khai của bên nhận thông qua ECDH. Như vậy, bất kỳ kẻ tấn công nào biết khóa công khai đều có thể tạo ra một đốm màu có thẻ AEAD hợp lệ bằng cách sử dụng bí mật tạm thời của riêng họ. Tuy nhiên, giả sử hàm băm không bị hỏng, một đốm màu như vậy sẽ không băm thành giá trị mà bên nhận mong đợi và do đó sẽ không bao giờ được sử dụng.

Điểm:1
lá cờ in

Nếu đã có các phương tiện để xác thực bản rõ thì thực sự có thể bỏ qua việc xác thực bản rõ hoặc bản mã bằng các phương tiện khác.

Tất nhiên có một số catcha.

Trước hết, không nên sử dụng bản rõ bằng bất kỳ cách nào trước khi giá trị băm xác thực được xác minh.Nếu đây không phải là trường hợp thì kẻ tấn công có thể thay đổi bản rõ, điều đó có nghĩa là bên đó phải chịu nhiều kiểu tấn công bao gồm tiên tri bản rõ hoặc có thể là tiêm lỗi.

Hơn nữa, việc triển khai không được cung cấp bất kỳ thông tin nào về quá trình giải mã. Nếu đúng như vậy, thì việc triển khai có thể trở thành đối tượng của các cuộc tấn công kênh phụ. Tệ hơn nữa, nếu v.d. CBC được sử dụng sau đó áp dụng các lời tiên tri đệm. Vì vậy, sẽ hợp lý hơn khi sử dụng AES-CTR hoặc mật mã luồng chẳng hạn như ChaCha20.

Có thể tránh được hai lỗi thiết kế/triển khai cuối cùng khi sử dụng chế độ xác thực. Vì vậy, có thể có một số cách sử dụng chế độ xác thực ngay cả khi khóa không được tin cậy. Một nhược điểm là các nhà phát triển khác có thể cho rằng chế độ xác thực cung cấp xác thực cần thiết và bắt đầu sử dụng văn bản gốc ngay cả khi thư chưa được xác thực.

Cá nhân tôi sẽ không sử dụng chế độ xác thực cho việc này.


Lưu ý rằng việc xử lý IV ​​không được chỉ định trong giao thức mà bạn mô tả. Nó không cần thiết phải là một phần của hàm băm nếu điều đó bảo vệ bản rõ hơn là bản mã. Tuy nhiên, bạn nên đảm bảo rằng nó là duy nhất cho mỗi thư được mã hóa bằng cùng một khóa (và nếu bạn sử dụng chế độ CBC, thì không thể đoán trước được).

Tôi cũng không biết liệu giao thức có dễ bị tấn công phát lại và tấn công đoán văn bản gốc hay không, nếu hàm băm đã xác thực được sử dụng cho cả nhận dạng và xác thực.

Maarten Bodewes avatar
lá cờ in
Có thuật ngữ nào tốt hơn cho "các cuộc tấn công đoán bản rõ" hoặc "các cuộc tấn công đoán tin nhắn" không?
R.. GitHub STOP HELPING ICE avatar
lá cờ cn
Đó thực sự là bản mã (bao gồm cả công khai nonce và tạm thời) đã được xác thực vì dữ liệu được xử lý bằng hàm băm của bản mã. Do đó, không có thông tin để đoán bản rõ. IV được xử lý đúng cách (không được sử dụng lại).
R.. GitHub STOP HELPING ICE avatar
lá cờ cn
Nếu bạn quan tâm đến thông tin chi tiết hơn về hệ thống này, thì nó hiện đã được công khai: https://github.com/richfelker/bakelite
Maarten Bodewes avatar
lá cờ in
Rất thú vị! Sẽ thật tuyệt nếu bạn có thể viết một mô hình dữ liệu chính thức hơn cho nó. Hiện tại nó chỉ là một mô tả văn bản và mã. Hơn nữa, đối với độ tin cậy của chương trình sao lưu là mối quan tâm chính, tôi mong đợi một số mã thực hiện kiểm tra chức năng của các quy trình được sử dụng. Nếu thiết kế được biết đến, những người khác có thể giúp bạn những việc này. Sách trắng có thể làm nên điều kỳ diệu để giúp mọi người chấp nhận điều này.
Điểm:-1
lá cờ si

Hàm băm thiết lập tính toàn vẹn, không phải tính xác thực. Thẻ AEAD hoặc MAC của bản mã thiết lập cả tính toàn vẹn và tính xác thực.

Nếu hàm băm là của bản mã, kẻ tấn công có thể chỉ cần sửa đổi bản mã và tính toán một hàm băm mới, vì hàm băm không phụ thuộc vào khóa bí mật.

Nếu hàm băm là bản rõ, bạn sẽ gặp phải những điểm yếu giống như với các sơ đồ "MAC-then-encrypt" khi bạn vi phạm nguyên tắc nguyên tắc diệt vong mật mã.

R.. GitHub STOP HELPING ICE avatar
lá cờ cn
Tôi nghĩ rằng bạn đọc sai câu hỏi. Băm được biết đến và đáng tin cậy ngoài băng tần, vì vậy kẻ tấn công tính toán một hàm băm mới là vô ích. Chúng sẽ không tạo ra đốm màu phù hợp với hàm băm dự kiến ​​trừ khi hàm băm bị hỏng.
SAI Peregrinus avatar
lá cờ si
Vấn đề là sự tin tưởng đó. Hàm băm của bản mã ngoài băng tần có thể cung cấp xác thực nếu kênh ngoài băng tần cung cấp xác thực (MAC hoặc ký mã băm), nhưng nếu không có điều đó thì kênh ngoài băng tần không an toàn như MAC trong băng tần đơn giản của bản mã hoặc thẻ AEAD.
R.. GitHub STOP HELPING ICE avatar
lá cờ cn
Kênh OOB là nền tảng cho cài đặt mà tôi đang hỏi về; hàm băm ở đó có *danh tính* của dữ liệu được tham chiếu. (Hãy suy nghĩ tương tự về cách băm là danh tính trong git hoặc hệ thống tệp dựa trên hàm băm.) Tôi đang hỏi trong cài đặt này điều gì sẽ xảy ra nếu AEAD có thể cung cấp bất kỳ biện pháp bảo vệ nào.
Manish Adhikari avatar
lá cờ us
Có thể an toàn nếu kênh ngoài băng tần của bạn đáng tin cậy nhưng tôi luôn sử dụng AEAD bất kể.
R.. GitHub STOP HELPING ICE avatar
lá cờ cn
Tôi nghĩ rằng bạn vẫn còn thiếu điểm. Nếu người dùng dữ liệu đã được cung cấp sai hàm băm, thì đó đã là một vi phạm nghiêm trọng vì dữ liệu sai sẽ được truy cập. Ví dụ: họ có thể tải `$malware_sample` thay vì `$trusted_script`.Trong bối cảnh ở đây, khái niệm về tính xác thực dường như vô nghĩa nếu không có tính xác thực của tài liệu tham khảo.
R.. GitHub STOP HELPING ICE avatar
lá cờ cn
Ngoài ra - tôi đã bỏ qua điều này khỏi câu hỏi vì tôi nghĩ nó không liên quan, nhưng có lẽ tôi không nên có - khóa đối xứng mà các đốm màu được mã hóa không phải là khóa chia sẻ trước mà là đầu ra của mật mã khóa công khai. Như vậy, bất kỳ ai biết khóa công khai đều có thể tạo đốm màu bằng thẻ AEAD hợp lệ, nhưng điều này không hữu ích vì kết quả băm sẽ không khớp với bất kỳ thứ gì mà quá trình sử dụng đốm màu đang tìm kiếm.
SAI Peregrinus avatar
lá cờ si
Hàm băm không cho biết ai đã tạo ra hàm băm. Nếu kênh đáng tin cậy cung cấp tính xác thực (chỉ bên được xác thực mới có thể gửi tin nhắn trên kênh và không kẻ tấn công nào có thể sửa đổi tin nhắn) thì hàm băm cũng vậy. Nếu một trong những điều đó không đúng, thì hàm băm không đủ và bạn muốn có thẻ MAC hoặc AEAD. AEAD cũng thường nhanh hơn rất nhiều so với băm bản mã, vì bạn thường chỉ phải xử lý dữ liệu một lần thay vì hai lần.
R.. GitHub STOP HELPING ICE avatar
lá cờ cn
@SAIPeregrinus: Đây không phải là câu hỏi về "băm hay AEAD". Hàm băm về cơ bản là cần thiết (cấu trúc kiểu cây Merkle) và câu hỏi đặt ra là liệu AEAD có thêm bất kỳ giá trị nào hay không. Nhưng tôi nghĩ rằng nó trở nên rõ ràng rằng nó không.

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