Tải bản đầy đủ (.pdf) (8 trang)

An toàn mật khẩu trên hệ thống mạng UNIX và LINUX doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (154.65 KB, 8 trang )

An toàn mật khẩu trên hệ thống mạng UNIX
và LINUX
Bài viết này mô tả những cách thức kiểm tra tính an toàn mật khẩu trên các hệ thống
UNIX, LINUX, và các hệ thống *.nix nói chung. Như các hệ thống trên Window, các mật
khẩu *.nix được bảo vệ ngay tại hệ thống và trên đường truyền.
Bảo vệ mật khẩu của bạn ngay tại hệ thống
Mật khẩu trên hệ thống *nix được lưu trong file /etc/passwd, một file chứa các tên người sử
dụng, UIDs, GIDs, và các mật khẩu được mã hoá cho người sử dụng trên hệ thống. Ngoài ra,
file này còn lưu các thông tin khác, như tên đầy đủ của người sử dụng, đường dẫn thư mục,
hay hệ thống shell.
Bất kỳ ai truy cập hệ thống cũng có thể hiển thị nội dung của file /etc/passwd. Điều này tạo ra
khả năng phá hoại với các user và những kẻ tấn công có th
ể tạo ra các lỗ hổng bảo mật để nhận
được một bản sao của file mật khẩu này.
Các hệ thống *.nix thường sử dụng thuật toán mã hoá (như thuật toán DES) để tạo ra các bảng
băm mật khẩu. DES sử dụng thuật toán mã hoá 56 bit. Với thuật toán này, DES đã được sử
dụng như thuật toán mã hoá phổ biến trước đây. Tuy nhiên, theo thời gian, khi phần cứng phát
triển và giá thành thiết bị rẻ đi, thuật toán này đã trở nên dễ dàng giải mã và tạo lại mã. Vì v
ậy,
với các hệ thống tốc độ nhanh sẽ việc crack các mật khẩu không phải quá khó.
Ví dụ: l0phtCrack có thể sử dụng để crack các mật khẩu của Windows, chương trình crack của
Alec Mufet có thể sử dụng để crack mật khẩu hệ thống *.nix. Việc phá mã đã được phát triển
theo thời gian, được viết từ năm 1991 và hiện tại nó đã được phát triển đến phiên bản 5.0a.
Việc phá mã có thể được cấu hình để tương thích với bất kỳ môi trường nào; các file cấu hình
có thể được sửa đổi hỗ trợ cho các định dạng file mật khẩu khác nhau, loại thuật toán mã hoá
khác nhau, Việc phá mã sử dụng danh sách từ điển như nền tảng cho việc phá mã; các file t

điển này cũng có thể được cấu hình lại một cách dễ dàng. Nói chung, để liệt kê danh sách cấu
trúc thư mục cho việc thử chương trình, bạn cũng có thể cấu hình tập từ điển hay các luật tạo
mã như một phần trong việc phá mã. Các luật này có thể bao gồm các phương thức như gắn
trước hay sau các ký tự vào các từ chuẩn, gấp đôi hay đảo ngược các từ, thay đổi các ký tự từ


thường sang hoa , hay thay thế một từ này bằng một từ khác.
Vậy làm cách nào để bảo vệ các mật khẩu trên hệ thống *.nix trong khi file /etc/passwd là file
có thể đọc và sự phát triển ồ ạt của các công cụ crack mật khẩu.
Tăng tính an toàn của mật khẩu
Một vài phương thức cải thiện mật khẩu đã được thực hiện cho phương thức an toàn mật khẩu
trong hệ thống *.nix. Đầu tiên được giới thiệu là loại mật khẩu bóng (shadow password). Việc
chứa các bảng băm mật khẩu trong file đọc được /etc/passwd không an toàn, vì vậy các bảng
băm này được đưa vào trong một file riêng rẽ, file /etc/shadow. File này chỉ có thể đọc bởi
quyền root và vì vậy có khả năng bảo mật tốt hơn. Hai file này được sử dụng cùng nhau để
cung cấp việc chứng thực cho user.

