PDA

View Full Version : Độ dài mật khẩu và vấn đề bảo mật mật khẩu



hanhkhat
24-02-2012, 09:54 PM
Khi sử dụng mật khẩu để đăng nhập vào một hệ thống nào đó, dĩ nhiên là mật khẩu ngắn sẽ dễ nhập và dễ nhớ hơn. Đối với một số hệ thống thì có yêu cầu độ dài tối thiểu của mật khẩu, nhưng một số lại không giới hạn như vậy. Qua bài này, chúng ta sẽ xem xét vấn đề "tầm quan trọng của độ dài mật khẩu đối với bảo mật dữ liệu".

Giả sử máy tính bạn chọn mật khẩu có 2 ký tự số. Vậy là bạn có 10 lựa chọn số cho mỗi ký tự. Vậy là bạn có thể có 10x10 =100 mật khẩu (từ 00 đến 99). Vậy là nếu một người nào đó cố gắng gõ từ 00 đến 99 thì chỉ sau một thời gian ngắn, họ sẽ đăng nhập được vào tài khoản của bạn.

Bây giờ ta sẽ cải thiện bằng cách sử dụng thêm các ký tự "chữ", bao gồm cả chữ thường và chữ hoa. Vậy là với mỗi ký tự, ta có 26 + 26 +10 = 62 lựa chọn. Và số mật khẩu ta có thể có là 62x62=3844. Bây giờ ai mà mò thì cũng mệt đấy nhỉ, nhưng không phải là không thể mò được.

Bây giờ ta thêm 1 ký tự vào mật khẩu, vậy là nếu hacker muốn đột nhập thì phải thử đến 62x62x62=238328 mật khẩu khác nhau.

Bây giờ, nếu mật khẩu của bạn là một từ có nghĩa (có trong từ điển) . VD: lan, wan...thì hacker sẽ đỡ mất công hơn bằng cách sử dụng phương pháp tấn công "từ điển" (dictionary attack (http://www.thebitmill.com/articles/password_whystrong.html#typesofattack)) . Với cách tấn công này, hacker sẽ thử tất cả các ký tự có trong từ điển xem có đăng nhập được không.

Bây giờ thử sử dụng máy tính để đột nhập nhé. Với các bộ vi với tốc độ xử lý hàng triệu (hoặc hàng tỉ) phép tính hàng giây thì chương trình có thể thử tới 1 triệu mật khẩu có 3 ký tự trong 1 giây. Rất nhanh phải không.

Bây giờ thử mật khẩu có chiều dài 4 ký tự, chúng ta sẽ có 62 x 62 x 62 x 62 = 14776336 (gần 15 triệu) mật khẩu. Muốn phá thì cũng mất thêm một chút thời gian .

Rõ ràng, một mật khẩu dài hơn là một mật khẩu mạnh mẽ hơn, và với sức mạnh xử lý của máy tính hiện đại, bất kỳ mật khẩu ngắn hơn 8 ký tự hoặc đơn giản là không an toàn. Trong thực tế, hacker có thể crack thậm chí là một mật khẩu 8 ký tự trong cả tuần bằng cách sử dụng máy tính xách tay khá khiêm tốn của mình. Đơn giản bằng cách sử dụng mật khẩu dài 9-10 ký tự, hacker lại mất thêm rất nhiều thời gian để crack.

Hiện nay nhiều công ty có chính sách bắt buộc chiều dài mật khẩu lớn hơn 8 ký tự và phải thay đổi mật khẩu trong một khoảng thời gian nào đó.


Nhưng thật không may, nhiều nhân viên vì phải đổi mật khẩu quá nhiều, mà lại là mật khẩu dài, bao gồm chữ thường, chữ hoa, ký tự đặc biệt... nên đã....viết xuống bàn. Thật là nguy hiểm :)). Hacker nào mà thấy thì vớ bở :D

(Mình nhớ có một ông giám đốc mất thẻ ATM, hôm sau báo công an, tới ngân hàng kiểm tra thì thấy tiền bị rút sạch. Sau này mới biết mật khẩu được ghi luôn lên thẻ cho khỏi quên =)) )

