web-dev-qa-db-ja.com

デスクトップアプリにはないのに、モバイルアプリにはきめ細かな権限があるのはなぜですか?

Androidアプリはセキュリティ上の理由からきめ細かなアクセス許可を使用し、iOSアプリ(afaik)もそれを行います。 Windows 8.1アプリケーションにはそのような権限スキーマがありません。これまでに試したすべてのLinuxバージョンにもそのようなスキーマはありません。MacOS Xにもないのではないでしょうか。

デスクトップシステムではなく、モバイルデバイスでこれらの詳細なアクセス許可が必要と見なされるのはなぜですか?ユーザーはデスクトップシステムよりもモバイルデバイス上のアプリを信頼していますか?

Windows 10以降のLinuxおよびMac OSバージョンにはありますか?

PS:一部の人々はこれを重複の可能性があると考えているようです モバイルデバイスのアプリはデスクトップよりも制限が厳しいのはなぜですか? -しかし、両方の質問は少なくとも観点(開発者/ユーザー)で異なります)。また、答えを読むと、ほとんどのSOユーザーは両方の質問を異なると見なしていることがわかります:-)

42
rdmueller

スマートフォンがきめ細かな権限を持っているのに、デスクトップコンピューターが持っていない主な理由は2つあります。

  1. 歴史。メインフレームのオペレーティングシステムには、プログラムではなくユーザーへのアクセス許可を与えるという伝統があり、これはミニコンピューター/ワークステーション/デスクトップに引き継がれました。既存のプログラムとの互換性を維持したいという願望は、物事を変更する能力を制限します。スマートフォンは、既存のアプリケーションエコシステムとは一線を画しているため、権限モデルを変更する機会がありました。

  2. スマートフォンはデスクトップよりもはるかに均質であり、通常、時間の経過とともにハードウェア構成を変更しません。これにより、権限システムの設定がはるかに簡単になります。

つまり、デスクトップオペレーティングシステムにはきめ細かな権限システムがあります。たとえば、LinuxにはAppArmor、SELinux、Bitfrostなどが含まれています。

40
Mark

技術的な理由により、アプリケーションがそれらを使用しようとするまで、アプリケーションが必要とする権限を判別することはできません。つまり、アプリケーションがこれを宣言する何らかの方法が必要です。デスクトップオペレーティングシステム上のアプリケーションは、これを行ったことはありません。ユーザーがレガシーアプリケーションを起動するとき、それがすべてを必要とすることを想定するか(考え直さずに機能の長いリストを受け入れるようにユーザーをトレーニングする)、またはアプリケーションがそれを必要とする瞬間にポップアップで尋ねることができます(これにより、 t突然の中断に対処します)。どちらのソリューションも悪いため、このようなメカニズムを導入すると、古いソフトウェアとの下位互換性が失われます。

Windows 7は、新しいアプリケーションが特定の潜在的に有害なことをしないことを宣言し、「[プログラム]がコンピューターに変更を加えてほしいかどうか」を追加することで状況を改善しようとしました。プログラムが管理者として実行されていない限り、さらにいくつかのさらに潜在的に邪悪なことを防止します。

UNIXおよびLinuxのようなUNIXoidオペレーティングシステムでは、ファイルの権限と所有権システムを使用してプログラムの権限を制限できます。ハードウェアデバイスもファイルとして抽象化され、特定のグループが所有できます。したがって、各プログラムを異なるユーザーで実行し、プログラムが必要とするハードウェアデバイス「ファイル」を所有するグループにユーザーを追加することで、プログラムの機能を制限できます。もちろん、これは多くの設定を必要とするため、あまりユーザーフレンドリーなソリューションではありません。

スマートフォンのオペレーティングシステムが開発されたとき、開発者が互換性を保証する必要のあるレガシーアプリケーションはなかったため、最初からすべてを正しく行うチャンスがありませんでした。

もう1つの理由は、スマートフォンがデスクトップコンピューターよりもプライバシーを侵害する可能性が高いことです。スマートフォンにはGPSセンサー、マイク、カメラ、常時インターネット接続があり、ほとんどのユーザーはそれらを通じてプライベートおよびビジネス上の通信のほとんどを行います。人々がどこに行ってもいつでもこれらのデバイスを人の近くや近くに置かなければ、それはそれほど悪くありません。スマートフォンは単に完璧なスパイツールです。スマートフォンを制御下に置くと、ユーザーとその周囲を24時間年中無休で監視できます。そして、このツールにアクセスするためにあなたがする必要があるのは、おならサウンドアプリをインストールするようにユーザーを騙すことです。

20
Philipp

