セキュリティ
Appleのデバイス、プラットフォーム、サービスでは、世界最高水準のセキュリティとプライバシーが提供されています。デベロッパにも、Appの開発に活用できるパワフルなAPIが用意されています。
セキュリティの変更
iOS 13またはmacOS Catalinaの導入準備をする
システム管理者は、iOS 13およびmacOS Catalinaを導入するにあたり、以下のドキュメントをご確認ください。
- iOS 13およびmacOS 10.15における信頼済み証明書の要件
- iOS 13およびmacOS CatalinaのVPNの強化点
- macOS Catalinaでのスマートカードの変更に備える
- macOS Catalina 10.15でsystemsetupコマンドラインユーティリティを使う
SHA-1証明書のサポート終了
2017年のAppleオペレーティングシステムのセキュリティアップデートに伴い、SafariおよびWebKitのTransport Layer Security(TLS)で使用されていた、SHA-1で署名された証明書のサポートは終了しました。今後は、SHA-256で署名された証明書を使用してください。
セキュアな接続を確立する
Appleプラットフォームの様々なAPIを採用することで、Appでセキュアなネットワーク接続を確立し、OSレベルのセキュリティポリシーの恩恵を受けることができます。
App Transport Security(ATS)
ATSは、Transport Layer Security(TLS)バージョン1.2、前方秘匿性、強力な暗号化を採用することで、Appleプラットフォームを使用したセキュアなネットワークコミュニケーションのベストプラクティスポリシーを確立します。
Secure Transport API
AppleのSecure Transport APIを使用し、ネットワークコミュニケーション向けの最新のSecure Sockets Layer(SSL)、Transport Layer Security(TLS)、Datagram Transport Layer Security(DTLS)暗号プロトコルを採用しましょう。
サポートされるアルゴリズム
iOS 10およびmacOS v10.12以降、RC4暗号スイートはデフォルトで無効となっています。加えて、Appleでは、SHA-2暗号処理関数で署名された証明書をサーバに使用することを推奨しています。
DeviceCheckおよびApp Attest API
デバイスの状態を管理し、Appの健全性を確保することにより、iOS Appをセキュリティの脅威から保護し、サービスの不正使用を低減しましょう。DeviceCheckサービスでは、Appの全般的な不正対策や特定のデバイスのリスク評価に組み込める情報を提供しています。DeviceCheckサービスを使用すると、ユーザーのプライバシーを保護しつつ、サーバ上のトークンによってデバイスごとに2ビットのデータを設定し、クエリを実行できます。例えば、不正使用が発覚したデバイスにフラグをつけるために活用できます。また、App Attestを使用すると、iOS 14以降を搭載したデバイスで特別な暗号鍵を生成できます。その暗号鍵を使用して、サーバが機密データへのアクセスを許可する前に、Appの健全性を検証することができます。
証明書の透明性および証明書トラストAPI
ネットワーク接続に強力な暗号化を施すだけでは不十分です。Appが正しいサーバに確実に接続するようにするため、Appleの証明書トラストAPIを採用し、証明書の透明性を確保しましょう。
ユーザーデータを保護する
Appleプラットフォームでは、ユーザーデータを保護するための様々な機能が用意されています。
目的文字列
目的文字列により、Appが利用する機密データやリソースを静的に宣言することができます。
機密データのコピー&ペースト
iOS上で機密情報をコピー&ペーストする際もプライバシーを保護できます。
キーチェーンおよびiCloudキーチェーン
キーチェーンおよびiCloudキーチェーンは、証明書、キー、パスワード、メモなど、ユーザーの機密データを安全に保存できるリポジトリです。
AppのSandbox化
Appの権限を意図した機能に限定することで、有害なソフトウェアによるシステム侵害をより一層困難にし、Macのシステムとユーザーを保護します。
コードを安全に実行する
Appleプラットフォームは、コードを安全に実行しユーザーを保護します。Appleの統合開発環境(IDE)であるXcodeでは、iOS、watchOS、tvOS Appや、Mac App Storeで配布するmacOS Appに直接コード署名することができます。
Developer IDでAppに署名する
macOSのGatekeeperは、Developer ID証明書を確認することにより、Mac App Store以外で配布された有害なソフトウェアのダウンロードやインストールを制限してユーザーを保護します。
Appの公証
Mac App Store以外の場所でMac Appを配布する場合は、正規のAppであることを証明し、セキュリティチェックを実行するため、Appを署名の上、アップロードし、Appleに提出して公証を受けます。
暗号インターフェイス
Appleプラットフォームでは、App内で暗号ソリューションを構築するための、包括的なローレベルAPIセットを提供しています。
Apple CryptoKit
Appでの暗号化操作を、安全かつ効率的に実行しましょう。
Common Cryptoライブラリ
Common Cryptoライブラリは、対称暗号化、HMAC(Hash-based Message Authentication Codes)、ダイジェストをサポートします。
スマートカードに対応するためのCryptoTokenKit
CryptoTokenKitフレームワークは、スマートカードやその他の暗号デバイスをmacOSで利用するための優れた環境を提供します。
セキュリティに関する基本情報やリソース
以下のリソースでは、Appleプラットフォームのセキュリティに関する背景、サポート、チュートリアル情報をご確認いただけます。
corecrypto
SecurityフレームワークおよびCommon Cryptoは、ローレベルの暗号プリミティブの実装を提供する上で、corecryptoライブラリに依存しています。このライブラリは、米国連邦情報処理規格(FIPS)140-2レベル1への準拠認定の際に提出されたものでもあります。corecryptoは、デベロッパ向けのプログラミングインターフェイスを直接提供しておらず、iOSやmacOSのAppで使用するべきものではありませんが、Appのセキュリティ特性を確認したり、Appが正しく機能することを確認したりするため、ソースコードを公開しています。