安全なソフトウェアアップデート
セキュリティはプロセスです。工場出荷時にインストールされているオペレーティングシステムのバージョンを確実にブートするだけでは不十分です。最新のセキュリティアップデートを迅速かつ安全に取得するためのメカニズムも存在する必要があります。Appleは、新たなセキュリティ上の懸念に対処するために、定期的にソフトウェアアップデートをリリースしています。iPhoneおよびiPadデバイスのユーザは、アップデートの通知をデバイスで受け取ります。Macユーザは、「システム設定」(macOS 13以降)または「システム環境設定」(macOS 12以前)で、利用できるアップデートを確認できます。最新のセキュリティ修正を迅速に導入できるように、アップデートはワイヤレスで配信されます。
アップデートプロセスのセキュリティ
アップデートプロセスでは、セキュアブートで使用されるのと同じハードウェアベースの信頼ルートを使用し、Appleが署名したコードのみをインストールするように設計されています。また、アップデートプロセスでは、システムソフトウェア認証を使用して、Appleが能動的に署名したバージョンのオペレーティングシステムのコピーのみが、iPhoneおよびiPadデバイス、または起動セキュリティユーティリティでセキュアブートポリシーとして「完全なセキュリティ」が設定されているMacコンピュータにインストール可能であることも確認されます。これらの安全なプロセスを適切に使用することで、Appleは既知の脆弱性を持つ古いバージョンのオペレーティングシステムへの署名を停止でき、ダウングレード攻撃を防ぐことができます。
ソフトウェアアップデートのセキュリティを強化するため、アップグレードするデバイスが物理的にMacに接続されているときは、iOSまたはiPadOSの完全なコピーがダウンロードされインストールされます。ただし、ワイヤレス(OTA)でソフトウェアアップデートする場合は、アップデートの完了に必要なコンポーネントのみがダウンロードされるため、オペレーティングシステム全体のダウンロードの回避によりネットワーク効率が向上します。さらに、macOS 10.13以降を搭載しコンテンツキャッシュを有効にしているMacにソフトウェアアップデートをキャッシュすれば、iPhoneおよびiPadデバイスで必要なアップデートをインターネット経由で再ダウンロードする必要がなくなります。(その場合でも、アップデートプロセスを完了するために、デバイスからAppleのサーバに接続する必要はあります。)
パーソナライズされたアップデートプロセス
アップグレードおよびアップデート中に、Appleインストール認証サーバで利用可能になる情報があります。インストールしようとしているインストールバンドルの各部分(例えば、iBoot、カーネル、オペレーティングシステムイメージ)の暗号測定値のリスト、ランダムなアンチリプレイ値、デバイス固有のExclusive Chip Identification(ECID)などです。
認証サーバは、提示された暗号計算値リストとインストールが許可されているバージョンを照合し、一致が確認された場合は、ECIDを計算値に追加して結果に署名します。署名されたデータ一式は、アップグレードプロセスの一部としてサーバからデバイスに送信されます。ECIDを追加することで、リクエストしたデバイスの認証を「パーソナライズ」することができます。既知の計算値に対してのみ認証および署名することで、サーバはAppleからの指示通りの正確なアップデートの実行を保証します。
起動時に信頼チェーンで評価することで、署名がAppleのものであるかどうか、さらに、ストレージデバイスから読み込んだ項目の計算値とデバイスのECIDの組み合わせが署名されたものと一致するかが検証されます。これは、パーソナライズをサポートするデバイスで認証が特定のデバイスに対するものであることと、あるデバイスの古いバージョンのオペレーティングシステムまたはファームウェアを別のデバイスにコピーできないことを保証するための手順です。また、アンチリプレイ値が使用されるため、攻撃者がサーバの応答を保存し、それを使ってデバイスを不正に解析したり、システムソフトウェアを改ざんしたりすることもできません。
Appleが設計したシリコン(セキュリティチップおよびIntelプロセッサ搭載Macなど)で、デバイスをアップデートするために常にAppleへのネットワーク接続が必要となるのは、パーソナライズプロセスを実行するためです。
Secure Enclaveを備えたデバイスでは、そのハードウェアで同様にシステムソフトウェア認証が使用されます。これはソフトウェアの整合性を確認する機能であり、ダウングレード目的のインストールを防止するように設計されています。