Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Appleにおけるプライバシーの全容を把握する
Search
akatsuki174
September 01, 2023
Technology
0
5.7k
Appleにおけるプライバシーの全容を把握する
2023/09/01(金) iOSDC Japan 2023 day0
akatsuki174
September 01, 2023
Tweet
Share
More Decks by akatsuki174
See All by akatsuki174
私が変えてきたこと、変えなかったこと
akatsuki174
2
800
最近読んでいる本-読書シェア会vol.1
akatsuki174
2
200
SwiftUI、UIKitでキャプチャを撮ろう!
akatsuki174
1
92
近年のAppleにおける位置情報とプライバシー
akatsuki174
3
460
オフライン勉強会ぼっち対策
akatsuki174
1
650
Xcode 15の新機能
akatsuki174
0
2.8k
AndroidにもSelect Photosがやってきた
akatsuki174
0
1.4k
Famm Android改善記
akatsuki174
0
390
Flutterアプリ開発にネイティブコードはどこまで求められるのか
akatsuki174
2
5k
Other Decks in Technology
See All in Technology
Strands Agents & Bedrock AgentCoreを1分でおさらい
minorun365
PRO
6
220
製造業の課題解決に向けた機械学習の活用と、製造業特化LLM開発への挑戦
knt44kw
0
150
ビジネス文書に特化した基盤モデル開発 / SaaSxML_Session_2
sansan_randd
0
250
大規模イベントに向けた ABEMA アーキテクチャの遍歴 ~ Platform Strategy 詳細解説 ~
nagapad
0
190
データ基盤の管理者からGoogle Cloud全体の管理者になっていた話
zozotech
PRO
0
330
Vision Language Modelと自動運転AIの最前線_20250730
yuyamaguchi
3
1.1k
生成AI導入の効果を最大化する データ活用戦略
ham0215
0
110
AIのグローバルトレンド 2025 / ai global trend 2025
kyonmm
PRO
1
120
リリース2ヶ月で収益化した話
kent_code3
1
180
Bet "Bet AI" - Accelerating Our AI Journey #BetAIDay
layerx
PRO
4
1.5k
AI時代の経営、Bet AI Vision #BetAIDay
layerx
PRO
1
1.7k
KubeCon + CloudNativeCon Japan 2025 Recap
donkomura
0
160
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Optimizing for Happiness
mojombo
379
70k
How to Ace a Technical Interview
jacobian
278
23k
Being A Developer After 40
akosma
90
590k
Producing Creativity
orderedlist
PRO
346
40k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
The Invisible Side of Design
smashingmag
301
51k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
BBQ
matthewcrist
89
9.8k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
21
1.4k
It's Worth the Effort
3n
185
28k
Mobile First: as difficult as doing things right
swwweet
223
9.9k
Transcript
Appleʹ͓͚Δ ϓϥΠόγʔͷ શ༰ΛѲ͢Δ iOSDC Japan 2023 day0 @akatsuki174
ࣗݾհ
• ˏakatsuki174 • גࣜձࣾΏΊΈॴଐ • Android/iOS/FlutterΤϯδχΞ • 1ࣇͷ • 9݄Լ०ʹୈೋࢠग़࢈༧ఆͷɹɹ
ͨΊɺࣄલऩʹͯࢀՃ
ࠓͷ
None
͓ॻ͖ • ϓϥΠόγʔશମͷ • ϓϥΠόγʔํɺతจࣈྻɺ৹ࠪΨΠυϥΠϯɺɹ Human Interface Guidelines etc… •
ݸʑͷݖݶͷ • ҐஔใɺτϥοΩϯάɺࣸਅ/ಈըɺ࿈བྷઌ etc…
None
• ൣғΛiOSͷຊମʹߜͬͯ·͢ • watchOSͳͲͷଞͷϓϥοτϑΥʔϜɺApp Clips, Widgetɹ ͳͲର֎Ͱ͢ • ࣌ؒͷ্ؔ…͢·Μ… •
۩ମతͳ࣮ํ๏ΘΓͱ͞Βͬͱྲྀ͠·͢ ҙॻ͖
Apple͕ߟ͑Δ ϓϥΠόγʔͱ
• ϓϥΠόγʔجຊతͳਓݖ • Ϣʔβ͔Βͷ৴པΛҡ࣋͢Δ্Ͱॏཁ ϓϥΠόγʔʹର͢Δߟ͑ IUUQTXXXBQQMFDPNKQQSJWBDZ
• ຖϓϥΠόγʔɺηΩϡϦςΟʹؔ͢Δಈը͕ग़͍ͯΔ • WWDC23 5ຊ • WWDC22 13ຊ • WWDC21
18ຊ • WWDC20 14ຊ etc… ϓϥΠόγʔͱWWDC IUUQTEFWFMPQFSBQQMFDPNWJEFPTQSJWBDZTFDVSJUZ
• σʔλͷ࠷খԽ • ΦϯσόΠεॲཧ • ಁ໌ੑͱཧ • ػີอ࣋ ϓϥΠόγʔอޢ4ݪଇ
• ඞཁͳ࣌ʹɺඞཁͳ͚ͩσʔλΛऔಘ͢Δ • ྫɿ • ҐஔใΛʮҰ͚ͩڐՄʯ • ҐஔใͷػೳΛར༻͢Δ·ͰɺϢʔβʹڐΛٻΊͳ͍ σʔλͷ࠷খԽ
• ػີσʔλΛͰ͖Δ͚ͩϩʔΧϧͰॲཧ͢Δ • ΦϑϥΠϯͰ͑Δɺ௨৴͕ͳ͍ߴͳͲͷϝϦοτ͋Δ • ྫɿ • SiriͷԻೝࣝϞσϧ • Create
MLʹΑΔػցֶश ΦϯσόΠεॲཧ
• σʔλͷ༻ํ๏ڞ༗ઌΛ໌֬ʹ͢Δ • ࣗͷҙࢥͰσʔλΛཧ͢Δ • ྫɿ • Sign in with
Apple • AppϓϥΠόγʔϨϙʔτʢޙड़ʣ • ϓϥΠόγʔϥϕϧʢޙड़ʣ ಁ໌ੑͱཧ
• ҆શʹอɺཧ͢Δ • ྫɿ • ੜମೝূ ػີอ࣋ʢηΩϡϦςΟʣ
• ࣍ͷΑ͏ͳใʹΞΫηε͍ͨ͠ͱ͖ɺγεςϜΞϥʔτΛɹ ग़ͯ͠ڐՄΛಘΔඞཁ͕͋Δ • ҐஔใɺϔϧεέΞɺͦͷଞݸਓΛಛఆͰ͖Δใ • ΧϝϥϚΠΫͳͲͷσόΠεͷػೳ • BluetoothσόΠεͳͲͷอޢ͞ΕͨϦιʔε •
σόΠεͷࠂࣝผࢠ ඞཁͳͱ͖ʹڐՄΛಘΔ
ৄ͘͠…
ৄ͘͠…
purpose strings ʢతจࣈྻʣͷॻ͖ํ
• ڐՄͷϦΫΤετΛ͢ΔγεςϜΞϥʔτʹදࣔ͞ΕΔจࣈྻ • Info.plistͰઃఆ͢Δ తจࣈྻͱ
• σʔλͷ༻్͕۩ମతʹઆ໌͞Ε͍ͯΔ͔ • σʔλͷ༻ํ๏ͷྫ͕ࣔ͞Ε͍ͯΔ͔ తจࣈྻͷApp Store৹ࠪ؍
App Tracking TransparencyΞϥʔτྫ ༻్❌ ༻ํ๏❌ τϥοΩϯάΛڐՄ͠ ͳ͍߹ͷ͜ͱʹ͍ͭ ͯݴٴ͍ͯ͠Δ👌 IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZUFDIUBMLT ༻్⭕
༻ํ๏⭕
ΧϝϥΞϥʔτྫ IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZUFDIUBMLT ͗͢Δ ؆ܿ👌
ৄ͘͠…
Ґஔใ
ϦΫΤετྫ ༻தͷΈڐՄ ৗʹڐՄ
γεςϜΞϥʔτྫ IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED ༻தͷΈڐՄ ৗʹڐՄ
• ͬ͘͟Γݴ͏ͱҎԼͷύλʔϯ͕ଘࡏ͢Δ • ະઃఆ • ʮৗʹڐՄʯ • ʮҰ࣌తʹڐՄʯ • ʮ༻தͷΈڐՄʯ
• ʮڐՄ͠ͳ͍ʯ ڐՄঢ়ଶ
ڐՄεςʔλεભҠਤ IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED
• ࠷খݶͷҐஔใఏڙͰࡁΉΑ͏ɺʮਖ਼֬ͳҐஔใʯΛΦϑʹ ͢Δػೳ • ΞϓϦଆͰΦϓτΞτ͢Δ͜ͱͰ͖ͳ͍ • iOS 14͔Βొ ਖ਼֬ͳҐஔใ
γεςϜΞϥʔτྫ
• UIKitCLLocationButtonɺSwiftUILocationButton • ʮඞཁͳͱ͖ʹҰ͚ͩҐஔใͷΞΫηεཁٻΛ͢Δʯ͕؆୯ ʹ࣮ݱͰ͖Δ • ͜ͷϘλϯࣗମʹҐஔใऔಘػೳͳ͍ • iOS 15Ҏ্Ͱ༻Մೳ
LocationButton
None
γεςϜΞϥʔτྫ
ৄ͘͠…
App Tracking Transparency
IUUQTEFWFMPQFSBQQMFDPNKQBQQTUPSFVTFSQSJWBDZBOEEBUBVTF γεςϜΞϥʔτྫ
• ࣍ͷ͜ͱΛ͢Δ࣌ϢʔβͷڐՄΛٻΊɺ AppTrackingTransparencyϑϨʔϜϫʔΫΛ༻͠ͳ͚ΕͳΒ ͳ͍ • IDFAʹΞΫηε͢Δ • ϢʔβΛτϥοΩϯά͢Δ • iOS
14.5Ҏ߱ରԠඞਢ App Tracking TransparencyʢATTʣͱ
• Identi fi er for Advertisersʢࠂࣝผࢠʣ • ݸʑͷσόΠεʹׂΓͯΒΕΔҰҙͷࣝผࢠ • ࠂओɺࠂωοτϫʔΫIDFAΛͬͯใΛऩू͠ɺࠂ
λʔήςΟϯάͳͲʹ׆༻͢Δ • iOS 14.5͔ΒσϑΥϧτͰऔΕͳ͘ͳͬͨ IDFAͱ
• ΞϓϦͰऩूͨ͠ಛఆͷΤϯυϢʔβ·ͨσόΠεʹؔ͢Δ σʔλΛ • αʔυύʔςΟͷσʔλͱඥ͚Δߦҝ • σʔλϒϩʔΧʔʹ͢ߦҝ τϥοΩϯάͱ
ϦΫΤετྫ
؆ܿʹ·ͱ·ͬͯΔࢿྉ IUUQTTQFBLFSEFDLDPNLPPPPPUBLFNJOJEGBBUUTLBEOFUXPSL
IUUQT[FOOEFWTFSJNBBSUJDMFTCEEBB
ࣸਅ/ಈը
γεςϜΞϥʔτྫ IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED ࣸਅΛબʜ
• iOS 14͔ΒPHAuthorizationStatusʹ.limited͕૿͑ͨ • Ϣʔβ͕બͨࣸ͠ਅ͔͠ΞϓϦ͔ΒΞΫηεͰ͖ͳ͍ঢ়ଶΛ࡞ Δ͜ͱ͕Ͱ͖Δ ʮࣸਅΛબ…ʯ
ϦΫΤετྫ ಡΈॻ͖ ॻ͖ࠐΈͷΈ ॻ͖ࠐΈͷΈ ಡΈॻ͖
• ࣸਅಈըϐοΧʔΛදࣔͰ͖Δ • Photo LibraryʹΞΫηε͠ͳ͍ͷͰɺγεςϜΞϥʔτΛɹ ग़͢ඞཁ͕ͳ͍ • ࣸਅಈըΛѻ͏ͳΒ͜ͷํ๏͕ਪ͞ΕΔ • iOS
14͔Β͑Δ PHPickerViewController
IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED
• PHPickerViewControllerSwiftUI͔Β͑ͳ͔ͬͨ • iOS 16͔ΒPhotosPickerΛSwiftUI͔Β͑Δ • ͪΖΜγεςϜΞϥʔτඞཁͳ͠ PhotosPicker
PhotosPicker༻ྫ
ৄ͘͠…
࿈བྷઌ
γεςϜΞϥʔτྫ
ϦΫΤετྫ
• ࿈བྷઌͷϐοΧʔΛදࣔͰ͖Δ • ϢʔβͷڐՄΛಘΔඞཁͳ͍ CNContactPickerViewController
None
CNContactPickerViewController༻ྫ
AppϓϥΠόγʔϨϙʔτ
• ΞϓϦ͕ͲΜͳσʔλʹΞΫηε͍ͯ͠Δ͔͕Θ͔ΔϨϙʔτ • ઃఆΞϓϦ͔Β֬ೝͰ͖Δ • σϑΥϧτͰOFF • JSONϑΝΠϧͱͯ͠ΤΫεϙʔτͰ͖Δ • iOS
15Ҏ߱ʹࡌ AppϓϥΠόγʔϨϙʔτͱ
None
None
Privacy Nutrition Labels ʢϓϥΠόγʔϥϕϧʣ
• Ϣʔβ͕ΞϓϦΛμϯϩʔυ͢ΔલʹΞϓϦͷϓϥΠόγʔɹ ํΛΔͨΊͷͷ • αʔυύʔςΟSDKͷ༰өͤ͞Δඞཁ͕͋Δ • App StoreͰݟΔ͜ͱ͕Ͱ͖Δ • WWDC20Ͱൃද͞Εͨ
• 2021ͷय़͔ΒରԠඞਢ ϓϥΠόγʔϥϕϧͱ
ϓϥΠόγʔϥϕϧྫ IUUQTXXXBQQMFDPNKQQSJWBDZMBCFMT
ϓϥΠόγʔϥϕϧྫ IUUQTXXXBQQMFDPNKQQSJWBDZMBCFMT
ৄ͘͠…
࣮ࡍͷରԠͪ͜Β IUUQTTQFBLFSEFDLDPNGSPNBUPNJPTEDKBQBO
Privacy Manifests
• αʔυύʔςΟSDK͕ͲΜͳϓϥΠόγʔใΛऩू͍ͯ͠Δͷ ͔ΛΞϓϦ։ൃऀ͕Δͷେม ϓϥΠόγʔϥϕϧରԠେม
• WWDC23Ͱൃද͞Εͨ • SDK͕ऩू͢ΔσʔλλΠϓɺͲͷΑ͏ʹ༻͞ΕΔ͔ͳͲ͕ એݴ͞Ε͍ͯΔ • αʔυύʔςΟSDK։ൃऀPrivacyInfo.xcprivacyͱ͍͏໊લͷ ϑΝΠϧΛ࡞͢Δ Privacy Manifests͕ొ
• ϓϩδΣΫτͷશͯͷPrivacy ManifestsΛूͨ͠Ϩϙʔτ • Xcode 15ͰɺApp Store͚ϏϧυΛ͢Δ࣌ʹग़ྗͰ͖Δ • ͜ΕΛݩʹϓϥΠόγʔϥϕϧΛهड़͢Δͱྑ͍ Privacy
report
Privacy report IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED
• ར༻͢Δͷʹʮཧ༝͕ඞཁͳAPIʯ • ༻͢Δ߹ɺͦͷཧ༝ΛPrivacy Manifests্Ͱ1ͭҎ্બ ͢Δඞཁ͕͋Δ Required Reason API
• 2023ळҎ߱ɺબ͍ͯ͠ͳ͚Ε։ൃऀʹ௨͕ߦ͘ • 2024य़Ҏ߱ɺ৽ن/طଘ྆ํͷΞϓϦʹબ͕͚ٛΒΕΔ Required Reason
• File timestamp APIs • System boot time APIs •
Disk space APIs • Active keyboard APIs • User defaults APIs Required Reason APIϦετ IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOCVOEMFSFTPVSDFT QSJWBDZ@NBOJGFTU@ fi MFTEFTDSJCJOH@VTF@PG@SFRVJSFE@SFBTPO@BQJ
ৄ͘͠…ʁ IUUQTGPSUFFKQJPTEDKBQBOQSPQPTBMECCFCCEFBECD
ৄ͘͠…
ϓϥΠόγʔΫΠζ
• ৹ࠪΨΠυϥΠϯɺHuman Interface GuidelinesΛݩʹΫΠζΛ ࡞ • ࣍ͷ֤ઃਖ਼͍͠Ͱ͠ΐ͏͔ʁ ϓϥΠόγʔͷཧղΛਂΊΑ͏
τϥοΩϯάͷڐՄΛಘΔͨΊʹγεςϜΞϥʔτΛग़͢߹ɺɹ τϥοΩϯάΛڐՄͯ͠΄͍͠ཧ༝Λઆ໌͢Δը໘ΛલʹڬΜͰ ྑ͍ ⭕ or ❌ Q1.
લʹը໘ΛڬΜͰOKɻ Human Interface GuidelinesͰʮϓϨΞϥʔτɹ ը໘ɺΠϯυɺϏϡʔʯʹͯɺͦͷද͕ࣔຬͨ ͖͢ཁ݅Λ͍ࣔͯ͠Δɻ ͨͩ͠ɺʮΩϟϯηϧʯͳͲͷճආϘλϯΛදࣔɹ ͢ΔͷNGɻ A1. ⭕
IUUQTEFWFMPQFSBQQMFDPNKQEFTJHOIVNBOJOUFSGBDFHVJEFMJOFTQSJWBDZ1SF BMFSUTDSFFOTXJOEPXTPSWJFXT
࣍ͷέʔετϥοΩϯάʹ֘͢Δ ⭕ or ❌ ʮࣗͷΞϓϦͰऩूͨ͠ใͱαʔυύʔςΟͷσʔλͷඥ ͚͕ϢʔβͷσόΠε্ͰͷΈߦΘΕɺϢʔβσόΠεΛಛఆͰ ͖ΔΑ͏ͳํ๏ͰσόΠεͷ֎෦ʹૹ৴͞ΕΔ͜ͱ͕ͳ͍ʯ Q2.
σόΠεͷ֎෦ʹૹ৴͞Εͯͳ͍ͷͰτϥοΩϯάʹ֘͠ͳ͍ɻ AppTrackingTransparencyϑϨʔϜϫʔΫΛͬͯϢʔβ͔ΒڐՄ ΛಘΔඞཁͳ͍ɻ A2. ❌ IUUQTEFWFMPQFSBQQMFDPNKQBQQTUPSFVTFSQSJWBDZBOEEBUBVTF
LocationButtonΛλοϓͯ͠Ґஔใͷ༻ΛڐՄ͠·ͨ͠ɻ ͜ͷ߹ɺ࣍ճىಈ࣌ʹλοϓͯ͠࠶γεςϜΞϥʔτ͕ɹ ग़ͯ͘Δ͜ͱͳ͍ ⭕ or ❌ Q3.
࠶γεςϜΞϥʔτ͕ग़ͯ͘Δ͜ͱͳ͍ɻ Ϣʔβ͕ΞϓϦΛΩϧ͢ΔͱڐՄແޮʹͳΔ͕ɺ࣍ʹ LocationButtonΛλοϓͨ͠ͱ͖ʹ·ͨڐՄ͕༗ޮʹͳΔɻ A3. ⭕ IUUQTEFWFMPQFSBQQMFDPNKQEFTJHOIVNBOJOUFSGBDFHVJEFMJOFT QSJWBDZ-PDBUJPOCVUUPO
ݱࡏ͕Θ͔Βͳ͍ͱҙຯ͕ͳ͍ΞϓϦͳͷͰɺҐஔใͷڐ ͕ಘΒΕͳ͔ͬͨΒͦͷػೳ͑ͳ͍Α͏ʹͨ͠ ⭕ or ❌ Q4.
ڐՄ͕ಘΒΕͳͯ͘ػೳΛར༻Ͱ͖ΔΑ͏ͳସखஈΛߟ͑Δ ͖ɻ ྫ͑༣ศ൪߸ΛखಈͰೖྗ͓͓ͤͯ͞ΑͦͷҐஔΛѲ͢Δɹ ͜ͱͰସͰ͖ͳ͍͔ͳͲΛݕ౼͢Δɻ A4. ❌ IUUQTEFWFMPQFSBQQMFDPNKQBQQTUPSFSFWJFXHVJEFMJOFTQSJWBDZ
ECαʔϏεͷΞϓϦΛ։ൃ͍ͯ͠·͢ɻੜΫʔϙϯΛɹ ͍ͨ͠ͷͰɺϢʔβͷੜཝΛඞਢ߲ʹͨ͠ɻ⭕ or ❌ Q5.
ੜཝΛඞਢʹ͢Δ͖Ͱͳ͍ɻ ECΞϓϦͷओཁػೳγϣοϐϯάͰ͋Γɺੜ͕Θ͔Βͳ͘ ͯར༻Ͱ͖ΔͣɻΑͬͯɺҙ߲ʹ͢Δͷ͕ྑ͍ɻ A5. ❌ IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZUFDIUBMLT
͍͍తจࣈྻ͕ࢥ͍ු͔ͳ͔ͬͨͷͰɺతจࣈྻΛઃఆɹ ͤͣʹ৹ࠪఏग़ͨ͠ɻ⭕ or ❌ Q6.
తจࣈྻඞͣઃఆ͢Δɻ ઃఆͤͣʹ৹ࠪఏग़ͯ͠ɺϦδΣΫτ͞Εͯ͠·ͬͨྫ͋Δɻɹ ͦͦઃఆ͠ͳ͍ͱΫϥογϡͯ͠͠·͏߹͋Δɻ A6. ❌
·ͱΊ
• ϓϥΠόγʔΛૄ͔ʹ͠ͳ͍Α͏ʹ͠Α͏ • ϓϥΠόγʔ4ݪଇΛक͍ͬͯΔ͔ࣗ͠Α͏ • దͳతจࣈྻΛઃఆ͠Α͏ ΞϓϦΛ࡞Δͱ͖
એ
• डΛ௨ա͙ͯ͢͠ͷॴʹ͋Γ·͢ • ΫΠζ/Ξϯέʔτʹճ͢ΔͱΠΠίτ͕͋ΔͷͰͥͻૣΊʹ ΏΊΈεϙϯαʔϒʔεʹ͓ӽ͍ͩ͘͠͞ • ΤϯδχΞืूͯ͠ΔͷͰڵຯ͋ΔํͥͻͲ͏ͧ ΏΊΈεϙϯαʔϒʔεΛग़ͯ͠·͢
͓ΘΓ