2011-08-18 33 views
9

Tôi vừa học được khái niệm băm ("Này! Đừng quên muối!") Và sử dụng muối để đảm bảo mật khẩu.Điểm muối và băm là gì nếu cơ sở dữ liệu có thể truy cập?

Hashing nó là mã hóa một chiều (thực sự không mã hóa nhưng băm) nên không thể đảo ngược được thiết kế. Salting là tiền tố hoặc gắn các giá trị được tạo ngẫu nhiên vào mật khẩu trước khi băm 'coz vấn đề trong băm (chỉ băm), một số thiên tài đã cung cấp một bảng băm từ trong từ điển để chúng chỉ so sánh băm từ từ điển đó với bảng của người dùng từ cơ sở dữ liệu để đăng nhập - W-wait? tôi đã nói bảng từ cơ sở dữ liệu? Vì vậy, nó có nghĩa là ai đó có thể truy cập cơ sở dữ liệu vì vậy chúng tôi phải sử dụng muối? Nếu vậy, thì tại sao hacker sẽ khôi phục mật khẩu nếu anh ta đã có quyền truy cập vào cơ sở dữ liệu? Nếu tôi là anh ta, tôi sẽ lấy tất cả các chi tiết tôi muốn từ cơ sở dữ liệu, tại sao tôi lại sử dụng chìa khóa tôi đã đánh cắp từ một ngôi nhà để mở cửa nếu tôi có thể vào nhà qua cửa sổ?

Vì vậy, tại sao băm? tại sao lại là muối? Tôi không hiểu. Làm ơn, ai đó giúp tôi.

Xin cảm ơn trước.

Lưu ý quan trọng: Tôi không chống lại băm hoặc muối, tôi chỉ muốn làm rõ mọi thứ.

+0

Không phải là * chính xác * trùng lặp, nhưng bạn cũng có thể muốn xem: http://stackoverflow.com/questions/6552554/salting-hashes-why-is-the-salt-treated-by-the-literature -as-being-known-to-eve/6608045 # 6608045 –

Trả lời

11

Nếu vậy, tại sao hacker sẽ khôi phục mật khẩu nếu họ đã có quyền truy cập vào cơ sở dữ liệu?

Lý do là nhiều. Dưới đây là một số ít:

  1. Mọi người sử dụng lại mật khẩu của họ, vì vậy không bị rò rỉ mật khẩu thực sự hạn chế tác động của cuộc tấn công đó.

  2. Nếu không có mật khẩu thực, hacker sẽ vẫn không thể đăng nhập và, nói, đăng các mục nhập mới trên hệ thống bị tấn công.

  3. Ai nói tất cả thông tin được lưu trữ trong cơ sở dữ liệu? Điều gì xảy ra nếu cơ sở dữ liệu chỉ bao gồm tên người dùng và mật khẩu băm/muối? Sau đó, biết nội dung không giúp được gì nhiều.

3

Muối được sử dụng để mật khẩu giống hệt nhau có các băm khác nhau, cố gắng tìm ra mật khẩu khó hơn.

Hashing làm cho nó để tạo mật khẩu thông qua các phương pháp bạo lực mất một thời gian rất dài (đặc biệt là với SHA2) để nó làm cho nó "không khả thi" để tìm ra mật khẩu.

Băm sẽ làm bạn không tốt nếu bạn không biết mật khẩu khi nhập mã băm vào trường mật khẩu sẽ không hoạt động (hiển nhiên). Thông thường, tin tặc chỉ tìm thấy bảng người dùng và có thể một số thông tin cơ bản nhưng nếu họ muốn có thể truy cập thông tin người dùng đó và thay đổi thứ gì đó thì họ cần mật khẩu thực (vì họ không biết toàn bộ lược đồ DB thay đổi thứ gì đó có thể trông rất đáng ngờ và dễ dàng truy xuất trừ khi bạn đăng nhập hợp pháp với tư cách là người đó)

Điều cuối cùng tôi quên là mọi người sử dụng lại mật khẩu.Vì vậy, có thể bạn đã tấn công một số trang web ngẫu nhiên không có thông tin hữu ích về nó nhưng người đó đã sử dụng cùng một kết hợp người dùng/mật khẩu trên ngân hàng trực tuyến của họ. Điều này có thể rất xấu như bạn có thể thấy vì vậy không thể dễ dàng nhận ra mật khẩu là chìa khóa.

4

Nếu bạn có mật khẩu và địa chỉ e-mail rõ ràng từ cơ sở dữ liệu, bạn có thể tàn phá! Nó không phải là về nhận được thông tin đăng nhập vào trang web đã bị hack, đó là về việc nhận thông tin đăng nhập vào các trang web khác.

Hầu hết mọi người không sử dụng một mật khẩu duy nhất cho một trang, vì vậy nếu bạn có mật khẩu cho địa chỉ e-mail chính của họ, bạn có thể truy cập vào TẤT CẢ tài khoản của họ trên mọi trang web (thông qua đặt lại mật khẩu).

4

Để sở hữu các hồ sơ người dùng từ cơ sở dữ liệu không nhất thiết có nghĩa là bạn có quyền truy cập vào cơ sở dữ liệu. Thông qua một số rò rỉ trên trang web (xin chào, SQL injection), bạn có thể truy cập dữ liệu mà bạn không nên truy cập mà không nhất thiết phải xâm phạm toàn bộ máy chủ. Các bản sao lưu được xử lý kém, máy chủ chia sẻ, nhân viên không đủ năng lực hoặc độc hại đều có thể làm cho điều đó có thể xảy ra.

Ngoài ra và có thể quan trọng hơn, bạn cần phải bảo vệ mật khẩu của khách hàng trên các trang web khác. Người ta không may sử dụng lại mật khẩu của họ khắp nơi. Nếu cơ sở dữ liệu phòng trò chuyện nhỏ của bạn bị xâm nhập, mật khẩu của người dùng tại các trang web ngân hàng của họ có thể bị xâm phạm.

+0

+1 cho việc tiêm SQL, đúng vậy, hacker có thể truy cập chỉ một bảng chứ không phải toàn bộ cơ sở dữ liệu ... Cảm ơn bạn. – dpp

+0

@domanokz Và nó không chỉ là SQL injection. Một số câu lệnh debug mà bạn đã quên ở đâu đó, một lỗi logic có nhiều dữ liệu hơn nó sẽ ... có hàng nghìn khả năng khác nhau. – deceze

1

Giả sử kẻ tấn công bằng cách nào đó có quyền truy cập vào bản sao lưu của cơ sở dữ liệu, chứa mật khẩu băm không thể khôi phục. Sau đó, họ có tất cả các dữ liệu trong đó ngày hôm qua, đó là khá xấu. Nhưng ít nhất họ không có quyền truy cập vào dữ liệu sẽ có mặt ở đó vào ngày mai và họ không thể xóa bất kỳ nội dung nào khỏi trang web thực, phá hoại nó, phân phát phần mềm độc hại qua CMS của mình, v.v.

Giả sử kẻ tấn công bị mật khẩu rõ ràng của mọi người, đặc biệt nếu mật khẩu đó bao gồm quản trị viên. Rất tiếc.

Các vấn đề liên quan