目次:
2016年8月13日に更新され、 Android Nougatの最終機能とAPIに関する情報が追加されました。
Android Nには多くのコード変更があります。新しい通知のように表示されるものもあれば、表示されないものもあります(それでも大きな問題です)。 すべての更新で同じことがわかります。 インターフェースには改良と変更がありますが、ボンネットの下でAndroidをより良く、より安全に実行できるように調整と変更が行われています。
GoogleはAndroid Nougatのセキュリティをいくつかの異なる領域で改善しました。 Android自体を強化するように設計されているものもあれば、開発者が使用するためのツールであるため、アプリをインストールしてもそのままになります。 変更自体を見てみましょう。
シームレスな更新
Googleは既にChrome OSで「シームレスな更新」を行っており、非常にうまく機能しています。 物事はAndroidでも非常に似ています。
シームレスな更新では、2つの個別のシステムパーティションが使用されます。 それらの1つは、毎日電話を使用するときに実行しているシステムです。 更新の時間になると、他のシステムパーティションが変更および更新され、次回再起動すると自動的に切り替えられます。 次回更新があるとき、他のシステムパーティションが変更され、元に戻ります。
:Android 7.0:シームレスな更新とは何ですか?
つまり、作業中または再生中に物事を行うことができ、終了したら通常どおり再起動するだけです。 びっくりするだろう(聞いたときはそうだった)が、かなりの人が電話を更新しないのは時間がかかるからだ。 彼らは一度やったら、そこに座って待っていて、二度とやらないことに決めたかもしれません。 通知は簡単に却下できます。 しかし、手順を変更し、更新を容易にし、「アプリの更新」ダイアログを見ながら恐ろしい待ち時間をなくすことで、より多くの人がそれを行います。
ネットワークセキュリティ設定
ネットワークセキュリティ構成により、アプリ開発者は、システムレベルの変更を要求する代わりに、ネットワークセキュリティ設定のカスタム構成ファイルを作成して使用できます。構成ファイルは、アプリ自体を変更せずに変更でき、デバイスの代わりにカスタム証明機関を使用するように設定できます。デフォルトであり、システムが信頼するCAの一部またはすべてを無視するように設定することもできます。 これは、自己署名CA(エンタープライズアプリなど)を持つホストに接続する場合、または特定のCAのみを信頼する必要があるアプリに接続する場合に重要です。
さらに、プレーンテキストネットワークトラフィックをオプトアウトし、HTTPSプロトコルを使用した暗号化通信を強制するように構成を設定できます。 あなたがネットワーク管理者であるか、ネットワークアプリを開発している場合、これらの変更の重要性を理解しています。 残りの人たちは、開発が簡単なアプリでより安全なネットワークトラフィックを使用できることに満足しています。
メディアサーバーの強化
Stagefrightを覚えていますか? メディアの大部分によって不均衡に吹き飛ばされたが、誇張の背後に隠された本当の問題があった。 メディアファイルを再生し、強制的に再起動するか、すべてのオーディオを失う機能を持つことは厄介な問題であり、(理論上)これが密かにルート権限を取得するために使用できるという事実はさらに恐ろしいです。 Googleはそれを 非常に 真剣 に 受け止めており、毎月メディアサーバーライブラリにパッチを適用して、それに伴うバグやセキュリティ上の懸念を先取りしようとしています。
Android Nでは、メディアサーバーが大幅に見直されます。 Googleは、メディアサーバーを小さなコンポーネントに分割しました。これらのコンポーネントは、WebViewコンポーネントで行ったように、完全なシステムアップデートの外で更新できます。 つまり、新しいパッチがある場合、携帯電話でパッチを送信することを決めた人を6か月以上待つのではなく、Google Playから更新を取得できます。
また、メディアサーバーのアクセス許可モデルも変更され、完全なシステムアクセス許可が付与されなくなりました。 低い権限で実行すると、メディアサーバーに侵入した場合、システムへの侵入がさらに困難になります。 これは大きな変更であり、Androidスマートフォンのハッキング(ハッキングの悪い種類)を以前よりも難しくします。
キー認証
キー認証により、開発者は、アプリで使用しているキーが有効であり、ソフトウェアではなく、電話のハードウェアでバックアップされたキーストアに保存されていることを確認できます。 検証ツールに生成されたキーのエイリアスが与えられると(実際のキーは決して共有されるべきではありません)、キーの検証に使用できる証明書チェーンが生成されます。 開発者は、キーと検証済みのブート状態の両方を検証して、すべてが有効であることを確認できます。
Android Nに同梱され、Googleサービスを使用する電話には、ルート(またはプライマリ)機関としてGoogleが発行した証明書がありますが、アップグレードされた他の電話には、それらを作成した会社が発行した証明書が必要です。
Android Nを実行できるすべての携帯電話に、暗号化キーを保存するための信頼できるハードウェア環境があるわけではありません。その場合、代わりにソフトウェアレベルのキー認証が使用されます。 検証済みのブート状態は、システムソフトウェアが改ざんされていないことを確認するために引き続き確認できます。 はい、これは開発者がルートを確認できることを意味します。 電話機をルート化したユーザーに不当なペナルティが適用されない限り、これは良いことです。
ファイルレベルの暗号化
以前は、Androidはブロックレベルの暗号化を使用して、パーティション全体またはストレージデバイスを一度に暗号化しました。 これは非常に安全な暗号化方法であり、ストレージとハードウェアに実際のトークンを入れないようにすることは、正しいパスワードまたはPINを使用する唯一の方法でした。 Android Nでは、状況がファイルレベルの暗号化に変更されました。
ダイレクトブートは、ファイルレベルの暗号化と連携して、利便性とセキュリティの両方を実現するように設計されています。
暗号化されたAndroidデバイスが起動(またはポケットで再起動)すると、デバイスは暗号化され、ロックダウンされます。 特定のアプリケーションのみが実行でき、これはダイレクトブートモードと呼ばれます。 つまり、電話をかけたり、アラームを鳴らしたり(またはメッセージ通知を表示することもできます)、それ以上のことを行うには、デバイスのロックを解除して解読する必要があります。 ロックが解除されると、Nはファイルレベルの暗号化を使用して、ユーザー(ユーザー)とアプリケーションがデータのロック方法をもう少し制御できるようにします。
ここでは、2つの利点があります。FDE(ブロック層フルディスク暗号化)により、ローエンドデバイスの実行がかなり不十分になります。 GoogleがNexus 6を正しく試してみるには数回かかりましたが、50 MB / s未満の読み取りおよび書き込みフラッシュストレージハードウェアを備えたデバイスはまだ苦労しています。 2番目の(より重要な)利点は、 A ssociated D ata(AEAD)を使用したA uthenticated E暗号化のファイルレベル暗号化の使用です。 AEADは、権限のないユーザーまたはアプリケーションがデータにアクセスするのが難しいことを意味します。 AEADに興味のある方のために、UCデイビス教授のPhillip Rogaway(.pdfファイル)からの非常に良い読み物があります。
暗号化に対するこの多層アプローチにより、非常に低価格のAndroidを製造する企業は、パフォーマンスを低下させることなく暗号化を提供できます。
ダイレクトブート
ファイルレベルの暗号化は、ダイレクトブート機能でもうまく機能します。 ダイレクトブートは、開発者が利用できる新しいモードを提供するため、ユーザーが電話のロックを解除したり復号化するのを待つのではなく、システムの電源が入った直後にアプリを実行できます。
これは、新しいデバイスストレージエリアと連携して行われ、ダイレクトブートを使用するアプリは、通常の資格情報で保護されたファイルシステムおよび個別に暗号化されたファイルまたはディレクトリと相互作用しません。
:Android 7.0:ダイレクトブートとは何ですか?エクスペリエンスをどのように改善しますか?
スコープディレクトリアクセス
スコープディレクトリアクセスは、アプリが外部ストレージ上の特定のディレクトリへのアクセス許可を取得する方法です(外部ストレージはシステム外部のパーティションであり、携帯電話のストレージとSDカードまたはその他の接続ストレージデバイスの両方を含みます)ボリューム全体のアクセス許可、またはポップアップウィンドウを使用してフォルダのアクセス許可を要求します。
保存されたデータに安全にアクセスすることが重要です。 MusicまたはPhotosストレージフォルダーへのアクセスのみを必要とするアプリケーションは、他に何も表示されるべきではなく、既存のStorage Access Frameworkを使用して物事を絞り込むためのコードを記述することは、多くの開発者が拒否することであることが判明しています 新しいScoped Directory Access APIにより、開発者は安全でデータを保護するアプリを簡単に構築できます。
これらの重要なセキュリティ機能はAndroid Nの大きな部分を占めています。一部の携帯電話(特にNougatに同梱されていない携帯電話)ではすべて使用できない場合があります。 Androidは成熟しており、7.0でGoogleが示している細部への注意は、新しい絵文字や新しい配色ほど派手ではないかもしれませんが、もっと重要です。