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.4k
Appleにおけるプライバシーの全容を把握する
2023/09/01(金) iOSDC Japan 2023 day0
akatsuki174
September 01, 2023
Tweet
Share
More Decks by akatsuki174
See All by akatsuki174
SwiftUI、UIKitでキャプチャを撮ろう!
akatsuki174
1
42
近年のAppleにおける位置情報とプライバシー
akatsuki174
3
400
オフライン勉強会ぼっち対策
akatsuki174
1
580
Xcode 15の新機能
akatsuki174
0
2.6k
AndroidにもSelect Photosがやってきた
akatsuki174
0
1.2k
Famm Android改善記
akatsuki174
0
340
Flutterアプリ開発にネイティブコードはどこまで求められるのか
akatsuki174
2
4.5k
UIKitのアップデート #WWDC22
akatsuki174
4
1.3k
職能/職種横断でチームの生産性を高める
akatsuki174
2
5.8k
Other Decks in Technology
See All in Technology
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
13
3.6k
C++26 エラー性動作
faithandbrave
2
710
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
140
アップデート紹介:AWS Data Transfer Terminal
stknohg
PRO
0
180
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
160
10分で学ぶKubernetesコンテナセキュリティ/10min-k8s-container-sec
mochizuki875
3
330
AWS re:Invent 2024で発表された コードを書く開発者向け機能について
maruto
0
190
AWS re:Invent 2024 ふりかえり
kongmingstrap
0
130
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
280
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
muziyoshiz
2
2.2k
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
300
5分でわかるDuckDB
chanyou0311
10
3.2k
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Optimising Largest Contentful Paint
csswizardry
33
3k
Music & Morning Musume
bryan
46
6.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Building Your Own Lightsaber
phodgson
103
6.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Bash Introduction
62gerente
608
210k
Six Lessons from altMBA
skipperchong
27
3.5k
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ݪଇΛक͍ͬͯΔ͔ࣗ͠Α͏ • దͳతจࣈྻΛઃఆ͠Α͏ ΞϓϦΛ࡞Δͱ͖
એ
• डΛ௨ա͙ͯ͢͠ͷॴʹ͋Γ·͢ • ΫΠζ/Ξϯέʔτʹճ͢ΔͱΠΠίτ͕͋ΔͷͰͥͻૣΊʹ ΏΊΈεϙϯαʔϒʔεʹ͓ӽ͍ͩ͘͠͞ • ΤϯδχΞืूͯ͠ΔͷͰڵຯ͋ΔํͥͻͲ͏ͧ ΏΊΈεϙϯαʔϒʔεΛग़ͯ͠·͢
͓ΘΓ