安全性变更

阅读关于所有 Apple 平台的重要安全性变更。

让您的组织为 iOS 12macOS Mojave 做好准备

如果您是系统管理员,请查看以下文章中的列表,为使用 iOS 12 和 macOS Mojave 做好准备。

对 SHA-1 证书的支持已终止

2017 年,Apple 操作系统的一项安全更新移除了对 SHA-1 签名证书的支持;这类证书在 Safari 浏览器和 WebKit 中曾用于确保传输层安全性 (TLS)。请务必使用 SHA-256 签名证书。

建立安全连接

借助 Apple 平台上的一系列 API,您的 app 可以使用安全的网络连接,并从 OS 级别的安全政策中受益。

App 传输安全 (ATS)

ATS 采用传输层安全性 (TLS) 1.2 版、正向保密和强大的加密技术,确立了关于使用 Apple 平台进行安全网络通信的最佳做法政策。

安全传输 API

使用 Apple 的安全传输 API,可以采用当前版本的安全套接字层 (SSL)、传输层安全性 (TLS) 和数据报传输层安全性 (DTLS) 加密协议来进行网络通信。

支持的算法

从 iOS 10 和 macOS v10.12 开始,RC4 密码套件默认处于停用状态。此外,Apple 建议您的服务器使用经过 SHA-2 加密函数签名的证书。

证书透明和证书信任 API

仅对网络连接采用强大的加密技术还远远不够。为帮助确保您的 app 连接到正确的服务器,您应该使用 Apple 的证书信任 API 以及证书透明。

保护用户数据

Apple 平台提供了多种功能来保护用户数据。

用途字符串

借助用途字符串,您可以静态地声明 app 所使用的敏感数据和资源。

复制和粘贴敏感数据

在 iOS 中复制和粘贴敏感数据时,可以利用相关的隐私选项。

钥匙串和 iCloud 钥匙串

钥匙串和 iCloud 钥匙串提供了一个安全的存储库,用于存放证书、密钥、密码和备忘录等敏感的用户数据。

安全地执行代码

Apple 平台通过安全地执行代码,为用户提供保护。作为 Apple 的集成开发环境 (IDE),Xcode 直接为 iOS、watchOS 和 tvOS app 以及通过 Mac App Store 分发的 macOS app 提供代码签名。

使用 Developer ID 为您的 App 签名

Developer ID 和“门禁”功能支持在 Mac App Store 之外分发 app。

为您的 App 进行公证

如果要在 Mac App Store 之外分发 Mac app,请为 app 签名并上传您的 app 让 Apple 进行公证,以证明您的 app 为正版并通过了安全检查。

加密接口

Apple 平台提供了一整套低级别 API,供您在自己的 app 内开发加密解决方案。

非对称密钥的 SecKey API

SecKey 在各个 Apple 平台上提供了统一的非对称密钥 API。

支持智能卡的 CryptoTokenKit

CryptoTokenKit 框架为用户提供一流的访问权限,让他们可以轻松地在 macOS 中使用智能卡和其他加密设备。

Common Crypto 库

Common Crypto 库支持对称加密、基于哈希值的信息身份验证代码以及信息摘要。

安全基础知识和资源

以下资源提供了 Apple 平台上安全性的相关背景、支持和教程信息。

corecrypto

Security 框架和 Common Crypto 都依赖 corecrypto 库来实施低级别加密基元。此外,这个库也经过验证,符合美国联邦信息处理标准 (FIPS) 140-2 第 1 级中的规定。虽然 corecrypto 并不直接为开发者提供编程接口,也不应该用于 iOS 或 macOS app,但是您可以使用 corecrypto 源代码来验证 app 的安全特性以及它能否正确运行。