モバイルオペレーティングシステムがアプリに対してきめ細かな権限を持っているのに、デスクトップオペレーティングシステムにはない理由は少なくとも2つあります。

  1. 歴史。デスクトップオペレーティングシステムは、数十年前の主要な脅威モデルが異なっていたため、それに対処するために設計されたメカニズムを備えています(現在、廃止)脅威モデル。

    デスクトップオペレーティングシステムは、メインフレームオペレーティングシステムの進化形です。メインフレームでの主な懸念はマルチユーザーセキュリティでした。オペレーティングシステムは、あるユーザーが別のユーザーを攻撃できないようにする必要がありました。したがって、デスクトップオペレーティングシステムは通常、マルチユーザーセキュリティモデルを中心に構築されており、ユーザーを互いに分離し、1人のユーザーが同じマシン上の他のユーザーを攻撃できないようにします。

    ただし、今日のほとんどのマシンはシングルユーザーマシンであり、主要な脅威は他のユーザーではなく、他のサイトやインターネット上のデータからの悪意のある攻撃です。したがって、モバイルオペレーティングシステムは、この最新の脅威モデルに対処するように設計されています。信頼できない開発者が作成したアプリを簡単かつ安全にダウンロードして実行できるように設計されています。既存のメカニズム(アプリサンドボックス、許可システム、アプリストア、アプリレビュー)は、これを一般的にかなり安全にします。このように、モバイルオペレーティングシステムは、悪意のある/不快なアプリからユーザーを保護し、ユーザーを互いに分離するのではなく、アプリを互いに分離することに重点を置いています。

    これは、モバイルオペレーティングシステムにはきめ細かな権限があり、デスクトップオペレーティングシステムにはない理由の大部分を説明します。きめ細かな権限は、古いメインフレームよりも最新の脅威モデル(悪意のある/危険なアプリからユーザーを保護する)に対処するのに役立ちます脅威モデル(ユーザーを互いに保護する)。

    今日、デスクトップオペレーティングシステムを最初から設計する場合、アプリモデル、マルチユーザーの脅威モデルではなくアプリの脅威モデルなどに重点を置いた、最新のモバイルオペレーティングシステムのように見える可能性があります。 。ただし、従来の制約により、デスクトップオペレーティングシステムがこの新しいアプローチに移行するのは容易ではありません。ユーザーは既存のデスクトップアプリケーションが機能することを期待しているため、オペレーティングシステムは単にそれらをブロックすることはできません。対照的に、AppleおよびGoogleがiOSとAndroidを導入したとき、これらはレガシーベースのない新しいオペレーティングシステムでした。互換性が必要な既存のアプリがなかったため、デスクトップOSが簡単に実行できない基本的な方法でプログラミングモデル。

  2. さまざまなユーザーベース、さまざまなトレードオフ、さまざまな脅威。スマートフォンはマスマーケットデバイスです。彼らは皆のために働かなければならない。デスクトップにスケッチアプリをインストールすると、デスクトップのパフォーマンスが低下したり、デスクトップにスパイウェアが散らかったり、システムが遅くなったり不安定になったりする可能性があります。デスクトップで何をしているのかわからない場合、コンピュータの信頼性とパフォーマンスを本当に台無しにすることができます。 AppleとGoogleはオペレーティングシステムを設計し、悪いアプリをインストールすることでそれができないことを確実にするために懸命に働きました。これは異なるトレードオフを課し、さまざまな設計目標があり、当然、よりロックダウンされたプラットフォームにつながり、デスクトップで許容できると見なされる一部の設計を可能にします。

    また、スマートフォンにはさまざまなセンサーがあり、人生の多くを捉えることができます(たとえば、会話の記録、現在地の追跡など)。スマートフォンは1日中あなたと一緒にいるので、プライバシーが損なわれる可能性は間違いありません。違反。これは、より強力なセキュリティモデルに対するもう1つの動機です。

そうは言っても、現代のデスクトップオペレーティングシステムareアプリ中心のモバイルオペレーティングシステムからこれらのアイデアの一部を徐々に採用し始めています。例えば:

  • Mac OS Xはサンドボックスアプリケーションをサポートしているため、アプリケーションはモバイルアプリのように見えます。 Mac App Store 上のアプリケーションは通常 sandboxed です。オペレーティングシステムはきめ細かなアクセス許可モデルを提供し、アプリケーションは必要なアクセス許可(資格)を宣言する必要があります。

  • Windows 8は、サンドボックスアプリケーションをサポートし、セキュリティモデルはモバイルアプリのセキュリティモデルによく似ています。特に、 Windows Store apps はサンドボックスで実行され、必要な権限を宣言する必要があります。ユーザーは、 アプリがどのような権限を持っているかを表示できます

