Nghệ thuật ẩn mình – Kevin D. Mitnick, Robert Vamosi

Một nguyên tắc quan trọng khác là không bao giờ sử dụng cùng một mật khẩu cho hai tài khoản khác nhau. Điều này rất khó thực hiện vì ngày nay, chúng ta dùng mật khẩu cho hầu như tất cả mọi thứ. Do đó, hãy để phần mềm quản lý mật khẩu tạo và lưu giữ các mật khẩu mạnh, riêng biệt cho bạn.

Nhưng ngay cả khi bạn đã có mật khẩu mạnh, kẻ xấu vẫn có thể sử dụng công nghệ để đánh bại bạn. Có những chương trình đoán mật khẩu như John the Ripper, một chương trình mã nguồn mở miễn phí mà bất kỳ ai cũng có thể tải xuống và hoạt động trong các tham số cấu hình do người dùng thiết lập. Ví dụ, người dùng có thể chỉ định số lượng ký tự cần thử, có sử dụng các ký hiệu đặc biệt hay không, có bao gồm các bộ ký tự ngoại ngữ hay không,… John the Ripper và các phần mềm tấn công mật khẩu khác có thể hoán vị các ký tự trong mật khẩu bằng cách sử dụng các bộ quy tắc cực kỳ hiệu quả trong việc đánh cắp mật khẩu. Điều này đơn giản có nghĩa là chúng sẽ thử mọi tổ hợp có thể có của các số, chữ cái, và ký hiệu trong các tham số cho đến khi bẻ được mật khẩu. May mắn nằm ở chỗ, hầu hết chúng ta đều không có ý định phòng vệ trước chính quyền, vốn có thời gian và nguồn lực dư dả đến vô hạn định. Có chăng, chúng ta chỉ muốn phòng vệ trước vợ/chồng, người thân, hay một người mà chúng ta thực lòng căm ghét (nhưng khi gặp phải một mật khẩu dài 25 ký tự, người đó sẽ không có đủ cả thời gian lẫn nguồn lực để ngồi phá giải).

Giả sử bạn muốn tạo mật khẩu theo cách cũ, và đã chọn được một số mật khẩu rất mạnh. Hãy đoán thử xem chuyện gì sẽ xảy ra? Nhớ là đừng có viết thẳng băng trên mặt giấy rằng, “Ngân hàng Bank of America: 4the1sttimein4ever*.” Như thế khác nào vẽ đường cho hươu chạy. Trong trường hợp này, hãy dùng một dạng ký tự mã hóa thay cho tên ngân hàng của bạn (giả dụ thế), chẳng hạn “Lọ bánh quy” (vì trước đây có người đã giấu tiền trong các lọ bánh quy) và theo sau đó là “4the1st.” Hãy lưu ý, tôi không ghi cụm từ mật khẩu hoàn thiện. Không cần phải làm thế. Bạn đã biết phần còn lại của cụm từ là gì rồi. Nhưng người khác có thể không biết.

Người nào tìm thấy bản danh sách các mật khẩu không đầy đủ này đều sẽ thấy rối trí – ít nhất là lúc đầu. Xin kể ra đây một câu chuyện thú vị: Một lần, tôi tới nhà một người bạn – anh này là một nhân viên nổi tiếng của Microsoft – và trong bữa tối, chúng tôi trao đổi vấn đề an ninh mật khẩu với vợ con của anh. Giữa chừng câu chuyện, vợ của bạn tôi đứng dậy và đi về phía tủ lạnh. Chị đã viết tất cả các mật khẩu của mình vào một mảnh giấy và dùng nam châm gắn nó vào cửa tủ lạnh. Bạn tôi chỉ còn biết lắc đầu, tôi thì cười toe toét. Viết mật khẩu ra giấy có thể không phải là một giải pháp hoàn hảo, và không sử dụng mật khẩu mạnh cũng vậy.

Một số website – chẳng hạn website ngân hàng – sẽ khóa người dùng sau một vài lần thử mật khẩu không thành công, thường là ba lần. Tuy nhiên, nhiều nơi vẫn chưa thực hiện điều này. Nhưng ngay cả khi một website áp dụng cơ chế khóa người dùng sau ba lần thử không thành công, thì những kẻ xấu sử dụng John the Ripper hoặc oclHashcat cũng không bẻ mật khẩu theo cách đó. (Nhân tiện, oclHashcat phân tán quá trình tấn công qua nhiều GPU và mạnh hơn nhiều so với John the Ripper.) Ngoài ra, hacker cũng không mò mẫm thử từng mật khẩu khả dĩ trên một website trực tiếp.

