Submit Search
Android Mのruntime-permissionに潜む罠
Download as PPTX, PDF
•
6 likes
•
6,136 views
A
ak_shio_555
potatotips20のLT用資料です @aki_sh_7
Mobile
Read more
1 of 22
Download now
Downloaded 16 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
More Related Content
What's hot
(20)
PDF
IT エンジニアのための 流し読み Windows 10 - IE11 のサポート終了と Microsoft Edge について
TAKUYA OHTA
PDF
Androidアプリのストレージ戦略
Masahiro Hidaka
PDF
はてなにおける Android アプリのソフトウェアテスト
Yu Nobuoka
PDF
IT エンジニアのための 流し読み Windows - Windows 11 のクリーン インストール
TAKUYA OHTA
PPTX
新登場! Windows Defender Application Guard 解説 ~ Microsoft Edge がセキュア ブラウザーに!?~
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
TAKUYA OHTA
PDF
プラットフォームセキュリティin Windows ブートタイム保護 概要編
Yurika Kakiuchi
PDF
Android Wear How to make watchface project abc2014W
Hiroshi Hashimoto
PDF
Windowsストアアプリ開発 オープンセミナー広島
Akira Onishi
PDF
2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa
Keiji Ariyama
PDF
Androidテスティング実践 基礎編
株式会社 NTTテクノクロス
PPTX
Windows Admin Center 2103.2 and Windows Admin Center on Azure
Norio Sashizaki
PDF
Androidアプリケーション開発中級研修 前編
株式会社 NTTテクノクロス
PPTX
Windows Server 2008 / R2とWindows Admin CenterとAzure Site Recovery
Norio Sashizaki
PPTX
Azure PolicyとAutomanage 2021年01月 / Azure Policy and Automanage Jan 2021
Norio Sashizaki
PDF
Notes を様々なサービスと連携させてみよう!
Takeshi Yoshida
PPTX
SCUGJ第20回勉強会:SCVMM2019 What's New
wind06106
PDF
Androidアプリケーション開発中級研修 後編
株式会社 NTTテクノクロス
PDF
Androidテスティング実践3 ユニットテスト・CI編
株式会社 NTTテクノクロス
PPTX
Androidアプリケーション開発入門
OESF Education
IT エンジニアのための 流し読み Windows 10 - IE11 のサポート終了と Microsoft Edge について
TAKUYA OHTA
Androidアプリのストレージ戦略
Masahiro Hidaka
はてなにおける Android アプリのソフトウェアテスト
Yu Nobuoka
IT エンジニアのための 流し読み Windows - Windows 11 のクリーン インストール
TAKUYA OHTA
新登場! Windows Defender Application Guard 解説 ~ Microsoft Edge がセキュア ブラウザーに!?~
TAKUYA OHTA
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
TAKUYA OHTA
プラットフォームセキュリティin Windows ブートタイム保護 概要編
Yurika Kakiuchi
Android Wear How to make watchface project abc2014W
Hiroshi Hashimoto
Windowsストアアプリ開発 オープンセミナー広島
Akira Onishi
2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa
Keiji Ariyama
Androidテスティング実践 基礎編
株式会社 NTTテクノクロス
Windows Admin Center 2103.2 and Windows Admin Center on Azure
Norio Sashizaki
Androidアプリケーション開発中級研修 前編
株式会社 NTTテクノクロス
Windows Server 2008 / R2とWindows Admin CenterとAzure Site Recovery
Norio Sashizaki
Azure PolicyとAutomanage 2021年01月 / Azure Policy and Automanage Jan 2021
Norio Sashizaki
Notes を様々なサービスと連携させてみよう!
Takeshi Yoshida
SCUGJ第20回勉強会:SCVMM2019 What's New
wind06106
Androidアプリケーション開発中級研修 後編
株式会社 NTTテクノクロス
Androidテスティング実践3 ユニットテスト・CI編
株式会社 NTTテクノクロス
Androidアプリケーション開発入門
OESF Education
Similar to Android Mのruntime-permissionに潜む罠
(20)
PDF
App controllerとSPFで実現するハイブリッドクラウド
Takashi Kanai
PDF
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
Shotaro Suzuki
PPTX
Windows Phoneの企業内活用方法、社内向けアプリ開発と展開
Akira Onishi
PPTX
Android enterpriseで実現できる端末管理の世界
Daisuke Tsutsumi
PDF
Windows 10 の新機能 Azure AD Domain Join とは
Mari Miyakawa
PDF
第18回「PureSystemsでクラウド事始め」(2012/07/12 on しすなま!)
System x 部 (生!) : しすなま! @ Lenovo Enterprise Solutions Ltd.
PDF
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
Daizen Ikehara
PDF
App controllerとwindows azure packで作る大規模プライベートクラウド
Takashi Kanai
PDF
What's new in Android N at Google I/O extended in Fukuoka
Yuki Anzai
PDF
Cloud OS Tech Day 2014:Windows Azure Pack プライベートクラウドとセルフポータル(仮)
wind06106
PPTX
OpManager導入事例 日テレITプロデュース様
ManageEngine, Zoho Corporation
PDF
SoftLayer 実務Tips
softlayerjp
PDF
Permissionの日本語でおk
youten (ようてん)
PDF
Mobiconnect標準説明
CRI Japan, Inc.
PDF
N18_大学におけるパンデミックからの復興 ~DX がパンデミック後の教育機関のコア価値を強化する [Microsoft Japan Digital Days]
日本マイクロソフト株式会社
PDF
[Modern Cloud Day Tokyo 2019] 攻撃を排除し、正しくユーザーを認証・監視、Oracle Cloudのセキュリティ・サービスの概要
オラクルエンジニア通信
PPTX
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Takeshi Hirosue
PDF
【17-D-6】「ソフトウェアの収益増大のためのセキュリティソリューション」小池康幸氏
Developers Summit
PDF
[Cloud OnAir] Talks by DevRel Vol.2 セキュリティ 2020年8月6日 放送
Google Cloud Platform - Japan
PDF
【de:code 2020】 Apps on Azure AD - アプリケーション連携 WHY と HOW
日本マイクロソフト株式会社
App controllerとSPFで実現するハイブリッドクラウド
Takashi Kanai
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
Shotaro Suzuki
Windows Phoneの企業内活用方法、社内向けアプリ開発と展開
Akira Onishi
Android enterpriseで実現できる端末管理の世界
Daisuke Tsutsumi
Windows 10 の新機能 Azure AD Domain Join とは
Mari Miyakawa
第18回「PureSystemsでクラウド事始め」(2012/07/12 on しすなま!)
System x 部 (生!) : しすなま! @ Lenovo Enterprise Solutions Ltd.
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
Daizen Ikehara
App controllerとwindows azure packで作る大規模プライベートクラウド
Takashi Kanai
What's new in Android N at Google I/O extended in Fukuoka
Yuki Anzai
Cloud OS Tech Day 2014:Windows Azure Pack プライベートクラウドとセルフポータル(仮)
wind06106
OpManager導入事例 日テレITプロデュース様
ManageEngine, Zoho Corporation
SoftLayer 実務Tips
softlayerjp
Permissionの日本語でおk
youten (ようてん)
Mobiconnect標準説明
CRI Japan, Inc.
N18_大学におけるパンデミックからの復興 ~DX がパンデミック後の教育機関のコア価値を強化する [Microsoft Japan Digital Days]
日本マイクロソフト株式会社
[Modern Cloud Day Tokyo 2019] 攻撃を排除し、正しくユーザーを認証・監視、Oracle Cloudのセキュリティ・サービスの概要
オラクルエンジニア通信
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Takeshi Hirosue
【17-D-6】「ソフトウェアの収益増大のためのセキュリティソリューション」小池康幸氏
Developers Summit
[Cloud OnAir] Talks by DevRel Vol.2 セキュリティ 2020年8月6日 放送
Google Cloud Platform - Japan
【de:code 2020】 Apps on Azure AD - アプリケーション連携 WHY と HOW
日本マイクロソフト株式会社
Ad
Android Mのruntime-permissionに潜む罠
1.
Android Mの runtime-permissionに潜む罠 2015/8/11 塩田 明弘
2.
自己紹介 株式会社NTTデータ所属 メインの仕事はセキュリティ 2014/4より社内向けのAndroidセキュリティ ガイドライン作成やサポートに従事
3.
今回の資料はAndroid M Developer
Preview 2ベースです。 最終版では異なる仕様になっている可能性があります。
4.
Android Mから 新パーミッションモデルが採用
5.
新パーミッションモデルの特徴 インストール時ではなく、利用時に許可を求める チェックや許可要求、結果受け取りは作ってやる必要有り →公式やサンプル参照 許可を与えても後から変更が可能
6.
新パーミッションモデルの特徴 Androidの抱える課題の一つ、 「許可したパーミッションを後から変更できない」 という状況の解消(ただし、一部のパーミッション) インストール時ではなく、利用時に許可を求める チェックや許可要求、結果受け取りは作ってやる必要有り →公式やサンプル参照 許可を与えても後から変更が可能
7.
新パーミッションモデルの特徴 インストール時には変更可能なパーミッションは 許可されていない状態 インストール時
8.
新パーミッションモデルの特徴 連絡帳の読取 利用時 「連絡帳の読取」が必要な機能を使うときに、 パーミッションをチェックして個別に許可す る
9.
新パーミッションモデルの特徴 連絡帳の読取 利用時 「連絡帳の読取」が必要な機能を使うときに、 パーミッションをチェックして個別に許可す る 設定画面からも変更可能で与えていた許可を 取り消したり、要求がなくても許可を与える ことが出来る
10.
新パーミッションモデルの特徴 連絡帳の読取 利用時 「連絡帳の読取」が必要な機能を使うときに、 パーミッションをチェックして個別に許可す る 設定画面からも変更可能で与えていた許可を 取り消したり、要求がなくても許可を与える ことが出来る
許可がないまま機能を使おうとすると、 「Permission Denied」として強制終了する (パーミッション無いから当たり前)
11.
アプリの動作に対する ユーザーの決定権が大きくなった
12.
懸念点 変更可能なパーミッションは グループ単位で設定される
13.
グループ単位での設定変更 パーミッションの設定変更は、AndroidManifestで宣 言されているグループ内のパーミッション全てに対し て一律に行われる 設定画面からの変更でも、requestPermissionsによる アプリからの要求でも同じ。要求は引数にパーミッ ションを一つ指定すれば、グループ全体に影響が及ぶ <use-permission
android:name=“android.permission. READ_CONTACTS”> <use-permission android:name=“android.permission. WRITE_CONTACTS”>AndroidManifestでの宣言 <pkg name="com.sample.sample"> <item name="android.permission. READ_CONTACTS" granted="true" flags="0" /> <item name="android.permission. WRITE_CONTACTS" granted="true" flags="0" /> </pkg> パーミッションの許可状況 /data/system/user/{userId}/runtime-permissions.xml requestPermissions(new String[]{Manifest.permission.READ_CONTACTS}, REQUEST_READ_CONTACTS);アプリ内でのパーミッション要求
14.
パーミッションがグループ単位で 設定変更されることによる問題 1. 許可済パーミッションと ユーザー認識のずれ 2. グループ全体で 要求ダイアログが表示されない
15.
許可済パーミッションと ユーザー認識のずれ(1/3) パーミッション グループ パーミッション android.permission-group.CONTACTS
android.permission.READ_CONTACTS android.permission.WRITE_CONTACTS android.permission.READ_PROFILE android.permission.WRITE_PROFILE コミュニケーション系アプリで以下の機能を想定 A) 既存ユーザを探すために、連絡帳の情報を利用 要:android.permission.READ_CONTACTS B) サービス上のユーザを連絡帳に追加 要:android.permission.WRITE_CONTACTS いずれもandroid.permission-group.CONTACTSに所属
16.
③パーミッショングループへの許可要求 「連絡帳の情報を使ってユーザーを探す には、「連絡帳へのアクセス」を許可す る必要があります。」 許可済パーミッションと ユーザー認識のずれ(2/3) ユーザは機能Aだけ許可したつもりでも、機能Bも許可される ①機能A利用の要求 ④パーミッショングループへの許可 ⑤パーミッショングループ への許可の付与 ②パーミッションチェック (READ_CONTACTS) ユーザ アプリ・端末 ⑥機能Aの利用 ここでREAD_CONTACTSだけでなく、 WRITE_CONTACTSにも許可が与えられる
17.
③パーミッショングループへの許可要求 「連絡帳の情報を使ってユーザーを探す には、「連絡帳へのアクセス」を許可す る必要があります。」 許可済パーミッションと ユーザー認識のずれ(2/3) ユーザは機能Aだけ許可したつもりでも、機能Bも許可される ①機能A利用の要求 ④パーミッショングループへの許可 ⑤パーミッショングループ への許可の付与 ②パーミッションチェック (READ_CONTACTS) ユーザ アプリ・端末 ⑥機能Aの利用 ⑦機能B利用の要求 ⑧パーミッションチェック (WRITE_CONTACTS) ⑨機能Bの利用 ここでREAD_CONTACTSだけでなく、 WRITE_CONTACTSにも許可が与えられる
18.
許可済パーミッションと ユーザー認識のずれ(3/3) 「要求された箇所の機能を使うためにパーミッションが 必要」という説明だけではなく、「パーミッション(グ ループ)を許可することによる、アプリ全体への影響」 の説明も必要かも 公式のベストプラクティスのように、チュートリアルを 設ける手もあるが、全てをその中ではカバーできない。
19.
グループ全体で要求ダイアログ が表示されない(1/2) requestPermissionsでパーミッション要求を 行った際に、「今後は確認しない」に チェックして「許可しない」を選ぶと、 次回以降ダイアログが表示されなくなる。 「今後は確認しない」とした箇所だけではなく、同一 パーミッショングループ全体が同じ設定になる。
各パーミッションの状態を、「flags」で管理しており、 この値もグループ単位で設定するため(「今後は確認し ない」はflags=2) <pkg name="com.sample.sample"> <item name=" android.permission. READ_CONTACTS" granted=“false" flags=“2" /> <item name=" android.permission. WRITE_CONTACTS" granted=“false" flags=“2" /> </pkg> パーミッションの許可状況 /data/system/user/{userId}/runtime-permissions.xml
20.
グループ全体で要求ダイアログ が表示されない(2/2) この回避(正確には軽減策)のためには、表示しないと したときのメッセージの作成や、復活させるための手 順を示したヘルプを設ける 初めて利用する機能ですでに制限されてしまっている 場合には手順を表示、複数回反応がないのにボタンを 押したらヘルプ表示などのサポートも必要
このバランスは今後ちょうどよいところを見つけてい くしかない
21.
まとめ AndroidのパーミッションモデルはAndroid Mで新しいモ デルにとなりユーザーが決定権を持つようになった
グループ単位での設定となったことによって、うまく説明 しないとユーザーに誤解が生じかねない 問題は仕組み上、根本的に解決する方法がない。説明や補 助的な機能を作り、誤解を生じないようにするしかない。 分量のバランスはユーザーからのレスポンスをよく見てや る必要がある。 パーミッショングループのまとまりがiOSのプライバシー 設定と似ているものは、そのときの対応も参考に。
22.
本資料の著作権は、講演者(塩田 明弘)に帰属します。
Download