Câu trả lời:
Để biết lịch sử ban đầu của việc lưu trữ mật khẩu Unix, hãy đọc Bảo mật mật khẩu của Robert Morris và Ken Thompson : Lịch sử trường hợp . Họ giải thích tại sao và làm thế nào các hệ thống Unix đầu tiên có được hầu hết các tính năng vẫn được xem ngày nay là các tính năng quan trọng của lưu trữ mật khẩu (nhưng được thực hiện tốt hơn).
crypt
chức năng băm mật khẩu. Nó được mô tả là mã hóa mã hóa, thay vì sử dụng mã hóa băm, vì thuật ngữ mã hóa hiện đại chưa được thiết lập và nó sử dụng thuật toán mã hóa, mặc dù theo một cách khác thường. Thay vì mã hóa mật khẩu bằng một khóa, điều này sẽ không quan trọng để hoàn tác khi bạn có khóa (sẽ phải được lưu trữ trên hệ thống), họ sử dụng mật khẩu làm khóa.Ban đầu, mật khẩu băm nằm trong tệp có thể đọc công khai /etc/passwd
. Đưa hàm băm vào một tệp riêng biệt /etc/shadow
mà chỉ hệ thống (và quản trị viên hệ thống) có thể truy cập là một trong nhiều cải tiến đến từ Sun, xuất hiện từ khoảng SunOS 4 vào giữa những năm 1980. Nó lan rộng dần sang các biến thể Unix khác (một phần thông qua bộ bóng của bên thứ ba mà hậu duệ vẫn được sử dụng trên Linux ngày nay) và không có sẵn ở mọi nơi cho đến giữa những năm 1990 hoặc lâu hơn.
Trong những năm qua, đã có những cải tiến cho thuật toán băm. Bước nhảy lớn nhất là thuật toán dựa trên MD5 của Poul-Henning Kamp vào năm 1994, đã thay thế thuật toán dựa trên DES bằng một thuật toán có thiết kế tốt hơn. Nó đã loại bỏ giới hạn đối với 8 ký tự mật khẩu và 2 ký tự muối và đã tăng độ chậm. Xem phần Phát triển của IEEE với phần mềm nguồn mở , JanTHER Feb. 2004, tr. 7 Cung8 . Các thuật toán dựa trên SHA-2 là tiêu chuẩn thực tế ngày nay dựa trên cùng một nguyên tắc, nhưng với thiết kế bên trong tốt hơn một chút và quan trọng nhất là yếu tố chậm chạp cấu hình.
Tôi chưa có nguồn chính, nhưng theo bài đăng TrustedSec này (nhấn mạnh của tôi):
Các hệ thống ban đầu lưu trữ mật khẩu trong bản rõ nhưng cuối cùng điều này đã được thay thế bằng các hình thức lưu trữ mật khẩu an toàn hơn. Robert Morris đã phát triển tiền điện tử dựa trên máy mã hóa m-209 và nó xuất hiện trong Phiên bản Unix 3 , mặc dù Crypt không được sử dụng để lưu trữ mật khẩu cho đến phiên bản thứ 6 Unix (1974).
Theo nhiều nguồn tin, Phiên bản 3 UNIX đã được phát hành vào tháng 2 năm 1973 .
Từ bài báo gốc của Thompson và Morris , chúng tôi có thể xác nhận rằng lưu trữ bản gốc được sử dụng ban đầu:
Hệ thống UNIX lần đầu tiên được triển khai với một tệp mật khẩu chứa mật khẩu thực tế của tất cả người dùng và vì lý do đó, tệp mật khẩu phải được bảo vệ nghiêm ngặt chống lại việc đọc hoặc ghi.
/ etc / bóng xuất hiện trong nhiều nhánh của UNIX như được ghi chú trong các câu trả lời khác.
Theo Lịch sử phần trong của wikipedia passwd trang,
Bóng mật khẩu xuất hiện lần đầu tiên trong các hệ thống Unix với sự phát triển của SunOS vào giữa những năm 1980, [10] System V Release 3.2 vào năm 1988 và BSD4.3 Reno vào năm 1990. Nhưng, các nhà cung cấp đã thực hiện các cổng từ các bản phát hành UNIX trước đó không phải lúc nào cũng bao gồm các tính năng che giấu mật khẩu mới trong bản phát hành của họ, khiến người dùng của các hệ thống đó bị tấn công tập tin mật khẩu.
Quản trị viên hệ thống cũng có thể sắp xếp việc lưu trữ mật khẩu trong cơ sở dữ liệu phân tán như NIS và LDAP, thay vì trong các tệp trên mỗi hệ thống được kết nối. Trong trường hợp của NIS, cơ chế mật khẩu bóng thường vẫn được sử dụng trên các máy chủ NIS; trong các cơ chế phân tán khác, vấn đề truy cập vào các thành phần xác thực người dùng khác nhau được xử lý bởi các cơ chế bảo mật của kho lưu trữ dữ liệu cơ bản.
Vào năm 1987, tác giả của Shadow Password Suite ban đầu, Julie Haugh, đã trải qua một lần đột nhập máy tính và viết bản phát hành ban đầu của Shadow Suite chứa các lệnh đăng nhập, passwd và su. Bản phát hành gốc, được viết cho hệ điều hành SCO Xenix, nhanh chóng được chuyển sang các nền tảng khác. Shadow Suite đã được chuyển sang Linux vào năm 1992 sau một thông báo ban đầu về dự án Linux và được đưa vào nhiều bản phân phối ban đầu và tiếp tục được đưa vào nhiều bản phân phối Linux hiện tại.