Tính an toàn của mật khẩu

Bảo đảm tính an toàn của mật khẩu bằng chương trình bẻ mật khẩu

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 - nền móng của bảo mật máy tính

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, hướng dẫn 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ã hóa

để 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ã hóa dùng để mã

hóa 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ã hóa 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à hóa 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 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.

Cách đặt mật khẩu có độ an toàn cao

Người quản trị hệ thống và việc bảo vệ 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.

Thật ra không phải như vậy: Các phần 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 e-mail

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. 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 khóe” (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ư (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ư $, #,? , &); 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 hai 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.