ホーム テクノロジー Android 非公開: Android Nougat の厳密に強制された検証済みブートとは何ですか?

Android Nougat の厳密に強制された検証済みブートとは何ですか?

Android の発展を追ってきた人なら、ここ数年で「Verified Boot」という名前をよく聞いたことがあるはずです。 Google は、完全に非侵入的な方法でセキュリティ機能を Android 4.4 (Kitkat) に導入し、Android オペレーティング システムの新しいリリースでその認知度を徐々に高めています。

ここ数日間、世界で最も使用されているモバイル OS の Google の最新版に「厳密に強制検証されたブート」が存在するというニュースを目にしました。 Android Nougat は、デバイスの起動時に高レベルのセキュリティ チェックを使用します。 Marshmallow では、認証ブートはユーザーに警告を与えるだけでしたが、システム パーティションに何か問題が検出された場合に備えて、Android Nougat はさらに一歩進んで、Google が「厳密に強制された認証ブート」と呼ぶものを使用します。パーティション内の異常、ブートローダーへの変更、またはデバイス内の「悪意のある」コードの存在が検出された場合に備えて、デバイスの起動をまったく許可しません。 「これはユーザーにとって正確に何を意味するのでしょうか?」という疑問が生じますが、その答えは Android ユーザーの 2 つの主要なカテゴリ (カジュアル ユーザーとパワー ユーザー) によって異なることが判明しました。そして、両方のユーザーに対して答えを提供するつもりです。 。

厳密に強制された検証済みブート

まず、検証済みブートに関する背景を少し説明します。通常、Android がパーティションに対して検証テストを実行する場合、パーティションを 4KiB ブロックに分割し、署名付きテーブルと照合してチェックします。すべてがチェックアウトされた場合は、システムが完全にクリーンであることを意味します。ただし、一部のブロックが改ざんされたり破損したりした場合、Android はユーザーに問題について通知し、問題を解決するかどうかはユーザーに任せます。

Android Nougat と Strictly Enforced Verified Boot ですべてが変わろうとしています。ベリファイド ブートが強制モードで実行される場合、パーティション内の障害は許容されません。問題が検出された場合、デバイスの起動は許可されず、ユーザーがセーフ モード環境で起動して問題の解決を試みることができる場合があります。ただし、Strictly Enforced Verified Boot は、不正なデータ ブロックをチェックするだけではありません。通常、データ ブロック内のエラーも修正できます。これは、データ ブロック内のエラーを訂正するために使用できる前方誤り訂正符号の存在によって可能になります。ただし、これが常にうまくいくとは限りません。うまくいかない場合は、ほぼ水の中で死んでしまいます。

厳密に適用された検証済みブート: 良いもの、悪いもの、そして醜いもの

1.良いところ

Android デバイスで検証済みブートを強制すると、デバイスのセキュリティが強化されます。デバイスがマルウェアに感染した場合、次回デバイスを起動するときに厳密に強制検証されたブートがマルウェアを検出し、修復するか、場合によってはそれに対して何らかの対応を求めるプロンプトを表示します。

この機能はデータの破損もチェックし、ほとんどの場合、FEC コードのおかげでデータに導入されたエラーを修正できます。 Google は、 255 ビット内の 1 つの未知のビット エラーを訂正できる FEC コードを使用しています。確かに、これはかなり小さい数字のように思えますが、モバイル デバイスに関して大局的に考えてみましょう。

注:以下の値は、 Android Developersに関する Google エンジニアの Sami Tolvanen によるブログ投稿から引用されています。

Google は RS(255,223) FEC コードを使用することもできました。これらのコードは 255 ビットで 16 個の未知のビット エラーを修正できたはずですが、32 ビットの冗長データによるスペース オーバーヘッドはほぼ 15% でした。特にモバイルデバイスではそれが多くなります。それに加えて、4 ~ 8 GB のメモリを搭載した低価格スマートフォンでは Android が主流の OS であり、15% の追加スペースは確かに多すぎるように思えます。

