plan.md

3.7 KB · raw

rendered · source

Implementation Plan: PIN Storage Security Remediation

Overview

Replace the persisted Argon2id/PIN-derived vault-key wrapper with a hardware-backed Android Keystore envelope. Keep the existing 4–12 ASCII-digit PIN UX only when the device can enforce limited-use Keystore keys in secure hardware; prefer StrongBox and fall back to a verified TEE key. Record the investigation evidence and the device-tier guarantees plainly.

Architecture Decisions

Task List

Phase 1: Investigation and design

Phase 2: Remediation

Checkpoint: Remediation

Phase 3: Validation and documentation

Checkpoint: Complete

Risks and Mitigations

Risk Impact Mitigation
App PIN is not an Android Keystore authentication type PIN could not be hardware-authenticated directly Use Keystore-only vault wrapping plus hardware-limited attempt gates; do not claim system-auth lockout for the app PIN
StrongBox is unavailable or lacks the requested primitive PIN setup could fail on some devices Prefer StrongBox, then verify and fall back to TEE; reject software-only keys
Limited-use keys are exhausted or unsupported PIN UX could lock out or be unavailable Bound attempts, require master password to regenerate gates, and disable new PIN setup when hardware support is absent
Existing storage was copied before upgrade That historical copy remains vulnerable State this limitation; the upgrade removes legacy material from the live app store but cannot revoke prior copies

Open Questions