Mật khẩu và các vấn đề an toàn

Mật khẩu là một phương thức xác thực thường được sử dụng nhằm chứng thực người đang truy cập chính là chủ sở hữu tài khoản.
Mật khẩu bảo vệ quyền truy cập cho hầu hết các thông tin số của chúng ta, ví dụ như tài khoản ngân hàng, email cá nhân, tài khoản mạng xã hội, các cuộc trò chuyện trên mạng và nhiều thông tin tương tự.
Do rất nhiều tài khoản được xác thực bằng mật khẩu, những kẻ tấn công luôn tìm cách chiếm dụng mật khẩu của người dùng.
Dưới đây là những cách chiếm dụng mật khẩu phổ biến nhất:
  • Đoán mật khẩu
  • Dò tìm triệt để (hay thường được gọi là “tấn công brute-force”): kẻ tấn công sẽ “đoán” mật khẩu với sự hỗ trợ của máy tính để dò tìm và thử tất cả các tổ hợp ký tự mà người dùng có thể sử dụng làm mật khẩu.
  • Nhồi thông tin xác thực (hay “tấn công cresential stuffing”): kẻ tấn công sẽ sử dụng thông tin đăng nhập đã bị lộ của người dùng ở một trang web này để truy cập vào trang web khác
  • Phần mềm độc hại, đặc biệt là phần mềm theo dõi bàn phím
  • Tấn công giả mạo
Để giảm thiểu nguy cơ bị chiếm dụng mật khẩu theo 3 cách thức đầu tiên (đoán mật khẩu, dò tìm triệt để hoặc nhồi thông tin xác thực), người dùng cần tạo những mật khẩu mạnh và khó bị kẻ xấu chiếm đoạt.
Để không trở thành nạn nhân của hai hình thức tấn công mạng còn lại (phần mềm độc hại hoặc tấn công giả mạo), người dùng cần phải thận trọng khi tải xuống bất kỳ thứ gì và khi đọc email, kể cả những email trông có vẻ đáng tin.

Cách đặt mật khẩu mạnh

Một mật khẩu mạnh là:
  • Mật khẩu không phổ biến để tránh bị đoán ra. Nhiều người hay “tái sử dụng” mật khẩu cũ bằng cách thêm số “1” hoặc đặt dấu “!” ở cuối mật khẩu. Kẻ tấn công có thể dựa vào thói quen phổ biến này của người dùng và chiếm đoạt mật khẩu dễ dàng hơn.
  • Mật khẩu đủ phức tạp để tránh bị dò tìm. Mật khẩu mạnh cần phải dài và bao gồm nhiều loại ký tự, chẳng hạn như dùng cả số và ký hiệu, thay vì chỉ dùng các chữ cái. Nếu chúng ta tạo mật khẩu có  ký tự và chỉ bao gồm các chữ cái latinh thông thường, chúng ta có thể tạo ra khoảng , hay  mật khẩu. Nhưng nếu chúng ta tạo mật khẩu dài  ký tự, bao gồm cả chữ in hoa và chữ thường, thì số mật khẩu có thể được tạo ra sẽ là , hay  mật khẩu. Như vậy, dù ta chỉ thay đổi cấu trúc mật khẩu một chút, thì số lượng mật khẩu mà kẻ tấn công phải dò tìm cũng sẽ thay đổi rất nhiều, từ đó ảnh hưởng tới khả năng đoán ra mật khẩu của chúng.
  • Mật khẩu không trùng lặp để tránh bị tấn công nhồi thông tin xác thực. Bằng cách này, kẻ tấn công sẽ không thể sử dụng mật khẩu mà chúng đã chiếm đoạt được từ một tài khoản để truy cập vào tất cả các tài khoản khác của người dùng.
