
Trang nào giờ cũng ra rả câu chuyện bảo mật, rằng những hacker mũ đen chiếm đoạt thông tin cũng như tài sản của anh em dễ như thế nào, cho đến việc cả những tập đoàn khổng lồ hay cả các cơ quan chính phủ nước ngoài cũng bị hacker tấn công cả hệ thống máy chủ để cướp những dữ liệu bí mật. Kết lại là lời khuyên dành cho anh em, rằng hãy dùng những mật khẩu dài, phức tạp, nhiều ký tự đặc biệt. Cẩn thận hơn thì có bảo mật hai lớp, bảo mật bằng số điện thoại, bằng vân tay, v.v…
Quan trọng nhất là, không dùng chung 1 cụm mật khẩu cho nhiều tài khoản, đề phòng trường hợp cơ sở dữ liệu của một dịch vụ bị hacker làm rò rỉ, rồi chúng đoán tiếp mật khẩu của những tài khoản khác.
Nhưng rốt cuộc cụm mật khẩu anh em tạo ra bảo vệ anh em như thế nào? PCWorld mới đây đã có bài viết về điều này, và rút ra kết luận, đúng là làm theo lời khuyên của các chuyên gia, những dòng mật khẩu trên 10 ký tự, có ký tự số và ký tự đặc biệt hiệu quả hơn hẳn những dòng password chỉ có chữ cái hoặc ngày tháng năm sinh. Để đi đến kết luận này, những người ở PCWorld đã thử tự dùng công cụ dò password để xem mật khẩu của họ tạo ra bảo mật đến đâu.
Để chống lại những kẻ dò mật khẩu hay các hacker, các trang web và dịch vụ trực tuyến (chí ít là gần như tất cả) đều không lưu trữ mật khẩu của anh em dưới dạng nguyên bản như khi anh em gõ lúc lập tài khoản. Dạng này gọi là plain text. Những cụm mật khẩu plain text này sẽ được các dịch vụ trực tuyến sử dụng hàm băm (hashing algorithm) để chuyển đổi thành những cụm ký tự phức tạp, dài ngoằng.
Quan trọng nhất là, không dùng chung 1 cụm mật khẩu cho nhiều tài khoản, đề phòng trường hợp cơ sở dữ liệu của một dịch vụ bị hacker làm rò rỉ, rồi chúng đoán tiếp mật khẩu của những tài khoản khác.
Nhưng rốt cuộc cụm mật khẩu anh em tạo ra bảo vệ anh em như thế nào? PCWorld mới đây đã có bài viết về điều này, và rút ra kết luận, đúng là làm theo lời khuyên của các chuyên gia, những dòng mật khẩu trên 10 ký tự, có ký tự số và ký tự đặc biệt hiệu quả hơn hẳn những dòng password chỉ có chữ cái hoặc ngày tháng năm sinh. Để đi đến kết luận này, những người ở PCWorld đã thử tự dùng công cụ dò password để xem mật khẩu của họ tạo ra bảo mật đến đâu.
Hàm băm bảo vệ mật khẩu của anh em như thế nào?
Để chống lại những kẻ dò mật khẩu hay các hacker, các trang web và dịch vụ trực tuyến (chí ít là gần như tất cả) đều không lưu trữ mật khẩu của anh em dưới dạng nguyên bản như khi anh em gõ lúc lập tài khoản. Dạng này gọi là plain text. Những cụm mật khẩu plain text này sẽ được các dịch vụ trực tuyến sử dụng hàm băm (hashing algorithm) để chuyển đổi thành những cụm ký tự phức tạp, dài ngoằng.

