Điểm:1

Mã hóa dữ liệu nhỏ bằng khóa cố định và IV gia tăng

lá cờ br

Tôi có một thiết bị Bluetooth gửi một gói nhỏ định kỳ (không nhận). Tôi muốn mã hóa và xác thực dữ liệu bằng AES-128. Nó có một khóa ngẫu nhiên và duy nhất được nhúng, khóa này được ghi vào bộ nhớ khi sản xuất và nó được người nhận biết. Tôi có cấu trúc thông báo sau:

Phản đối Khối hàng Ảo thuật đệm
4 byte 10 byte 4 byte 2 byte

Phản đối không được mã hóa và sẽ tăng tuần tự cho từng thông báo (không bao giờ lặp lại) và nó sẽ được sử dụng làm IV cho chế độ AES-CTR. Nó cũng sẽ phục vụ để bảo vệ chống lại các cuộc tấn công lặp lại, tức là các gói cũ hơn sẽ bị bỏ qua.

Ảo thuật là số cố định và đã biết để kiểm tra xem tin nhắn được giải mã có phải là tin nhắn vô nghĩa và là dữ liệu hợp lệ hay không.

đệm được bỏ qua ở phía người nhận và được sử dụng để hoàn thành dữ liệu được mã hóa thành 16 byte.

Payload + Magic + Padding sẽ được mã hóa cùng nhau trước khi gửi, tức là

Phản đối Dữ liệu được mã hóa
4 byte 16 byte

Các câu hỏi là:

  1. Người nghe thụ động có thể phá vỡ mã hóa này và/hoặc tạo các tin nhắn hợp pháp không?
  2. Điều này cũng cung cấp xác thực vì không ai ngoại trừ người giữ khóa có thể tạo một thông báo như vậy?
  3. Bạn có thể sử dụng IV/nonce với việc thêm 0 vào Bộ đếm không? Tôi có nên thêm bộ đếm vào một số ngẫu nhiên (số này cũng bị đốt cháy tại nhà máy) không?
  4. Đặt gì vào phần đệm, số 0 hoặc số ngẫu nhiên? Nó thậm chí có cần thiết không?
  5. Sử dụng số ma thuật theo cách này có hợp lý không? Tôi có cần tạo phép thuật ngẫu nhiên và gửi nó cả không được mã hóa và được mã hóa để người nhận xác thực không?
  6. Phương pháp chính xác/được thiết lập tốt để mã hóa và xác thực trong cài đặt như vậy là gì?
Điểm:4
lá cờ in
  1. Người nghe thụ động có thể phá vỡ mã hóa này và/hoặc tạo các tin nhắn hợp pháp không?

Trình nghe thụ động sẽ không thể đảo ngược AES, vì vậy việc lấy bản rõ là không thể, trừ khi mỗi phiên được khởi động lại.Tuy nhiên, sơ đồ này sẽ dễ bị tấn công bằng lời tiên tri bằng văn bản gốc. Đọc tiếp.

Đối với việc tạo ra các thông điệp hợp pháp: đó không phải là một cuộc tấn công thụ động.

  1. Điều này cũng cung cấp xác thực vì không ai ngoại trừ người giữ khóa có thể tạo một thông báo như vậy?

Không. Nếu bạn thực hiện một người đàn ông ở giữa, bạn có thể thay đổi từng chút thông điệp và giữ nguyên phép thuật. Trong chế độ CTR tất cả các bit của bản rõ/bản mã đều độc lập với nhau. Nó cũng cho phép kẻ tấn công thực hiện các cuộc tấn công tiên tri bằng văn bản gốc (bằng cách thay đổi một chút văn bản gốc và sau đó phát hiện cách hệ thống phản hồi với nó).

  1. Bạn có thể sử dụng IV/nonce với việc thêm 0 vào Bộ đếm không? Tôi có nên thêm bộ đếm vào một số ngẫu nhiên (số này cũng bị đốt cháy tại nhà máy) không?

Miễn là bộ đếm không bao giờ lặp lại chế độ CTR là tương đối an toàn - miễn là nó được sử dụng đúng cách, đây không phải là trường hợp ở đây.

  1. Đặt gì vào phần đệm, số 0 hoặc số ngẫu nhiên? Nó thậm chí có cần thiết không?