Các file mật khẩu bóng đã trở nên thông dụng và được sử dụng mặc định cho rất nhiều hệ
thống *.nix như Sun Solaris. Tuy nhiên, chúng không phải là mặc định của toàn bộ các hệ
thống. Chẳng hạn với Red Hat Linux, việc sử dụng mật khẩu bóng được lựa chọn trong các
bước cài đặt hệ thống. Các mật khẩu bóng nên được sử dụng ở bất cứ đâu trong hệ thống.
Thứ hai, một số phiên bản của *.nix hiện tại cung cấp thuật toán mã hoá tốt hơn, (có thể sử
dụng tuỳ chọn trong mã hoá), sử dụng thuật toán bảng băm MD5 thay thế cho DES.
Thứ ba, các chính sách mật khẩu, như được thảo luận trong các bài viết trước, có thể tăng tính
bảo mật bằng cách đòi hỏi độ dài tối thiếu cho mật khẩu, thay đổi mật khẩu đều đặn, Các tuỳ
chọn này có sẵn và phụ thuộc vào hệ thống *.nix và phiên bản của passwd trên hệ thống của
bạn.
Passwd là lệnh mặc định sử dụng cho việc thay đổi mật khẩu trên các hệ thống *.nix. Lệnh n
ày
cũng hỗ trợ việc kiểm tra tính an toàn tối thiếu đối với các mật khẩu của người sử dụng nhưng
không hỗ trợ tính năng đòi hỏi người sử dụng thay đổi mật khẩu của họ sau một khoảng thời
gian. Ví dụ lệnh passwd trong Sun Solaris hỗ trợ tính năng trên, và cũng tạo ra các kiểm tra
sau:
 Độ dài tối thiểu, mà nhà quản trị có thể chỉ định (mặc định là 6 ký tự). Chú ý rằng bất
chấp độ dài mật khẩu, chỉ có 8 ký tự đầu được xem cho mục đích chứng thực.
 Phải chứa ít nhất 2 ký tự (hoa hoặc thường) và một số hay biểu tượng.

 Không thể là tên, đảo ngược tên truy cập hệ thống, hay bất cứ việc dịch chuyển ký tự từ
tên truy cập hệ thống.
 Các mật khẩu mới phải có ít nhất 3 ký tự khác so với mật khẩu cũ.
npasswd, được viết bởi Clyde Hoover, thực hiện các kiểm tra sau:
 Kiểm tra từ vựng (độ dài tối thiểu); không cho phép các ký tự lặp lại hay các mẫu mật
khẩu thông thường như các con số thường gặp; đòi hỏi mật khẩu là sự pha trộn giữa con số, ký
tự, biểu tượng
 Kiểm tra file passwd (không cho phép lấy thông tin từ file passwd).
 Kiểm tra từ điển (không cho phép các mật khẩu được tạo từ các từ được tìm thấy trong
các file từ điển cấu hình).
 Kiểm tra thời điểm (tuỳ chọn - không cho phép sử dụng các mật khẩu đã được sử dụng
gần đây).
 Kiểm tra địa phương (tuỳ chọn - site cấu hình - các kiểm tra chỉ định; mặc định l
à không
cho phép nhiều tên hostname trong file .rhosts).
Anlpasswd của viện nghiên cứu quốc gia Argonne về chuyên ngành thuật toán và khoa học
máy tính, là một chương trình viết bằng ngôn ngữ Perl. Sự cải thiện chính của nó là hỗ trợ cho
môi trường NIS và kiểm tra các mật khẩu user chống lại danh sách từ điển với khoảng 13 tỷ từ
khi được tạo bởi chương trình crack.
Passwd+, được viết bởi Matt Bishop, là một chương trình rất phức tạp, mà giúp bạn cấu hình
một số kiểm tra (dựa trên mô hình mẫu, xâu, số hay ký tự). Mỗi mật khẩu phải thoả mãn toàn
bộ các kiểm tra này.
N
ếu lựa chọn thay thế passwd với các giá trị này (nhìn chung là một ý tưởng tốt) cần cần xem
xét một số điểm. Đầu tiên, kiểm tra liệu các giá trị passwd của bạn có hỗ trợ sử dụng mật
khẩu bóng; ngoài các file mật khẩu bóng, bạn phải dựa vào độ mạnh của thuật toán mã hoá và
độ lớn của mật khẩu (ví dụ như loại bỏ các mật khẩu yếu) để bảo vệ bạn. Thứ hai, nếu bạn
đang chạy NIS hay NIS++, đảm bảo rằng phần mềm hỗ trợ chỉ một môi trường; không phải
toàn bộ. Các mật khẩu bóng có thuật toán mã hoá mạnh, và có bộ lọc mật khẩu tốt hơn, cung
cấp tính năng bảo vệ tốt hơn bằng cách tạo ra độ khó hơn cho kẻ tấn công duy trì và crack mật