スペースの節約を優先してエラー訂正機能を犠牲にすることで、Google は RS(255,253) FEC コードを使用することにしました。これらのコードは 255 ビットの未知のエラーを 1 つしか訂正できませんが、スペースのオーバーヘッドはわずか 0.8% です。

注: RS(255,N) は、誤り訂正符号の一種であるリードソロモン符号の表現です。

2.悪いところ

「コインには裏表がある」という話を聞いたことがありますか?もちろんそうでしょう。 Strictly Enforced Verified Boot に関する Google の意図は、赤ちゃんユニコーンのように純粋であることは間違いありませんが、独自の問題も伴います。

Strictly Enforced Verified Boot がマルウェアをチェックするとき、カーネル、ブートローダー、その他の要素に対する違法な変更もチェックします。これには退屈しませんが、これは、Android Nougat が root 化に関して多くの問題に遭遇する可能性があることを意味します。検証済みブートでは、不要なマルウェア コードとブートローダーのロックを解除したコードを区別できないため、カスタム ROM をフラッシュします。つまり、デバイスにロックされたブートローダーが付属しており、OEM がブートローダーのロック解除を許可していない場合、それはほとんど不可能です。誰かがこれを悪用できる方法を見つけてくれることを願っています。

ありがたいことに、デバイスをルート化し、追加機能のためにカスタム ROM をフラッシュするほとんどの人は、Nexus などの開発者向けの携帯電話を使用しています。このトピックに関しては考慮すべきことがたくさんありますが、少なくともロックされていないブートローダーが付属しているデバイス、またはブートローダーのロックを解除できるデバイスでは、これでカスタム ROM が終わるわけではありません。ただし、Samsung 携帯電話などのデバイスではブートローダーのロック解除が正式に許可されておらず、これらのデバイスではブートローダーのロック解除が検証済みブートによって「問題」とみなされ、デバイスが起動できなくなります。

Strictly Enforced Verified Boot で発生するもう 1 つの問題は、root 権限の取得やカスタム ROM のインストールをあまり気にしないユーザーにも影響を及ぼす問題です。デバイスを使用しているうちに、メモリ内に自然なデータ破損が必ず発生します。マルウェアの存在が原因ではなく、単にマルウェアが発生したためです。これは通常は問題ではありませんが、少なくとも検証済みブートが引き起こすほど深刻な問題ではありません。厳密に強制検証されたブートで起動時に修復できない破損したデータがある場合、デバイスは起動できません。私の意見では、これはユーザー パーティション上のデータ破損よりも大きく、目に見えやすい問題です。

3.醜い

検証済みブートを強制することの利点と潜在的なすべての問題の中で、おそらく最も懸念されるのは、OEM がこれを悪用してデバイスをロックし、人々が Android を本来の目的で使用できなくなる可能性があるという事実です。オープンで、開発者にとって使いやすく、完全にカスタマイズ可能であること。 Strictly Enforced Verified Boot は、ユーザーがデバイス上のブートローダーのロックを解除できないようにする権限を OEM の手に渡し、それによってカスタム ROM や Xused モジュールなどの機能拡張ツールのインストールを禁止します。

関連項目: Android N カスタム ROM は利用できませんか?解決策があります

Android Nougat: Android の動作方法に根本的な変化?

Google の意図は単に、デバイスがマルウェアの影響を受けた場合、またはメモリのデータ ブロックが破損した場合に何をすればよいのかわからないカジュアルな Android ユーザーに対する潜在的な問題を回避することだけだったと確信していますが、Google は OEM に手を渡した可能性があります。そしてメーカーは、ユーザーを、提供されたものだけで生活するように縛り付ける完璧なツールです。

もちろん、誰かがこの状況の悪用や回避策を見つけ出すでしょうし、私たちは Android の真の精神に基づいて、そうしてくれることを願っています。ただし、誰かが解決策を見つけ出すまで、ユーザーとして私たちにできることは、開発者に優しいメーカーからデバイスを購入することだけです。

注目の画像提供: Flickr

「 Android Nougat の厳密に強制された検証済みブートとは何ですか?」についてわかりやすく解説!絶対に観るべきベスト2動画

New features in Android Nougat
Android : New Android 7.0 Nougat