Giả sử kẻ xấu đã lấy cắp được dữ liệu, và trong phần dữ liệu kết xuất có cả tên người dùng cũng như mật khẩu. Nhưng các mật khẩu thu được từ cuộc xâm phạm này chỉ là những thứ vô nghĩa.

Mà như vậy thì kẻ tấn công đâu có được lợi ích gì?

Hễ khi nào bạn gõ một mật khẩu, dù là để mở khóa máy tính xách tay hay một dịch vụ trực tuyến – mật khẩu đó sẽ được đưa qua một thuật toán một chiều gọi là hàm băm. Nó khác với quá trình mã hóa. Mã hóa là hai chiều: bạn có thể mã hóa và giải mã, với điều kiện bạn có chìa khóa trong tay. Hàm băm là một dạng dấu vân tay đại diện cho một chuỗi ký tự cụ thể. Về lý thuyết, các thuật toán một chiều là bất khả đảo – hoặc ít nhất là không dễ dàng.

Nội dung được lưu trữ trong cơ sở dữ liệu mật khẩu trên máy tính cá nhân truyền thống, thiết bị di động, hoặc tài khoản đám mây của bạn không phải là MaryHadALittleLamb123$, mà là giá trị băm của nó, tức là một chuỗi các số và chữ cái, đóng vai trò là dấu hiệu đại diện cho mật khẩu của bạn.

Bộ nhớ được bảo vệ trên máy tính lưu trữ giá trị băm của mật khẩu, chứ không phải là bản thân mật khẩu, và các giá trị này có thể bị đánh cắp trong một cuộc tấn công vào các hệ thống mục tiêu hoặc bị rò rỉ trong các vụ xâm phạm dữ liệu. Sau khi đã lấy được các giá trị băm mật khẩu này, hacker có thể sử dụng nhiều công cụ có sẵn công khai, như John the Ripper hoặc oclHashcat, để phá vỡ chúng nhằm tìm ra mật khẩu thực thông qua kỹ thuật vét cạn[15] hoặc thử từng từ trong một danh sách các từ, chẳng hạn từ điển. Các tùy chọn trong John the Ripper và oclHashcat cho phép kẻ tấn công sửa đổi các từ được thử trước nhiều bộ quy tắc, ví dụ bộ quy tắc leetspeak – một hệ thống dùng để thay thế các chữ cái bằng số, như trong “k3v1n m17n1ck.” Quy tắc này sẽ thay đổi tất cả các mật khẩu thành nhiều kiểu hoán vị leetspeak khác nhau. Các phương pháp bẻ khóa mật khẩu này hiệu quả hơn nhiều so với phương pháp tấn công vét cạn đơn giản. Thông thường, những mật khẩu đơn giản và phổ biến nhất sẽ bị phá trước, sau đó mới dần chuyển sang các mật khẩu phức tạp hơn. Thời gian cần thiết cho quá trình này phụ thuộc vào một số yếu tố. Sử dụng công cụ bẻ khóa kết hợp với tên người dùng và giá trị băm mật khẩu đánh cắp được, hacker có thể truy cập vào một hoặc nhiều tài khoản của bạn bằng cách thử mật khẩu đó trên nhiều website kết nối với địa chỉ email hoặc các dữ liệu định danh khác của bạn.

[15] Tấn công vét cạn (brute force): Kiểu tấn công được dùng cho tất cả các loại mã hóa, hoạt động bằng cách thử tất cả các chuỗi mật khẩu có thể để tìm ra mật khẩu. Vì thế, thời gian thực hiện phương pháp này rất lâu, tùy theo độ dài của mật khẩu. Thông thường, kỹ thuật này chỉ được dùng khi các phương pháp khác đều không có hiệu quả.

