SuperAPI AI 工具集

swift-security

安全与审计

查看项目

更新于 10-16 05:47

技能介绍

用途:用于 Apple 平台客户端安全开发与代码评审,涵盖 Keychain Services、访问控制、生物识别门控密钥、CryptoKit、Secure Enclave 密钥、凭据存储、证书信任、Keychain 共享、旧密钥迁移、安全测试与 OWASP 移动合规映射。未知部署目标时默认使用 iOS 17+ 与 Swift 并发示例;用户要求旧目标时保留 iOS 13+ 兼容说明;iOS 26 的 CryptoKit 后量子 API 需做可用性判断。

主要能力与用法:技能先对请求分类再按需加载参考文件,避免默认加载全部文件。评审已有代码时运行 Review Checklist,再加载 common-anti-patterns.md 及每个失败领域的参考;改进或迁移代码时先确认迁移类型,加载迁移与目标领域参考,保留原数据并在验证新项成功后才删除旧存储;实现新安全代码时加载最小领域参考,使用给定正确模式,包含 OSStatus 处理与测试。参考文件按主题划分,如 keychain-fundamentals.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 等。

关键约束:禁止把令牌、密码、API 密钥、签名密钥或刷新令牌存入 UserDefaults、Info.plist、.xcconfig、源码、日志、文件或 NSCoding 归档;不得忽略 OSStatus,必须处理 errSecDuplicateItem、errSecItemNotFound、errSecInteractionNotAllowed 等;不得仅用 LAContext.evaluatePolicy() 作为密钥唯一门控,应通过 SecAccessControl 绑定 Keychain 项;添加项必须显式设置 kSecAttrAccessible 或 kSecAttrAccessControl;持久写入使用 add-or-update 而非先删后加;SecItem 操作应移出主线程;macOS AppKit 目标默认使用 kSecUseDataProtectionKeychain: true;禁止 AES-GCM nonce 复用、直接使用原始 ECDH 共享密钥、使用 MD5/SHA1。

适用与边界:适用于客户端存储、加密原语、硬件-backed 密钥与信任评估。Sign in with Apple、passkeys、OAuth UI、账户登录应交给 authentication 技能;纯 CryptoKit API 语法交给 cryptokit;DeviceCheck/App Attest 交给 device-integrity;URLSession、ATS 等交给 ios-networking;隐私清单与 App Review 交给 app-store-review。

限制:资料未提供具体收费、价格、平台支持范围、效果数据或实施步骤之外的信息;未提供的部分暂未提供。