パスワードを忘れた? アカウント作成
14275490 story
プライバシ

Android 11アプリのサードパーティーカメラアプリ呼出し制限は位置情報への無断アクセスを防ぐため 24

ストーリー by headless
制限 部門より
Android 11をターゲットにしたアプリで「android.media.action.IMAGE_CAPTURE」などのインテントでカメラアプリを呼び出す際、プリインストールのシステムカメラアプリしか選択できないようになっているが、これはアプリがユーザーの許可なく位置情報を取得しないようにするための変更だという(Android DevelopersのドキュメントThe Vergeの記事Android Policeの記事SlashGearの記事)。

サードパーティーのカメラアプリ呼出し制限はAndroid 11をターゲットにしたアプリの動作の変更点として数か月前からAndroid Developersのドキュメントに記載(Internet Archive 5月31日のスナップショット)されているが、その理由については説明されていなかった。8月に入ってこの動作がGoogleのIssue Tracker(要ログイン)でバグとして報告され、Googleはユーザーのプライバシーやセキュリティを守るための意図した動作だと回答。サードパーティーのカメラを呼び出す場合はパッケージ名などを明示的に指定する必要があるとも説明しているが、ここでも具体的な理由を示さなかったため、独占的だなどと批判を受けることになる。

その後、Android 11の変更点のカメラアプリ呼出し制限の項目は大幅に追記され、呼び出し元アプリの位置情報アクセス許可に応じてEXIFの位置情報メタデータが正しく処理されることを確実にするための変更だと明記された(日本語版は未更新)。変更によりサードパーティーのカメラアプリ使用が制限されることはなく、既定のアプリに設定することも可能とのこと。なお、OEMメーカーの多くは独自のカメラアプリをプリインストールしているが、こういったカメラアプリでEXIFメタデータが正しく処理されるかどうかについては触れられていない。
  • by Anonymous Coward on 2020年08月23日 13時20分 (#3875272)

    位置情報権限を与えてないアプリから、カメラを介して取得できるのをブロックしたいってこと?
    昔、iアプリ時代も勝手アプリはGPS使えなかったけど、写真の位置情報をEXIFから取得できてたね。

    ここに返信
    • Re:ようするに、 (スコア:3, 参考になる)

      by Anonymous Coward on 2020年08月23日 19時57分 (#3875396)

      >位置情報権限を与えてないアプリから、カメラを介して取得できるのをブロックしたいってこと?

      そういうこと。

      Google謹製のデフォルトカメラアプリならば位置情報を許可していても、カメラアプリへの連携を許可しただけでは位置情報へアクセスできないのに対し
      サードパーティ製のカメラアプリでは内部処理が適切に行われているか不明で位置情報を得られてしまう可能性があった。
      そして今まではサードパーティのカメラアプリがGoogle謹製のデフォルトカメラアプリとそっくり入れ替わっていた場合、
      ユーザはカメラアプリを連携する際に安全なアプリを選択することが出来ない状態になっていた。

      そのためGoogle謹製のカメラアプリのデフォルトパス/apkを固定にし詐称不可とすることで、サードパーティ製のアプリによる乗っ取りを防止した。
      なのでサードパーティ製のカメラアプリがGoogle謹製のデフォルトカメラを名乗れなくなっただけで、個々のデフォルト設定がGoogleのアプリに固定されたわけではない。

  • by Anonymous Coward on 2020年08月23日 15時38分 (#3875305)

    Googleがプライバシーに配慮してこのような変更を行っているとは思えません。

    何故ならば、本当にプライバシーに配慮するならば、
    「通信・他のアプリとの連携」の権限をユーザが明示的にon/offできないのがおかしいです。

    (インターネット通信の権限は一応あることにはありますがデフォルト許可になっている上ユーザが拒否設定できません)

    「電卓」とか「完全オフラインゲーム」のように通信や他のアプリとの連携が不要なツールもあるので、通信や他のアプリとの連携を完全にoffにできたらユーザは安心してそういったアプリをインストールできるはずです。

    なのにやらないのは、通信をじゃんじゃんしてもらって、広告やら課金などを利用して儲けたいからでしょう。Appleも同様に通信権限をoffにできませんが、これもアプリ内課金を使ってほしいからだと思います。

    なお、インターネット通信権限を設けてもインテント等で他のアプリに渡せば情報が漏れるのでかえってユーザに誤解を与えて危険になるといった主張もありますが、他のアプリとの連携・インテントも含めて拒否できる権限を設ければ解決します。

    ここに返信
    • by Anonymous Coward

      まったく同意。システムモニタ等と称して裏でネットワーク接続するアプリに遭遇したことがあったが(何をしてたのかは不明)、
      明示的にインターネット接続を禁止できればそういったアプリをあぶりだせるはず。
      何故導入してないのか不思議だ。

    • by Anonymous Coward

      他のアプリとの連携を拒否したらそのアプリは起動できないのでは?
      ホームアプリもただの1アプリにすぎないのだから

    • by Anonymous Coward

      明示的にサードパーティカメラアプリをパッケージ名で指定すれば
      従来通り開けるって事なら、そもそもこの変更に大した意味がないんだよね。
      「呼び出し元が位置情報権限無くてもEXIFに位置情報入れちゃうアプリ」
      のリストを内部に持ってインストールされてればそれを明示的に呼び出せば良いだけ。

      カメラアプリ側で位置情報の不適切付与を回避する機能がある事を宣言させて、
      位置情報権限の無いアプリはその宣言がないアプリの呼び出しを禁止するとかでないと無意味。
      今の枠組みでやるなら、カメラインテントを位置情報の可・不可で二種類にするのでもいい。

      まぁ、この辺に関するGoogleの言い分はネットワーク通信権限の付与UIを作ったのに態々削除してるあたりでお察しだわな。
      AppleもGoogleも広告プラットフォーマーだから広告抑制したくないって本音が隠せてない。
      # ならそれはそれで安全で匿名な広告通信のAPIと権限くらい設けろよってなるんだけど。

      • by Anonymous Coward

        Appleが広告プラットフォーマーというのは知らなかったな。
        iAdがあった頃ならともかく……

    • by Anonymous Coward

      ごもっともではあるけど、仮にそれを加えたとしても、ほとんどのアプリが「通信・他のアプリとの連携」権限必須となるだけでしょう。
      少なくとも、広告収入を当てにしているアプリは確実にそうなる。
      実効力のない「解決」方法だと思いますよ。

  • by Anonymous Coward on 2020年08月23日 10時44分 (#3875238)

    この手のセキュリティやプライバシー上の修正って、AndroidからforkしたOSには適用されているんだろうか?
    具体的にいうとAmazonのFireOSとか。

    現行のFireOS 7でようやくAndroid 9相当らしいが、まともに対策やってるとは信じられない。

    ここに返信
    • by Anonymous Coward

      Androidは昔からオープンソースなので、ソースコードの変更は自由です。
      なので、それらの変更が取り入れられているかどうかは「作った奴に聞け」でしょう。

      • by Anonymous Coward on 2020年08月23日 13時07分 (#3875269)

        そうそう、極端な話互換性テストにさえパスできれば内部は自由に弄れる
        昔々某メーカーの初めてのAndroid端末を開発してた頃だけど、こんなに改造しちゃって大丈夫だろうか思った事あるしw

        • by Anonymous Coward

          初めてなのに色々いじるとか、大丈夫じゃない予感しかしませんが...

    • by Anonymous Coward

      HuaweiのHarmonyOSもAndroidもどきだな

      • by Anonymous Coward

        Huaweiに限らず中華は大体そうでしょう、XiaomiとかOne Plusとか。

  • by Anonymous Coward on 2020年08月23日 13時59分 (#3875282)

    カメラアプリであっても、位置情報権限がなければ位置情報は取得出来ないし、
    それがサードパーティのアプリであってもユーザーが許可してれば位置情報取得出来るのは「当たり前」なのだが。
    ストレージの扱いがコロコロ変わるのもそうだが、計画性のない場当たり的な修正が通るのは、何故なのか…

    ここに返信
    • カメラアプリ (位置情報 許可) → 悪意のあるアプリ (位置情報 不許可) の共有で、
      EXIF情報経由で 位置情報 取っちゃうのを禁止したい、
      ってあたりは想像できるけど;
      それが システムのカメラアプリに限定したら 万事OK,
      ってあたりは、確かに よくわからないですね。

      引用に書いたるのか と思ったけど、
      Android Policeの記事 [androidpolice.com] にも

      Google describes the change in a list of new behaviors in Android 11, and further confirmed it in the Issue Tracker. Privacy and security are cited as the reason, but there's no discussion about what exactly made those intents dangerous.

      って 具体的なバッドケースは 説明ないようだし;

      Android Developers のドキュメント [android.com] にも、

      特定のサードパーティ製カメラアプリを使用して画像や動画をキャプチャする場合は、インテントのパッケージ名またはコンポーネントを設定してそのインテントを明示できます。

      って、呼び出せないわけじゃないようだし。

      後者のあたりから、ピクチャ受 側のアプリが意図しないケースで、という風に想像するけど;
      そうすると、その サードパーティ カメラアプリ に ユーザが与えた権限 の問題よね?

      アプリ → カメラアプリ のintent呼出時に、
      呼出元アプリの権限が カメラアプリに移譲されるわけでもなし。

      • by Anonymous Coward

        >カメラアプリ (位置情報 許可) → 悪意のあるアプリ (位置情報 不許可) の共有で、EXIF情報経由で 位置情報 取っちゃうのを禁止したい

        だとしても、EXIFに含まれているものはあくまでEXIFであって、位置情報ではないからなぁ。
        そんなことを言い始めたら、ファイラーだろうがなんだろうが全部権限必要になってしまうし、
        メディアファイルを扱う際にメタデータを見れる機能を出すなり警告するなりしてくれる機能を付けてほしい。
        今だって、大手のSNSは自前でEXIF消す処理してるわけで、ねぇ。。

    • by Anonymous Coward

      Exifにアクセスするのに位置情報許諾がいるのでいいやん、というのに全く同意

      最近非常に頭に浮かぶフレーズがある。
      10で神童、15で天才、20過ぎればただの人。

      Googleも20過ぎてだたのでかい会社になったんだよ。総身に知恵が回りかねる感が半端ない。
      単にインスタを潰したかっただけじゃないか。

      • by Anonymous Coward

        EXIFと思われる個所のファイルreadを失敗させるかダミーのデータを返せば良いって言いたいの?

        ファイラーがファイルコピー実装するためだけに位置情報権限必要になるとか、狂気的としか思えん仕様だな。

        • JPEGとかPNGとかMP3とかはチャンク構造といって付加情報を追加させやすいフォーマットになっている。
          サウンドファイルのID3タグや画像ファイルのEXIFはこれを利用して付加しているオプショナルデータに過ぎないので、簡単に取り除けるし互換性の問題もない。
          仕様上必須ではない情報が必ず存在する前提で作られているソフトがあればおかしくなる可能性はあるけど、それはそのソフトがダメダメなだけ。

          --
          うじゃうじゃ
          • by Anonymous Coward

            そんな話はしてないから。

typodupeerror

ソースを見ろ -- ある4桁UID

読み込み中...