khẩu của người sử dụng.
Các mối đe doạ khác và các giải pháp khác
Các mật khẩu tại hệ thống hiện tại có thể được bảo mật tốt hơn, nhưng mối đe doạ vẫn tồn tại.
Điều này đặc biệt đúng với trong các môi trường hệ thống *.nix, có rất nhiều mối đe doạ này
dựa trên các chương trình TCP/IP và các giao thức mà không xây dựng các thuật toán mã hoá
hay cơ chế bảo vệ khác. Ví dụ: telnet và các lệnh r* (rsh, rlogin, ) gửi các mật khẩu dưới dạng
text.
Việc bảo vệ các mật khẩu được mã hoá được chứa trên hệ thống sẽ không còn ý nghĩa nhiều
khi bạn truyền các mật khẩu này dưới dạng text qua mạng. Các giao thức không bảo mật nên
được đặt với các giao thức bảo mật thay thế. Sử dụng secure shell - ssh, mà các thông tin được
mã hoá truyền tới đầu cuối, được thiết kế thay đổi telnet và rsh; secure copy (scp) có thể được
sử dụng để thay thế ftp và rcp. OpenSSH là một sản phẩm miễn phí được phát triển như một
phần trong toàn bộ dự án OpenBSD. Nó gồm có ssh, scp và các công cụ ssh. Các giá trị BSD
(OpenBSD, FreeBSD, BSDi) và một số các phiên bản Linux (Debian, SuSE, RedHat,
Mandrake). Hiện tại, OpenSSH có thể được sử dụng như phần thêm vào cho mỗi hệ thống
*.nix.
Các giải pháp khác
Do sự đa dạng đối với mật khẩu của các hệ thống *.nix cả ngay trong hệ thống và khi truyền
thông, một số phương pháp khác đã được thực hiện để làm tăng tính an toàn cho mật khẩu.
Một trong những phương pháp thông dụng nhất là mô tả các mật khẩu sử dụng một lần và sau
đó được hủy bỏ. Các hệ thống này có 2 thuận lợi sau:
 Chúng hướng tới thực thi các truyền thông mật khẩu mang tính bảo mật, hầu hết sử
dụng việc mã hoá trong khuôn dạng của một giao thức dạng challenge/response, vì v
ậy các mật
khẩu không bao giờ được truyền trên mạng.
 Vì mật khẩu được sử dụng chỉ một lần, thậm chí nếu chúng bị lấy đi bởi kẻ tấn công, nó
cũng không thể sử dụng lại.
Các hệ thống mật khẩu sử dụng 1 lần (OTP - Once-Time Password) có thể được thực hiện bởi
phần cứng - như là các thẻ smart card - hay trong phần mềm. Trong khi các giải pháp thương
mại tồn tại, chúng ta hãy xét đến một số các chương trình dạng miễn phí.

