πŸ”’
Feature

MILITARY-GRADE SECURITY

Bank-level AES-256-GCM encryption protects your sensitive data. Your collection details, serial numbers, and documents stay completely private.

βœ“OWASP 2023 Compliant β€’ 310,000 PBKDF2 Iterations
Security In Action

SEE IT SECURED

Authentication Screen
PIN Setup Success
Backup Recovery Key

SECURITY LAYERS

AES-256-GCM Encryption

ENCRYPTED

Military-grade AES-256 encryption in Galois/Counter Mode. All sensitive fields encrypted at rest including serial numbers, notes, lot numbers, and tax stamp numbers. Each encrypted field gets a unique initialization vector.

PBKDF2 Key Derivation

PBKDF2

310,000 iterations with SHA-256 (OWASP 2023 recommendation). Your 6-digit PIN is never storedβ€”only used to derive encryption keys. Makes brute force attacks computationally infeasible.

iOS Keychain Storage

SECURE ENCLAVE

Encryption keys stored in iOS Keychain with kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly. Hardware-backed by Secure Enclave. Keys never leave your device.

Biometric Authentication

BIOMETRIC

Face ID, Touch ID, or Optic ID for quick access. Falls back to device passcode. Your biometric data never leaves your device and isn't stored by ArmoryHub.

6-Digit PIN Protection

PIN PROTECTED

Industry-standard 6-digit PIN (1 million combinations). Required for encryption setup. Works alongside biometrics or as standalone authentication.

Automatic Lock Timers

AUTO-LOCK

Configure when the app locks after backgrounding: Immediately, 30 seconds, 1 minute, 5 minutes. 'Never' option available for PIN-only mode but automatically disabled when encryption is enabled (forces periodic key clearing for security).

Cloud Encryption Flag

MULTI-DEVICE

When encryption is enabled, a flag syncs via iCloud (if enabled) to notify other devices that encryption is required. Prevents encrypted data from syncing to devices that haven't imported the encryption key via QR code.

Wife Mode

CRITICAL

Mission-critical feature. Displays all firearm values at exactly 50% of actual value. 'Honey, this $2,000 rifle was only $1,000!' No app lock required. Plausible deniability built-in.

SECURITY LEVELS

Choose the security level that fits your needs. From no protection to full encryption, ArmoryHub adapts to your threat model.

πŸ”“

NO SECURITY

App remains unlocked. Data syncs unencrypted to iCloud (if enabled). Suitable for low-risk environments where convenience is priority.

  • βœ“No PIN or biometric required
  • βœ“Instant access to all data
  • βœ“Data syncs unencrypted (if iCloud enabled)
  • βœ“Fastest user experience
πŸ‘€

BIOMETRIC ONLY

Face ID or Touch ID required to unlock app. No encryptionβ€”data remains readable in database and iCloud (if enabled). Prevents casual access to your device.

  • βœ“Face ID / Touch ID authentication
  • βœ“No data encryption
  • βœ“Quick unlock with biometrics
  • βœ“Data syncs unencrypted (if iCloud enabled)
πŸ”‘

PIN ONLY (NO ENCRYPTION)

6-digit PIN locks the app UI. Data remains in plaintext on device and in iCloud (if enabled). Protects against casual access but not forensic analysis.

  • βœ“6-digit PIN authentication
  • βœ“App UI locked (data not encrypted)
  • βœ“Quick unlock after PIN entry
  • βœ“No data loss if PIN forgotten (can reinstall app)
πŸ”

PIN + DATA ENCRYPTION

6-digit PIN required AND data encryption enabled. 256-bit master key generated and encrypted with PIN. All sensitive fields encrypted with AES-256-GCM. Database and iCloud backups (if enabled) contain encrypted blobs only.

  • βœ“6-digit PIN authentication
  • βœ“Master key generated on encryption enable
  • βœ“Full AES-256-GCM field encryption
  • βœ“310,000 PBKDF2 iterations
  • βœ“Data unreadable without PIN + master key
πŸ”’

BIOMETRICS + PIN WITH ENCRYPTION

Two-factor authentication. Face ID/Touch ID unlocks access to PIN entry page. Both required for access. Full encryption enabled. Maximum security with convenience.

  • βœ“Two-factor authentication
  • βœ“Biometrics unlock PIN entry page
  • βœ“Full AES-256-GCM encryption
  • βœ“Both factors required for access
πŸ›‘οΈ

OFFLINE + BIOMETRICS + PIN WITH ENCRYPTION

Maximum security. Biometrics + PIN with encryption enabled. iCloud sync completely disabled. Data never leaves your device. For highest threat models.

  • βœ“Two-factor authentication
  • βœ“Full AES-256-GCM encryption
  • βœ“iCloud sync disabled
  • βœ“Data stays on device only
  • βœ“Maximum security posture

TECHNICAL IMPLEMENTATION

1

PIN Setup (Authentication Layer)

When you set up your PIN, a cryptographically secure random salt (32 bytes) is generated using SecRandomCopyBytes. Your PIN is hashed using PBKDF2-SHA256 (310,000 iterations) and stored in iOS Keychainβ€”never in plaintext. NO master key is generated yet.

SecRandomCopyBytes(kSecRandomDefault, 32, &salt)
2

Enable Encryption (Key Generation)

