2010-06-24 34 views
5

Tôi mới phát triển web. Tôi có được phép lưu trữ mật khẩu ban đầu của người dùng không? Tôi biết thực hành tốt là để lưu trữ mật khẩu băm bằng cách sử dụng một muối, nhưng tại sao chúng ta không lưu trữ mật khẩu ban đầu?Tại sao mật khẩu ban đầu không được lưu trữ?

Có phải vì cơ sở dữ liệu dễ bị tấn công, vì vậy băm bảo vệ mật khẩu? Có lý do nào khác không? Nếu không, tôi muốn lưu trữ mật khẩu ban đầu nếu nó là hợp pháp để làm như vậy.

+16

Tôi sẽ không bao giờ đăng ký tài khoản tại trang web của bạn ^^ thnx để đề cập đến – Bas

+0

vâng, tôi đoán đó là câu hỏi này :) –

+4

Bạn sẽ triển khai trang web này ở trang nào? Chúng tôi có thể tránh xa :-) bạn thấy !!! – Samiksha

Trả lời

17

Tính hợp pháp tùy thuộc vào quốc gia bạn sinh sống. Nhưng cũng có những phương pháp hay nhất. Và cách tốt nhất là mã hóa mật khẩu của người dùng. Bằng cách này, nếu ai đó xâm nhập vào cơ sở dữ liệu của bạn, họ sẽ không thể lấy danh sách mật khẩu dài và thử mỗi người trong số họ trong ebay, yahoo mail và gmail. Người dùng thường sử dụng cùng một tên người dùng và mật khẩu cho nhiều trang web.

Khi Jon chỉ vào nhận xét, tất nhiên có sự khác biệt giữa băm và mã hóa. Hashing là một quá trình phá hoại dữ liệu một chiều, lấy chuỗi có độ dài tùy ý làm đầu vào và xuất ra một chuỗi có độ dài cố định. Chuỗi này được định nghĩa theo cách như vậy, thay đổi bất kỳ bit nào trong đầu vào ban đầu, sẽ làm cho hàm băm khác nhau. Nếu bạn có băm, do đó, không thể xây dựng lại văn bản gốc (tức là không thể khôi phục mật khẩu).

Mặt khác, mã hóa thích hợp là một kỹ thuật mà bạn có thể khôi phục mật khẩu gốc, biết khóa bí mật, mật khẩu, vv

Thông thường, bạn muốn băm mật khẩu, không mã hóa chúng: đó là không cần thiết, và thiết lập phức tạp hơn. Bạn không được phép khôi phục mật khẩu: bạn sẽ chỉ tạo lại mật khẩu.

+5

Bỏ phiếu này và xóa tên tôi. Đối với tất cả những người nói rằng đó là hợp pháp, tôi sẽ rất quan tâm để biết về những gì cơ sở bạn khẳng định điều này. Bạn phải là _very_ luật sư tốt để biết mọi luật trên toàn hành tinh. – paxdiablo

+4

Tôi nghĩ rằng nó sẽ có giá trị chính tả ra sự khác biệt giữa mã hóa và băm, và khi sử dụng mỗi một. Nếu bạn cần để có thể khôi phục mật khẩu của người dùng, bạn sẽ sử dụng mã hóa. Nếu không, sau đó băm sẽ là một lựa chọn tốt hơn. –

+0

@Jon: Đúng vậy. Tôi chỉnh sửa nó và xây dựng một chút. – Palantir

0

Có, nó hoàn toàn hợp pháp, mặc dù tuyệt đối không được khuyến khích lưu trữ mật khẩu trong văn bản thuần túy. Và nó không phải là cơ sở dữ liệu trực tiếp thực sự của bạn có thể bị tổn hại: ngay cả một bản sao lưu có thể bị đánh cắp (mà bạn không bao giờ biết nó).

Khi mật khẩu bị đánh cắp, điều này rất xấu cho người dùng thực tế của bạn, vì rất ít người trong số họ thực sự sử dụng mật khẩu khác nhau cho các trang web khác nhau.

+2

Dưới thẩm quyền chính xác nào, bạn tuyên bố điều này là hợp pháp? Bạn có phải là luật sư quốc tế (hoặc luật sư của _any_ sort) không? – paxdiablo

0