Không trang web hoặc dịch vụ nào công khai thuật toán băm để lưu trữ mật khẩu, vì làm như vậy chỉ làm cho hacker dễ dàng hơn. Ngay cả trong vài trường hợp, chuỗi mật khẩu sau khi được xử lý bằng hàm băm có thể được xử lý thêm một lần nữa để tăng cường bảo mật, hay nói cách khác, 'thêm một ít mắm muối' - là những chuỗi ký tự được thêm vào để làm cho chuỗi mật khẩu trở nên phức tạp hơn sau mỗi lần xử lý.
Để tăng cường bảo mật, các thuật toán hàm băm thường chỉ hoạt động một chiều, nghĩa là không thể đảo ngược để lấy lại mật khẩu gốc từ chuỗi đã được xử lý bằng hàm băm. Nhờ tính chất này, các trang web hoặc dịch vụ chỉ cần so sánh chuỗi đã được xử lý với cơ sở dữ liệu, mà không cần lưu trữ mật khẩu gốc của người dùng.
Tuy nhiên, mật khẩu sử dụng hàm băm vẫn có khả năng bị phá
Mặc dù đó là một bước quan trọng và cơ bản để bảo vệ mật khẩu tài khoản, hàm băm không đảm bảo rằng mật khẩu của bạn hoàn toàn an toàn. Tất cả những hacker cần làm là tái tạo toàn bộ quy trình. Bước 1, họ đoán mật khẩu bạn có thể sử dụng. Bước 2, họ sử dụng hàm băm chính xác mà trang web hoặc dịch vụ bạn đang sử dụng để 'phân tích' mật khẩu bạn. Bước 3, họ so sánh chuỗi hash với cơ sở dữ liệu mà họ đã chiếm đoạt trước đó từ máy chủ của trang web hoặc dịch vụ. Nếu hai chuỗi hash của hacker trùng khớp với hash trong cơ sở dữ liệu, thì chúc mừng, mật khẩu của bạn đã bị 'đoán đúng' bởi hacker.

