web-dev-qa-db-ja.com

Android権限がグループで付与されるのはなぜですか?

Androidに関するドキュメント 許可グループ は、

アプリがマニフェストに記載されている危険な権限をリクエストし、そのアプリが同じ権限グループに別の危険な権限をすでに持っている場合、システムはユーザーとの対話なしですぐに権限を付与します。たとえば、アプリが以前に READ_CONTACTS 権限をリクエストして付与されていて、その後 WRITE_CONTACTS をリクエストした場合、システムはすぐにその権限を付与します。

これはセキュリティリスクではありませんか?連絡先を読み取ってアプリが友人と何かを共有できるようにすることで、既存の連絡先を変更するよりもリスクが少なくなります。たとえば、すべての連絡先の電子メールアドレスを元の電子メールに似ているものに変更するために悪用される可能性がありますが、実際には攻撃者のアカウントにつながります。両方に知られていないまま、メール交換の転送を続行できます。

ドキュメントでは、以下の点が強調されています。

繰り返しになりますが、システムはユーザーに、個々の権限ではなく、アプリに必要な権限グループを通知します

[〜#〜] phone [〜#〜] グループには CALL_PHONE および READ_CALL_LOG も含まれます。

繰り返しますが、Yelpのようなアプリは、ビジネスへの電話を許可する必要があります。または、注文アプリが合法的に配達担当者に電話をかけることができますが、アプリは、ユーザーのプライベート通話ログを静かに読み取って、アドウェアに送信することもできます [〜#〜] internet [〜#〜]通常の権限 であるため、ユーザーの同意を必要としないため、バンドルされています。特定の番号へのコールログは、ユーザーを脅迫するための基礎として使用できます。または(おそらくより一般的に)広告主がユーザーの人口統計プロファイルおよびソーシャルネットワークを把握するための非常に貴重な情報として役立ちます。

さまざまな レポートは、ユーザーが予期しなかったデータを含む 驚異的な数のアプリの電話ホーム を示しています。 なぜAndroidアクセス許可がそれほど粗いのですか?

ユーザーの利便性(つまり、Android Mのランタイムアクセス許可システム)でユーザーにあまりバグを与えないこと)は弱い理由のようです。通話ログを読む理由のない正当なアプリは要求しませんアクセス許可。以下のすべての選択肢はユーザーに1回だけ尋ねますが、セキュリティ結果は異なります。

  1. 「このアプリは電話をかけることができますか」(個別許可)
  2. 「このアプリは電話にアクセスできます (発信通話をリダイレクト (!)、そして連絡先リストを読みます」(正確な言葉遣いで現在のグループの許可が必要ですが、ほとんどのアプリは電話をかけるだけなので不必要に怖いです)
  3. 「[このアプリ]による通話の発信と管理を許可します」(Android M、不必要にあいまいな)でのグループ許可の表現)

カレンダーについても同じです- イベントを作成するための書き込み専用権限 は比較的無害ですが、- ユーザーのプライベートイベントの読み取り はそれほど問題ではありません。等。

アクセス許可をより詳細にする必要がない理由はありますか?

13
Dan Dascalescu

ユーザーがアプリを使用するのを怖がらせたくはありません。アプリが通話機能を使用する必要がある場合は、通常の使用のためにさらに多くの権限が必要になる可能性があります(アプリからの権限リクエストが多すぎるとユーザーに影響します)。だから補償するために、彼らは許可を groups に入れます。

これは、OSのユーザビリティにも影響します。全体的なUXは、権限リクエストが少ないほど優れています。権限の説明の提供について developer.Android.com に書かれている内容を見ると、次のようになります。

説明でユーザーを圧倒したくないことに注意してください。説明が多すぎると、ユーザーはアプリに不満を感じて削除する可能性があります。

言い換えると、ユーザーは、アクセス許可要求でユーザーをoverwhelmしたくありません。また、ユーザーにアクセス許可の危険性を説明するOS機能にも影響します。連絡先の読み取り/書き込みではなく「連絡先へのアクセス」とアカウントの取得。すべてのユーザーがSIP=とは何かを理解するわけではありませんが、誰もが電話とは何かを知っています。

1
John ingmar