Khi nào Unix ngừng lưu trữ mật khẩu trong văn bản rõ ràng?


37

Khi nào Unix chuyển khỏi việc lưu trữ mật khẩu văn bản rõ ràng trong passwd? Ngoài ra, khi tập tin bóng được giới thiệu?


Bạn đã tìm kiếm bất cứ điều gì?
Ken Sharp

Câu trả lời:


62

Để 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).

  • Các hệ thống Unix đầu tiên lưu trữ mật khẩu trong bản rõ. Phiên bản thứ ba Unix đã giới thiệu cryptchứ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.
  • Khi Unix chuyển từ một mật mã trước đó sang DES hiện đại , nó cũng được làm chậm hơn bằng cách lặp lại nhiều lần. Tôi không biết chính xác khi nào điều đó xảy ra: V6? V7?
  • Chỉ băm mật khẩu dễ bị tấn công đa mục tiêu: băm tất cả các mật khẩu phổ biến nhất một lần và mãi mãi, và tìm trong bảng mật khẩu cho khớp. Bao gồm một loại muối trong cơ chế băm, trong đó mỗi tài khoản có một loại muối duy nhất, đánh bại sự tính toán trước này. Unix đã mua một loại muối trong phiên bản thứ bảy năm 1979 .
  • Unix cũng có được các quy tắc phức tạp về mật khẩu như độ dài tối thiểu trong những năm 1970.

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/shadowmà 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.


Ngẫu nhiên, muối là những gì đang được mã hóa.
Joshua

Đối với những người không có trình xem Bản ghi, tôi đã tìm thấy một bản sao pdf của bài báo của Morris & Thompson tại đây
grahamj42

8

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.


6

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.


5
Lưu trữ mật khẩu không bóng! = Lưu trữ văn bản chưa xóa.
rackandboneman
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.