Password
trang này đã được đọc lần
Nhiều người cho rằng các chương trình bẻ mật khẩu chỉ có
thể được sử dụng bởi hacker hay vào các mục đích phạm pháp. Không phải như
vậy! Chúng có thể được dùng để bảo đảm rằng người dùng đã đặt các mật khẩu
tốt.
Mật khẩu an toàn, chắc chắn là nền tảng của một chiến lược bảo mật hiệu quả.
Mật khẩu đảm bảo tính truy cập hợp lệ của người dùng vào một hệ thống hay mạng
làm việc. Đáng tiếc điều này không phải bao giờ cũng đúng. Mật khẩu thường do
người sử dụng máy tính tự đặt. Các từ, ký hiệu hay ngày tháng để đặt mật khẩu
thường có liên hệ đến thông tin cá nhân của người đặt để dễ nhớ. Vấn đề là ở
đây. Nhiều người dùng đặt sự tiện lợi lên trên tính an toàn, kết quả là họ
chọn các mật khẩu khá đơn giản. Điều này có thể giúp họ dễ nhớ khi đăng nhập
nhưng cũng vì thế các hacker cũng dễ bẻ mật khẩu của họ hơn. Hacker luôn dò
tìm các mắt xích yếu của hệ thống mạng để thâm nhập và rõ ràng cách đơn giản
và dễ nhất là tìm một mật khẩu dễ đoán. Tuyến phòng thủ bảo mật đầu tiên vì
thế trở thành một trong những mắt xích yếu nhất.
Người quản trị hệ thống có trách nhiệm phải đảm bảo mọi người dùng lưu tâm đến
sự cần thiết và duy trì các mật khẩu an toàn. Có hai yêu cầu được đặt ra ở
đây: thứ nhất, giáo dục người dùng về tầm quan trọng của mật khẩu và cách để
đặt mật khẩu an toàn; thứ hai, có cách đánh giá để bảo đảm mật khẩu người dùng
đặt là hiệu quả. Để đáp ứng yêu cầu thứ hai, bắt buộc người quản trị hệ thống
phải "nhanh chân" phát hiện các mật khẩu lỏng lẻo trước khi hacker phát hiện
ra. Để làm được điều này, người quản trị có thể dùng cùng các công cụ mà
hacker thường sử dụng: chương trình bẻ mật khẩu (password-cracker).
Các kiểu bẻ mật khẩu
Dùng từ điển (word-lists)
Như tên gọi, một chương trình bẻ mật khẩu là một công cụ dùng để 'bẻ' (crack)
hay tìm ra một mật khẩu. Các chương trình bẻ mật khẩu dùng nhiều cách khác
nhau để thực hiện điều này. Một số các trình bẻ mật khẩu sử dụng 'từ điển', là
một danh sách các từ, đoạn văn hay kết hợp các mẫu tự, chữ số và ký hiệu mà
người dùng thường sử dụng để đặt mật khẩu. Chương trình sẽ thử lần lượt từng
từ với tốc độ cao cho đến khi tìm thấy từ hay tập ký hiệu trùng với mật khẩu.
Trên lý thuyết, nếu thử đủ một số tổ hợp và hoán vị, đến cuối cùng sẽ tìm ra
đúng chuỗi các ký tự đã tạo nên mật khẩu. Nếu mật khẩu trùng với một mục trong
'từ điển', xem như nó đã bị bẻ.
Một khi mật khẩu đã bị bẻ, hacker có thể giả mạo tư cách người dùng hợp pháp
và có thể truy cập vào bất kỳ dữ liệu nào người dùng đó được phép. Nguy hiểm
hơn, hacker có thể 'leo thang tấn công' theo cách này để chiếm quyền điều
khiển toàn bộ hệ thống mạng.
Mật khẩu được lưu ở dạng mã hoá để không thể 'thấy được' một cách dễ dàng. Đối
phó với rào cản này, chương trình bẻ mật khẩu sử dụng cùng một giải thuật mã
hoá dùng để mã hoá mật khẩu, sau đó duyệt qua 'từ điển' để so sánh và tìm ra
sự trùng khớp.
Thử hàng loạt (Brute-Forcing)
Trong khi phương pháp 'từ điển' dựa trên tốc độ và mẹo sắp xếp các từ một cách
khôn ngoan, phương pháp bẻ mật khẩu thứ hai lại dựa hoàn toàn trên năng lực
tính toán và sự lặp lại được gọi là 'thử hàng loạt' (brute forcing). Thử hàng
loạt là dạng bẻ mật khẩu chỉ đơn giản dựa trên so sánh mọi khả năng tổ hợp và
hoán vị có thể có của các ký tự sẵn có cho đến khi tìm thấy trùng khớp với mật
khẩu. Phương pháp này rất mạnh và chắc chắn cuối cùng sẽ bẻ được mọi mật khẩu,
tuy nhiên tốc độ thực hiện cực kỳ chậm do phải thử tất cả mọi tổ hợp ký tự có
thể có. Ví dụ, chỉ với một mật khẩu 3 ký tự, quá trình thử sẽ phải trải qua
các tổ hợp:
aaa, aab, aac... aaA, aaB, aaC... aa0, aa1, aa2, aa3... aba, aca, ada...
Mỗi tổ hợp được qua một giải thuật mã hoá thích hợp và so sánh với mật khẩu đã
lưu cho đến khi tìm ra sự trùng khớp.
Có thể thấy, phương pháp 'thử hàng loạt' khá chậm và kém hơn so với sử dụng
'từ điển'. Tuy nhiên, sự triệt để phương pháp này có thể bù đắp cho sự hạn chế
về tốc độ. 'Thử hàng loạt' vẫn mang lại hiệu quả do tìm hết mọi tổ hợp và hoá
vị của ký tự, kể cả những tổ hợp vô nghĩa nằm ngoài khả năng đoán nhận của
phương pháp 'từ điển'. Nói cách khác, các chương trình bẻ mật khẩu loại này
chỉ so sánh mật khẩu với tổ hợp của các ký tự và ký hiệu đã biết.
Kết hợp giữa 'thử hàng loạt' và 'từ điển'
(Brute-Force and Wordlist Hybrids)
Một số chương trình bẻ mật khẩu, như l0pht password crack, sử dụng phương pháp
lai tạp kết hợp giữa hai kỹ thuật trên. Các chương trình này kết hợp các điểm
tốt nhất của cả hai phương pháp và cho hiệu quả khá cao.
Tầm quan trọng của mật khẩu an toàn
Một hệ thống mạng chỉ bảo mật ngang bằng với mắt xích yếu nhất trong hệ thống!
Nếu luôn lưu ý đến điều này, các mật khẩu dễ đoán cần phải bị loại bỏ trước
khi chúng 'mở cửa' cho người lạ. Nguyên tắc này càng đúng khi sự xuất hiện của
các chương trình bẻ mật khẩu giúp cho các hacker 'đoán' các mật khẩu dễ dàng
hơn nhiều. Không may, đối với đa số người dùng bình thường có xu hướng đặt mật
khẩu dễ nhớ hơn là khó đoán. Giáo dục cho người dùng là biện pháp chủ đạo để
việc sử dụng mật khẩu có hiệu quả. Người quản trị mạng phải làm cho mọi người
dùng trên hệ thống thấm nhuần và lưu tâm đến tầm quan trọng của một mật khẩu
an toàn, chắc chắn. Làm thế nào để đạt được điều này? Bằng cách sử dụng chương
trình bẻ mật khẩu.
Đến lúc này, những gì đã trình bày có thể khiến người đọc cho rằng các chương
trình bẻ mật khẩu chỉ có thể được sử dụng bởi hacker hay vào các mục đích phạm
pháp. Không phải như vậy! Chúng có thể được dùng để bảo đảm rằng người dùng đã
đặt các mật khẩu tốt. Người quản trị hệ thống có thể sử dụng các chương trình
bẻ mật khẩu để kiểm tra độ an toàn của mật khẩu người dùng, sau đó có thể
thông báo cho những người dùng đã đặt mật khẩu không an toàn. Một số chương
trình bẻ mật khẩu còn có thể gửi email khuyên người dùng thay đổi mật khẩu
ngay lập tức nếu nó bị bẻ quá dễ hay quá nhanh.
Người quản trị hệ thống và việc bảo vệ mật khẩu
Nên lưu ý rằng không chỉ có người dùng mới mắc lỗi trong việc phá vỡ tính bảo
mật của mật khẩu. Người quản trị hệ thống có thể có những tiêu chuẩn khác về
mật khẩu cho chính họ so với các người dùng khác. Do phải nhớ nhiều mật khẩu,
người quản trị thường chọn mật khẩu dễ nhớ, đơn giản cho nhiều ứng dụng. Điều
này rõ ràng tạo nên một chuỗi các điểm yếu nghiêm trọng về bảo mật. Hơn nữa,
người quản trị có khả năng bỏ qua các công cụ nâng cao tính an toàn của mật
khẩu, nếu họ chọn vì mục đích tiện lợi. Sau hết, người quản trị có thể thường
chọn cách nhanh nhất khi cài đặt các phần mềm hay thiết bị và để ngỏ các ứng
dụng này với các mật khẩu mặc định. Đây là một lỗi thường xảy ra đến nỗi trên
Internet có các 'kho' lưu trữ tất cả mật khẩu mặc định, với mục đích ban đầu
là để giúp đỡ các nhà quản trị, nhưng có vẻ để giúp các hacker nhiều hơn.
Nâng cao tính an toàn của mật khẩu
Thế nào là các mật khẩu không an toàn? Một cách cụ thể, chúng là những gì có
thể tìm thấy trong từ điển: là các từ đơn giản, theo quy tắc và chỉ gồm các
mẫu tự. Ví dụ, dùng tên để đặt mật khẩu là không nên.
Một chỗ yếu khác là sử dụng các thông tin liên quan đến cá nhân để đặt mật
khẩu như ngày sinh, ngày kỷ niệm, tên người thân, ... để mật khẩu dễ nhớ hơn.
Hacker thường có thể lần ra được các thông tin cá nhân bằng cách sử dụng 'mánh
khoé' ('social engineering') và dùng thông tin đó để bẻ mật khẩu. Đặt mật khẩu
bằng các từ tối nghĩa có thể ngăn chặn được nguy cơ này.
Việc đặt mật khẩu không có các từ vẫn dùng hàng ngày và bằng các ký tự khác
nhau là rất quan trọng, nhưng vẫn phải đảm bảo tính dễ nhớ. Người dùng nên kết
hợp các mẫu tự (cả thường và hoa) với chữ số và ký hiệu khi đặt mật khẩu. Có
thể làm được điều này bằng cách trộn lẫn nhiều nhóm ký tự vào nhau gồm:
mẫu tự hoa như A, B, C, ..., Z;
mẫu tự thường như a, b,c, ..., z;
chữ số như 0, 1, 2, 3, ..., 9;
ký tự đặc biệt như $, #, ?, &;
Và các ký tự điều khiển như µ, £, Æ.
Mật khẩu an toàn có thể tạo bằng cách thay thế các mẫu tự đơn giản bằng các ký
tự khác để chúng vẫn có thể dễ nhớ nhưng không có trong từ điển. Ví dụ,
'Password' có thể thay thành 'Pa55w0rd'. Tuy nhiên, cách này đã lỗi thời, các
từ điển đã được tạo để đối phó với kỹ thuật này. Do đó, nếu muốn an toàn người
dùng buộc phải sử dụng các tổ hợp của 2 hoặc hơn các từ không liên quan tạo
thành bởi các ký tự từ một trong năm nhóm kể trên.
Tạo mật khẩu ngẫu nhiên
Tin cậy hơn có thể dùng chương trình tạo mật khẩu ngẫu nhiên để tạo cho người
dùng một mật khẩu làm sẵn. Tuy nhiên, do tính ngẫu nhiên các mật khẩu này rất
khó nhớ. Và trong nhiều trường hợp, việc đầu tiên mà người dùng làm là ghi mật
khẩu vào một mẩu ghi chú và dán trước màn hình. Đó chính là vấn đề vì những
người không được phép có thể nhìn thấy mật khẩu. Một lần nữa, giải pháp là cần
phải tạo một mật khẩu dễ nhớ nhũng không quá đơn giản để bị bẻ bằng 'từ điển'.
Điều này hơi khó, đòi hỏi cả óc tưởng tượng lẫn trí nhớ, nhưng đây là bước
quan trọng sống còn đối với bảo mật máy tính.
Thường xuyên thay đổi mật khẩu
Bên cạnh việc tạo các mật khẩu khó bẻ, việc thường xuyên thay đổi mật khẩu
cũng có tầm quan trọng không kém. Điều này rất cần thiết trong trường hợp ai
đó đã hoặc đang tìm cách bẻ mật khẩu của bạn. Trách nhiệm thuộc về người quản
trị phải nhắc nhở người dùng thực hiện một cách thường xuyên.
Một lựa chọn khác là sử dụng các tính năng hết hạn mật khẩu của hệ điều hành
để yêu cầu người dùng phải đổi mật khẩu mới sau một thời gian sử dụng (thường
là 30 ngày). Tuy nhiên, người dùng thường phàn nàn các mật khẩu phức tạp khó
nhớ và không tuân theo các hướng dẫn. Trong trường hợp đó, người quản trị có
thể cho phép mật khẩu phức tạp được sử dụng thời gian lâu hơn trước khi phải
thay đổi.
Mật khẩu và chính sách an ninh
Mật khẩu kém không được phát hiện có thể dẫn đến dữ liệu của mọi người bị xâm
phạm. Chính sách an ninh của tổ chức bắt buộc phải đề cập đến mọi khía cạnh để
đảm bảo an toàn mật khẩu. Trong đó, không chỉ nhấn mạnh đến tầm quan trọng
tuyệt đối của các mật khẩu chắc chắn, an toàn và trách nhiệm của từng người
dùng trong việc bảo vệ mật khẩu của mình, mà còn phải vạch ra các bước người
quản trị hệ thống cần tuân thủ để bảo đảm tính bảo mật của hệ thống khi sử
dụng cách bảo vệ bằng mật khẩu.