ちなみに、モバイルアプリのセキュリティモデルはおおまかにWebのセキュリティモデルに似ていることに気づくかもしれません。Webもサイトの分離に基づいているため、ある悪意のあるWebサイトが別のサイトを攻撃することはできません。モバイルアプリをWebサイトに類似していると考える場合、モバイルアプリのサンドボックス化は、ブラウザーの同じ元のポリシーに類似しているように見えます。歴史的に、Webアプリは何ができるかに制限がありましたが、HTML5により、これは変化しています。ブラウザーは、Webサービスがより幅広い機能(センサーからの読み取り、ファイルシステムでのファイルの読み取りと書き込みなど)を行えるようにし始め、モバイルオペレーティングシステムと同じように、これらのリソースへのアクセスを制御する許可システムを実装し始めています。したがって、これは、モバイルオペレーティングシステムからいくつかのアイデアを借用したブラウザーと見なすことができます。

あなたに興味があるかもしれない他のいくつかの読書:

9
D.W.

比較ポイントとして、スマートフォンとデスクトップOSのファイアウォールオプションを比較してください。デスクトップには、Androidのルートファイアウォールアプリを除く、はるかに細かいファイアウォールオプションがあり、どの実行可能ファイルを指定できるかがわかります。電話アプリへのインターネットアクセスをブロックすることはほぼ不可能であるのに対し、どのポートおよびどのネットワーク上の通信にもアクセスできます(彼らは皆、インターネットを介してある種の広告を望んでお金を稼ぐためです)

アプリケーションのミュートを見てください。単一のアプリケーションをウィンドウでミュートするのとモバイルデバイスでミュートするのはどれくらい簡単ですか。すべてのサウンドをミュートできますか?両方で簡単に実行できますが、プログラム/アプリXはどうですか?または、プログラムYの音量をプログラムXの音量の半分になるように調整できますか?ここではデスクトップの方がきめ細かいアクセスができると思います

PCにはより高度な監視オプションもあります。どのプロセスがどのファイルにどのファイルにアクセスしているかを正確に確認し、各プロセスの個々のスレッドを確認し、ウイルス対策(サンドボックス化)を介して実行することができます。携帯電話では実用性ははるかに低く、電話ベースのAVはデスクトップのAVほど優れていません。

全体的な理由は、ルート権限を取得するか、管理者アクセスを取得するまで、電話は実際には「自分のもの」ではないのですが、PCではそれが標準であるためです。実際にはそうではありませんが、PCは、仮想マシン、サンドボックスなどで信頼されていないアプリを実行するだけで、実質的に必要なものをすべて取得できます。

いくつかの使用方法の違いもあるようです。スマートフォンでは、ほぼすべてのアプリが連絡先や現在地などへのアクセスを求めています。PCでは、異なるアプリ間で連絡先を「同期」するよう要求することはほとんどありません。またはブックマーク-通常は1回限りの「移行設定」です。各アプリは、システムや他のアプリに大きく依存していて、それらのために何かを行うのとは対照的です(いくつのアプリが機能するか) AndroidサービスXが実行されていないWindowsではどうですか)?メディアプレーヤーを見てください-ほとんどのデスクトップメディアプレーヤーは独自のコーデックを備えているため、自己完結型ですが、実際には不可能です独自のコーデックを備え、モバイルでシステムのコーデックに依存しない(したがって、その欠陥を継承する)メディアプレーヤーを見つけるため。

5
user2813274

それを持たないのは、実際にはWindowsだけです。 (appstoreアプリを除く)。 OS Xでは、連絡先などにアクセスする前に、またはアプリケーションがユーザーのコンテナの外部にあるファイルシステムの変更を行う場合は、許可を与える必要があります。

Linuxの場合、AppArmorやSELinuxのようなものがありますが、ほとんどのuniceでは、bsdはlinuxであり、通常のファイルシステムのアクセス許可モデルにより、通常のユーザープログラムがユーザーの家の外で変更を加えることは不可能です。

現在、WindowsにはUACがありますが、ほとんどすべてのアプリを実行するには完全なファイルシステムアクセスが必要であるため、ほとんど役に立ちません。 (メディア消費アプリを除く)

1
John Keates

デスクトップアプリはモバイルアプリよりもはるかに多くのことが期待されているため、きめ細かな権限を付与することははるかに困難です。特に、デスクトップアプリは相互に通信することがよくありますが、モバイルアプリは通常、そのような通信を回避するために非常に非常にサンドボックス化されています。アプリケーション間通信を許可する場合、利用できる細かい権限はアプリの権限に加えて、他のアプリが実行するように説得できるすべてのものです(この説得を行うためにエクスプロイトを使用することを含みます)。適切なエクスプロイトを使用すると、これらの権限は、ユーザーがOKをクリックした権限と実質的に無関係になる可能性があります。

その環境では、きめの細かい特権は私たちが望んでいるほど多くは提供されず、システムに組み込むにはコストがかかります。したがって、デスクトップOSがサポートすることはほとんどありません。

0
Cort Ammon