Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
desktop-2fa — TOTP 2FA 코드를 생성하고 관리하기 위한 안전한 오프라인 데스크톱 애플리케이션입니다. 암호화된 볼트 저장소, 최신 암호화(Argon2 + AES‑GCM), 모듈식 아키텍처, 클라우드 의존성이 없는 로컬 우선(local-first) 방식을 갖추고 있습니다. 안정성, 확장성, 향후 크로스 플랫폼 UI를 염두에 두고 설계되었습니다. | Kitploit
도구/GitHubGitHub/wrogistefan/desktop-2fa
General Purpose UtilitiesEncryption/Decryption ToolsCryptographyPrivacyAuthentication
GitHubwrogistefan/desktop-2fa

desktop-2fa

TOTP 2FA 코드를 생성하고 관리하기 위한 안전한 오프라인 데스크톱 애플리케이션입니다. 암호화된 볼트 저장소, 최신 암호화(Argon2 + AES‑GCM), 모듈식 아키텍처, 클라우드 의존성이 없는 로컬 우선(local-first) 방식을 갖추고 있습니다. 안정성, 확장성, 향후 크로스 플랫폼 UI를 염두에 두고 설계되었습니다.

저장소 보기
3016개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

🛡️ Desktop-2FA

데스크톱 환경을 위한 안전한 오프라인 2단계 인증(2FA) 관리자입니다. Python으로 제작되었으며, 강력한 암호화를 제공하고 클라우드 의존성이 없습니다.

🌐 랜딩 페이지: desktop-2fa.org

PyPI - Downloads PyPI version Python versions License Build codecov


✨ 기능

기능설명
🔐 볼트 보안Argon2id 키 파생과 함께 AES-256-GCM 암호화
⏱️ TOTP 생성RFC 6238 호환 코드 생성
💻 전체 CLI토큰 관리를 위한 완전한 명령줄 인터페이스
📋 클립보드 지원TOTP 코드를 클립보드에 자동 복사
🔓 무상태 설계모든 명령은 명시적 비밀번호 인증을 요구
🛡️ 비밀번호 정책zxcvbn을 통한 구성 가능한 비밀번호 강도 강제
🧪 철저한 테스트포괄적인 커버리지로 289개 테스트 통과
📖 보안 모델상세 위협 분석 및 암호화 설계 문서

📸 스크린샷

Add entry interactively 대화형으로 새 TOTP 항목 추가

Code generation 항목에 대한 TOTP 코드 생성

Rename and duplicate error 중복 감지와 함께 항목 이름 변경

Version and list 버전 정보 확인 및 모든 항목 나열


🚀 빠른 시작

설치

root@kitploit:~
pip install desktop-2fa

설치 확인:

root@kitploit:~
python -c "import desktop_2fa; print(desktop_2fa.__version__)"
# Output: 0.8.1dev

기본 사용법

root@kitploit:~
# Initialize a new vault
d2fa vault init

# Add a new TOTP token
d2fa vault add GitHub GitHub JBSWY3DPEHPK3PXP

# List all entries
d2fa vault list

# Generate a code
d2fa code GitHub

비대화형 사용법

root@kitploit:~
# Provide password via command line
d2fa vault add GitHub GitHub JBSWY3DPEHPK3PXP --password mypassphrase

# Provide password via file
d2fa vault add GitHub GitHub JBSWY3DPEHPK3PXP --password-file /path/to/passphrase.txt

📁 볼트 수명 주기

볼트는 ~/.desktop-2fa/vault에 위치한 암호화된 저장 파일입니다.

볼트 생성

명령이 볼트를 필요로 하는데 볼트가 없으면:

  1. CLI가 새 비밀번호를 묻거나(대화형 모드) --password/--password-file을 요구합니다(비대화형 모드)
  2. 빈 암호화 볼트가 생성됩니다
  3. 확인 메시지가 항상 출력됩니다: Vault created at <path>

볼트 로드

명령이 볼트를 필요로 하는데 볼트가 있으면:

  1. CLI가 기존 비밀번호를 묻거나(대화형 모드) 자격 증명을 요구합니다(비대화형 모드)
  2. 볼트가 복호화되어 로드됩니다
  3. 비밀번호가 유효하지 않으면 CLI는 typer.Exit(1)로 종료됩니다

중복 항목 처리

rename 명령은 여러 항목이 대상 이름과 일치할 때 결정적 동작을 강제합니다:

  • 제공된 이름(발급자 또는 account_name)과 일치하는 항목이 여러 개면 이름 변경이 중단됩니다
  • 오류 메시지: Error: Multiple entries named '<name>' exist. Operation aborted. Resolve duplicates first.
  • 이 경우 어떤 항목도 이름이 변경되지 않습니다
  • 이 검사는 어떤 변경보다 먼저 수행됩니다

📖 CLI 명령

핵심 명령

볼트 관리

전역 옵션


🔒 보안

볼트는 다음을 사용합니다:

  • 인증 암호화용 AES-256-GCM
  • 키 파생용 Argon2id (time_cost=4, memory_cost=128MiB, parallelism=2)
  • 비밀번호 강도 평가용 zxcvbn
  • 향후 호환성을 위한 버전 관리 헤더

