
apm v11.2.0
누구나 사용할 수 있는 로컬 비밀번호 관리자
APM을 선택해야 하는 이유
- 빠르고 배우기 쉬움 — 명령어나 플래그를 외울 필요가 없습니다. APM이 필요한 것을 물어봅니다. 최대 속도를 원하는 고급 사용자를 위한 CLI 플래그도 제공됩니다.
- 제로-지식 — 마스터 비밀번호는 절대 저장되지 않습니다. Argon2id를 사용하여 3개의 별도 32바이트 키가 파생됩니다. 당신만이 볼트를 복호화할 수 있습니다.
- 이중 암호화 — AES-256-GCM 또는 XChaCha20-Poly1305 중에서 선택하세요. AEAD 인증 위에 HMAC-SHA256을 통한 이중 레이어 무결성 검사를 제공합니다.
- 휴대성 — 볼트 파일 하나, 바이너리 하나. 어디서나 볼트를 사용할 수 있습니다.
- 선택적 클라우드 — Google Drive, GitHub 또는 Dropbox에 동기화할 수 있습니다. 완전한 옵트인 방식이며 APM 사용에 계정이 필요하지 않습니다.
- 확장 가능 — 100개 이상의 세분화된 권한, 라이프사이클 훅, 플러그인 마켓플레이스를 갖춘 매니페스트 기반 플러그인 시스템.
- AI 지원 준비 — 범위가 제한된 토큰을 제공하는 네이티브 MCP 서버로, Claude, Cursor 또는 MCP 호환 에이전트가 안전하게 볼트에 접근할 수 있습니다.
- 팀 지원 —
pm-team에서 완전한 RBAC, 부서, 승인 워크플로, 공유 볼트를 지원합니다.
빠른 시작
go build -o pm .
pm setup # initialize vault and choose security profile
pm unlock # start a session
pm add # add a secret (interactive)
pm get github # fuzzy search and retrieve
pm lock # end session
팀 에디션:
cd team
go build -o pm-team .
비밀 유형
APM은 검증된 필드와 유형별 표시 로직을 갖춘 25가지 구조화된 비밀 유형을 지원합니다:
| # | 유형 | # | 유형 |
|---|---|---|---|
| 1 | 비밀번호 | 14 | Docker 레지스트리 |
| 2 | TOTP | 15 | CI/CD 비밀 |
| 3 | 정부 신분증 | 16 | 보안 메모 |
| 4 | 의료 기록 | 17 | 복구 코드 |
| 5 | 여행 정보 | 18 | 인증서 |
| 6 | 연락처 | 19 | 금융 |
| 7 | Wi-Fi | 20 | 문서 |
| 8 | API 키 | 21 | 소프트웨어 라이선스 |
| 9 | 토큰 | 22 | 법적 계약 |
| 10 | SSH 키 | 23 | 사진 |
| 11 | SSH 구성 | 24 | 오디오 |
| 12 | 클라우드 자격 증명 | 25 | 비디오 |
| 13 | Kubernetes |
기능
보안
- 제로-지식 Argon2id 키 파생 — 마스터 비밀번호는 절대 저장되지 않음
- 이중 AEAD 암호화: AES-256-GCM 및 XChaCha20-Poly1305
- HMAC-SHA256 이중 레이어 무결성 검사
- 네 가지 조정 가능한 보안 프로필:
standard,hardened,paranoid,legacy - 수명, 접근 횟수, 권한 수준에 기반한 비밀별 신뢰 점수(0–100)
- 볼트 외부에 저장되는 변조 감지 감사 로그
볼트
- 단일 암호화 볼트 파일 — 모든 기기에서 휴대 가능
- 논리적 구획화를 위한 스페이스(폴더와 유사)
- 대화형 브라우저와 키보드 탐색을 지원하는 퍼지 검색
- 메타데이터 검사: 생성 날짜, 마지막 접근, 접근 횟수, 신뢰 점수
TOTP
- 대화형 목록의 실시간 카운트다운 타이머
- 지속적인 사용자 지정 정렬
- 직접 복사:
pm totp github - 2FA 코드 자동 입력을 위한 자동 완성 데몬 통합
클라우드 동기화
- Google Drive (OAuth2 PKCE), GitHub (PAT), Dropbox (OAuth2 PKCE)
- 종단 간 암호화 — 제공업체는 평문을 볼 수 없음
- 제공업체별 항목 필터링을 위한
.apmignore - 충돌 해결: 덮어쓰기, 로컬 유지, 또는 취소
- 백그라운드 자동 동기화
세션
- 구성 가능한 만료 및 비활성 타임아웃이 있는 명시적 잠금 해제/잠금
- 자동화 및 AI 에이전트 접근을 위한 위임된 임시 세션
MCP 서버
- 네이티브 Model Context Protocol 서버
- 범위가 제한된 권한 토큰:
read,secrets,write,admin - 쓰기 작업에 대한 트랜잭션 가드레일: 미리 보기 → 승인 → 영수증
- Claude Desktop, Cursor, Windsurf 및 모든 MCP 클라이언트와 호환
플러그인
- 매니페스트 기반 플러그인 시스템
- 볼트, 네트워크, 시스템, 암호화, UI 및 클라우드 전반에 걸친 100개 이상의 세분화된 권한
- 볼트 라이프사이클 이벤트를 위한 훅 시스템
- 클라우드 제공업체를 통한 플러그인 마켓플레이스
복구
| 요소 | 명령 |
|---|---|
| 이메일 OTP | pm auth email |
| 복구 키 | pm auth recover |
| 쿼럼 공유(Shamir) | pm auth quorum-setup |
| WebAuthn 패스키 | pm auth passkey register |
| 일회용 복구 코드 | pm auth codes generate |
가져오기 / 내보내기
| 형식 | 가져오기 | 내보내기 |
|---|---|---|
| JSON | pm import json | pm export json |
| CSV | pm import csv | pm export csv |
| TXT | pm import txt | pm export txt |
정책 엔진
name: corporate-standard
password_policy:
min_length: 14
require_uppercase: true
require_numbers: true
require_symbols: true
rotation_policy:
rotate_every_days: 90
notify_before_days: 14
pm policy load ./policies/
팀 에디션 (pm-team)
- 여러 역할을 지원하는 RBAC
- 격리된 암호화 도메인을 가진 부서
- 민감한 항목에 대한 승인 워크플로
- 다중 사용자 자격 증명 공유를 위한 공유 볼트
보안 프로필
| 프로필 | Argon2 메모리 | 반복 횟수 | 병렬 처리 | 사용 사례 |
|---|---|---|---|---|
standard | 64 MB | 3 | 2 | 대부분의 기기 |
hardened | 256 MB | 5 | 4 | 워크스테이션 (≥8 GB RAM) |
paranoid | 512 MB | 6 | 4 | 서버 (≥16 GB RAM) |
legacy | PBKDF2 | 600,000 | 1 | 하위 호환성 |
APM은 pm setup 중에 CPU 코어와 RAM을 자동 감지하여 최적의 프로필을 권장합니다.
개발 상태 및 이력
(소유자의 메모) 2026년 3월 30일 기준으로 저는 현재 APM용 GUI를 작업 중입니다. 처음에는 CLI 애플리케이션으로 시작했습니다. 이슈 #38에 모든 것이 자세히 설명되어 있습니다. 전반적으로 APM이 더 많은 사용자에게 도달하기를 바랍니다. GUI는 별도의 apm-gui 저장소에 두거나 조직을 만들어 두 저장소를 모두 그곳으로 옮길 계획입니다.
저는 APM을 순전히 개인 프로젝트로 시작했습니다. 어느 저녁, 제 자신만의 비밀번호 관리자를 만들고 싶다는 생각이 들면서 시작되었습니다. TOTP 때문에 Zoho Vault를 사용했는데 정말 지겨웠습니다. 제대로 작동하기에는 너무 느렸고, 토큰은 평문 파일로 보관했는데 이는 안전하지 않았습니다.
현재로서는 프로젝트를 포기하거나 폐기할 계획이 없습니다. 앞으로도 오랫동안 작동할 것입니다. 매일 더 나아지도록 노력하고 매일 사용하려고 합니다. 때로는 저장소가 비활성 상태일 수도 있는데, 그때는 애플리케이션을 테스트하고 실험하는 시기입니다.
릴리스 구조
| 단계 | 안정적? | 볼트 안전? | 용도 |
|---|---|---|---|
| Canary | ❌ | ❌ | 가장 이른 기능 미리 보기 — 볼트가 손상될 수 있음 |
| Alpha | ❌ | ✅ | 불안정한 기능, 볼트 무결성은 유지됨 |
| Beta | ✅ | ✅ | 완전히 테스트된 기능, 신중한 배포 |
| Stable | ✅ | ✅ | 프로덕션 준비 완료 릴리스 |
Canary 릴리스를 시도하기 전에 항상 볼트를 백업하세요. P.S. 일부 릴리스의 경우, 필요한 것보다 더 많은 단계를 만들지 않고 배포가 얼마나 빠르고 쉬운지에 따라 일부 단계가 릴리스되지 않을 수도 있습니다.
문서
전체 문서는 aaravmaloo.github.io/apm 에서 확인하세요.
기여
기여는 언제나 환영합니다. 가이드라인은 CONTRIBUTING.md에서 확인하세요.
라이선스
GPL-3.0 License © Aarav Maloo