Điểm:1

Tôi có cần muối khi lấy khóa mới bằng HKDF nếu khóa chính mạnh không? Muối toàn cầu có ổn không?

lá cờ ht

Giả sử tôi có một khóa chính và muốn sử dụng khóa đó để lấy các khóa mới dùng để mã hóa, sử dụng HKDF. Tuy nhiên, tôi hơi bối rối về việc sử dụng muối. Tôi đã xem các bài đăng khác về nó ở đây nhưng tôi vẫn chưa hiểu hết khi nào/nếu tôi nên sử dụng nó.

Kịch bản: A tạo MasterKey và chia sẻ nó với B, C, D. A lấy các khóa khác nhau cho B, C và D và mã hóa một số dữ liệu (cho mỗi người trong số họ). Bây giờ tôi muốn họ có thể lấy được các khóa mới tương tự dựa trên một số đầu vào để họ có thể giải mã dữ liệu của mình.

HKDF(MasterKey, muối: "", thông tin: "some-data-B", hàm băm: "SHA256")
HKDF(MasterKey, muối: "", thông tin: "some-data-C", hàm băm: "SHA256")
HKDF(MasterKey, muối: "", thông tin: "some-data-D", hàm băm: "SHA256")
...

Muối ở đây là tùy chọn nhưng sử dụng nó thêm "sức mạnh". Có phải nó chỉ hữu ích nếu MasterKey yếu?

Nếu MasterKey của tôi "đủ" mạnh - tôi vẫn cần muối chứ? Nếu không, thế nào là đủ mạnh? Chuỗi hex ngẫu nhiên dài 32 ký tự có đủ không?

Nếu tôi vẫn nên sử dụng một loại muối thì tất cả B, C và D có thể dùng chung một loại muối hay chúng phải là duy nhất (trong RFC có đề cập đến việc có thể tái sử dụng muối nhưng không hoàn toàn chắc chắn về ý nghĩa của chúng)?

kelalaka avatar
lá cờ in
Bạn sẽ lấy được bao nhiêu khóa từ một khóa duy nhất? Tại sao bạn không sử dụng Diffie-Hellman?
Điểm:1
lá cờ in

Muối ở đây là tùy chọn nhưng sử dụng nó thêm "sức mạnh". Có phải nó chỉ hữu ích nếu MasterKey yếu?

Nếu khóa Chính không phải là ngẫu nhiên thống nhất, thì bước giải nén trích xuất tính ngẫu nhiên thống nhất từ ​​entropy hiện tại của Tài liệu khóa đầu vào (IKM) ( mật khẩu hoặc khóa của bạn, hoặc ..). Muối bổ sung vào việc củng cố HKDF và hỗ trợ trợ giúp trích xuất độc lập với nguồn để hai IKM khác nhau kết thúc với hai kết quả trích xuất khác nhau. Người ta có thể hưởng lợi từ việc trích xuất độc lập với nguồn ngay cả khi họ có khóa ngẫu nhiên đồng nhất với đủ độ mạnh

Nếu MasterKey của tôi "đủ" mạnh - tôi vẫn cần muối chứ? Nếu không, thế nào là đủ mạnh? Chuỗi hex ngẫu nhiên dài 32 ký tự có đủ không?

Mạnh mẽ không phải là số liệu. Nếu bạn có các bit ngẫu nhiên thống nhất thì bạn không cần bước giải nén của HKDF. Kích thước của các bit phụ thuộc vào nơi bạn sẽ sử dụng; 128-bit cho AES-128, 256-bit AES-256, v.v.

Nếu tôi vẫn nên sử dụng một loại muối thì tất cả B, C và D có thể dùng chung một loại muối hay chúng phải là duy nhất (trong RFC có đề cập đến việc có thể tái sử dụng muối nhưng không hoàn toàn chắc chắn về ý nghĩa của chúng)?

Trên thực tế, khi bạn nhận được Khóa giả ngẫu nhiên (PRK) từ bước Trích xuất, để lấy khóa bạn chỉ cần thay đổi thẻ thông tin.

Tái sử dụng muối có nghĩa là không có quá trình chiết xuất độc lập với nguồn, bạn đang mở rộng cùng một PRK trên mở rộng bước. Bạn có thể muốn sử dụng các PRK khác nhau cho những người dùng khác nhau.

Muối toàn cầu có ổn không?

Bước mở rộng sử dụng HMAC với khóa PRK.

HMAC-Hash(PRK, T(0) | thông tin | 0x01)

HMAC là một PRF và bạn sử dụng muối toàn cầu, sau đó bạn sửa PRF. Vấn đề duy nhất mà tôi có thể thấy là sự va chạm của đầu ra trong thời gian dài. Mặc dù người ta có thể tạo và lưu trữ muối một cách dễ dàng và có được một nhóm PRF thay vì một loại, vậy tại sao không sử dụng các loại muối khác nhau cho mỗi người dùng?

Có hai phần tuyệt vời trong rfc5869

3.1. Muối hay không muối

Tuy nhiên, ngay cả một giá trị muối kém chất lượng hơn (ngắn hơn trong kích thước hoặc với entropy giới hạn) vẫn có thể tạo ra một giá trị đáng kể đóng góp cho sự an toàn của tài liệu khóa đầu ra; nhà thiết kế do đó, các ứng dụng được khuyến khích cung cấp các giá trị muối cho HKDF nếu ứng dụng có thể nhận được các giá trị đó.

một số ứng dụng thậm chí có thể có sẵn một giá trị muối bí mật để sử dụng; trong trường hợp như vậy, HKDF cung cấp bảo đảm an ninh mạnh mẽ hơn.

3.2 Đầu vào 'thông tin' cho HKDF ... Mục tiêu chính của nó là liên kết tài liệu chính dẫn xuất với thông tin theo ngữ cảnh và ứng dụng cụ thể. Ví dụ: 'thông tin' có thể chứa số giao thức, số nhận dạng thuật toán, danh tính người dùng, v.v. Đặc biệt, nó có thể ngăn việc tạo ra cùng một tài liệu khóa cho các ngữ cảnh khác nhau (khi cùng một tài liệu khóa đầu vào (IKM) được sử dụng trong ngữ cảnh khác nhau).

Trên thực tế, đây không phải là cách chính xác để tạo và phân phối khóa. Bạn nên xem xét các giải pháp mã hóa khóa công khai như RSA-KEM hoặc ECHE trong đó kết quả của cả hai phải được chuyển từ KDF trước khi được sử dụng để mã hóa.

Aman Grewal avatar
lá cờ gb
Cần lưu ý rằng việc thay đổi thẻ thông tin là bắt buộc để lấy các khóa khác nhau. Không nên thay đổi muối mà không thay đổi bất cứ thứ gì khác.
kelalaka avatar
lá cờ in
@AmanGrewal không bắt buộc nếu bạn giải nén và mở rộng. Nhưng đó là id bắt buộc, bạn chỉ sử dụng bước mở rộng. Nó cũng hữu ích nếu một người không tạo ra muối ngẫu nhiên. Ngoài ra, điều quan trọng là phải liên kết các ứng dụng [3.2](https://datatracker.ietf.org/doc/html/rfc5869#section-3.2)

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