Giải pháp phổ biến nhất cho vấn đề này là sử dụng phần mềm quản lý mật khẩu. Phần mềm Quản lý mật khẩu theo sẽ lưu của tất cả các mật khẩu người dùng trong một tập tin an toàn, thường được bảo vệ bởi một mật khẩu khác hoặc lưu ra cdrom, USB...

Hiện nay một số phần mềm đã thêm vài ký tự ngẫu nhiên vào password của người dùng để tăng chiều dài mật khẩu rồi mã hóa, giúp mật khẩu của người dùng an toàn hơn. VD trường hợp lưu mật khẩu của VBB.

Theo các chuyên gia thì muốn có một mật khẩu mạnh thì ta phải có cả ký tự hoa, thường, số và ký tự đặc biệt. Và đặc biệt là chiều dài tối thiểu phải >8. tốt nhất là >14 (Lý do tại sao mình sẽ nói ở một bài khác)

Các ví dụ về mật khẩu yếu:



admin -- quá dễ đoán
1234 -- quá dễ đoán
abc123 -- quá dễ đoán
minh -- tên riêng thông thường
password -- đoán ra dễ dàng, rất thường dùng
p@$$\/\/0rd -- leet và mật mã bằng ký tự đơn giản đều đã được lập trình trước trong các công cụ bẻ khóa
rover -- tên thú nuôi thông thường, cũng là một từ trong từ điển
12/3/75 -- ngày tháng, có thể quan trọng đối với cá nhân đó
December12 -- Sử dụng ngày bắt buộc phải đổi mật khẩu là rất phổ biến
nbusr123 -- có thể là một tên người dùng, và nếu vậy, cực kỳ dễ đoán
asdf -- chuỗi ký tự kế nhau trong nhiều loại bàn phím
qwerty -- một chuỗi ký tự kế nhau trong nhiều loại bàn phím
aaaa -- ký tự lặp đi lặp lại, dễ đoán ra



Tham khảo thêm:

http://vi.wikipedia.org/wiki/%C4%90%E1%BB%99_m%E1%BA%A1nh_c%E1%BB%A7a_m%E1%BA%A Dt_kh%E1%BA%A9u

http://www.thebitmill.com/articles/password_length.html

Ngồi dịch mệt quá :D

Nhonha
24-02-2012, 09:57 PM
Vấn đề này khá nan giải mình thử carck md5 nhưng củng lúc đuợc lúc không do có ký tự đặc biệt.

hanhkhat
24-02-2012, 10:10 PM
MD5 là thuật toán mã hóa một chiều, đã mã hóa rồi thì không dịch ngược được đâu. Hiện nay các duy nhất để crack md5 là dùng "từ điển"

Từ điển ở đây nghĩa là trong một hệ thống đã có mã md5 của một giá trị nào đó:
VD: md5("abc") = 900150983cd24fb0d6963f7d28e17f72

Bây giờ bạn muốn biết 900150983cd24fb0d6963f7d28e17f72 crack ra được giá trị gì thì phần mềm sẽ tìm trong cơ sở dữ liệu của nó xem, nếu có giá trị md5 nào trùng với 900150983cd24fb0d6963f7d28e17f72 thì sẽ lấy kết quả ngược lại. Vậy nên các mật khẩu đơn giản, dễ mò nằm trong csdl của máy chủ sẽ được crack nhanh chóng, còn từ nào khó quá (VD: B3by_I_l0v3_Y0u chẳng hạn) không nằm trong CSDL sẽ không crack được.

Bây giờ bạn vào trang
http://www.md5cracker.org/index-page-create.html
rồi gõ một chuỗi ký tự bất kỳ xem. Lấy hash mới được tạo đem qua trang
http://md5crack.com/
bảo đảm crack không ra.

Nhưng nếu bạn tạo hash ở trang http://md5crack.com/ thì cả ký tự đầu vào và kết quả đều sẽ được lưu trong CSDL để sử dụng cho người khác crack. Vì vậy đừng dại mà bỏ mật khẩu của mình vào mấy trang đó để tạo hash md5 thử nhá :D