SuperAPI AI 工具集

swift-security

安全与审计

查看项目

更新于 10-15 21:12

技能介绍

用途:用于 iOS/macOS 客户端安全开发,包括 Keychain Services(SecItem 查询、kSecClass、OSStatus 错误)、生物识别认证(LAContext、Face ID、Touch ID)、访问控制、受生物识别保护的密钥、CryptoKit、Secure Enclave 密钥、凭据存储、证书信任、钥匙串共享、旧密钥迁移、安全测试与 OWASP 移动合规映射。

主要能力:按任务分类后仅加载所需参考文件,避免默认加载全部内容。支持三类工作流:审查现有代码(运行检查清单并加载 common-anti-patterns.md 与对应领域参考,报告严重级别、证据与修正模式);改进或迁移代码(识别迁移类型、保留数据、验证新项后再移除旧存储);实现新安全代码(加载最小领域参考、使用正确模式、包含 OSStatus 处理与测试)。

使用方式:参考文件按主题拆分,如 keychain-fundamentals.md、keychain-item-classes.md、keychain-access-control.md、biometric-authentication.md、secure-enclave.md、cryptokit-symmetric.md、cryptokit-public-key.md、credential-storage-patterns.md、keychain-sharing.md、certificate-trust.md、migration-legacy-stores.md、testing-security-code.md、compliance-owasp-mapping.md。未知部署目标时默认 iOS 17+ 与 Swift 并发示例;用户要求旧目标时保留 iOS 13+ 兼容说明;iOS 26 的 CryptoKit 后量子 API 视为受可用性限制。

安全不变量:不得将令牌、密码、API 密钥、签名密钥或刷新令牌存入 UserDefaults、Info.plist、.xcconfig、源码、日志、文件或 NSCoding 归档;不得忽略 OSStatus;不得仅以 LAContext.evaluatePolicy() 作为密钥唯一门禁;添加钥匙串项时必须显式设置 kSecAttrAccessible 或 kSecAttrAccessControl;持久写入使用 add-or-update;SecItem 工作应移出主 actor;macOS AppKit 目标默认使用 kSecUseDataProtectionKeychain: true;不得复用 AES-GCM nonce;不得将原始 ECDH 共享密钥字节用作对称密钥;不得将 Insecure.MD5 或 Insecure.SHA1 用于安全目的。

适用场景与限制:适用于客户端存储、密码学原语、硬件支持密钥与信任评估。账户登录、passkeys、OAuth UI、DeviceCheck/App Attest、URLSession/ATS、隐私清单与 App Review 等应交给相邻技能。输出安全发现时标注严重级别(CRITICAL/HIGH/MEDIUM),实现审查需给出错误与修正代码示例,推荐版本化 API 时注明最低 iOS/macOS 可用性,并引用支撑的参考文件;不得编造 WWDC 编号或来源,未在参考或 Apple 官方文档中的说法需标注待验证。