少し前に、macOS Catalina のすべてのアプリに必要な要件である公証人についてお話しました。基本的に Apple は、すべてのアプリに自社作成の「シール」を付けることを要求します。これは、自動テストに合格した後のアプリのバージョンを証明します。これは数時間かかる非常に単純なプロセスですが、 GateKeeper がアプリが Apple によって検証されたことを証明するために必要です。 この記事で詳しく説明します。

当時、macOS Catalina 上で実行されるすべてのアプリは、その起動時から公証を受ける必要があり、公証されていない場合は、セキュリティ エラーが発生し、ユーザーが自己責任で実行するよう強制されるという条件が定められていました。実行中に CTRL キーを押します。実行しようとしているものが公証されていないライブラリである場合でも、アプリ内ではこの条件も必要でした。ベータ版では、これにより、Firefox が Catalina のセキュリティ エラーを報告したり、Chrome が Flash 実行パッケージ (アプリ自体の外部) が署名されていないと報告し、その実行が拒否されたりするなど、いくつかの問題が発生しました。

Macosmojaveプライバシー 800x508

すべてのアプリとそのバージョンは、有料の開発者プログラム アカウント (必須) で生成される Apple ID Developer で公証される必要があるという事実の根底にある複雑さにより、Apple はその要件を若干遅らせ、アプリに次のことを許可しました。来年 2020 年の 1 月まで適応されます

実際、デスクトップ オペレーティング システムの複雑さを考慮すると、システムへのより「深い」アクセスを必要とする特定のアプリは認証を取得できないため、Apple は公証人を取得するための要件を下げる必要もありました。

公証人の要求のレベルでは、システムに対して動作するエンジンを搭載した Firefox や Chrome 自体の Web ブラウザ、または Flash や Java などの仮想マシンが公証を受ける条件を取得することは不可能でした。多くの開発 IDE も同様です。

このため、Apple はすべてのアプリを公証できるように次の例外を含める必要がありました。

  • システム整合性保護システムまたは SIP を補完し、カーネルへのアクセス、コード インジェクション、その他の攻撃の試みを防止するHardened Garden機能を有効にしていないアプリ。
  • アプリ内で開発者 ID で署名されていないライブラリを使用するアプリ。
  • アプリ署名内に安全なタイムスタンプが含まれていないアプリ。
  • 古いバージョンの SDK でコンパイルされたアプリ。
  • 資格com.apple.security.get-task-allowを true に設定したアプリは、アプリ自体の外部の他のプロセスがアプリにリンクできるようになります。たとえば、コード デバッガーのようなものです。

すでに時々述べてきたように、デスクトップ オペレーティング システムはより複雑な世界であり、より高い汎用性を実現する必要があります。 iOS では、デフォルトでガーデン (強化されたガーデン) を閉じることができ、自分以外の仮想マシンの使用を禁止することもできます (ブラウザーの場合のように、システムの WebKit エンジンを使用する必要があります)。しかし、デスクトップ システムではこれは意味がありません。(プロフェッショナル ツールとして意味をなすためには) より大きな許容度を常に許可する必要があります。特に私たちが開発者として働いている場合はそうです。

Apple は明らかに、Mac 上のアプリ開発とアプリの現実に適応する必要があり、ユーザーのセキュリティ保証を可能な限り維持するために、要件を緩和する以外に選択肢はありません。

ここをクリックすると、開発者向けのプレス リリースを参照できます。

Apple、macOS Catalina アプリの公証人要件を 2020 年 1 月まで延期・関連動画