Không, đối với chế độ CTR, việc đệm là không cần thiết.

  1. Sử dụng số ma thuật theo cách này có hợp lý không? Tôi có cần tạo phép thuật ngẫu nhiên và gửi nó cả không được mã hóa và được mã hóa để người nhận xác thực không?

Bạn thường sử dụng chế độ xác thực để tạo thẻ xác thực. 32 bit thường quá nhỏ, nhưng tùy thuộc vào trường hợp sử dụng, nó có thể đủ cho các hệ thống thời gian thực, v.v.

  1. Phương pháp chính xác/được thiết lập tốt để mã hóa và xác thực trong cài đặt như vậy là gì?

Nếu bạn chỉ có AES thì chế độ CCM sẽ là chế độ bình thường.


NB

  • Lược đồ bạn hiện đang mô tả có vẻ phù hợp hơn với mã hóa AES trực tiếp hoặc AES-CBC. Chẳng hạn, nếu bạn đệm và mã hóa bộ đếm, bạn có thể sử dụng nó làm IV cho AES-CBC. Nếu bạn đặt giá trị 02 trong byte đệm của tin nhắn thì bạn sẽ có phần đệm tương thích PKCS#7. Ưu điểm của điều này là các bit trong mã hóa khối AES của tin nhắn giờ đây đều phụ thuộc vào nhau, do đó phép thuật sẽ hoạt động tốt hơn một chút.

  • Chương trình hiện tại của bạn dường như chỉ giới hạn trong một phiên.Thông thường, bạn sẽ lấy được các khóa phiên mới cho mỗi phiên.

  • Ngay cả khi chế độ được thay đổi thành CBC, vẫn có một $1 \trên 2^{32}$ khả năng kẻ tấn công tạo một tin nhắn có phép thuật hợp lệ, chỉ bằng cách thử ngẫu nhiên. Phần còn lại của tin nhắn có thể sẽ bị cắt xén, nhưng việc xử lý văn bản bị cắt xén cũng có thể không phải là một ý kiến ​​hay. Có thể thực hiện các biện pháp đối phó bổ sung để chống lại điều đó (tuy nhiên, hầu hết các biện pháp đó có thể dẫn đến các cuộc tấn công DoS).

lá cờ br
Cảm ơn đã phản ứng chi tiết. Tôi đoán lỗ hổng chính ở đây là: "Trong chế độ CTR, tất cả các bit của bản rõ/bản mã đều độc lập với nhau", nhưng tôi không hiểu ý nghĩa thực sự của nó.
lá cờ br
Không có gì đảm bảo rằng người nhận sẽ nhận được tất cả các tin nhắn, trên thực tế, việc rơi gói là khá phổ biến. Chúng tôi vẫn có thể khôi phục bản rõ trong trường hợp này khi sử dụng AES-CBC chứ? Ngoài ra, tải trọng có thể khác nhau đối với mỗi tin nhắn.
Maarten Bodewes avatar
lá cờ in
Trong chế độ CTR, bạn XOR bản rõ với luồng khóa, từng chút một. Vì vậy, bất kỳ lần lật nào của các bit bản mã chỉ đơn giản là lật các bit của bản rõ ở cùng một vị trí. I E. bạn có thể thay đổi bất kỳ bit văn bản gốc nào mà không ảnh hưởng đến phép thuật.
Maarten Bodewes avatar
lá cờ in
Trong sơ đồ tôi đã mô tả, tôi đã đệm và mã hóa bộ đếm để nó có thể được sử dụng làm IV.Điều đó làm cho việc giải mã CBC chỉ phụ thuộc vào bộ đếm và - tất nhiên - khóa.
lá cờ br
Toàn bộ điều rõ ràng hơn bây giờ. Tôi đã đọc thông số chế độ NIST CCM - rất dễ đọc - và tôi nghĩ chế độ này là chế độ chính xác cho ứng dụng của tôi. Theo như tôi hiểu thì nó không có lỗ hổng với sơ đồ ma thuật, vốn là một lựa chọn tồi ngay từ đầu. Cảm ơn đã giúp đỡ.

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