8 điểm bởi GN⁺ 2025-09-15 | 2 bình luận | Chia sẻ qua WhatsApp
  • Passcông cụ quản lý mật khẩu đơn giản tuân theo triết lý Unix, lưu từng mật khẩu vào tệp sau khi mã hóa bằng GPG
  • Mật khẩu có thể được quản lý có hệ thống bằng cấu trúc thư mục, và các thao tác như thêm, chỉnh sửa, tạo, xem, xóa có thể xử lý dễ dàng bằng công cụ dòng lệnh
  • Thông qua tích hợp Git, có thể theo dõi lịch sử thay đổi mật khẩu và đồng bộ hóa, nên rất hữu ích trong nhiều máy tính và môi trường nhóm
  • Có mức tự do cho người dùng cao, cho phép tự do tổ chức cấu trúc tệp hoặc định dạng dữ liệu lưu trữ theo tình huống sử dụng
  • Nhờ khả năng mở rộngđộ tương thích cao, nhiều tính năng mở rộng cùng client/GUI theo từng nền tảng đang được phát triển và phân phối tích cực

Giới thiệu về Pass

  • Việc quản lý mật khẩu nên đơn giản và cần tuân theo triết lý Unix
  • Pass lưu từng mật khẩu dưới dạng tệp được mã hóa bằng GPG, và tên tệp sử dụng tên website hoặc tài nguyên cần mật khẩu đó
  • Các tệp mã hóa này có thể được sắp xếp theo cấu trúc thư mục mong muốn. Có thể dễ dàng sao chép, di chuyển, xóa giữa các máy tính bằng các lệnh quản lý tệp thông thường
  • Pass cung cấp các lệnh chuyên biệt để thêm, chỉnh sửa, tạo, xem từng tệp mật khẩu, và theo mặc định mật khẩu được lưu dưới ~/.password-store
  • Được triển khai chỉ bằng shell script đơn giản
  • Sử dụng Git để sao chép mật khẩu (sao chép vào clipboard) và ghi lại lịch sử thay đổi mật khẩu
  • Cũng có thể chỉnh sửa bằng các lệnh shell cơ bản, đồng thời hỗ trợ tự động hoàn thành trên nhiều shell như Zsh, Fish, Bash
  • Nhiều tính năng mở rộngclient/GUI cho các nền tảng khác đang được cộng đồng phát triển rất tích cực

Cách sử dụng kho mật khẩu

  • Có thể xem toàn bộ danh sách mật khẩu đã lưu
  • Hỗ trợ xem một mật khẩu cụ thể và sao chép vào clipboard (tự động xóa)
  • Xử lý nhập mật khẩu và xác thực thuận tiện thông qua gpg-agent
  • Có thể thêm mật khẩu mới, lưu nhiều dòng trong tệp hiện có (tùy chọn -m), và chỉnh sửa trực tiếp tệp bằng trình soạn thảo văn bản mặc định
  • Cung cấp tính năng tạo mật khẩu ngẫu nhiên bằng /dev/urandom (tùy chọn bao gồm/loại trừ ký hiệu, hỗ trợ sao chép ngay vào clipboard)
  • Khi xóa mật khẩu, tệp mã hóa cũng bị xóa khỏi hệ thống tệp
  • Sau khi khởi tạo thành kho Git, mỗi lần thay đổi mật khẩu sẽ tạo commit và có thể đồng bộ bằng pass git push/pull
  • Tham khảo man page để biết thêm tính năng và cách dùng chi tiết

Cách thiết lập cơ bản

  • Khi khởi tạo kho mật khẩu, có thể bắt đầu dễ dàng chỉ bằng cách nhập khóa GPG (nếu chỉ định nhiều khóa GPG thì phù hợp cho môi trường nhóm)
  • Có thể gán khóa GPG riêng cho từng thư mục cụ thể (tùy chọn -p)
  • Cũng có thể khởi tạo như một kho Git (có thể chỉ định remote riêng)
  • Mọi thao tác thêm, xóa, chỉnh sửa mật khẩu đều được quản lý bằng commit Git
  • Có thể xem thêm các ví dụ khởi tạo mở rộng hơn trong man page

Cách cài đặt

  • Debian/Ubuntu: apt-get install pass
  • Fedora/RHEL: yum install pass
  • Hỗ trợ nhiều nền tảng như openSUSE/Gentoo/Arch/Macintosh/FreeBSD
  • Có thể dùng tarball hoặc clone trực tiếp kho Git (mọi bản phát hành đều cung cấp tag đã ký)

