Điểm:0

HMAC khóa công khai một lần có thể được bảo mật không?

lá cờ cn

Hãy tưởng tượng xác thực như $hmac = H(nonce, ciphertext)$. $nonce$ thực sự là ngẫu nhiên và được chọn (ngẫu nhiên và KHÔNG thay thế) từ tập hợp được xác định trước $N$. Cho nên ${nonce} \in N$ và một khi được sử dụng không thể được sử dụng lại một lần nữa. Và $N$ được công khai biết đến. Không có mối quan hệ thuật toán giữa $nonce$$bản mã$.

HMAC có an toàn không $N$ là công cộng?

Morrolan avatar
lá cờ ng
Do nonce được chọn ngẫu nhiên, tôi sẽ tưởng tượng bằng cách nào đó nó sẽ được truyền đạt - đơn giản - như một phần của thông điệp/bộ MAC? Sau đó, chắc chắn kẻ tấn công có thể chặn giao tiếp này có thể chỉ cần thay thế thông báo của chính họ và tính toán lại MAC bằng cách sử dụng nonce được giao tiếp.
Paul Uszak avatar
lá cờ cn
@Morrolan Hiya. Tất nhiên họ có thể. Nhưng $N$ là một tập hợp cố định được xác định trước. _" nonce được truyền đạt"_ phải là thành viên của $N$. Và nó chỉ có thể được sử dụng một lần và $|nonce|$ rất lớn.
Manish Adhikari avatar
lá cờ us
Có, câu hỏi này khó trả lời nếu không có mô tả chính xác về giao thức cho sự tương tác, chẳng hạn như ai chọn nonce, loại tập hợp N là gì, ai tính toán hmac và giao tiếp như thế nào
Morrolan avatar
lá cờ ng
@PaulUszak Trong trường hợp này, nó dường như bị hỏng hoàn toàn - thuộc một bộ nổi tiếng và chỉ có thể được sử dụng một lần, không bảo vệ chống lại kẻ thù có thể chặn tin nhắn. Họ sẽ sửa đổi nó, tính toán lại MAC và gửi thông báo đã sửa đổi theo cách của nó. Nếu không sử dụng được chọn theo một số cách xác định nhưng bí mật (nghĩ rằng PRF), thì bạn có thể làm cho nó hoạt động. Nhưng tất nhiên sau đó bạn cần một khóa bí mật dùng chung cho PRF. Có thể chúng tôi đang thiếu một số điểm - có thể đáng để điều chỉnh lại/cung cấp thêm một số chi tiết. :)
Paul Uszak avatar
lá cờ cn
@Morrolan Tôi đang tìm MAC dùng một lần. Xin lỗi.
Paul Uszak avatar
lá cờ cn
@ManishAdhikari Tôi đang tìm MAC dùng một lần. Xin lỗi.
Morrolan avatar
lá cờ ng
@PaulUszak xem xét tình huống sau: A muốn gửi tin nhắn $m$. Chọn nonce $n \leftarrow N$ và tính MAC $h := HMAC(n, m)$. Gửi $(n, h, m)$ tới B. E chặn $(n, h, m)$ (tin nhắn không đến được B!). Chọn thông báo tùy ý $m'$, tính toán $h' = HMAC(n, m')$. Gửi $(n, h', m')$ cho Bob. B xác minh rằng $n$ chưa từng được sử dụng trước đó và $HMAC(n, m') = h'$. Cả hai lần kiểm tra đều đạt => Giả mạo. Bạn có đồng ý với điều này là một vấn đề? Hoặc làm ví dụ: các bên của bạn có một cơ chế an toàn ngoài băng thông qua đó họ giao tiếp nonce?
Paul Uszak avatar
lá cờ cn
@Morrolan Có, nonce được xác định trước ngoài băng từ một tập cố định và không thay đổi $N$. Vì vậy, $n$ luôn là duy nhất, theo thứ tự 160 bit thực sự ngẫu nhiên.
Morrolan avatar
lá cờ ng
Tôi hiểu rồi! Trong trường hợp đó, nó có vẻ khá giống với cách sử dụng HMAC thông thường - cụ thể là với khóa bí mật. Ngoại trừ trường hợp của bạn, khóa là tạm thời, chỉ được sử dụng cho một tin nhắn. Giả sử một không gian khóa đủ lớn (là 160 bit), thì cá nhân tôi thấy không có vấn đề gì với nó. (Tuy nhiên, có thể thêm mẩu tin đó vào câu hỏi, vì lợi ích của những khách truy cập trong tương lai. Vì nó không quá rõ ràng - ít nhất là với tôi)
Điểm:2
lá cờ in

Nếu nonce được biết thì HMAC được biến thành hàm băm và kẻ thù có thể thực hiện một cuộc tấn công tích cực bằng cách thay thế thẻ xác thực $t$ với $t' = H_{k=nonce}(bản mã')$.

Nếu một lớn $N$ biết hay không không quan trọng; nếu nonce vẫn là bí mật thì $N$ chỉ đơn giản là miền mà từ đó bí mật được lấy; tức là trong trường hợp đó bạn đã mô tả chức năng tạo khóa bí mật mà $N$ thường được biết đến (ví dụ: đó là $2^{256}$ cho HMAC-SHA-256, được mô tả chung là một chức năng $\text{Gen}$ với đầu ra $1^{256}$ hoặc $\{0, 1\}^{256}$).

Tất nhiên, miễn là giá trị thẻ $t$ không thể bị thay đổi bởi kẻ tấn công thì cấu trúc được bảo mật, giả sử rằng $t$ là đủ lớn. Xét cho cùng, điều này tương đương với việc có một giá trị băm tĩnh cho một thông báo cụ thể không thể thay đổi, tương tự như một hàm băm trên một tệp trên trang gốc có thể tải xuống từ máy nhân bản.

Xin lưu ý rằng đây có thể không phải là trường hợp đối với các chức năng MAC khác, ví dụ: bạn không muốn sử dụng GMAC với khóa đã biết.

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