모든 명령은 명시적 비밀번호 인증을 요구합니다. 세션 기반 접근은 없습니다.

비밀번호 강도 평가

Desktop-2FA는 볼트 비밀번호를 생성하거나 변경할 때 zxcvbn을 사용하여 비밀번호 강도를 평가합니다:

  • 점수 0-2 (약함): 쉽게 추측할 수 있는 비밀번호 (예: "password123")
  • 점수 3-4 (강함): 일반적인 공격에 저항력이 있는 비밀번호 (권장)

예시:

  • ❌ 약함: password, 123456, qwerty, admin2024
  • ✅ 강함: Battery-Horse-Staple-Correct, Mountain@River*2024, MySecureVault#42

구성 (~/.config/d2fa/config.toml):

root@kitploit:~
[security]
# Require strong passwords (score >= 3)
reject_weak_passwords = false  # warn but allow | true: reject weak passwords

reject_weak_passwords = false인 경우:

  • 약한 비밀번호는 노란색 경고를 표시합니다
  • 사용자에게 계속 진행할지 확인을 요청합니다
  • 비밀번호 수락은 비차단적입니다

reject_weak_passwords = true인 경우:

  • 약한 비밀번호는 즉시 거부됩니다
  • 명령이 오류와 함께 종료됩니다
  • 사용자는 더 강력한 비밀번호를 선택해야 합니다

하위 호환성: 구성에 min_password_entropy가 설정되어 있다면(레거시 옵션) 이를 인식하고 zxcvbn 점수 >= 3을 요구하는 것과 동일하게 처리합니다.

보안 강화 (v0.8.0)

버전 0.8.0은 v0.7.3의 모든 이전 보안 강화 조치를 유지하며, 더 나은 코드 격리를 위한 모듈식 아키텍처를 도입합니다:

  • 빈 비밀번호는 명확한 오류 메시지와 함께 즉시 거부됩니다
  • 권한 오류와 볼트 파일 누락이 구분됩니다
  • 사용자에게 Python 스택 추적이 표시되지 않습니다
  • 파일시스템 권한 문제에 대해 사용자 친화적인 오류 메시지를 제공합니다
  • 모듈식 설계는 향상된 보안 경계를 위해 CLI와 핵심 암호화 구성 요소를 분리합니다
  • zxcvbn 기반 비밀번호 강도 평가(v0.8.0의 새로운 기능)

📚 문서

문서설명

🧪 테스트

root@kitploit:~
pytest tests/              # Run all tests
pytest --cov=src/desktop_2fa  # Run with coverage

🏗️ 프로젝트 구조

root@kitploit:~
src/desktop_2fa/
├── app/           # Application components
├── cli/           # Command-line interface
├── crypto/        # Encryption utilities
├── totp/          # TOTP generation
├── ui/            # User interface components
├── vault/         # Vault management
└── utils/         # Utilities

📄 라이선스

Apache License 2.0. LICENSE 파일을 참조하세요.


👤 작성자

Łukasz Perek


🏆 후원

desktop‑2fa는 Kilo OSS 후원 프로그램을 통해 지원됩니다.


📧 문의

질문이나 지원이 필요하면 [email protected]로 문의하세요.


💖 프로젝트 지원

Desktop‑2FA는 자율성, 투명성, 오프라인 보안에 중점을 두고 만들어진 독립적인 오픈소스 도구입니다. 유용하게 사용하셨고 지속적인 개발을 지원하고 싶다면 아래 플랫폼을 통해 지원할 수 있습니다:

  • Ko‑fi: https://ko-fi.com/lukaszperek
  • Buy Me a Coffee: https://buymeacoffee.com/lukaszperek
  • AirTM: https://airtm.me/lukper
도구 다운로드
명령설명
d2fa vault add <name> <issuer> <secret>새 TOTP 항목 추가
d2fa vault list저장된 모든 TOTP 항목 나열
d2fa vault rename <old> <new>항목 이름 변경
d2fa vault remove <name>항목 제거
d2fa code <name> [--copy|--copy-only]클립보드 복사 옵션과 함께 TOTP 코드 생성
명령설명
d2fa vault init [--force]새 볼트 초기화
d2fa vault unlock약한 비밀번호 경고와 함께 볼트 열기(구성된 경우)
d2fa vault change-password볼트 비밀번호 변경
d2fa vault backup볼트의 암호화된 백업 생성
d2fa vault export <path>볼트를 파일로 내보내기
d2fa vault import <path> [--force]파일에서 볼트 가져오기
옵션설명
--password <pwd>볼트 비밀번호 직접 제공
--password-file <path>파일에서 볼트 비밀번호 읽기
--jsonJSON 형식으로 출력
--raw원시 출력(형식 지정 없음)
--quiet필수적이지 않은 출력 억제
--copyTOTP 코드를 클립보드에 복사하고 표시
--copy-onlyTOTP 코드를 클립보드에만 복사
--force작업 강제 수행(확인 건너뛰기)
사용자 매뉴얼전체 사용 가이드
보안 모델상세 위협 분석 및 암호화 설계
CLI UX 사양UX 계약 및 동작
암호화보안 구현 세부 사항