Điều đó là hợp pháp theo luật pháp. Một số công ty lưu trữ mật khẩu ở dạng văn bản thuần túy để có thể khôi phục được.

Tuy nhiên, vì lý do an toàn, đây là một ý tưởng tồi. Đôi khi, một số công ty bị tấn công và cơ sở dữ liệu của họ được truy cập. Trong một số trường hợp, điều này cho thấy mật khẩu của hàng ngàn người dùng. Điều này sẽ ảnh hưởng nghiêm trọng đến hình ảnh công ty của bạn và thậm chí còn nguy hiểm hơn khi mật khẩu không được băm.

Nếu bạn muốn khôi phục mật khẩu, ít nhất hãy mã hóa mật khẩu để không dễ xem được bằng cách truy cập cơ sở dữ liệu.

+1

Theo thẩm quyền chính xác, bạn cho rằng điều này là hợp pháp? Bạn có phải là luật sư quốc tế (hoặc luật sư của _any_ sort) không? – paxdiablo

+0

"Một số công ty làm điều này" không ngụ ý "và do đó nó phải là hợp pháp". Nó cũng có thể có nghĩa là "một số công ty đang vi phạm pháp luật". – Piskvor

1

Hãy tưởng tượng nếu Facebook bị tấn công, nó không mã hóa bất kỳ mật khẩu nào của người dùng. Bản thân Facebook có khoảng 200 triệu người dùng (?)

Điều gì sẽ xảy ra nếu tất cả 200 triệu mật khẩu bị rò rỉ cho một tổ chức độc ác nào đó? Nhiều người dùng sử dụng cùng một mật khẩu như thư của họ hoặc bất kỳ dịch vụ trực tuyến nhạy cảm khác như kế toán ngân hàng.

Facebook sẽ không an toàn chút nào. Bạn có đăng ký tài khoản ở đó không?

+1

(1) Những người sử dụng cùng một mật khẩu tại nhiều trang web đều là kẻ ngốc. (2) Tôi sẽ không đăng ký tài khoản trên Facebook. Không phải vì nó không an toàn, chỉ vì tôi coi bạn bè của tôi là những người tôi thích dành thời gian, không phải chú hề ở đầu kia của cáp CAT5 :-) – paxdiablo

+0

@paxdiablo: (1) Bạn nói đúng, nhưng thật đáng buồn là họ tồn tại và nên được xem xét nếu bạn muốn lưu trữ chúng. (2) Tôi đồng ý ở đây hai, nhưng tôi cũng có thể hiểu những người muốn sử dụng Facebook. Nhưng nó vẫn không có lý do hai lưu một mật khẩu chưa được mã hóa. – jigfox

+0

Không, tôi đồng ý với bạn @Wai và, vì bạn không phải là một trong số những người đã tuyên bố rằng nó là hợp pháp (không có cơ quan ủng hộ), bạn cũng nên viết thư cho bạn. – paxdiablo

1

Tôi không biết nếu đó là hợp pháp, nhưng dù sao tôi sẽ tư vấn cho chống lại nó trong ít nhất ba lý do:

  1. Điều này không chỉ về việc các hacker nhận được quyền truy cập vào mật khẩu của bạn. Người dùng thường có cùng mật khẩu cho nhiều tài khoản (cũng không nên có). Vì vậy, ai nói rằng chúng tôi có thể tin tưởng bạn hoặc những người khác có quyền truy cập hợp pháp vào dữ liệu này?
  2. Việc bạn nghĩ máy chủ của mình không quan trọng đến mức nào. Không có những thứ như bảo mật tuyệt đối cho một máy chủ. Bạn nên xem xét rằng nó có thể bị tấn công cuối cùng. Và đừng tin nó sẽ không bao giờ xảy ra. Hy vọng cho tốt nhất, nhưng luôn luôn có kế hoạch cho điều tồi tệ nhất!
  3. Tôi sẽ sử dụng mọi bảo mật dễ dàng và rẻ tiền mà tôi có thể nhận được để bảo mật không chỉ dữ liệu của mình mà còn cả dữ liệu của người dùng. Và phương pháp sử dụng hàm băm muối + giá rẻ. Nó sẽ chi phí cho bạn 2 dòng mã. Nó
Các vấn đề liên quan