OpenRung
무료·프라이버시 우선 릴레이 네트워크로 개방형 인터넷 접근을 지원 오픈소스·비영리 운영
Pass Tech는 안드로이드용 비밀번호 관리 앱으로 데이터가 100% 로컬에 저장됩니다
Pass Tech : gestionnaire de mots de passe Android 100% local. Anti-phishing, coffre leurre anti-coercition, mode panique, héritage post-inactivité.
보안Kotlin · DartGitHub @gitubpatrice온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Pass Tech — Gestionnaire de mots de passe Android 100% local. AES-256-CBC + HMAC, PBKDF2 600k, biométrie hardware-bound. Aucun cloud, aucun tracker. Apache 2.0.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Your secrets never leave your phone.
3.0.0 is a rewrite, and a different app. Versions 2.x were written in Flutter and installed as
com.passtech.pass_tech; this one is Kotlin and installs ascom.filestech.pass_tech. They live side by side. To move across, export a.ptbakbackup from 2.x and import it here — then remove the old one once you are satisfied.
Most password managers sync through their own cloud, which means trusting the provider completely. Pass Tech takes the opposite stance: no server, no account, no possible backend breach, because there is no backend.
otpauth:// URI a site shows under its QR code.ptbak backup, plain export, and import from Chrome, Edge, Bitwarden JSON or CSV| Component | Choice |
|---|---|
| Key derivation | Argon2id (RFC 9106) — m = 19 MiB, t = 2, p = 1, 32-byte output (OWASP 2024 mobile) |
| Hardware step | HMAC-SHA256 computed inside the Android Keystore, over domain || Argon2id output, with a key that never leaves it |
| Final key | HKDF-SHA256(salt, argon || hmac, info, 32) — domain and info separate a vault file from an heir snapshot |
| Encryption | AES-256-GCM (NIST SP 800-38D), 96-bit nonce, 128-bit tag |
| Plausible deniability | Three slots created at first launch, all the same size; unused ones hold random data under a key that exists nowhere |
| Biometrics | Android Keystore + BiometricPrompt CryptoObject, invalidated when the phone's fingerprints change |
| Anti-brute-force | Five free attempts, then 30 s → 30 min, counted in the encrypted state file and surviving a restart |
| Screenshots | FLAG_SECURE on every screen while the setting is on, including the recent-apps thumbnail |
| Clipboard | Cleared after a chosen delay, even in the background, and flagged sensitive on Android 13+ |
| Device checks | Root, emulator and debugger detection, shown on the unlock screen. It warns; it never blocks |
| Backup | Android cloud backup and phone-to-phone transfer both excluded, for every domain |
| APK signature | v2, v3 and v4; no v1, the scheme Janus (CVE-2017-13156) attacks |
| Updates | SHA-256 published for every file of every release |
The permission set is pinned in config/expected-permissions.txt
and checked on the built APK's merged manifest by the Promises workflow, both ways: a
permission that appears unlisted fails the build, and so does one listed that disappears.
See THREAT_MODEL.md for what is protected, against whom, and what is not. See SECURITY.md to report a vulnerability.
fastlane/metadata/android/en-US/images/phoneScreenshots
https://github.com/gitubpatrice/pass_techDownload the APK from the latest release (Android 8.0 and above).
Verify integrity:
sha256sum <the file you downloaded>
The hash must match the one published for that same file on the release page. If the two differ, do not install it.
Samsung One UI 6.1+: if the install is blocked, temporarily disable Settings → Security and privacy → Auto Blocker.
Measured on the built APK, not read from the source manifest:
| Permission | Why |
|---|---|
INTERNET | The update check (GitHub Releases) and the opt-in breach check (HIBP, k-anonymity). No other request. |
USE_BIOMETRIC | Optional fingerprint unlock, through androidx.biometric. |
USE_FINGERPRINT | The same, on Android 8 (API < 28), where androidx.biometric still needs it. |
…DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION | Added by an AndroidX library; it lets the app send a broadcast to itself and nothing else. |
No camera, no contacts, no location, no storage: the app asks the system for a file when you export or import one, and the system hands it that file.
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