S/KEY, một trong những hệ thống dựa theo mô hình OPT, đư
ợc viết bởi Bellcore (hiện tại viết
bởi Telcordia) và được phát triển như một phần mềm mã nguồn mở. Bellcore gần đây đã bắt
đầu phát triển phiên bản thương mại, nhưng phiên bản miễn phí vẫn được cung cấp. Khi
S/KEY trở thành sản phẩm thương mại, phần mã nguồn mở của chương trình này vẫn được
quan tâm và phát triển thành sản phẩm OPIE. Cả S/KEY và OPIE sử dụng một hệ thống
challenge/response. Trong mỗi trường hợp, mật khẩu của người sử dụng đư
ợc chứa, trong dạng
mẫu được mã hoá, trên hệ thống máy chủ.
Mỗi hệ thống sử dụng bộ mã tạo mật khẩu chung dựa theo thông tin người sử dụng cung cấp
lúc ban đầu và liên kết với một số tuần tự. Mật khẩu đầu tiên của người sử dụng được tạo bằng
cách đặt thông tin của người sử dụng đó qua một thuật toán bảng băm (như thuật toán MD4
cho S/KEY, MD5 cho OPIE) với số N mật khẩu được tạo. N là số lần trong dãy bảng băm
để người sử dụng có thể truy cập. Mật khẩu kế tiếp được tạo bằng cách giảm N đi 1 và đặt
thông tin đó trong bảng băm số N-1, và tiếp tục như vậy.
Với mục đich chứng thực, khi một người sử dụng đăng nhập vào hệ thống, anh ta sẽ gửi tên
truy nhập của anh ta tới máy chủ. Máy chủ sẽ trả lời theo phương thức challenge, bao gồm tạo
số tuần tự của người sử dụng. Sau khi người sử dụng gõ mật khẩu và gửi tới máy chủ, nếu mật
khẩu trùng với mã mà máy chủ đã tạo trước đó một khoảng thời gian, người sử dụng đó được
chấp nhận truy cập hệ thống. (Chú ý rằng, mật khẩu này chỉ có giá trị trong một khoảng thời
gian nhất định. Và trong khoảng thời gian này, người sử dụng sẽ không thể đang nhập lại nếu
hệ thống không được thiết lập lại hay khởi tạo lại).
S/KEY và OPIE đã thực sự được thiết kế để bảo vệ các kẻ tấn công như replay attack, vì thông
tin mật khẩu chỉ có giá trị cho mỗi phiên làm việc, nó không thể bị lây bởi một công cụ mạo
danh hay sử dụng lại tại thời điểm khác.
Tuy nhiên, một thông tin mã hoá yếu cũng có thể làm hệ thống như S/KEY hay OPIE có th
ể có
lỗ hổng như một mật khẩu yếu. Vì vậy, ban đầu, chúng ta cần quay lại nơi mà chúng ta xuất
phát: đó chính là sử dụng các mật khẩu có độ dài đủ lớn.
Phần kết

An toàn của mật khẩu trên các hệ thống *.nix bao gồm 3 khía cạnh chính:
Đầu tiên, bạn phải tạo các mật khẩu và các bảng băm với độ khó cho các kẻ tấn công khó có
thể phá mã được. Bạn có thể thực hiện điều này sử dụng các file mật khẩu, như hạn chế quyền
truy cập hơn là thay đổi file chuẩn /etc/passwd file.
Thứ hai, bạn phải mã hoá mật khẩu khi truyền tin. Thay thế các giao thức sử dụng việc chứng
thực dạng text với các dạng chứng thực được mã hoá.
Thứ ba, đảm bảo rằng thuật toán mã hoá, bản thân nó là an toàn. Không có phương thức mã
hoá nào là hoàn hảo; Để sử dụng thuật toán mã hoá mạnh nhưng nơi có thể (MD5 hay MD4
hay thủ tục mã hoá crypt). Thậm chí khi bạn sử dụng thuật toán mã hoá, các mật khẩu mạnh
vẫn là phương thức tốt nhất bảo vệ việc phá mã hay đoán mật khẩu.
Cuối cùng, việc kiểm tra các mật khẩu của bạn (ví dụ: với quyền truy cập) là một trong những
cách tốt nhất để nâng cao độ an toàn cho hệ thống của bạn. Các công cụ như Crack rất hữu ích

không chỉ cho những kẻ tấn công mà còn cho cả những người quản trị an toàn hệ thống. Toàn
bộ các công cụ được liệt kê trong bảng sau:
Công cụ
kiểm tra
Phiên
bản
hiện
tại
Có sẵn tại
Môi trường
chạy
Crack 5.0a
Trung tâm nghiên cứu giáo dục thuộc
trường đại học Purdue (CERIAS)

*nix; Solaris,
Linux, FreeBSD,

NetBSD, OSF,
and Ultrix
anlpasswd

2.3
Có r
ất nhiều Website cung cấp, gồm cả
server FTP của CERIAS
*nix
npasswd
Thuộc trường đại học Texas tại Austin
và tại một số website khác


BSDI, FreeBSD,
NetBSD, SunOS,
UNIX, and
Ultrix
passwd+ 5.0a
Trường đại học Dartmouth và một số
website khác. Địa chỉ download:

*nix
S/KEY
1.1
(phẩn
mềm
miễn
phí)
Bellcore FTP site

FTP của site Bellcore, theo địa chỉ:

AIX, BSDI, DG-
UX, Digital
UNIX/Alpha,
FreeBSD, HP-
UX, IRIX,
Linux, NetBSD,
OpenBSD, SCO,
Solaris, SunOS,
and Ultrix
OPIE 2.32 The Inner Net *nix
(Theo Password Security on Unix and Linux Networks của Jennifer Kolde )

×