
로컬 우선(local-first) 방식의 Android용 암호화 비밀번호 볼트로, 마스터 비밀번호(Master Password) 접근, 복구 키(Recovery Key) 지원, 자동 완성(Autofill) 통합, 휴대 가능한 암호화 ABLBX 백업을 제공합니다. Ebrahim Shafiei(EbraSha)가 개발했습니다.
🌐 귀하의 언어로 읽기: 🇬🇧 English | 🇨🇳 中文 | 🇷🇺 Русский | 🇪🇸 Español | 🇯🇵 日本語 | 🇮🇷 فارسی | 🇸🇦 العربية | 🇹🇷 Türkçe | 🇩🇪 Deutsch | 🇮🇳 हिन्दी
보안. 저장. 자동 입력. — Abdal Security Group이 만든 개인정보 보호 우선 Android 비밀번호 관리자입니다.
Abdal LockBox는 자격 증명을 기기에서 암호화된 상태로 보관하고, 공식 Android Autofill 프레임워크를 통해 로그인 정보를 자동 입력하며, 휴대 가능한 .ablbx 암호화 형식으로 볼트를 백업합니다 — 볼트 비밀 정보를 클라우드 백엔드로 전송하지 않습니다.
대부분의 사람들은 비밀번호를 브라우저, 메모 앱, 또는 완전히 통제할 수 없는 클라우드 서비스에 저장합니다. 이는 실제 위험을 초래합니다: 한 번의 침해, 동기화 유출, 또는 기기 추출로 전체 자격 증명 맵이 노출될 수 있습니다.
Abdal LockBox는 실용적인 문제를 해결하기 위해 만들어졌습니다:
.ablbx 형식을 사용하여 안전하게 백업 및 복원목표는 개인정보를 존중하고 현대적인 Android 엔지니어링 관행(Jetpack Compose, Room, DataStore, 인증 암호화)을 따르는 가볍고 보안 중심의 비밀번호 관리자입니다.
FLAG_SECURE)android:allowBackup="false" — 앱 데이터에 대한 Android 클라우드 백업 비활성화.ablbx 파일(암호구로 보호됨)1.3.6.1.4.1.66033.1.2.2.1Abdal LockBox는 로컬 우선, 오프라인 우선 보안 모델을 따릅니다:
| 원칙 | 적용 방식 |
|---|---|
| 🔐 디스크에 평문 비밀 없음 | 자격 증명과 설정은 저장 전에 암호화됨 |
| 🧠 계층화된 키 | 마스터 비밀번호 / 복구 키가 KEK를 파생하고, DEK가 볼트 데이터를 암호화함 |
| ✅ 인증 암호화 | 볼트 컨텍스트에 바인딩된 AAD를 사용하는 AES-256-GCM |
| 🧩 분리된 조회 인덱스 | 자동 입력 매칭을 위한 HMAC-SHA-256 도메인/패키지 해시 |
| 🚫 클라우드 볼트 동기화 없음 | 볼트 워크플로가 원격 비밀번호 서버에 의존하지 않음 |
| 🪟 화면 보호 | 선택적 보안 창이 스크린샷과 녹화를 차단함 |
| 💣 위협 상황 삭제 | 자동 파괴가 삭제 사실을 드러내지 않고 볼트 데이터를 지움 |
Abdal LockBox는 계층화된 키 모델을 사용합니다. 비밀번호와 메타데이터는 디스크에 평문으로 저장되지 않습니다.
flowchart TB
MP[Master Password] -->|KDF| KEK[KEK — Key Encryption Key]
RK[Recovery Key] -->|KDF| RKEK[Recovery KEK]
KEK -->|AES-256-GCM wrap| DEK[DEK — Data Encryption Key]
KEK -->|AES-256-GCM wrap| IK[Index Key]
RKEK -->|AES-256-GCM wrap| DEK
RKEK -->|AES-256-GCM wrap| IK
DEK -->|AES-256-GCM| Items[Vault Items & Settings]
IK -->|HMAC-SHA-256| Lookup[Domain / Package Lookup Hashes]
| 자료 | 역할 |
|---|---|
| 마스터 비밀번호 | KDF를 통해 KEK를 파생하고 볼트를 잠금 해제함 |
| 복구 키 | 복구 KEK를 파생하고 마스터 비밀번호를 재설정함 |
| KEK | DEK와 인덱스 키를 래핑함 |
| DEK | 자격 증명 블롭과 설정을 암호화함 |
| 인덱스 키 | 자동 입력 매칭을 위한 HMAC 조회 해시를 계산함 |
기본 KDF: Argon2id (메모리 32,768 KiB · 반복 3회 · 병렬 처리 2 · 32바이트 출력)
대체 KDF: PBKDF2-HMAC-SHA256 (600,000회 반복)
AEAD: AES-256-GCM (32바이트 키 · 12바이트 논스 · 128비트 태그), Google Tink / JCE 사용
전체 보안 아키텍처는 백서를 참조하세요.
| 작업 | 위치 |
|---|---|
| ➕ 비밀번호 추가 | 홈 또는 볼트 → + |
| 📚 자격 증명 탐색 | 볼트 탭 |
| 🔎 검색 / 필터 | 볼트 검색창 및 칩 |
| 👁️ 세부 정보 보기 / 복사 | 자격 증명 카드의 눈 아이콘 |
| 📲 자동 입력 활성화 | 자동 입력 탭 + Abdal LockBox를 시스템 자동 입력 서비스로 설정 |
| 📤 백업 내보내기 | 설정 → 볼트 내보내기 |
| 📥 백업 가져오기 | 설정 → 볼트 가져오기 |
| 💣 자동 파괴 설정 | 설정 → 자동 파괴 |
| 📖 도움말 주제 | 홈 → 자세히 알아보기 |
.ablbx 파일을 안전한 장소에 보관하세요.빌드 도구 체인
9.3.19.1.12.2.102.3.511Android SDK / API 레벨
36 (Android 16)3626 (Android 8.0)com.abdal.lockbox · versionName: 1.65 (versionCode 165)사용된 플랫폼 API
android.service.autofill.AutofillService — 앱과 브라우저를 위한 시스템 자동 입력 채우기/저장(AbdalAutofillService).WindowManager.LayoutParams.FLAG_SECURE — 활동, 대화상자, 하단 시트에 대한 스크린샷/화면 녹화 보호.<queries>) — 앱 패키지 선택기를 위해 설치된 실행기 앱 탐색(Android 11 이상).android:allowBackup="false" — 앱 데이터에 대한 Android 자동 백업 비활성화.lockbox_vault.db).핵심 라이브러리
2024.09.00, Material 3, Navigation Compose 2.8.9, Activity Compose 1.10.1, Lifecycle 2.8.7.1.15.0 (AES-GCM) · Argon2kt 1.6.0 (Argon2id KDF).1.10.2.2.7.0 (KSP) · DataStore Preferences 1.1.7.1.15.2, OkHttp 4.10.0, Retrofit converter-moshi 2.12.0.4.13.2, Robolectric 4.16.1, Roborazzi 1.59.0, Espresso 3.7.0.빌드 명령어
./gradlew assembleDebug
./gradlew assembleRelease
./gradlew clean assembleRelease -PenableMinify=true
./gradlew test
ABLBX는 Abdal LockBox가 볼트 데이터를 안전하게 내보내고 가져오기 위해 사용하는 암호화된 볼트 백업 형식입니다.
.ablbxapplication/vnd.abdalsecuritygroup.lockboxabdal-lockbox-backup-{yyyyMMdd-HHmmss}.ablbx전체 기술 세부 사항은 ABLBX 파일 형식 사양을 참조하세요.
문제가 발생하거나 구성 문제가 있는 경우 [email protected]으로 이메일을 보내주세요. GitLab 또는 GitHub에서도 문제를 보고할 수 있습니다.
이 프로젝트가 유용하다고 생각하고 추가 개발을 지원하고 싶다면 후원을 고려해 주세요:
**Ebrahim Shafiei (EbraSha)**가 열정으로 직접 제작했습니다.