Trong trường hợp không chính xác, kẻ xâm nhập sẽ tiếp tục thử nghiệm và đoán lần nữa. Một chiến thuật đơn giản hơn là tự đoán mật khẩu dưới dạng văn bản thông thường và thử đăng nhập. Tuy nhiên, các trang web và dịch vụ đã áp dụng biện pháp phòng ngừa cho cách làm này. Ví dụ, nếu bạn nhập sai mật khẩu quá 5 lần, tài khoản sẽ bị khóa và yêu cầu liên hệ chăm sóc khách hàng hoặc phải đợi một khoảng thời gian trước khi có thể đăng nhập lại. Hơn nữa, nếu bạn liên tục nhập sai, địa chỉ IP của bạn có thể bị đánh dấu là đối tượng nghi ngờ, coi đó là hành động của hacker muốn xâm nhập vào tài khoản người khác.
Tình huống tồi tệ nhất xảy ra khi cơ sở dữ liệu của dịch vụ bị tấn công, thông tin bị lấy cắp và tiết lộ trên internet. Khi đó, cách duy nhất cho bạn là ngay lập tức thay đổi mật khẩu tài khoản. Ví dụ, vào năm 2019, khoảng 2,2 tỷ tài khoản email và mật khẩu đã được xử lý bằng hàm băm bị rò rỉ trên mạng. Lúc đó, không có gì ngăn cản những hacker chuyên nghiệp hoặc tự học tập khám phá cơ sở dữ liệu đó và cố gắng đảo ngược mật khẩu để chiếm đoạt thông tin hoặc tài khoản trên những trang web đó.
Phá một chuỗi mật khẩu khó khăn như thế nào?
Nhờ sự hỗ trợ của toán học đại số và giai thừa, việc phá vỡ một chuỗi mật khẩu có thể trở nên cực kỳ đơn giản hoặc phức tạp. Trong một chuỗi mật khẩu, mỗi ký tự có thể có 26 hoặc 52 khả năng, phụ thuộc vào việc bạn sử dụng ký tự in hoa hay chữ thường. Khi kết hợp với khả năng sử dụng số, số lượng khả năng tăng lên thành 62. Nếu thêm vào đó những ký tự đặc biệt như “&^$()”, mỗi ký tự sẽ có đến 96 khả năng. Theo lý thuyết, một mật khẩu đơn giản với 4 ký tự như t7G( có thể có đến 84.934.656 khả năng khác nhau, và chỉ có một khả năng là chính xác.


Ví dụ, với thuật toán MD5, một chuỗi mật khẩu 8 ký tự chỉ mất khoảng 6 phút 14 giây để đoán ra. Đối với 7-Zip, con số này tăng lên thành 1 năm 1 tháng, và với hàm băm sử dụng trong ví Bitcoin, thì mất khoảng 59 năm 1 tháng để đoán mật khẩu. Còn với SHA2-256, thuật toán băm chuẩn được sử dụng trong nhiều dịch vụ trực tuyến, như bảo vệ mật khẩu của Facebook, một chuỗi mật khẩu 10 ký tự sẽ mất khoảng 9 tháng để thử nghiệm. Còn nếu anh em sử dụng mật khẩu ví Bitcoin dài 13 ký tự, thì phải mất đến nửa tỷ năm, sử dụng sức mạnh của 448 chiếc RTX 2080 mới có thể dò ra.
Bài học ở đây là gì? Hàm băm chỉ chiếm một nửa vấn đề, phần còn lại phụ thuộc vào độ dài mật khẩu. Đây cũng là lý do các trang web khuyến cáo anh em chọn mật khẩu từ 8 ký tự trở lên. Ngay cả thuật toán SHA2-256, một tiêu chuẩn an ninh, chuỗi mật khẩu từ 4 đến 7 ký tự có thể bị đoán ra gần như ngay lập tức, theo thử nghiệm của Terahash. Thêm một hoặc hai ký tự sẽ làm tăng đáng kể thời gian dò mật khẩu.
Công nghệ phần cứng đòi mật khẩu cũng tiến bộ với tốc độ tương đương với sự phát triển của đào tiền ảo. CPU hiệu quả, nhưng GPU hiệu quả hơn nhiều, và nhiều nhà nghiên cứu đã phát triển máy ASIC chỉ để dò mật khẩu. Công nghệ của Terahash sử dụng GPU mạnh mẽ kết nối với nhau, với tốc độ dò mật khẩu mạnh mẽ hơn đáng kể so với PC cá nhân ở nhà.

Nói điều này không phải để anh em chủ quan, vì ngay cả chiếc Surface Book 3 với GPU GTX 1660 Ti vẫn có thể dò được gần 7 tỷ hash mỗi giây, đủ để đoán mật khẩu 5 ký tự sử dụng hàm băm SHA2-256. Desktop thậm chí còn mạnh mẽ hơn nhiều.
Thử nghiệm với Hashcat
Không thiếu các công cụ dò mật khẩu trên thị trường, một trong những ví dụ đáng chú ý là Hashcat, mà PCWorld đã sử dụng để minh họa. Hashcat sử dụng các kỹ thuật như thử từng ký tự, sử dụng quy luật được đặt trước, hoặc tận dụng những sai lầm ngôn ngữ và chọn cụm từ có sẵn trong từ điển để tạo ra mật khẩu.
Bắt đầu với phương pháp đoán mật khẩu brute force, Hashcat sẽ thử từng ký tự trong một chuỗi mật khẩu và kết hợp chúng cho đến khi tìm ra khớp. Những cụm mật khẩu chỉ có 4 ký tự sử dụng chữ thường có thể bị đoán ra chỉ trong vài giây. Tương tự với cụm mật khẩu chỉ sử dụng số hoặc kết hợp chữ thường và chữ hoa, ví dụ như 4289, yniu, tg5f, hay Trxc. Tuy nhiên, khi thử cụm jRtw, Hashcat mất vài tiếng mà vẫn không đoán ra.
Lý do là cụm mật khẩu này phá vỡ quy luật mà phần mềm biết đến.
Các Mánh khóe của Hacker
Hacker cũng giống như chúng ta, họ biết rằng mật khẩu càng dài và phức tạp thì càng khó bị đoán. Tuy nhiên, họ cũng hiểu rằng người dùng đôi khi sẽ chọn những cụm từ hoặc ký tự quen thuộc với họ để làm mật khẩu. Sử dụng điều này, hacker sử dụng các mánh khóe như 'rules' và 'mask', kết hợp với cách đoán mật khẩu dựa trên từ vựng trong 'dictionaries' để phá vỡ những mật khẩu thường thấy.
Dưới đây là 25 cụm mật khẩu phổ biến nhất, và đồng thời là những mật khẩu ít an toàn nhất, được tổng hợp bởi SplashData. Tất cả đều được nghiên cứu để tạo ra những mánh khóe và quy luật thường thấy để 'dạy' cho phần mềm và phần cứng dò mật khẩu:
Dữ liệu trên thực tế chỉ ra rằng việc sử dụng cùng một mật khẩu cho nhiều tài khoản có nguy cơ rất cao. Một khi hacker tìm ra mật khẩu chính xác, họ sẽ không ngần ngại thử đăng nhập vào các tài khoản khác của bạn.
Mánh đầu tiên mà hacker thường sử dụng là 'dictionary attack'. Họ sử dụng các từ và kết hợp với danh sách mật khẩu phổ biến cùng với danh sách tên phổ biến. Ví dụ, vào năm 2009, RockYou bị hack và 30 triệu mật khẩu đã rò rỉ lên mạng. Nhờ danh sách mật khẩu này, hacker có thể tạo ra các chiến thuật dò mật khẩu dựa trên các từ quen thuộc trong lĩnh vực bảo mật.
Trong khi đó, 'mask' là một chiêu thức khác, sử dụng các quy tắc có sẵn để giảm thiểu thời gian dò một mật khẩu. Các quy tắc này đa dạng, ví dụ như mật khẩu bắt đầu bằng chữ hoa hoặc kết thúc bằng một ký tự đặc biệt, hoặc có hai hoặc ba con số. Đó là những ví dụ về 'mask'.
'Công thức' thì phức tạp hơn 'mask'. Hacker sẽ kết hợp cả 'mask' và 'dictionary attack' để tạo ra các quy tắc phức tạp giúp giảm thời gian đoán mật khẩu. Ví dụ, mật khẩu sử dụng từ điển quen thuộc, kết hợp với hai con số hoặc kết hợp với tên và ký tự đặc biệt. Sử dụng 'công thức' này giúp nhanh chóng hơn việc dò từng ký tự một trong một chuỗi mật khẩu, đồng thời cũng hiệu quả hơn. Chính vì chiêu thức này, các dịch vụ quản lý mật khẩu trở nên vô cùng hiệu quả, vì chúng không chỉ tạo ra một chuỗi mật khẩu dài mà còn theo quy tắc ký tự phức tạp hơn, đôi khi không theo bất kỳ quy tắc nào mà người dùng nghĩ ra.
Một điều quan trọng khác, một công cụ đoán mật khẩu hoàn toàn không biết mật khẩu của bạn có bao nhiêu ký tự, 4 hoặc 14 ký tự. Điều này đã xảy ra với Hashcat khi đoán cụm mật khẩu jRtw nói trên. Nếu cụm mật khẩu không tuân theo bất kỳ quy luật nào được định sẵn, Hashcat tự động chuyển sang chế độ đoán mật khẩu 5 ký tự thay vì cách tiếp cận brute force, thử từng ký tự một cho đến khi đúng.
Dẫu vậy, điều này không có nghĩa là jRtw là một mật khẩu mạnh. Ví dụ này chỉ đưa ra để thể hiện rằng khi mật khẩu của bạn được chọn 'ngẫu nhiên' hết mức có thể, không sử dụng các từ quen thuộc, thì tài khoản của bạn sẽ an toàn hơn rất nhiều.
Tổng hợp những bài học kinh nghiệm rút ra
- Mật khẩu càng dài càng tốt. Theo nghiên cứu của Terahash, mật khẩu từ 10 ký tự trở lên là lựa chọn tốt nhất.
- Mật khẩu càng phức tạp càng tốt. Chuỗi ký tự ngẫu nhiên là lựa chọn an toàn nhất, và hãy đảm bảo có số, chữ thường và chữ hoa, đôi khi thêm một vài ký tự đặc biệt.
- Các ứng dụng quản lý mật khẩu hiện nay là lựa chọn tốt nhất để kiểm soát và quản lý mật khẩu cho từng tài khoản. Ngay cả các dịch vụ miễn phí cũng là lựa chọn tốt.
Theo PCWorld
