セキュリティ
Appleのデバイス、プラットフォーム、およびサービスは、世界最高水準のセキュリティとプライバシーをユーザーに提供しています。デベロッパにも、アプリの開発に活用できるパワフルなAPIが用意されています。
認証
Face IDとTouch ID
ロック解除、認証、および支払いを安全に行うこれらの機能により、ユーザーはスクリーンを一目見るか、指で触れるだけでアプリにすばやくアクセスできます。システムの他の部分から独立したハードウェアベースのセキュリティプロセッサであるSecure Enclaveが、ユーザーのデータを暗号化して保護します。
Apple Pay
Apple Payを使用すると、Face IDまたはTouch IDを使うか、Apple Watchをダブルクリックすることで、簡単かつ安全に支払いを行えます。ユーザーは、支払い、配送先、連絡先に関する情報を迅速に提示して決済を実行できます。Apple Payを利用する場合、クレジットカード/デビットカード番号の送受信はないため、機密性の高いユーザーデータを取り扱う必要はありません。
Appleでサインイン
ユーザーはApple Accountを使用してアプリやWebサイトに簡単にサインインできます。また、「Appleでサインイン」を利用してアカウントを設定できるため、アプリをすぐに利用できます。フォームに入力したり、メールアドレスを確認したり、新しいパスワードを作成する必要はありません。
強力なパスワードの自動設定
パスワードの自動入力により、iOSとiPadOSアプリ、Webサイトでのログインやアカウントの作成が簡単になります。数回タップするだけで、固有の強力なパスワードを作成したり、既存のアカウントにログインしたりできます。システムがすべて処理してくれるため、ユーザーがパスワードを覚えておく必要はありません。
パスキー
アカウント認証の業界標準規格をベースとしたパスキーにより、パスワードが暗号鍵のペアに変更され、より簡単に使用できるようになったのと同時に、安全性もさらに向上しました。パスキーに切り替えることで、各種プラットフォームでシンプルかつ安全にアプリやWebサイトにサインインでき、パスワードも必要なくなります。
セキュアな接続の確立
AppleプラットフォームのさまざまなAPIを採用することで、アプリでセキュアなネットワーク接続を確立し、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 10.12以降、RC4暗号スイートはデフォルトで無効となっています。加えて、Appleでは、SHA-2暗号処理関数で署名された証明書をサーバに使用することを推奨しています。
DeviceCheckおよびApp Attest API
デバイスの状態を管理し、アプリの健全性を確保して、iOS、iPadOS、tvOSのアプリをセキュリティの脅威から保護し、サービスの不正使用を防止しましょう。DeviceCheckサービスでは、アプリの全般的な不正対策や特定のデバイスのリスク評価に組み込める情報を提供しています。
DeviceCheckサービスを使用すると、ユーザーのプライバシーを保護しつつ、サーバ上のトークンによってデバイスごとに2ビットのデータを設定し、クエリを実行できます。たとえば、不正使用が疑われるデバイスにフラグをつけるために活用できます。また、App Attestを使用すると、iOS 14、iPadOS 14、tvOS 15以降を搭載したデバイスで特別な暗号鍵を生成できます。その暗号鍵を使用して、サーバが機密性の高いデータへのアクセスを許可する前に、アプリの健全性を検証することができます。
証明書トラストAPIと証明書の透明性
ネットワーク接続に強力な暗号化を施すだけでは不十分です。アプリが正しいサーバに確実に接続するよう、Appleの証明書トラストAPIと証明書の透明性 (CT)を採用しましょう。
ユーザーデータの保護
Appleプラットフォームでは、ユーザーデータを保護するためのさまざまな機能を提供しています。
目的文字列
目的文字列により、アプリが利用する機密性が高いデータやリソースについて静的な形で開示できます。
機密性の高いデータのコピー&ペースト
iPhoneやiPadのアプリで機密性の高いデータをユーザーがコピー&ペーストできるようにする場合に、プライバシーオプションを活用できます。
キーチェーンおよびiCloudキーチェーン
キーチェーンおよびiCloudキーチェーンは、証明書、キー、パスワード、メモなど、機密性の高いユーザーデータを安全に保存できるリポジトリです。
アプリのSandbox化
アプリの権限を意図した機能に限定することで、有害なソフトウェアによるシステム侵害をより一層困難にし、Macのシステムとユーザーを保護します。
コードの安全な実行
Appleプラットフォームは、コードを安全に実行しユーザーを保護します。Appleの統合開発環境(IDE)であるXcodeでは、App Storeで配信するiOS、iPadOS、macOS、tvOS、watchOSアプリに直接コード署名することができます。
Developer IDでのアプリへの署名
macOSのGatekeeperは、Developer ID証明書を確認することにより、Mac App Store以外で配信された有害なソフトウェアのダウンロードやインストールを制限して、ユーザーを保護します。
アプリの公証
Mac App Store以外の場所でMacアプリを配信する場合は、正規のアプリであることを証明し、セキュリティチェックを実行するため、アプリに署名した上、アップロードし、Appleに提出して公証を受けます。
暗号インターフェイス
Appleプラットフォームでは、アプリ内で暗号ソリューションを構築するための、包括的なローレベルAPIセットを提供しています。
Apple CryptoKit
アプリでの暗号化操作を、安全かつ効率的に実行します。
Common Cryptoライブラリ
Common Cryptoライブラリは、対称暗号化、HMAC (Hash-based Message Authentication Codes)、ダイジェストをサポートします。
非対称鍵のためのSecKey API
SecKeyは、Appleプラットフォーム全体で利用できる、統一された非対称鍵APIを提供します。
スマートカードに対応するためのCryptoTokenKit
CryptoTokenKitフレームワークは、スマートカードやその他の暗号デバイスをmacOSで利用するための優れた環境を提供します。
セキュリティに関する基本情報やリソース
以下のリソースで、Appleプラットフォームのセキュリティに関する背景情報とサポート情報を確認できます。
corecrypto
SecurityフレームワークおよびCommon Cryptoは、ローレベルの暗号プリミティブの実装を提供する上で、corecryptoライブラリに依存しています。このライブラリは、米国連邦情報処理規格(FIPS)140-2/-3への準拠認定の際に提出されたものでもあります。corecrypto認証に関する最新情報は、セキュリティ認証とコンプライアンスセンターをご覧ください。corecryptoは、デベロッパ向けのプログラミングインターフェイスを直接提供しておらず、iOS、iPadOS、macOSのアプリで使用するべきものではありませんが、アプリのセキュリティ特性を確認したり、アプリが正しく機能することを確認できるようにするため、ソースコードが公開されています。