Skip to content

Mobile App Protection via BiometricsΒ #67

@carlhye

Description

@carlhye

Problem statement

The mobile application currently lacks biometric authentication, creating a critical security vulnerability. If a user's mobile device is lost, stolen, or accessed by an unauthorized person, that individual gains full control over the home's security system - including the ability to disable alarms, unlock doors, and manipulate other security-critical functions. This impacts all HA users who rely on mobile app control and directly undermines HA's core goal of providing secure, trustworthy home automation.

Scope & Boundaries

In scope

  • Biometric authentication (Face ID, fingerprint, or platform equivalent) required on app launch
  • Biometric re-authentication after periods of inactivity
  • Fallback PIN/password authentication when biometrics unavailable
  • Support for both iOS and Android native biometric systems
  • User settings to enable/disable biometric protection (with security warnings)

Not in scope

  • Multi-factor authentication (MFA) beyond biometrics
  • Remote device wipe capabilities
  • Biometric authentication for individual device control (only app-level protection)
  • Backend authentication changes - this is client-side security only

Foreseen solution

Implement platform-native biometric authentication that triggers when:

  • The app is launched from a closed state
  • The app returns from background after a defined timeout (e.g., 5 minutes)
  • User is about to perform security-critical actions (optional enhanced protection)

The implementation will use native APIs (iOS: LocalAuthentication framework, Android: BiometricPrompt API) with graceful fallback to device PIN/password. Users can configure biometric settings in app preferences, though disabling protection requires acknowledging security implications.

Low-fidelity flow:

App Launch β†’ Biometric Prompt β†’ [Success: Home Screen] / [Failure: Retry or Fallback]
Background Return (>5min) β†’ Re-authentication Required
Settings β†’ Security β†’ Toggle Biometric Lock [ON/OFF with warning]

Community signals

No response

Risks & open questions

  • Device compatibility: What happens on older devices without biometric hardware? (Answer: Fallback to PIN/password only)
  • User friction: Will mandatory biometric checks frustrate users in emergency situations? (Mitigation: Fast fallback to PIN, timeout configuration) or should the users have the option to not have app authentication, like today?
  • Accessibility: Are biometric systems accessible for all users? (Mitigation: Always provide alternative authentication methods)
  • UX consistency: How do we handle biometric failures gracefully without blocking legitimate users?
  • Technical debt: Does this require significant refactoring of current authentication flow?

Appetite

Small - roughly 1 cycle or less
This is primarily a client-side implementation using well-established platform APIs. Most of the work involves UI integration, state management for authentication status, and testing across device types.

Execution issues

No response

Decision log

Date Decision Outcome

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

Status

Shaping

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions