Agent Skills: iOS Security

Secure iOS apps with Keychain, biometrics, and data protection. Use when implementing Keychain storage, Face ID/Touch ID, or data protection in iOS. (triggers: **/*.swift, SecItemAdd, kSecClassGenericPassword, LAContext, LocalAuthentication)

UncategorizedID: hoangnguyen0403/agent-skills-standard/ios-security

Install this agent skill to your local

pnpm dlx add-skill https://github.com/HoangNguyen0403/agent-skills-standard/tree/HEAD/skills/ios/ios-security

Skill Files

Browse the full folder contents for ios-security.

Download Skill

Loading file tree…

skills/ios/ios-security/SKILL.md

Skill Metadata

Name
ios-security
Description
"Secure iOS apps with Keychain, biometrics, and data protection. Use when implementing Keychain storage, Face ID/Touch ID, or data protection in iOS. (triggers: **/*.swift, SecItemAdd, kSecClassGenericPassword, LAContext, LocalAuthentication)"

iOS Security

Priority: P0 (CRITICAL)

Implementation Workflow

  1. Store secrets in Keychain — Use SecItemAdd, SecItemUpdate, and SecItemDelete with kSecClassGenericPassword for tokens/PII. Never use UserDefaults.
  2. Add biometric auth — Use LocalAuthentication with LAContext. Verify availability with canEvaluatePolicy before prompting.
  3. Encrypt files — Use Data.WritingOptions.completeFileProtection when saving to disk.
  4. Keep ATS enabled — Never disable App Transport Security globally in Info.plist.
  5. Pin certificates — Use ServerTrustManager or TrustKit for production apps to prevent MITM attacks.
  6. Strip sensitive logs — Ensure PII and tokens are removed from logs in Release builds.

See Keychain and biometrics implementation examples

Anti-Patterns

  • ❌ Secrets in UserDefaults — always use Keychain
  • ❌ Unhandled LAError — check for userCancel, authenticationFailed, etc.
  • ❌ PII/token logging in Release builds — strip sensitive data from all log output

References

Related Topics

  • common/security-standards
  • architecture