Tổ chức dữ liệu và tính linh hoạt

  • Pass cho phép tự do tổ chức dữ liệu theo ý người dùng (không ép buộc schema hay định dạng)
  • Có thể chọn nhiều cách khác nhau như lưu nhiều dòng, phân biệt dữ liệu bằng tên tệp, dùng cấu trúc thư mục
  • Ví dụ: với Amazon/bookreader, có thể lưu dòng đầu là mật khẩu, sau đó là URL, tên người dùng, câu hỏi bí mật và các thông tin bổ sung khác
  • Khi cần, cũng có thể chọn cách quản lý từng thông tin trong các tệp riêng biệt (ví dụ: password, secretquestion1)
  • Tùy chọn sao chép vào clipboard chỉ sao chép dòng đầu tiên, nên có thể kết hợp hiệu quả giữa sử dụng thực tế và lưu thông tin bổ sung

Tính năng mở rộng

  • Tính năng mở rộng (extensions) được hỗ trợ để đáp ứng nhiều nhu cầu người dùng khác nhau
  • Có thể cài vào thư mục hệ thống hoặc thư mục người dùng, và chỉ định việc kích hoạt bằng biến môi trường
  • Cộng đồng đang phát triển và cung cấp nhiều tính năng mở rộng rất tích cực

Client tương thích

  • Client/GUI cho nhiều nền tảng đang được cộng đồng phát triển và phân phối
  • Người dùng có thể chọn client phù hợp với hệ điều hành hoặc môi trường sử dụng của mình

Di chuyển từ trình quản lý mật khẩu khác

  • Khi chuyển dữ liệu từ trình quản lý mật khẩu khác, có nhiều script chuyển đổi và phương pháp được hỗ trợ
  • Người dùng có thể chọn cách tổ chức dữ liệu tối ưu phù hợp nhất với mình

Tác giả và giấy phép

  • Được phát triển bởi Jason A. Donenfeld (zx2c4.com)
  • Có thể tự do sử dụng và chỉnh sửa theo giấy phép GPLv2+

2 bình luận

 
ndrgrd 2025-09-15