Ngoài những yếu tố kể trên, ta cần lưu ý rằng mật khẩu cũng phải dễ nhớ. Nếu người dùng liên tục quên mật khẩu thì đó cũng không hẳn là một mật khẩu tốt.
Dưới đây là những cách mà người dùng có thể tham khảo để tạo mật khẩu mạnh và dễ nhớ:
Tạo một từ viết tắt. Các từ đơn giản và cụm từ phổ biến thường dễ bị đoán ra hơn. Vì vậy, ta có thể tạo ra một từ viết tắt, bằng cách ghép các chữ cái đầu của một cụm từ hoặc một câu. Ta cũng có thể biến đổi mỗi chữ cái thành dạng số, ký hiệu hoặc chữ cái đầu tiên của từ tương ứng trong tiếng nước ngoài. Ví dụ, ta có thể viết tắt câu “Tôi muốn tạo một mật khẩu mạnh” thành Tmt1pw!!!. Bạn cũng có thể viết tắt lời bài hát yêu thích để tạo ra một mật khẩu vừa dễ nhớ, vừa đảm bảo về độ mạnh. 🎶
Kết hợp các từ không liên quan lại với nhau. Bạn có thể thử lấy một quyển từ điển, ngẫu nhiên lật sang một trang và chọn từ đầu tiên mà bạn thấy. Hãy làm như vậy bốn lần, sau đó kết hợp 4 từ tìm được với các ký hiệu để có một mật khẩu mạnh, ví dụ như chanthuc-vat-bachtuoc-apdung.
Sử dụng trình quản lý mật khẩu. Nghĩ ra và ghi nhớ một vài mật khẩu dài và mạnh không phải là chuyện khó khăn. Nhưng chắc chắn bạn sẽ gặp trở ngại khi phải ghi nhớ tới 40 mật khẩu như vậy. Trong trường hợp này, bạn có thể sử dụng Trình quản lý mật khẩu. Đây là công cụ có thể tự động tạo mật khẩu mạnh và quản lí tất cả mật khẩu của bạn. Bạn chỉ cần nghĩ ra một mật khẩu thật mạnh và dễ nhớ để làm mật khẩu cho trình quản lý này. Sau đó, bạn có thể truy cập vào trình quản lý để xem tất cả các mật khẩu khác.
🔍 Bạn có thể tìm kiếm trên mạng cụm từ “kiểm tra độ mạnh yếu của mật khẩu” (hay “password meter” trong tiếng Anh) và các trang web đo lường độ mạnh của mật khẩu sẽ hiện ra. Bạn có thể sử dụng các trang web này để kiểm tra độ mạnh của mật khẩu. Vì lý do bảo mật, bạn không nên nhập mật khẩu thực của mình vào các trang web đó, nhưng bạn có thể nhập các mật khẩu giả tưởng và xem chúng mạnh tới đâu.

Lưu ý khi nhập mật khẩu trên các trang web và ứng dụng

Ngay cả khi bạn đã tạo ra một mật khẩu siêu mạnh, bạn vẫn cần phải cẩn thận khi nhập mật khẩu:
Chỉ điền mật khẩu qua kết nối an toàn. Kẻ xấu sẽ dễ dàng chiếm đoạt mật khẩu của bạn hơn khi bạn truy cập kết nối Internet không an toàn (và đây cũng là chế độ kết nối mặc định của nhiều trang web).
Trước khi nhập mật khẩu trên trình duyệt, hãy tìm biểu tượng ổ khóa trên đường dẫn. Biểu tượng này cho biết trang web đang dùng kết nối an toàn HTTPS:

Screenshot of the Wikipedia login screen with filled out username and password fields. The URL has a lock to the left of it signifying an HTTPS connection, and an arrow points on that lock.

Coi chừng những kẻ nhìn lén. Nếu có ai ở gần bạn khi bạn đang nhập mật khẩu, hãy cẩn thận vì họ có thể đang nhìn lén và ghi nhớ mật khẩu bạn đang nhập đấy.

Các yếu tố xác thực

Để xác thực danh tính, bạn cần cung cấp bằng chứng để chứng minh danh tính của bạn. Có ba dạng bằng chứng phổ biến thường được dùng để xác minh danh tính như sau:
  1. Bằng chứng dựa trên sự hiểu biết (tức là thứ bạn biết). Bạn thường xác minh danh tính của mình trên một trang web bằng cách cung cấp mật khẩu. Mật khẩu của bạn là ví dụ cho một điều gì đó mà bạn biết. Các ví dụ tương tự chính là mã PIN hoặc cụm từ.

