Điểm:0

Mật mã khóa công khai để đăng nhập

lá cờ ky

Đây là một câu hỏi hoàn toàn xuất phát từ sự tò mò, muốn hiểu thêm một chút về mật mã và xác thực. Cảm ơn trước cho bất cứ ai dành thời gian của họ để trả lời.

Thay vì thêm muối và băm mật khẩu, gửi nó đến máy chủ để xác thực chính bạn, một cái gì đó như thế này có thể hoạt động không? Một khách hàng tạo một cặp khóa riêng/công khai từ mật khẩu và muối ngẫu nhiên. Khóa công khai và muối được lưu trữ bởi máy chủ. Đối với mỗi lần đăng nhập, máy chủ sẽ gửi muối và một giá trị được tạo ngẫu nhiên để khách hàng ký. Máy khách tạo lại khóa riêng từ mật khẩu và muối, sau đó ký vào giá trị được tạo ngẫu nhiên và gửi giá trị đó đến máy chủ. Máy chủ xác minh chữ ký bằng khóa chung tương ứng.

Để làm chậm cuộc tấn công vũ phu, khóa phải được lấy từ mật khẩu và muối bằng cách sử dụng KDF chậm, trước khi tạo khóa riêng tư/công khai.

Ngoài ra, máy chủ có thể yêu cầu máy khách lấy khóa từ giá trị được tạo ngẫu nhiên, sử dụng một số KDF chậm, trước khi nó được ký — mặc dù đối với tôi, điều này có vẻ kém lý tưởng hơn là chỉ làm chậm quá trình tạo khóa. Để tiết kiệm tài nguyên máy chủ khi xác minh chữ ký, người ta có thể sử dụng cơ chế kiểu Proof of Work thay vì KDF chậm, trong đó khách hàng phải tìm một nonce sao cho hash(randomly_generated_value + nonce) > some_set_difficulty, sau đó nonce được ký và gửi tới máy chủ để được xác minh. Máy chủ thậm chí có thể thay đổi độ khó, chẳng hạn như tăng độ khó cho mỗi lần đăng nhập không thành công.

Điều gì sẽ là một số lợi thế và bất lợi của một kế hoạch như vậy? Tôi nghi ngờ việc để lộ muối trong mỗi lần đăng nhập sẽ là một vấn đề.

lá cờ in
Trong khi nó hoạt động, tôi không thể thấy lợi ích của việc sử dụng cái này so với sử dụng thuật toán băm chậm như bcrypt?
Manish Adhikari avatar
lá cờ us
Sử dụng mật khẩu + PBKDF tốt để mã hóa khóa riêng của bạn và lưu trữ nó ở nơi an toàn, như trong SSH về cơ bản cũng làm điều tương tự, mà không để muối của bạn tiếp xúc với mạng có khả năng không an toàn. Lưu trữ nó ở một nơi đáng tin cậy mà bạn có thể truy cập thông qua một mạng an toàn và sử dụng nó để xác thực với máy chủ này qua kênh không an toàn sẽ tốt hơn
Maarten Bodewes avatar
lá cờ in
Một vấn đề với điều này là việc tạo khóa riêng từ bất kỳ hạt giống ngẫu nhiên nào là không tầm thường. Nếu bạn không bao giờ thay đổi thuật toán xác định thì bạn vẫn ổn, nhưng điều đó có nghĩa là 1. RNG không thay đổi, 2. trích xuất bit không bao giờ thay đổi và 4. việc tạo khóa không thay đổi và 4. rằng các bit được lấy từ RNG luôn theo cùng một cách. Một số điều này có vẻ tầm thường, nhưng hãy nhớ rằng ví dụ: Việc tạo cặp khóa RSA yêu cầu 2 số nguyên tố ngẫu nhiên và có nhiều cách để tạo các số đó.

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