Nhìn chung, mật khẩu càng nhiều ký tự thì các chương trình đoán mật khẩu như John the Ripper sẽ càng mất nhiều thời gian để quét tất cả các biến khả dĩ. Vì các bộ vi xử lý máy tính ngày nay càng lúc càng chạy nhanh hơn, nên thời gian cần thiết để tính toán toàn bộ số mật khẩu có sáu, thậm chí tám, ký tự cũng ngày một rút ngắn đi. Đó là lý do tại sao tôi khuyên bạn nên sử dụng mật khẩu từ 25 ký tự trở lên.

Sau khi bạn đã tạo được những mật khẩu mạnh, đừng bao giờ tiết lộ chúng. Chuyện này nghe có vẻ hiển nhiên đến mức không cần phải nhắc, nhưng các cuộc khảo sát ở London và nhiều thành phố lớn khác cho thấy, người ta sẵn sàng trao đổi mật khẩu của mình để lấy những thứ vặt vãnh như một cây bút hoặc một miếng sô-cô-la.

Một người bạn của tôi có lần cho bạn gái biết mật khẩu Netflix của mình. Quyết định này ngay vào thời điểm đó là điều dễ hiểu, vì anh muốn để cô tự chọn phim cho cả hai cùng xem. Nhưng trong phần phim được đề xuất trên Netflix là những bộ phim được giới thiệu với lý do “vì bạn đã từng xem…,” bao gồm cả những bộ phim mà anh đã xem với các cô bạn gái trước kia.

Tất nhiên, ai chẳng có người yêu cũ. Có khi chính bạn còn nghi ngờ nếu hẹn hò với một người chưa từng có ai. Nhưng không cô bạn gái nào muốn nhìn thấy bằng chứng về những cô gái đã đến trước mình cả.

Nếu đã bảo vệ các dịch vụ trực tuyến của mình bằng mật khẩu, thì bạn cũng nên bảo vệ các thiết bị cá nhân bằng mật khẩu. Hầu hết chúng ta đều có máy tính xách tay, và nhiều người vẫn có máy tính để bàn. Có thể bây giờ bạn đang ở nhà một mình, nhưng còn những vị khách mà bạn mời tới ăn tối lát nữa đến thì sao? Tại sao lại phải chấp nhận rủi ro rằng một người trong số họ có thể truy cập các file, ảnh, và trò chơi của bạn khi ngồi vào máy? Sau đây là một câu chuyện cảnh giác khác về Netflix: Vào thời Netflix chủ yếu vẫn gửi DVD, một cặp vợ chồng đã bị chơi khăm một vố như thế này. Trong một bữa tiệc tại gia, họ để mở tài khoản Netflix trên trình duyệt máy tính của mình. Sau đó, họ phát hiện ra rằng nhiều loại phim khiêu dâm đã được thêm vào danh sách đăng ký – nhưng họ chỉ phát hiện ra điều này sau khi nhận được những bộ phim đó qua thư.

Việc tự bảo vệ mình bằng mật khẩu tại văn phòng thậm chí còn quan trọng hơn. Hãy nghĩ về những lần bạn đang ngồi ở bàn làm việc thì bị gọi đi họp đột xuất. Ai đó có thể đi ngang qua chỗ bạn và thấy được bảng tính ngân sách cho quý tiếp theo. Hay tất cả các email có trong hộp thư đến của bạn. Hay tệ hơn, nếu không đặt chế độ bảo vệ bằng mật khẩu khi màn hình ở chế độ chờ và hẹn máy tự động kích hoạt chế độ này khi màn hình không hoạt động một vài giây, thì bất cứ khi nào bạn rời khỏi bàn làm việc trong một thời gian dài – ví dụ ra ngoài ăn trưa hoặc tham dự một cuộc họp kéo dài – một người nào đó có thể ngồi vào chỗ bạn, viết một email và gửi đi với tư cách là bạn. Hoặc thậm chí thay đổi ngân sách quý tiếp theo trên bảng tính.

Có nhiều phương pháp mới sáng tạo giúp ngăn chặn những tình huống này, như phần mềm khóa màn hình sử dụng Bluetooth để xác minh xem bạn có ở gần máy tính hay không. Nói cách khác, nếu bạn vào nhà vệ sinh và điện thoại di động của bạn ra khỏi phạm vi Bluetooth của máy tính, thì màn hình sẽ bị khóa ngay lập tức. Ngoài ra, còn có các phiên bản sử dụng thiết bị Bluetooth như dây đeo cổ tay hoặc đồng hồ thông minh nhưng có cơ chế hoạt động tương tự.