Illustration of a thought bubble with the password "Be3tP@ssw0rd3ver"

  1. Bằng chứng dựa trên tính sở hữu (tức là thứ bạn có). Máy ATM xác minh danh tính của người dùng bằng cách yêu cầu họ cung cấp thẻ ngân hàng để làm bằng chứng. Thẻ ngân hàng của bạn là ví dụ cho một thứ mà bạn có. Ví dụ tương tự bao gồm điện thoại, chìa khóa hoặc thẻ bảo mật.

Hình minh họa một tay cầm thẻ ATM

  1. Bằng chứng dựa trên đặc điểm sinh trắc học (tức là thứ tạo nên bạn). Những mẫu điện thoại hiện đại có thể xác minh danh tính của bạn bằng cách quét dấu vân tay. Dấu vân tay là ví dụ cho một thứ vốn có trên cơ thể và là đặc điểm riêng tạo nên bạn. Các ví dụ khác bao gồm nhận dạng khuôn mặt hoặc giọng nói.

Illustration of a thumbprint and a woman speaking with sound waves coming out

Các dạng bằng chứng xác minh khác nhau này còn được gọi chung là các yếu tố xác thực. Trong thực tiễn, ta còn có những bằng chứng xác thực khác (ví dụ như địa điểm của bạn), nhưng những yếu tố kể trên là những yếu tố được sử dụng phổ biến nhất.
Tin tặc có thể đánh cắp các yếu tố xác thực này để truy cập trái phép vào tài khoản. Tùy thuộc vào vị trí của kẻ tấn công mà một số yếu tố dễ bị đánh cắp hơn so với những yếu tố khác. Chẳng hạn, kẻ tấn công từ xa có thể thấy việc đánh cắp mật khẩu dễ dàng hơn so với thẻ ngân hàng, trong khi kẻ tấn công ở khu vực lân cận người dùng sẽ thấy đánh cắp thẻ ngân hàng dễ hơn.

Illustration of two attackers: the attacker on the left is shown monitoring a password being sent in plain text over the Internet, the attacker on the right is shown stealing an ATM card

Xác thực đa yếu tố

Để ngăn chặn các cuộc tấn công cục bộ và từ xa, các hệ thống xác thực sử dụng một phương pháp kiểm soát truy cập phổ biến được gọi là xác thực đa yếu tố (multi-factor authentication – MFA).
MFA yêu cầu người dùng cung cấp bằng chứng thuộc các yếu tố xác thực riêng biệt (ví dụ như kết hợp thứ bạn biết – kiến thức và thứ bạn có – sở hữu) để có thể truy cập vào hệ thống.

Xác thực hai yếu tố

Xác thực hai yếu tố là hình thức MFA phổ biến nhất. Xác thực hai yếu tố (2FA) yêu cầu hai bằng chứng xác minh danh tính và hai bằng chứng đó phải thuộc hai yếu tố khác nhau.
Một hệ thống xác thực yêu cầu mật khẩu và mã PIN chỉ được tính là xác thực một yếu tố mặc dù hệ thống yêu cầu hai bằng chứng. Mật khẩu và mã PIN đều thuộc yếu tố kiến thức nên hệ thống này không được phân loại là hệ thống xác thực đa yếu tố.
Vậy thì một hệ thống 2FA trong thực tế sẽ như thế nào? Quy trình phổ biến nhất mà ta thường gặp chính là nhập mật khẩu (thứ bạn biết) ở bước đầu tiên và sau đó nhập mã được tạo trên điện thoại của bạn (thứ bạn có).
Hãy xem qua quy trình xác thực hai yếu tố để đăng nhập vào Github – một trang web cung cấp kho lưu trữ mã nguồn và kiểm soát các phiên bản phần mềm.
Đầu tiên, Github yêu cầu tôi điền tên người dùng và mật khẩu:

Screenshot of Github login screen with two form fields (one for username, one for password) and a button that says "Sign in".

Github nhắc tôi nhập mã xác thực được tạo bởi một ứng dụng trên thiết bị của tôi:

Screenshot of Github 2FA screen with a form field labeled "authentication code" and a button labeled "Verify". Text at the bottom says "Open the two-factor authentication app on your device to view your authentication code and verify your identity."

Tôi mở ứng dụng xác thực trên điện thoại và lấy mã được tạo để truy cập tài khoản Github của mình:

Photo of a hand holding a phone with an app open. The app is titled "Authenticator" and shows the code "188 071" labeled as "Github".

Nếu quan sát kỹ, bạn sẽ thấy đồng hồ đếm ngược thời gian hết hạn của mã số được tạo. Khi quá trình đếm ngược kết thúc, một mã mới sẽ được tạo và bộ đếm giờ sẽ được đặt lại. Nhiều hệ thống 2FA thường thêm thông tin về ngày hết hạn của một bằng chứng để ngăn những kẻ tấn công mạng sử dụng bằng chứng xác thực này mãi mãi.
Vì mã được tạo sẽ hết hạn sau vài phút nữa nên tôi phải nhanh chóng dán mã đó vào trang web Github trên máy tính xách tay của mình:

Screenshot of Github 2FA screen with a form field labeled "authentication code" and a button labeled "Verify". Field is filled out but contents are disguised as dots.

Cuối cùng, tôi đã đăng nhập thành công vào tài khoản Github của mình!
Quá trình đăng nhập Github kéo dài hơn và phức tạp hơn khi ta phải hoàn thành thêm bước sử dụng điện thoại để tạo mã đăng nhập. Nhưng đó lại chính là cách để kẻ tấn công khó xâm nhập vào tài khoản Github của tôi hơn.
Vào tháng 5 năm 2019, nhiều người dùng trên Github đã phát hiện ra rằng kho lưu trữ mã của họ đã bị xóa và được thay thế bằng một ghi chú đòi tiền chuộc. Lí do là bởi những người dùng đó không sử dụng 2FA và vô tình để lộ mật khẩu, khiến cho kẻ tấn công dễ dàng kiểm soát tài khoản của họ. Đó là lý do tại sao Github đặc biệt khuyến nghị sử dụng 2FA. 
Mỗi khi ta bổ sung thêm một yếu tố xác thực, một lớp bảo mật khác sẽ được dựng lên để ngăn chặn các cuộc tấn công. Vậy tại sao ta không sử dụng 3FA (xác thực 3 yếu tố) hoặc thậm chí 4FA (xác thực 4 yếu tố)? Câu trả lời là người dùng có thể cảm thấy bất tiện khi phải xuất trình 3 dạng bằng chứng trở lên để xác thực, đặc biệt là khi các hệ thống thường yêu cầu xác thực lại sau một thời gian nhất định. Đây là một ví dụ phổ biến về sự đánh đổi trong an ninh mạng: ta nên ưu tiên trải nghiệm người dùng hay tính bảo mật? Khi tính bảo mật của một hệ thống tăng lên, thì sự tiện dụng của hệ thống này có thể không còn như trước.

Khuyến nghị

Để bảo vệ tài khoản, tốt nhất ta nên sử dụng xác thực đa yếu tố cùng với [mật khẩu mạnh]. Theo một nghiên cứu của Google, sử dụng MFA đã ngăn chặn nhiều cuộc tấn công hơn so với dùng xác thực một yếu tố, ngăn chặn 100% các cuộc tấn công từ bot tự động và giúp giảm đáng kể các loại hình tấn công khác. 
Ta sẽ không thể sử dụng MFA nếu trang web không hỗ trợ. Nhưng hiện nay, nhiều trang web đã nâng cấp hệ thống của họ và cho phép người dùng sử dụng MFA. Vậy nên, ta nên thỉnh thoảng kiểm tra lại xem trang web ta đang dùng đã hỗ trợ MFA hay chưa? Nếu ta sử dụng trình quản lý mật khẩu, công cụ này thậm chí có thể thông báo cho ta biết khi nào thì một trong các tài khoản của chúng ta có thể kích hoạt MFA.
Chúng ta cũng cần cẩn thận để đảm bảo bằng chứng thuộc yếu tố này không liên quan đến bằng chứng thuộc yếu tố khác. Ví dụ: nếu bạn lưu mật khẩu trong ứng dụng Ghi chú trên điện thoại của mình và ai đó tìm được cách đánh cắp và mở khóa điện thoại của bạn, thì họ sẽ có quyền truy cập vào cả bằng chứng dựa trên sự sở hữu (mã trên điện thoại)  bằng chứng dựa trên sự hiểu biết (mật khẩu). 😬

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *