# Vì sao password.es không gửi mật khẩu của bạn đi bất cứ đâu

> Một trang web đòi mật khẩu của bạn để kiểm tra nó có một vấn đề về niềm tin mà không lời hứa nào giải quyết được. Câu trả lời của chúng tôi không phải là hứa: là không cần đến nó, và bạn có thể tự xác minh trong ba mươi giây.

2026-07-15 · David Carrero · password.es
Original: https://password.es/vi/blog/tai-sao-chung-toi-khong-gui-mat-khau-cua-ban/

---

Viết câu “chúng tôi không lưu mật khẩu của bạn” lên một trang web tốn đúng bằng
viết bất cứ câu nào khác: không gì cả. **Đó là một câu chữ, không phải một bảo
đảm.** Người nói thật viết nó, người nói dối cũng viết nó, và từ phía bên này màn
hình thì hai câu đó giống hệt nhau.

Đó là vấn đề cốt lõi của mọi trang web đòi mật khẩu của bạn để “phân tích”. Cho
dù dịch vụ ấy hoàn hảo — mã sạch, thiện chí, người tử tế — bạn vẫn không có cách
nào biết được. Máy chủ là một chiếc hộp đóng kín. Bạn gửi đi thứ dữ liệu nhạy cảm
nhất mình có và tin rằng ở đầu bên kia mọi việc diễn ra đúng như lời hứa.

Và có một chi tiết thường bị bỏ qua: **lời hứa không lưu cũng chẳng bảo vệ bạn
khỏi những thứ nằm ngoài tầm tay người hứa.** Một máy chủ trung thực vẫn có thể
có log không ai ngó tới, một proxy trung gian, một bản sao lưu tự động, một nhân
viên mới vào, hoặc đơn giản là một ngày xui xẻo. Mật khẩu đã rời khỏi máy bạn
rồi. Chuyện xảy ra sau đó nằm ngoài tầm với của bạn, và nhiều khi cũng nằm ngoài
tầm với của họ.

## Câu trả lời duy nhất không đòi bạn phải tin điều gì

Giải pháp không phải là hứa hay hơn. Mà là **không cần đến dữ liệu đó**.

Nếu mật khẩu của bạn không bao giờ rời khỏi trình duyệt, câu hỏi “họ làm gì với
nó?” mất hết ý nghĩa. Không có “họ”. Không có máy chủ nào nhận nó, không có log
nào ghi nó, không có bản sao lưu nào chứa nó, không có nhân viên nào đọc được nó.
Niềm tin không được quản lý tốt hơn: nó bị loại khỏi bài toán.

Đó là điều [password.es](/vi/) làm. [Trình kiểm tra](/vi/kiem-tra/) phân tích thứ
bạn gõ ngay trong trình duyệt của bạn, bằng bộ xử lý của bạn. Đoạn chữ bạn gõ
không đi đâu cả, vì chẳng có nơi nào để đi.

## Sự ngẫu nhiên đến từ đâu

[Bộ tạo mật khẩu](/vi/) cũng theo đúng lối nghĩ ấy. Muốn tạo một mật khẩu ngẫu
nhiên thì cần sự ngẫu nhiên, và có hai cách để có nó: xin máy chủ hoặc xin trình
duyệt. **Xin máy chủ thì vô lý: máy chủ sẽ biết mật khẩu trước cả bạn.**

Nên chúng tôi xin trình duyệt, bằng `crypto.getRandomValues()`. Đây là API tiêu
chuẩn của nền tảng web dành cho tính ngẫu nhiên mật mã — thứ sinh ra chính là để
làm việc này, khác với `Math.random()`, vốn hợp để xáo bài trong một trò chơi chứ
không hợp với bất cứ thứ gì phải chống lại một người có ý đồ. Người tạo ra sự
ngẫu nhiên là chính trình duyệt, trên máy của bạn. Chúng tôi không tham gia: kết
quả hiện lên màn hình bạn và nằm yên ở đó.

## Cách kiểm chứng mà không cần tin tôi

Mọi thứ ở trên, cho đến lúc này, vẫn chỉ là mấy đoạn văn do chính những người làm
ra trang web viết. Tức là: đúng cái thứ mà tôi vừa bảo bạn đừng tin. Vậy nên đừng
tin tôi. **Hãy nhìn.**

Mở công cụ dành cho nhà phát triển của trình duyệt — `F12`, hoặc `Cmd+Option+I`
trên máy Mac — vào tab *Mạng* (*Network*), để nguyên đó rồi vào trình kiểm tra.
Bạn sẽ thấy trang tải về. Giờ xóa sạch danh sách, bấm vào ô nhập mật khẩu và gõ.

Đây là thứ bạn sẽ thấy, và ở chỗ này nên nói cho chính xác thay vì nói cho hay:

- **Khi bạn bấm vào ô nhập, có một yêu cầu được gửi đi.** Đó không phải mật khẩu
  của bạn — bạn còn chưa gõ gì mà — mà là thư viện làm nhiệm vụ phân tích, một
  tệp tên `zxcvbn-_base.min.js` mang sẵn bên trong các danh sách từ, tên riêng,
  mẫu bàn phím và những mật khẩu đã bị lộ để đem ra đối chiếu. Nó tải về từ
  password.es ngay khi bạn chạm vào ô, để kịp có mặt trong lúc bạn gõ. Nó đi ra
  từ chính tên miền này, là một tệp tĩnh và giống hệt nhau với mọi người mở trang
  này — trang web có nhiều phiên bản tùy theo ngôn ngữ, và bản tiếng Việt tải bộ
  cơ sở.