Thực ra có nhiều công cụ chỉ đơn thuần để lưu trữ, nhưng điều quan trọng là khả năng tích hợp như tự động điền.

 
GN⁺ 2025-09-15
Ý kiến trên Hacker News
  • Ở đây có nhiều ý kiến tích cực về pass, nhưng cũng có một số nhược điểm lớn khá rõ ràng

    • Vì là dữ liệu không có cấu trúc nên nhìn chung khá bất tiện để xử lý

    • Ví dụ, khi cần dùng username và password trong script thì mỗi lần đều phải tự viết code để parse nên rất phiền

    • Khi tạo mật khẩu mới bằng pass generate, nó sẽ ghi đè toàn bộ các giá trị hiện có

    • Tức là nếu có cả password và câu trả lời cho câu hỏi bí mật, thì khi chỉ tạo lại password, phần câu trả lời sẽ biến mất

    • Việc xem lịch sử rất khó

    • Vì mọi nội dung đều được mã hóa nên ngay cả git diff cũng không cho ra thông tin hữu ích, còn việc khôi phục lịch sử hay sửa sai bằng công cụ dòng lệnh cũng bất tiện

    • Tên gọi quá chung chung nên khó tìm kiếm

    • Gần đây còn đang phát triển một công cụ tương tự tên là passworth (cũng cân nhắc dùng container/sandbox) https://github.com/andrewbaxter/passworth

    • Về chuyện khó xem lịch sử, thực ra pass có hỗ trợ cấu hình file .gitattributes để git chuyển file gpg thành văn bản rồi hiển thị diff

      • Ví dụ thêm *.gpg diff=gpg vào ~/.password-store/.gitattributes
      • Và trong .git/config thêm cấu hình [diff "gpg"] để đặt textconv = gpg2 -d ...
      • Khi đó có thể diff nội dung đã mã hóa một cách tương đối đơn giản
    • Chia sẻ thêm các vấn đề đã gặp khi dùng pass

      • Nhiều quy trình sử dụng quan trọng không được tài liệu hóa (vd. khi chuyển kho pass sang máy khác thì không rõ phải copy những gì)
      • Trong môi trường không có sẵn package, ví dụ cài lên NAS headless, thì cực kỳ khó do các vấn đề như gpg cross-compile
      • pass thực chất chỉ là một lớp giao diện rất mỏng bọc quanh gpg, nên mang nguyên mọi nhược điểm của gpg (đặc biệt là các vấn đề liên quan đến gpg-agent)
      • Nhiều tổ chức hiện đang cố chuyển từ GnuPG sang các công cụ mã hóa đơn giản hơn như age https://github.com/FiloSottile/age
      • Kết hợp pass với Android không được tốt lắm; package chính thức không còn được duy trì, bản fork thì không có trên F-Droid, UI cũng bất tiện
      • Nhìn chung vẫn đang dùng pass, nhưng không có nhiều giải pháp tổng quát tốt hơn
      • Có thể dùng FiloSottile/passage để thay gpg bằng age, nhưng không hỗ trợ Android
      • gopass có vẻ tốt hơn (chạy trên mọi Unix, tương thích với pass, có plugin age, https://www.gopass.pw), nhưng cũng không có package Android
    • Vấn đề cấu trúc dữ liệu được giải quyết bằng cấu trúc thư mục

      • Với mỗi site thì quản lý riêng các file username, password, email
      • Đôi khi thêm file notes (ghi chú phi cấu trúc), hoặc trong trường hợp đặc biệt là file json (để máy đọc)
      • Hơi tiếc là metadata không được mã hóa, nhưng nhìn chung đây vẫn là giải pháp khá ổn
    • Bản thân tôi lại thấy chính sự không có cấu trúc của dữ liệu là một ưu điểm lớn

      • Thực tế nếu ghi theo định dạng như Username: xxx thì các plugin trình duyệt như browserpass có thể nhận ra và tự động điền
    • Chia sẻ ý kiến theo từng tính năng về vấn đề dữ liệu có cấu trúc và lịch sử

      • Xem khả năng mỗi người tự dùng convention riêng của mình là một lợi thế
      • pass generate ghi đè toàn bộ giá trị, vẫn có thể quản lý riêng bằng các file như site/pass, site/secret-question
      • Cách tận dụng cây thư mục tự nó đã khá ổn
      • Việc theo dõi mật khẩu đã tạo bằng git diff có thể khó, nhưng điều thực sự quan trọng là thời điểm thay đổi gần nhất (xem bằng git log), và nếu cần thì có thể khôi phục bằng git checkout -d
      • $ pass trong terminal thì hiện ra các package liên quan, nên vấn đề tìm kiếm cũng không quá nghiêm trọng
  • Trình quản lý mật khẩu trên trình duyệt + passkey tiện hơn nhiều, nhưng kho pass vẫn khá hữu ích để lưu recovery code và API key

    • Điểm mơ hồ nhất khi dùng pass là mô hình đe dọa không thật sự rõ ràng

    • Nếu GPG agent bị cache, thì bất kỳ script nào (npm postinstall chẳng hạn) cũng có thể quét toàn bộ credential bằng pass ls

    • Như vậy thì gần giống với việc chỉ lưu tất cả vào một file ~/passwords.txt

    • Nhưng nếu không dùng cache thì lại phải nhập passphrase GPG dài mỗi lần, rất khổ

    • Cũng từng thử dùng YubiKey để mở khóa theo yêu cầu, nhưng tích hợp kém và rất bất tiện khi phải nhập mật khẩu thường xuyên

    • Vì vậy đã chuyển sang Bitwarden

    • Trường hợp của tôi thì cứ cắm yubi suốt

      • Dù sao vẫn cần chạm vật lý, nên nếu không gian của tôi an toàn thì thực tế cũng là một lớp xác thực thứ hai
      • Không giống fido2, với OpenPGP chỉ cần nhập PIN một lần là trong lúc còn cắm sẽ luôn ở trạng thái mở khóa
      • Đổi lại, phải chạm mỗi lần để giải mã từng mật khẩu, nên với tôi vừa hoàn hảo vừa tiện
      • Trên di động, tổ hợp openkeychain + password store cũng hoạt động tốt
      • Dù cả hai đều không còn được duy trì nữa, tôi thấy chỉ cần tin vào phần cứng mã hóa của yubi là đủ
    • Mọi trình quản lý mật khẩu về cơ bản đều có vấn đề là khi kho đang mở, master password có thể nằm trong RAM hoặc cache khiến toàn bộ mật khẩu bị lộ

      • Không dùng thì nên khóa lại để an toàn
      • Với các giải pháp tích hợp vào trình duyệt như Bitwarden, bề mặt tấn công (máy chủ từ xa, extension, v.v.) cũng rộng hơn
      • Gần đây hầu như mọi trình quản lý mật khẩu dựa trên trình duyệt đều từng lộ ra lỗ hổng cho phép kẻ tấn công từ xa gửi mật khẩu đến trình duyệt của nạn nhân
      • Tôi vẫn dùng Bitwarden, nhưng các credential thật sự quan trọng thì xử lý riêng
    • Nếu còn cổng USB trống thì cứ cắm Nano key vào là được

      • Kể cả nếu malware lấy được PIN của yubi, muốn đánh cắp hết mật khẩu thì nó vẫn phải thuyết phục tôi bấm thiết bị cả nghìn lần
    • Tôi lưu mật khẩu trong một DB sqlite nằm trên phân vùng file đã mã hóa

      • Script đọc xong mật khẩu là đóng phân vùng lại ngay
      • Hoặc cũng có thể lưu từng mật khẩu dưới dạng các file được mã hóa riêng
      • Khi cần thì giải mã file mật khẩu rồi xóa gpg agent
    • Có thể cấu hình yubikey để yêu cầu PIN hoặc chạm trước khi cho dùng khóa GPG

      • Vấn đề lớn nhất của pass là hỗ trợ yubikey trên iOS không tốt
  • Tôi thật sự rất thích cái này và dùng hằng ngày

    • Đặc biệt ấn tượng với tổ hợp khóa OpenPGP và yubi
    • Vì phải mở khóa từng mật khẩu riêng lẻ, nên kể cả kẻ tấn công chiếm hoàn toàn máy tính của tôi, chúng cũng chỉ lấy được những gì tôi đã chạm vật lý để mở
    • Khác với keepass hay bitwarden, nơi chỉ cần mở một lần là toàn bộ đều mở, nên rủi ro lộ cả cơ sở dữ liệu thấp hơn
  • Với người thích CLI thì pass khá thú vị, nhưng với người dùng phổ thông hơn, cách dùng KeepassXC trên desktop, KeepassDX trên Android, và truy cập từ xa bằng Wireguard có vẻ phù hợp hơn

    • Một tính năng hữu ích nhưng ít được nhắc tới của keepass là có thể mở nhiều vault cùng lúc và tìm kiếm trên tất cả

      • Phần lớn trình quản lý mật khẩu được thiết kế với giả định chỉ có một vault, tức ngầm coi mọi mật khẩu đều cần mức bảo mật như nhau
      • Trường hợp của tôi thì khoảng 70% là các site không quan trọng, và việc phải nhập master password dài mỗi lần đăng nhập rất phiền
      • keepass cho phép đưa 70% dữ liệu ít quan trọng đó vào một vault riêng với mật khẩu ngắn hơn, nên đỡ phải bận tâm
    • Tôi nghĩ tiêu chuẩn “người dùng phổ thông” là rất tương đối

      • Tôi thì chỉ dùng 1Password và tin vào kết quả của nó
    • Đừng quên keepassxc.cli

      • Nó cực kỳ hữu ích để đưa bí mật vào hoặc lấy ra theo cách lập trình được
      • Trước đây khi tạo một bundle secrets đã mã hóa, tôi từng thử GNU pass trước, nhưng cuối cùng bỏ vì việc quản lý gnupg quá phức tạp và còn lưu giá trị trong home directory
      • pass có ưu thế ở độ phổ biến, nhưng không hợp với workflow copy-one-file nên tôi quay lại keepassxc
    • Một ví dụ sử dụng của tôi mà keepass không giải quyết được là tạo mật khẩu trên hai máy tách biệt rồi hợp nhất lại sau này

    • Tôi cũng muốn dùng KeepassXC, nhưng việc chia sẻ credential với vợ/chồng không dễ

      • Kể cả dùng vault riêng, khi muốn chia sẻ thông tin sẵn có thì cuối cùng vẫn phải copy/paste thủ công
      • Vì vậy hiện tại tôi đã ổn định với Vaultwarden và thấy nó hoạt động đáng ngạc nhiên là rất ổn định
  • pass là giải pháp thú vị khi dùng một mình, nhưng cần cẩn trọng nếu chia sẻ với nhiều người

    • Nếu dùng để quản lý mật khẩu công ty, sẽ không có cách nào biết ai đã xem bí mật nào vào lúc nào, nên mỗi lần nhân sự thay đổi lại phải đổi toàn bộ mật khẩu

    • Nếu ai đó mới cần quyền truy cập, cũng không có cách tiêu chuẩn để tái mã hóa có chọn lọc các file, phải tự làm

    • Có dùng git để lưu, nhưng commit message được tạo tự động nên trên thực tế chỉ hơn Dropbox một chút

    • Nếu lỡ push nhầm nội dung rồi muốn hoàn tác, phải viết lại git history, và điều đó có thể làm hỏng phía người dùng khác

    • Sự đơn giản và khả năng tự thao tác là ưu điểm, nhưng chính sự đơn giản đó cũng là cái bẫy

    • Nó giống kiểu hash(site_name+main_password): đẹp về ý tưởng nhưng thực tế phát sinh đủ loại vấn đề

    • Trong môi trường doanh nghiệp cũng cần các tính năng như mã hóa end-to-end, xác minh fingerprint giữa người dùng, v.v.; Bitwarden có vẻ phù hợp nhất, nhưng nếu ai có ví dụ tốt hơn thì rất muốn được gợi ý

    • Với pass cũng có thể áp dụng khóa khác nhau (hoặc nhiều khóa) theo từng thư mục để phân quyền chi tiết theo nhóm hay theo người

      • Ví dụ: thư mục admins dùng khóa admin, còn thư mục techs thì cả khóa admin lẫn tech đều truy cập được
      • Cũng có thể gán khóa riêng cho từng nhân viên để chỉ quản lý những người có quyền truy cập một site nhất định
      • Có thể dùng git submodule để kiểm soát phạm vi truy cập theo từng nhân viên
      • Và có thể theo dõi qua lịch sử git xem mật khẩu nào đã được tiết lộ cho ai vào lúc nào
    • Công ty tôi dùng 1Password

      • Nó hỗ trợ đủ thứ như vault chia sẻ theo nhóm, service account, lệnh op run qua file .env, tích hợp CI, v.v.
    • Tôi mới chỉ đánh giá chứ chưa dùng thực tế, nhưng passbolt cũng là một lựa chọn tốt cho công cụ chia sẻ mật khẩu theo nhóm https://www.passbolt.com

      • Nó dùng mô hình khóa công khai, mật khẩu dạng plaintext chỉ hiện trên máy cục bộ của từng người dùng, và mật khẩu chia sẻ sẽ được mã hóa lại bằng public key của từng người
    • Ở công ty tôi, một công cụ khá lạ tên là "pa" đang được dùng rất tốt https://git.j3s.sh/pa

      • Dựa trên age và có thể mã hóa bằng nhiều khóa
    • Có vẻ cũng có thể xây dựng một giải pháp tốt dựa trên FOKS https://foks.pub

  • Gần đây tôi chuyển từ pass sang Bitwarden và Vaultwarden

    • Trong môi trường cài app GUI bằng flatpak, việc tích hợp giữa extension Firefox và pass không hoạt động nên rất bất tiện

    • Tạm thời phải dùng pass -c <path> trong hộp Run để copy mật khẩu rồi dán vào trình duyệt, nhưng trải nghiệm đó không lý tưởng

    • Việc app Android chính thức bị archive cũng là một lý do, dù có fork nhưng không rõ sẽ được duy trì tới đâu https://github.com/android-password-store/Android-Password-Store/discussions/3260

    • Hiện tại tôi đang self-host vaultwarden và dùng nó qua nhiều client bitwarden khác nhau

    • Chia sẻ trải nghiệm chuyển từ pass sang KeePassXC

      • Tương tự, tôi cũng đã lưu hàng trăm secrets trong pass
      • Tôi chuyển vì việc đồng bộ trên nhiều thiết bị dễ hơn, và vì không thể chỉ giữ các mật khẩu quan trọng trên điện thoại/laptop một cách thuận tiện
      • KeePassXC dễ đồng bộ vì chỉ là một file duy nhất, và trên Android cũng có tới 2 app hỗ trợ tốt
      • Việc chuyển dữ liệu thủ công mất khoảng 3 tiếng, nhưng nhờ đó cũng sắp xếp lại dữ liệu luôn
      • Quản lý mật khẩu là loại ứng dụng ghi chép dùng không thường xuyên, nên chỉ cần chuyển một file qua mạng là đủ để đồng bộ ba máy
    • Cũng có công cụ passmenu

      • Gọi bằng key binding thì hiện menu tự động hoàn thành, chọn mật khẩu mong muốn rồi copy vào clipboard
      • Không cần phải gõ password và đường dẫn trong command prompt nên tiện hơn
    • Tôi không biết app Android của pass đã bị ngừng phát triển

      • Xem bản fork thì thấy vẫn đang được làm khá tích cực nên cũng yên tâm phần nào
      • Tôi tò mò không rõ vì sao dự án chính thức và bản fork không được bàn giao (tôi đoán có thể là do thực hành bảo mật)
      • Bản thân tôi thích tự copy bằng pass -c từ prompt hơn là dùng plugin
      • Plugin có vấn đề về niềm tin, ví dụ khóa gpg có thể bị mở ngay khi khởi động trình duyệt, hoặc tác giả plugin cố tình làm rò rỉ mật khẩu của tôi
    • Tôi tò mò về trải nghiệm dùng vaultwarden khi offline

      • Thỉnh thoảng tôi ở môi trường mạng chập chờn, và việc xem hay cập nhật thông tin xác thực khi không có mạng là thật sự cần thiết
      • Tôi vẫn chưa tự thử nên chưa rõ vaultwarden hỗ trợ phần đó đến mức nào
  • Cũng có extension pass-otp https://github.com/tadfisher/pass-otp

    • App Android cho pass cũng khá ổn https://play.google.com/store/apps/details?id=dev.msfjarvis.aps

    • Chạy được cả trên termux

    • App Android Password Store đã bị archive từ năm ngoái, và agrahn đã fork rồi cải thiện khá nhiều

    • Giải pháp thay thế của tôi là đặt một script nhỏ trong ~/bin và dùng pass cùng oathtool để tạo OTP

      • Lấy khóa bằng pass rồi dùng oathtool tạo mã TOTP
    • Một số app Android cũ cho pass giờ thậm chí không còn cài được trên thiết bị của tôi

      • Việc tích hợp GPG quá phiền nên thực tế không dùng được mấy
  • Nếu dùng age thay cho GPG thì có công cụ passage sẽ hữu ích https://github.com/FiloSottile/passage

    • Có khá nhiều trình quản lý kiểu pass dùng age
  • Gần 10 năm nay tôi dùng một cách tiếp cận khác

    • Toàn bộ metadata của mật khẩu được lưu dưới dạng JSON plaintext, mỗi mục ghi user, phiên bản, quy tắc mật khẩu (độ dài, loại ký tự, v.v.)

    • Mật khẩu thực tế không được lưu, mà được tạo ra một cách "deterministic" từ hash của passphrase + metadata

    • Chỉ cần đổi version number là sẽ tạo ra mật khẩu hoàn toàn mới, và chỉ cần nhìn vào "version" là cũng dễ xem lịch sử

    • Nhược điểm là gần như không thể chia sẻ (người khác phải biết passphrase tôi dùng)

    • Khi cần chia sẻ thì tôi từng nghĩ tới chế độ tạo ciphertext bằng trình sinh mật khẩu rồi lưu riêng dưới dạng metadata, nhưng thực tế chưa thấy quá cần

    • Cách dùng password generator khá hay vì giảm lo lắng chuyện làm mất vault

      • Chỉ cần có hash function công khai là có thể tạo mật khẩu ở bất kỳ môi trường nào
      • Vấn đề là metadata (danh sách site, quy tắc, v.v.) bị lộ, nên vẫn còn lo ngại bảo mật
      • Tôi thấy về bản chất cũng không khác vault là mấy
    • Gần đây tôi biết tới cách này qua SECUSO password generator https://secuso.aifb.kit.edu/english/105.php

      • Tôi đang dùng kiểu sinh mật khẩu tất định
      • Bộ ứng dụng mã nguồn mở của SECUSO cũng khá ổn
    • Nếu chia sẻ passphrase thì bề mặt rủi ro sẽ rộng hơn, nên chỉ cần lộ một lần là nhiều thông tin xác thực cùng lúc có thể gặp nguy hiểm

  • Tôi đã dùng pass hơn 8 năm và lưu khoảng 1300 mật khẩu

    • Đồng bộ giữa các thiết bị bằng git và thật sự rất hài lòng

    • "1300 mật khẩu thì làm sao mà nhiều thế?"

      • Thực ra tôi cũng chưa từng đếm kỹ, nên bản thân cũng không rõ mình có nhiều đến vậy