When you enable encryption, a new 256-bit master key is generated using SymmetricKey(size: .bits256). This key is then encrypted with a PIN-derived key (PBKDF2, 310,000 iterations) and stored in iOS Keychain with device-only protection. The encrypted master key never leaves your device.

SymmetricKey(size: .bits256) β†’ Encrypt with PIN β†’ Keychain
3

Keychain Storage (Hardware Protected)

All cryptographic material (PIN hash, salts, encrypted master key) is stored in iOS Keychain with kSecAttrAccessibleWhenUnlockedThisDeviceOnly and kSecAttrSynchronizable=false. Hardware-backed by Secure Enclave. Keys never sync to iCloud Keychain.

kSecAttrAccessibleWhenUnlockedThisDeviceOnly
4

Field Encryption (AES-256-GCM)

Each data field is encrypted using AES-256 in Galois/Counter Mode with automatic nonce generation. GCM provides authenticated encryption preventing tampering. Encrypted data is stored as Base64 in Core Data.

AES.GCM.seal(data, using: masterKey)
5

State Machine & Race Prevention

When the app backgrounds, a state machine prevents race conditions by ensuring only one encryption/decryption operation runs at a time. Data is encrypted atomically with rollback on failure. Master key is cleared from memory after encryption completes.

stateManager.requestTransition(.encrypting)

WHAT GETS ENCRYPTED

πŸ”’Firearms

  • β€’Manufacturer
  • β€’Model
  • β€’Serial Number
  • β€’Caliber
  • β€’Type
  • β€’Action
  • β€’Location
  • β€’Notes

πŸ”’Ammunition

  • β€’Manufacturer
  • β€’Brand
  • β€’Caliber
  • β€’Bullet Type
  • β€’Lot Number
  • β€’Location
  • β€’Notes

πŸ”’NFA Items

  • β€’Manufacturer
  • β€’Model
  • β€’Serial Number
  • β€’Type
  • β€’Tax Stamp Number
  • β€’Form Type
  • β€’Trust Name
  • β€’Notes

πŸ”’Accessories

  • β€’Name
  • β€’Manufacturer
  • β€’Model
  • β€’Serial Number
  • β€’Type
  • β€’Caliber
  • β€’Location
  • β€’Notes

πŸ”’Maintenance Records

  • β€’Work Performed
  • β€’Parts Used
  • β€’Gunsmith Info
  • β€’Notes

πŸ”’DOPE Data

  • β€’Ammunition Used
  • β€’Optic Used
  • β€’Notes

Documents & Photos

Document files and photos are encrypted as binary data, rendering them completely unreadable without your encryption key. File names, titles, and metadata text fields are also encrypted.

Encryption Rule

All text/string fields are encrypted when Data Encryption is enabled (separate from PIN). PIN alone provides app lock only. Dates and numeric values (like prices, quantities, and counts) are not encrypted due to Core Data type constraintsβ€”encrypting them would require converting to string types.

THREAT PROTECTION

Device Theft

MAXIMUM

Without your PIN, encrypted data is computationally impossible to decrypt. Attacker would need to try 1 million PIN combinations Γ— 310,000 PBKDF2 iterations per attempt = billions of years on modern hardware.

Device Seizure

HIGH

Without your PIN, encrypted data is mathematically secure. The encryption key is derived from your PIN using 310,000 PBKDF2 iterations, making brute-force attacks computationally infeasible.

iCloud Breach

MAXIMUM

If Apple's iCloud (if enabled) is compromised, your encryption keys never sync to the cloud. Attackers would only see encrypted data blobs without the keys to decrypt them.

Malware / Jailbreak

MEDIUM

Keychain data is hardware-protected by Secure Enclave. Even with root access, extraction is extremely difficult. Master key is only in memory when app is unlocked.

Forensic Analysis

MAXIMUM

Encrypted data stored in Core Data. Without PIN, forensic tools cannot decrypt. Properly implemented AES-256-GCM is approved for TOP SECRET data by NSA.

⚠️

CRITICAL: ENCRYPTION + iCLOUD SYNC

πŸ”“ While App Is Open:

When encryption is enabled and the app is unlocked, data is decrypted in memory for app use. This decrypted data continuously syncs to iCloud (if enabled) in plaintext while you're actively using the app.

πŸ”’ After Backgrounding:

When you close/background the app, all sensitive data is automatically re-encrypted. The encrypted data then syncs to iCloud (if enabled), replacing the plaintext version. Without your encryption key, this data is useless.

πŸ”‘ Encryption Keys Are NOT in iCloud:

Your encryption keys are never stored in iCloud. They stay in your device's Keychain only. If you lose your device with encryption enabled, your encrypted data cannot be recovered from iCloud (if enabled).

πŸ“± Multiple Devices + Encryption:

If encryption is enabled with iCloud sync, additional devices must transfer encryption keys using in-app generated QR codes. Keys are never stored in iCloud or transmitted over the internet. QR code transfer is completely offline between your devices.

⚠️ LOSE YOUR DEVICE + ENCRYPTION KEY = PERMANENT DATA LOSS ⚠️

Keep backup devices with encryption keys synced via QR code, or disable iCloud sync for maximum security

BANK-LEVEL SECURITY FOR YOUR COLLECTION

The same encryption technology that protects your banking app now protects your firearms data.

Download on theApp Store