インストール時に出るセキュリティの警告について - sunfish-shogi/electron-shogi GitHub Wiki
はじめに
アプリをインストールする時にセキュリティに関する警告が表示される場合があります。 おそらく ShogiHome の場合は必ず表示されると思います。 それがどういう意味なのかと、理解した上でインストールするにはどうすれば良いかを説明します。
なぜインストール時にセキュリティの警告が表示されるのか
警告画面の例
OS の種類やバージョンによって表示の内容は異なりますが、インストール時に概ね以下のような警告画面が表示されます。
Windows の例
macOS の例
ShogiHome に限らず、アプリストアを通さずにダウンロードしたアプリをインストールする場合に出ることがあります。 しかし、企業が提供しているようなアプリで表示されることはほとんど無いでしょう。 なぜこのような表示がでるのか、主な理由を次の項目で説明します。
コードサイニングについて
警告が出る条件はいくつかあり OS ごとの細かい仕様まではわかりませんが、コードサイニングが行われていないアプリには必ず出ます。
コードサイニングとは、電子署名を埋め込んで正規の開発者が提供したデータであることを証明する仕組みです。
開発者は事前に認証機関から証明書を取得し、配布するアプリのデータに電子署名を付与します。 アプリをダウンロードしたユーザーの端末では、電子署名を使って改ざんが無いかを検査し、そして有効な証明書であることを確認します。
Web サイトを開いた時に https ではなかったり期限切れの証明書が使われていると警告が出ますが、仕組みはそれと似ています。 しかし、無料でも入手できる Web サイトの証明書とは違って、コードサイニング証明書の取得には年間数万円程度の高額な費用が必要です。 また、実際に審査を受けたことは無いので詳しくはわかりませんが、個人では審査が通りにくいという話も聞きます。
安価に署名を付与するには、アプリストアに出すのが妥当な方法です。 しかし、何の報酬もなく手間をかけてアプリストアへリリースし、身勝手なコメントや評価をつけられることは納得できません。 アプリストアに出してしまえば、ストアの様々な制約を受ける上に、ユーザーは利用条件もよく読まずに他の商業目的のアプリと同じ認識で使うでしょう。
また、コードサイニングはセキュリティを向上させるための手段の一つであり、コードサイニングだけであらゆるリスクが消滅する訳ではありません。
本来、 ShogiHome はソースコードから自分でビルドすることが可能です。 インストーラーを配布するのは多くの人が同じ作業に手間をかけることを回避できるよう、開発者が善意で作業の負担をしているのです。 従って、それを利用する際は、正しい理解を持って自身の責任で利用しなければなりません。
将棋エンジンについて
開発者にとって、コードサイニングやアプリストアへのリリースをする気が起きない理由の一つに、USIプロトコルを介して連携する将棋エンジンの存在があります。
多くの利用者は GUI のアプリだけでなく、他の開発者が作成した将棋エンジンもダウンロードします。 その将棋エンジンは GUI を介して起動しますが、警告が出るのは GUI だけで将棋エンジンに対しては表示されません。 主要な将棋エンジンにはコードサイニングがされていませんが、 GUI を介して起動することで警告を出さずに済んでいます。
アプリストアを介さずにソフトウェアをダウンロードして GUI に登録するなどという操作を、他の分野で知識のないユーザーがすることはまずありません。 これは、将棋 AI がビジネスとして十分に成立せず、有志が作ったソフトウェアをダウンロードして使うことが定常化してしまったのが原因です。 USI のエンジンを使う以上、通常行われるセキュリティチェックの一部を無視するのだということを、利用者は理解してから使わなければなりません。
警告の内容を理解し、自身の責任でインストールする場合
上述の内容の全てを十分に理解し、納得して自己責任で利用する場合に限り、 以下の手順で警告画面を通過してインストールをすることが可能です。
Windows の場合
警告画面が出たら「詳細」をクリックします。
警告の詳細説明とともに「実行」ボタンが表示されるのでボタンを押します。
macOS の場合
参考: 開発元が不明なMacアプリを開く (Apple 公式)
警告画面を閉じます。 macOS のバージョンによって「完了」や「キャンセル」など表示が異なります。
Sonoma の例:
Sequoia の例:
macOS の「システム設定」を開き、「プライバシーとセキュリティ」を選択します。
下の方へスクロールして「"ShogiHome" がブロックされました。」という表示を探し、「このまま開く」を押します。
確認画面が出たら更に「このまま開く」を押します。
その後、認証を求められるのでパスワードや指紋で認証をするとアプリが起動します。