Tên đăng nhập hoặc mật khẩu không chính xác: tại sao không chỉ định tên nào? [đóng cửa]


2

Khi đăng nhập vào trang web hoặc ứng dụng di động, nếu nhập tên người dùng / email hoặc mật khẩu không chính xác, bạn hầu như luôn được thông báo rằng "tên người dùng hoặc mật khẩu không chính xác". Tại sao nó là thông lệ để làm điều này, thay vì nói cho người dùng cụ thể liệu đó là tên người dùng / email hoặc mật khẩu không chính xác?

Tôi đoán là nó được điều khiển bảo mật ở một mức độ nào đó, nhưng nếu vậy, sự khác biệt lớn đến mức nào được cung cấp trong bảo vệ mối đe dọa bằng cách mơ hồ nói với người dùng rằng một số thông tin được cung cấp là không chính xác?

Tôi đã có rất nhiều trường hợp - đặc biệt là với các trang web cũ hơn hoặc ít truy cập hơn - nơi tôi không biết liệu phần không chính xác là email, mật khẩu của tôi hay cả hai.


Đáng buồn thay, trên các hệ thống dựa trên Windows, thật dễ dàng để tìm ra: thử tên người dùng giống nhau 3 hoặc 4 lần và nếu bạn bị khóa, tên người dùng hợp lệ; nếu bạn không thì nó không hợp lệ (điều này có thể đã thay đổi trong vài năm qua; tôi chưa điều tra).
Carl Witthoft

Câu trả lời:


7

Điều này đã được giải quyết tại trang web Trao đổi bảo mật CNTT .

Kẻ tấn công khó đoán được các kết hợp mật khẩu tên người dùng hợp lệ hơn là mật khẩu. Khi sự tồn tại của một tài khoản được xác nhận, nó có thể được nhắm mục tiêu (có thể với một số nghiên cứu bên ngoài trên các trang web như Facebook).

Các trang web cũng thuận tiện hơn rất nhiều khi trả về lỗi xác thực chung nếu họ truy vấn cơ sở dữ liệu cho cả hai phần thông tin xác thực của người dùng (tên người dùng và mật khẩu băm) cùng một lúc, hoặc nếu lớp xác thực bị mờ và chỉ trả về liệu người dùng là hợp pháp.

Nói chung, không tốt để tiết lộ nhiều thông tin hơn mức cần thiết. Một số kẻ tấn công có thể muốn lấy danh sách người dùng ("liệt kê"), có lẽ để lừa đảo.

Ngoài ra, nếu người dùng nhập nhầm tên người dùng để tạo tên người dùng khác nhưng lấy mật khẩu riêng (không phải mật khẩu của người dùng khác) thì sao? Sau đó, thông báo sẽ nói "sai mật khẩu" mặc dù lỗi thực sự nằm ở tên người dùng.


Làm thế nào là " nếu họ truy vấn cơ sở dữ liệu cho cả hai phần thông tin đăng nhập của người dùng cùng một lúc " được đọc? Đối với tôi có vẻ như bạn đang giả sử mật khẩu được lưu trữ rõ ràng.
kasperd

@kasperd Nếu máy chủ đã làm một cái gì đó như thế select * from users where username='USERNAME HERE' and passhash='COMPUTED HASH HERE', nó sẽ nhận được không hoặc một kết quả, và nó sẽ không biết cái nào sai nếu không có. (Ví dụ từ một trong những câu trả lời cho câu hỏi Sec.SE đó.)
Ben N

1
Điều đó sẽ tốt hơn là lưu trữ mật khẩu rõ ràng. Nhưng một mật khẩu băm an toàn liên quan đến một muối, sẽ khác nhau cho mỗi người dùng. Vì vậy, băm mật khẩu không thể được tính mà không cần tra cứu muối trong cơ sở dữ liệu.
kasperd

10

Dự đoán của bạn là chính xác. Chỉ định rằng tên người dùng không chính xác là một dạng Rò rỉ Thông tin . Chỉ sử dụng hình thức đăng nhập, kẻ tấn công có thể xác định xem một địa chỉ email / tên người dùng cụ thể có tài khoản trên trang web hay không.


Chính xác. Nếu cuộc tấn công mà bạn muốn bảo vệ chống lại là thử nghiệm ngẫu nhiên và lỗi cả mật khẩu và tên người dùng, điều này làm cho việc bẻ khóa / đoán gấp đôi rất khó khăn.
Jan Doggen

2
Tôi dường như đang thiếu một cái gì đó, tại sao kẻ tấn công không thể kiểm tra xem tài khoản có tồn tại hay không bằng cách cố gắng tạo một tài khoản có cùng tên thông qua trang đăng ký?
Andrew Sun

@AndrewSun, đó cũng là một vectơ phổ biến để khai thác lỗ hổng này và có nhiều cách để giảm thiểu nó. Xem tại đây
heavyyd

3

Đó hoàn toàn là bảo mật và quyền riêng tư ... Khía cạnh riêng tư là do hầu hết mọi người sử dụng tên người dùng chung trên nhiều trang web, xác nhận tên người dùng tồn tại cho thấy một cá nhân có tài khoản trên hệ thống đó, có thể có hoặc không đáng kể tùy thuộc vào trang web hoặc người dùng, nhưng vẫn cung cấp cho một số thông tin cá nhân. Khía cạnh bảo mật khá đơn giản, nếu bạn cố xác thực tên người dùng và mật khẩu ngẫu nhiên, nói với họ tên người dùng là chính xác sẽ cắt giảm các kết hợp có thể để hack, giảm đáng kể thời gian và tăng khả năng bị hack. Có những ý nghĩa khác, nhưng đây là những ý nghĩa nhất.


1
Biết tên người dùng không chỉ giảm một nửa không gian tìm kiếm. Giả sử có 10 ^ 8 tên người dùng có thể và 10 ^ 20 mật khẩu có thể. Nếu kẻ tấn công không bao giờ có thể biết liệu người dùng có tồn tại hay không, có 10 ^ 28 cặp để thử. Khi kẻ tấn công biết người dùng tồn tại, chỉ còn 10 ^ 20 cặp - giảm tám bậc độ lớn. (Xác suất phức tạp hơn một chút vì không gian tìm kiếm lớn sẽ có nhiều hơn một lần truy cập, nhưng bạn hiểu ý.)
Ben N

1
Đúng, toán học của tôi có thể không chính xác nhưng nói chung tôi đứng trước tuyên bố của mình
acejavelin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.