- **Từ đó trở đi, bạn gõ gì thì gõ, danh sách vẫn nằm im.** Một chữ cái, hai
  mươi chữ, xóa đi, gõ lại từ đầu, dán vào một đoạn dài. Không một yêu cầu nào.
  Bộ đếm không nhúc nhích. Từ điển đã nằm sẵn trong trình duyệt của bạn và việc
  tra cứu diễn ra với bộ nhớ của máy bạn.

Khác biệt nằm trọn ở chỗ đó. **Không phải là bạn tin rằng yêu cầu kia không mang
theo mật khẩu của bạn: mà là chẳng có yêu cầu nào cả.** Không cần diễn giải gì,
cũng không cần hiểu mã nguồn; chỉ cần nhìn một cái bộ đếm không tăng.

## Bản kiểm kê đầy đủ, kể cả chỗ dở

Đã lấy lý lẽ là “cứ kiểm tra đi” thì giấu đi những gì bạn sẽ tìm thấy khi kiểm
tra là chuyện lạ đời. Bản kiểm kê trung thực của password.es:

**Không có analytics.** Không Google Analytics, không một lựa chọn kín đáo nào
khác, không pixel. Từng có một cái và nó đã bị gỡ khỏi mọi trang. **Không có
cookie.** Trang web không ghi cái nào. Có đúng một thứ được lưu trong trình duyệt
của bạn: nếu bạn thích giao diện sáng hay tối, nó nằm trong bộ nhớ cục bộ trên
chính máy bạn. Nó không bao giờ được gửi đi đâu và bạn xóa được ngay từ công cụ
kiểm tra đó. **Không có đăng ký, không tài khoản, không biểu mẫu**: có muốn để
lại dữ liệu cũng chẳng có chỗ mà để.

Và chỗ dở, vì có thật: **trang này xin hai bộ phông chữ từ máy chủ của Google khi
tải.** Nghĩa là Google thấy có ai đó với IP của bạn đã tải một trang thuộc tên
miền này, giống như ở vô số trang web khác. Google không thấy thứ bạn gõ — yêu
cầu ấy xảy ra trước đó và không lặp lại nữa — nhưng nó vẫn là một yêu cầu tới bên
thứ ba, bạn sẽ thấy nó ngay trong tab *Mạng* kia, và sẽ chẳng có nghĩa lý gì nếu
vừa bảo bạn mở công cụ kiểm tra vừa không nhắc đến nó. Nó nằm trong danh sách
những thứ cần sửa.

## Vì sao chúng tôi kể chuyện này

Chúng tôi đã có thể viết “không một yêu cầu nào, riêng tư tuyệt đối” rồi ung dung
ngồi đó. Nghe sẽ hay hơn, và sẽ sai ở phần chi tiết: có một yêu cầu tải từ điển
và có mấy bộ phông chữ. **Một lý lẽ đổ sụp khi có người đi kiểm chứng thì không
phải lý lẽ: đó là quảng cáo.**

Phiên bản chính xác thì kém tròn trịa hơn nhưng chịu được soi xét: thứ bạn gõ
không rời khỏi trình duyệt của bạn, và điều đó nhìn thấy được trong ba mươi giây
bằng một công cụ bạn đã cài sẵn.

Mà này, vì chuyện này quay lại thành một tiêu chí chung cho bạn. **Lần tới, khi
một trang web đòi mật khẩu của bạn để làm gì đó, hãy mở tab kia ra và xem có yêu
cầu nào hiện lên mỗi lần bạn gõ một phím không.** Nếu có, mật khẩu của bạn đi
rồi. Bản thông báo quyền riêng tư viết gì cũng mặc kệ, cái ổ khóa trên biểu mẫu
xinh cỡ nào cũng mặc kệ, công ty trông nghiêm túc đến đâu cũng mặc kệ. Còn nếu
trang web hiện ra mật khẩu đã phân tích xong sau một vòng quay chờ, thì bạn biết
nó vừa đi qua đâu rồi đấy.

Quy tắc ít được nói tới nhất trong bảo mật không phải về mật khẩu: nó về việc
kiểm chứng. Tin tưởng thì tốt. **Kiểm chứng thì tốt hơn, và ở đây thì miễn phí.**

---

*Nguồn: kiến trúc của chính password.es, kiểm chứng được bằng công cụ kiểm tra
của bất kỳ trình duyệt nào — khi bạn đưa con trỏ vào ô nhập, trình kiểm tra tải
từ chính tên miền này thư viện phân tích cùng các danh sách của nó
(`zxcvbn-_base.min.js`) và không phát ra yêu cầu nào trong lúc bạn gõ ·
`crypto.getRandomValues()`, API tiêu chuẩn của Web Crypto API cho tính ngẫu nhiên
mật mã · mã nguồn của trang không chứa analytics, pixel hay cookie; dữ liệu duy
nhất lưu cục bộ là tùy chọn giao diện · các bộ phông chữ được phục vụ từ Google
Fonts.*
