Slide 1

Slide 1 text

༗ࢁɹܓೋ "OESPJE#B[BBSBOE$POGFSFODF4QSJOH ઀৮֬ೝ"1* 
 &YQPTVSF8JOEPXNPEF΁ͷରԠʹ ޲͚ͨݕ౼ʹ͍ͭͯ

Slide 2

Slide 2 text

໨࣍ w ͸͡Ίʹ w &YQPTVSF/PUJ fi DBUJPOT"1*ͱ͸ w ઀৮֬ೝΞϓϦʮ$0$0"ʯͷ&YQPTVSF8JOEPXNPEFରԠ w 9BNBSJO޲͚&/"1*ϥΠϒϥϦ$BQQVDDJOP w &YQPTVSF8JOEPXNPEFҠߦʹ͋ͨͬͯͷ஫ҙ https://speakerdeck.com/keiji/android-bazaar-and-conference-2021-spring

Slide 3

Slide 3 text

C-LIS CO., LTD. ༗ࢁܓೋʢ"3*:".",FJKJʣ $-*4$0 -5% Photo : Koji MORIGUCHI (MORIGCHOWDER) "OESPJEΞϓϦ։ൃνϣοτσΩϧ ػցֶश͸ͪΐͬͱ΍ͬͨ͜ͱ͋Γ·͢ ઀৮֬ೝΞϓϦ$0$0"044ίϥϘϨʔλʔ https://speakerdeck.com/keiji/android-bazaar-and-conference-2021-spring

Slide 4

Slide 4 text

໔੹ࣄ߲%JTDMBJNFS ຊࢿྉͷ಺༰͸ɺ༗ࢁܓೋͷݸਓͷݟղͰ͋Γɺ 
 ॴଐ·ͨ͸ؔ༩͢Δ૊৫Λ୅ද͢Δ΋ͷͰ͸͋Γ·ͤΜɻ https://speakerdeck.com/keiji/android-bazaar-and-conference-2021-spring

Slide 5

Slide 5 text

αϙʔτ4VQQPSU https://blog.keiji.dev/2021/06/abc2021s ຊࢿྉͷ಺༰ʹؔ͢Δ͓໰͍߹Θͤɾαϙʔτ͸ɺ 
 ࣍ͷαΠτͰ͝Ҋ಺͠·͢ɻ

Slide 6

Slide 6 text

઀৮֬ೝ"1*ͱ͸

Slide 7

Slide 7 text

&YQPTVSF/PUJ fi DBUJPOT"1* &YQPTVSF/PUJ fi DBUJPOTʢ઀৮֬ೝʣ"1*͸ɺεϚʔτϑΥϯͷ#MVFUPPUIΛ ར༻ͯ͠ɺਓͱਓ͕઀৮ͨ͜͠ͱΛݕ஌ɺه࿥͢ΔͨΊͷ࢓૊Έɻ (PPHMFͱ"QQMF͕ڞಉͰ։ൃ͍ͯ͠Δ͜ͱ͔Βɺ("&/ʢ(PPHMF"QQMF &YQPTVSF/PUJ fi DBUJPOʣͱݺ͹ΕΔ͜ͱ΋͋Δɻ &YQPTVSF/PUJ fi DBUJPOT"1*ʢ&/"1*ʣΛ࢖ͬͨΞϓϦΛʮ઀৮֬ೝΞϓϦʯ ͱݴ͏ɻ ઀৮֬ೝΞϓϦͷར༻ऀ͸ɺར༻ऀ͕৽ܕίϩφ΢Πϧεʢ$07*%ʣײછ ঱ͷཅੑ͕֬ఆͨ͠ͱ͖ʹɺҰఆظؒ಺ʢײછྗΛ࣋ͭͱ͞ΕΔظؒʣʹ઀৮͠ ͨଞͷ઀৮֬ೝΞϓϦͷར༻ऀʹಗ໊Ͱ௨஌Ͱ͖Δɻ

Slide 8

Slide 8 text

઀৮Λه࿥͢Δ࢓૊Έ &/"1*͸ɺಈ࡞͢Δ୺຤ͷ#MVFUPPUIΛ࢖ͬͯ৘ใΛൃ৴ɺ·ͨ͸ଞͷ୺຤͕ ൃ৴ͨ͠৘ใΛड৴ͯ͠ه࿥͢Δɻ

Slide 9

Slide 9 text

ൃ৴͞Ε͍ͯΔ৘ใ

Slide 10

Slide 10 text

4FSWJDF%BUBηΫγϣϯ 17 16 6f fd 29 ac 0d 91 7a 59 97 2d 63 cd b2 cd b5 89 17 40 35 f6 0e b9 Rolling Proximity Identi fi er 16 bytes Encrypted 
 Metadata 4 bytes Length 1 byte Type 1 byte UUID 1 byte 23 0xfd6f 16 https://covid19-static.cdn-apple.com/applications/covid19/current/static/contact-tracing/pdf/ExposureNoti fi cation-BluetoothSpeci fi cationv1.2.pdf

Slide 11

Slide 11 text

3PMMJOH1SPYJNJUZ*EFOUJ fi FSʢ31*ʣ 17 16 6f fd 29 ac 0d 91 7a 59 97 2d 63 cd b2 cd b5 89 17 40 35 f6 0e b9 Rolling Proximity Identi fi er 16 bytes Encrypted fi cation-BluetoothSpeci fi cationv1.2.pdf

Slide 12

Slide 12 text

3PMMJOH1SPYJNJUZ*EFOUJ fi FS͸มԽ͢Δ

Slide 13

Slide 13 text

31*͸5&,͔Βੜ੒͞ΕΔ 5FNQPSBSZ&YQPTVSF,FZʢ5&,ʣ Ұఆ࣌ؒͰมߋ͞ΕΔCZUFͷϥϯμϜͳ஋ɻݱࡏͷ࢓༷Ͱ͸࣌ؒʹҰճม ߋ͞ΕΔͨΊɺʮ೔࣍ݤʯͱݺ͹ΕΔ͜ͱ΋͋Δɻ 5&,ͷ༗ޮظؒ i ʹੜ੒͞ΕΔ31*͸ɺ࣍ͷࣜͰද͞ΕΔɻ TEK → RPIͷܭࢉ͸͔ΜͨΜ RPI → TEKΛܭࢉ͢Δͷ͸Ή͔͍ͣ͠ https://covid19-static.cdn-apple.com/applications/covid19/current/static/contact-tracing/pdf/ExposureNoti fi cation-CryptographySpeci fi cationv1.2.pdf RPIKi ← HKDF(teki, NULL, UTF8(“EN-RPIK”), 16) RPIi,j ← AES128(RPIKi, PaddedDataj) ظؒ j ͷ৘ใؚ͕·ΕΔ

Slide 14

Slide 14 text

ཅੑऀొ࿥ ཅੑͱ൑ఆ͞Εͨར༻ऀ͕઀৮֬ೝΞϓϦͰཅੑऀొ࿥Λߦ͏ͱɺ઀৮֬ೝΞ ϓϦ͸ɺ&/"1*ʹΞΫηεͯ͠୺຤ʹه࿥͞Ε͍ͯΔ5&,Λऔಘͯ͠ɺײછྗ ͕͋Δͱ͞ΕΔظؒͷ΋ͷΛ਍அΩʔαʔόʔʹૹ৴ʢΞοϓϩʔυʣ͢Δɻ ˞୺຤ʹอଘ͞Ε͍ͯΔ5&,͸࠷େ೔෼ɻ ਍அΩʔαʔόʔ ઀৮֬ೝΞϓϦ TEK TEK TEK TEK TEK TEK

Slide 15

Slide 15 text

਍அΩʔΛ഑෍ ਍அΩʔαʔόʔ͸ཅੑऀͷ5&,Λ·ͱΊͯిࢠॺ໊Λͯ͠ʮ਍அΩʔʢ%JBHOPTJT ,FZʣʯΛ࡞੒ɺެ։͢Δɻ ઀৮֬ೝΞϓϦ͸ɺҰఆ࣌ؒ͝ͱʹ਍அΩʔαʔόʔʹ਍அΩʔΛϦΫΤετɾμ΢ϯ ϩʔυ͢Δɻ ਍அΩʔαʔόʔ ઀৮֬ೝΞϓϦ TEK TEK TEK TEK TEK TEK ిࢠॺ໊ ਍அΩʔ ઀৮֬ೝΞϓϦ ઀৮֬ೝΞϓϦ

Slide 16

Slide 16 text

઀৮֬ೝ ઀৮֬ೝΞϓϦ͸ɺऔಘͨ͠਍அΩʔΛ઀৮ͱΈͳ͢৚݅ͱͱ΋ʹ&/"1*ʹೖ ྗ͢Δɻ &/"1*͸ɺ਍அΩʔʹؚ·ΕΔ5&,͔Βɺظؒ಺ʹଘࡏ͢Δ31*Λܭࢉͯ͠ɺ ઃఆ͞Εͨ৚݅ʹ߹͏઀৮͕ه࿥͞Ε͍ͯΔ͔Λ֬ೝ͢Δɻ ৚݅ʹ߹͏઀৮͕ه࿥͞Ε͍ͯΕ͹ʮ઀৮͋Γʯͱͯ͠઀৮֬ೝΞϓϦʹ݁Ռ Λฦ͢ɻ ઀৮֬ೝΞϓϦ͸ɺཅੑऀͱͷೱް઀৮ͱͯ͠ར༻ऀʹදࣔ͢Δɻ

Slide 17

Slide 17 text

"exposure_summary": { "AttenuationDurationsInMinutes": [ 1800, 480, 0 ], "DaysSinceLastExposure": 0, "MatchedKeyCount": 2, "MaximumRiskScore": 255, "SummationRiskScore": 54560 }, … &YQPTVSF4VNNBSZ 
 &YQPTVSF*OGPSNBUJPO https://github.com/keiji/chino/wiki/Sample-ExposureData-iOS-(V1) "exposure_informations": [ { "AttenuationDurationsInMinutes": [ 1436, 0, 0 ], "AttenuationValue": 26, "DateMillisSinceEpoch": 1622851200000, "Duration": 30.0, "TotalRiskScore": 256, "TransmissionRiskLevel": 4 }, … https://github.com/keiji/chino/wiki/Sample-ExposureData-Android-(Legacy-v1)

Slide 18

Slide 18 text

Slide 19

Slide 19 text

#MVFUPPUIͷి೾ڧ౓΍ड৴ײ౓ ୺຤ؒͷࠩҟ

Slide 20

Slide 20 text

&ODSZQUFE.FUBEBUB 17 16 6f fd 29 ac 0d 91 7a 59 97 2d 63 cd b2 cd b5 89 17 40 35 f6 0e b9 Rolling Proximity Identi 
 Metadata 4 bytes Length fi cation-BluetoothSpeci fi cationv1.2.pdf

Slide 21

Slide 21 text

&ODSZQUFE.FUBEBUB ʠ"TTPDJBUFE&ODSZQUFE.FUBEBUB "&. Š" QSJWBDZQSFTFSWJOHFODSZQUFENFUBEBUBUIBUTIBMM CFVTFEUPDBSSZQSPUPDPMWFSTJPOJOHBOEUSBOTNJU 5Y QPXFSGPSCFUUFSEJTUBODFBQQSPYJNBUJPO 5IF"TTPDJBUFE&ODSZQUFE.FUBEBUBDIBOHFT BCPVUFWFSZNJOVUFT BUUIFTBNFDBEFODFBT UIF3PMMJOH1SPYJNJUZ*EFOUJ fi FS UPQSFWFOUXJSFMFTT USBDLJOHPGUIFEFWJDFʡ xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxx xx xx Major Minor 35 f6 0e b9 Reserved 1 byte Transmit power level 1 byte Versioning 1 byte LSB fi rst Reserved 1 byte Decrypt AES-CTR Reserved https://covid19-static.cdn-apple.com/applications/covid19/current/static/contact-tracing/pdf/ExposureNoti fi cation-BluetoothSpeci fi cationv1.2.pdf https://covid19-static.cdn-apple.com/applications/covid19/current/static/contact-tracing/pdf/ExposureNoti fi cation-CryptographySpeci fi cationv1.2.pdf

Slide 22

Slide 22 text

5SBOTNJUQPXFSMFWFMʢ59@QPXFSʣͱ344*DPSSFDUJPO σόΠε͝ͱͷి೾ಛੑʹΑΓڑ཭ͷܭଌޡࠩΛվળ͢Δ࢓૊Έɻ ൃ৴ଆσόΠε͸ɺൃ৴͢Δ৘ใʹɺ͋Β͔͡Ίܭଌͯ͋͠Δʮૹ৴ి೾ڧ౓ ͷิਖ਼஋ʢ5SBOTNJTTJPOQPXFSMFWFMʣʯΛ෇Ճ͢Δɻ ·ͨड৴ଆσόΠε΋ɺ৘ใΛड৴ͨ͠ࡍʹ344*ʹ͍ͭͯܭଌࡁΈͷิਖ਼஋Λ ద༻͢Δ͜ͱͰɺڑ཭ͷܭଌޡࠩΛվળ͢Δɻ ֤σόΠεͷิਖ਼஋͸ެ։͞Ε͍ͯΔɻ IUUQTEFWFMPQFSTHPPHMFDPNBOESPJEFYQPTVSFOPUJ fi DBUJPOT fi MFTFODBMJCSBUJPODTW (PPHMF͸ɺ୺຤ϝʔΧʔʹิਖ਼஋ͷܭଌͱఏڙΛݺͼ͔͚͍ͯΔɻ https://developers.google.com/android/exposure-noti fi cations/ble-attenuation-procedure

Slide 23

Slide 23 text

&/"1*ͷόʔδϣϯ

Slide 24

Slide 24 text

&/"1*ͷΞοϓσʔτ &/"1*͸ɺ(PPHMFͱ"QQMF͕ڞಉͰ։ൃ͍ͯ͠Δɻ(PPHMFͱ"QQMF͸&/ "1*ΛΞοϓσʔτ͢Δ͜ͱ͕͋Δɻ Ξοϓσʔτ͸(PPHMFͱ"QQMF͕ߦ͍ɺ઀৮֬ೝΞϓϦଆ͔Β͸੍ޚ͸Ͱ͖ͳ ͍ɻ (PPHMFͱ"QQMFͰΞοϓσʔτઓུ͕ҟͳΔɻ

Slide 25

Slide 25 text

&/"1*ͷΞοϓσʔτઓུ (PPHMFʢ"OESPJEʣ "1*͸ɺϓϥοτϑΥʔϜ͔Β෼཭͞Εͨ(PPHMF.PCJMF4FSWJDFTʢ(.4ʣͷ όʔδϣϯʹඥ෇͘ɻ"OESPJEͷόʔδϣϯʹґଘ͠ͳ͍ "QQMFʢJ04ʣ J04ͷόʔδϣϯʹඥ෇͘ɻݹ͍όʔδϣϯͷJ04Ͱ͸ɺͦͷ࣌఺ͰରԠ͍ͯ͠ Δ"1*͔͠࢖͑ͳ͍ɻ

Slide 26

Slide 26 text

όʔδϣϯͷมભ "OESPJE v1.5 earlier v1.5 - July 2020 v1.6 - August 2020 v1.7 - September 2020 v1.7.2 - October 2020 v1.8 - January 2021 J04 iOS 13.5 - May 2020 iOS 13.6 - July 2020 iOS 13.7 - September 2020 iOS 12.5 - December 2020 iOS 14.4 - January 2021

Slide 27

Slide 27 text

J04 iOS 13.5 - May 2020 iOS 13.6 - July 2020 iOS 13.7 - September 2020 iOS 12.5 - December 2020 iOS 14.4 - January 2021 "OESPJE v1.5 earlier v1.5 - July 2020 v1.6 - August 2020 v1.7 - September 2020 v1.7.2 - October 2020 v1.8 - January 2021 ೥݄ͷΞοϓσʔτͰ&YQPTVSF8JOEPX͕ಋೖ ExposureSummary 
 ExposureInformation DailySummary ExposureWindow

Slide 28

Slide 28 text

"exposure_summary": { "AttenuationDurationsInMinutes": [ 1800, 480, 0 ], "DaysSinceLastExposure": 0, "MatchedKeyCount": 2, "MaximumRiskScore": 255, "SummationRiskScore": 54560 }, … &YQPTVSF4VNNBSZ 
 &YQPTVSF*OGPSNBUJPO https://github.com/keiji/chino/wiki/Sample-ExposureData-iOS-(V1) "exposure_informations": [ { "AttenuationDurationsInMinutes": [ 1436, 0, 0 ], "AttenuationValue": 26, "DateMillisSinceEpoch": 1622851200000, "Duration": 30.0, "TotalRiskScore": 256, "TransmissionRiskLevel": 4 }, … https://github.com/keiji/chino/wiki/Sample-ExposureData-Android-(Legacy-v1)

Slide 29

Slide 29 text

"daily_summaries": [ { "DaysSinceEpoch": 1622937600000, "DaySummary": { "MaximumScore": 1860.0, "ScoreSum": 51660.0, "WeightedDurationSum": 51660.0 }, "ConfirmedClinicalDiagnosisSummary": null, "ConfirmedTestSummary": { "MaximumScore": 1860.0, "ScoreSum": 51660.0, "WeightedDurationSum": 51660.0 }, "RecursiveSummary": null, "SelfReportedSummary": null }, %BJMZ4VNNBSZ 
 &YQPTVSF8JOEPX "exposure_windows": [ { "CalibrationConfidence": 3, "DateMillisSinceEpoch": 1622937600000, "Infectiousness": 1, "ReportType": 1, "ScanInstances": [ { "MinAttenuationDb": 24, "SecondsSinceLastScan": 300, "TypicalAttenuationDb": 25 }, { "MinAttenuationDb": 24, "SecondsSinceLastScan": 240, "TypicalAttenuationDb": 25 }, … https://github.com/keiji/chino/wiki/Sample-ExposureData-iOS-(V2) https://github.com/keiji/chino/wiki/Sample-ExposureData-Android-(Exposure-Window-mode) ؒҧ͍

Slide 30

Slide 30 text

J04 iOS 13.5 - May 2020 iOS 13.6 - July 2020 iOS 13.7 - September 2020 iOS 12.5 - December 2020 iOS 14.4 - January 2021 "OESPJE v1.5 earlier v1.5 - July 2020 v1.6 - August 2020 v1.7 - September 2020 v1.7.2 - October 2020 v1.8 - January 2021 ϓϥοτϑΥʔϜͰ"1*ͷݺͼํ͕ҟͳΔ Version 2 Version 1 ExposureWindow mode Legacy v1 mode

Slide 31

Slide 31 text

&/"1*Λ࢖ͬͨ 
 ઀৮֬ೝΞϓϦͷ։ൃ

Slide 32

Slide 32 text

&/"1*ͷอޢ ઀৮֬ೝΞϓϦ ࣄલʹ(PPHMF"QQMF͔ΒೝূΛड͚ͨূ໌ॻͰॺ໊౳Λͨ͠ΞϓϦέʔγϣ ϯɾόΠφϦʹݶఆͯ͠ɺ&/"1*΁ͷΞΫηε͕ڐՄ͞ΕΔɻ ਍அΩʔαʔόʔ ਍அΩʔ͸ɺ(PPHMF"QQMFʹొ࿥͞Εͨূ໌ॻͰॺ໊͞Ε͍ͯΔඞཁ͕͋Δ ઀৮֬ೝΞϓϦ͕ɺ&/"1*ʹ઀৮֬ೝΛϦΫΤετ͢Δͱɺ&/"1*͸਍அ Ωʔͷॺ໊Λ֬ೝͯ͠ɺݕূͰ͖ͨ৔߹ͷΈ઀৮֬ೝ͕ߦΘΕΔɻ

Slide 33

Slide 33 text

&/"1*ͷσόοά

Slide 34

Slide 34 text

"OESPJE (PPHMF͕ϗϫΠτϦετʹొ࿥ͨ͠(PPHMFΞΧ΢ϯτΛϓϥΠϚϦΞΧ΢ϯ τͯ͠αΠϯΠϯͨ͠୺຤͕ඞཁɻ

Slide 35

Slide 35 text

σόοάઃఆ"OESPJE

Slide 36

Slide 36 text

com.apple.developer.exposure-notification com.apple.developer.exposure-notification-test com.apple.developer.exposure-notification-test-skip-file-verification J04 "QQMF͔ΒೝূΛड͚ͨ։ൃऀΞΧ΢ϯτͰൃߦͨ͠ಛผͳϓϩϏδϣχϯά ϓϩϑΝΠϧΛ࢖͏͜ͱͰσόοάϞʔυΛ༗ޮʹͨ͠ΞϓϦΛΠϯετʔϧ Ͱ͖Δɻ Entitlements.plist

Slide 37

Slide 37 text

઀৮֬ೝΞϓϦʮ$0$0"ʯͷ 
 &YQPTVSF8JOEPXNPEFରԠ

Slide 38

Slide 38 text

$0$0"͸9BNBSJOͰͰ͖͍ͯΔ ʠ9BNBSJO͸ɺ/&5Λ࢖༻ͯ͠ɺJ04ɺ"OESPJEɺ8JOEPXT޲͚ͷ࠷৽Ͱ ߴੑೳͳΞϓϦέʔγϣϯΛϏϧυ͢ΔͨΊͷΦʔϓϯιʔεͷϓϥοτ ϑΥʔϜͰ͢ɻʡ https://docs.microsoft.com/ja-jp/xamarin/get-started/what-is-xamarin 7JTVBM4UVEJPͰ։ൃ ࢖༻ݴޠ͸$ ϥΠϒϥϦɾύοέʔδ͸/V(FUΛ௨ͯ͡ར༻

Slide 39

Slide 39 text

9BNBSJO&YQPTVSF/PUJ fi DBUJPO 9BNBSJOެࣜͷ&/"1*༻ͷϥΠϒϥϦɻ $0$0"ʢ೔ຊʣͱ4NJUUFTUPQQʢσϯϚʔΫɾϊϧ΢Σʔʣ͕࠾༻͍ͯ͠ Δɻ $0$0" https://github.com/cocoa-mhlw/cocoa 4NJUUFTUPQ https://github.com/folkehelseinstituttet/Fhi.Smittestopp.App https://github.com/xamarin/XamarinComponents/tree/main/XPlat/ExposureNoti fi cation

Slide 40

Slide 40 text

&YQPTVSF8JOEPXNPEFରԠঢ়گ 9BNBSJO&YQPTVSF/PUJ fi DBUJPO͸ɺ೥݄೔࣌఺Ͱ &YQPTVSF8JOEPXNPEFʹରԠ͍ͯ͠ͳ͍ɻ ೥݄೔͔Β1VMM3FRVFTUʮ*NQMFNFOUUIFTIBSFE"1*GPSWʯͰ ࡞ۀதʢEFWBQJWϒϥϯνʣɻ https://github.com/xamarin/XamarinComponents/pull/955 ࠷ऴߋ৽͸݄೔ͱϲ݄Ҏ্ɺදͩͬͨಈ͖͕ͳ͍ঢ়گɻ

Slide 41

Slide 41 text

4NJUUF4UPQQ͸&YQPTVSF8JOEPXNPEFʹରԠ /V(FUύοέʔδʢ9BNBSJO&YQPTVSF/PUJ fi DBUJPOBMQIBOVQLHʣ ΛϩʔΧϧʹ͍࣋ͬͯΔɻ https://github.com/folkehelseinstituttet/Fhi.Smittestopp.App/tree/dev/NDB.Covid19/ TempNugetFeed ΋ͱ΋ͱόοΫάϥ΢ϯυॲཧΛಠ࣮ࣗ૷͢ΔͳͲɺ 9BNBSJO&YQPTVSF/PUJ fi DBUJPOʹґଘ͠ͳ͍࢓૊Έʹ͍ͯͨ͠ɻ https://github.com/folkehelseinstituttet/Fhi.Smittestopp.App/blob/dev/NDB.Covid19/ NDB.Covid19.iOS/Utils/BackgroundServiceHandler.cs https://github.com/folkehelseinstituttet/Fhi.Smittestopp.App/issues/223

Slide 42

Slide 42 text

9BNBSJO޲͚&/"1*ϥΠϒϥϦ $BQQVDDJOP

Slide 43

Slide 43 text

$BQQVDDJOPʢΧϓνʔϊʣͱ͸ Φʔϓϯιʔεͷ9BNBSJO޲͚&/"1*ϥΠϒϥϦɻ 9BNBSJO&YQPTVSF/PUJ fi DBUJPOͷΑ͏ʹόοΫάϥ΢ϯυॲཧΛϋϯυϦϯ ά͠ͳ͍ɻ ϓϥοτϑΥʔϜʢ"OESPJEJ04ʣͱ&/"1*ͷόʔδϣϯʢ-FHBDZW &YQPTVSF8JOEPXNPEFʣͦΕͧΕઃఆ߲໨Λಠཱ͍ͯ͠Δɻ https://github.com/keiji/chino/wiki/Default-ExposureCon fi guration "OESPJEJ04ͷബ͍ϥούʔͱͯ͠ಈ࡞͢Δ͜ͱΛ໨ࢦ͍ͯ͠Δɻ .*5ϥΠηϯεɻ https://github.com/keiji/chino

Slide 44

Slide 44 text

4BNQMFΞϓϦʢ"OESPJE J04ʣ Sample.Android Sample.iOS

Slide 45

Slide 45 text

ରԠ͍ͯ͠Δ"1* &/"1*ͷ༗ޮɾແޮ੾Γ׵͑ 5&,ཤྺͷऔಘ ઀৮֬ೝ -FHBDZ7 &YQPTVSF8JOEPXNPEF 1SFBVUIPSJ[F"1*

Slide 46

Slide 46 text

௨ৗͷ5&,औಘ

Slide 47

Slide 47 text

1SFBVUIPSJ[F"1*

Slide 48

Slide 48 text

<&YQPTVSF/PUJ fi DBUJPO>4VQQPSU1SF"VUIPSJ[BUJPO 9BNBSJOͷ&YQPTVSF/PUJ fi DBUJPO#JOEJOHଆͷରԠ͕ඞཁɻ 1VMM3FRVFTU͸݄೔ʹఏग़ࡁΈɻ https://github.com/xamarin/XamarinComponents/pull/1133

Slide 49

Slide 49 text

9BNBSJO'PSNTʢ1SJTNʣ࣮૷αϯϓϧ https://github.com/keiji/chino.prism

Slide 50

Slide 50 text

ݱঢ়ͷ՝୊ https://github.com/keiji/chino/issues

Slide 51

Slide 51 text

&YQPTVSF8JOEPXNPEFҠߦʹ 
 ͋ͨͬͯͷ஫ҙ

Slide 52

Slide 52 text

ϩʔΧϧ௨஌ͷ࣮૷ʢJ04ʣ ઀৮৘ใΛऔಘ͢Δͱ͖ʹ௨஌͕දࣔ͞Εͳ͍ ˠɹϩʔΧϧ௨஌Λ࣮૷͢Δඞཁ͕͋Δ

Slide 53

Slide 53 text

઀৮൑ఆͷઃఆ -FHBDZWͷઃఆ͸࠶ར༻Ͱ͖ͳ͍ͷͰɺ࠶౓ઃఆΛઃܭ͠௚͢ඞཁ͕͋Δɻ https://developer.apple.com/documentation/exposurenoti fi cation/enexposurecon fi guration ը૾͸Apple DeveloperΑΓҾ༻

Slide 54

Slide 54 text

"UUFOVBUJPO%VSBUJPO5ISFTIPME "apple_exposure_config_v2": { "attenuation_duration_thresholds": [ 50, 70, 90 ], https://developer.apple.com/documentation/exposurenoti fi cation/enexposurecon fi guration ը૾͸Apple DeveloperΑΓҾ༻

Slide 55

Slide 55 text

"OESPJEͱJ04ͰઃఆՄೳͳ஋ͷൣғ͕ҧ͏ ஋ͷൣғ͕ҟͳΔ߲໨͕͋ΔͷͰ஫ҙ͕ඞཁɻ "infectiousness_weights": { "High": 1.0, "Standard": 1.0, "None": 1.0 }, "report_type_weights": { "Con fi rmedClinicalDiagnosis": 1.0, "Con fi rmedTest": 1.0, "SelfReport": 1.0, "Recursive": 1.0, "Revoked": 1.0, "Unknown": 1.0 } "infectiousness_high_weight": 100.0, "infectiousness_standard_weight": 100.0, "report_type_con fi rmed_clinical_diagnosis_weight": 100.0, "report_type_con fi rmed_test_weight": 100.0, "report_type_recursive_weight": 100.0, "report_type_self_reported_weight": 100.0, 100 - 250 (iOS) 1.0 - 2.5 (Android)

Slide 56

Slide 56 text

"OESPJEͱJ04ͰઃఆՄೳͳ஋ͷൣғ͕ҧ͏ ஋ͷൣғ͕ҟͳΔ߲໨͕͋ΔͷͰ஫ҙ͕ඞཁɻ "report_type_con fi rmed_clinical_diagnosis_weight": 99.0, "report_type_con fi rmed_test_weight": 250.0, "report_type_recursive_weight": 251.0, "report_type_self_reported_weight": 1.0, 100 - 250 (iOS) RpTyW { CTest 250, CClin 99, SelfR 1, Recurs 251 }

Slide 57

Slide 57 text

1MBUGPSN͝ͱͷσʔλͷදݱͷҧ͍ https://github.com/keiji/chino/issues/34

Slide 58

Slide 58 text

https://github.com/keiji/chino/issues/34

Slide 59

Slide 59 text

"daily_summaries": [ { "DaysSinceEpoch": 1622937600000, "DaySummary": { "MaximumScore": 1860.0, "ScoreSum": 51660.0, "WeightedDurationSum": 51660.0 }, "ConfirmedClinicalDiagnosisSummary": null, "ConfirmedTestSummary": { "MaximumScore": 1860.0, "ScoreSum": 51660.0, "WeightedDurationSum": 51660.0 }, "RecursiveSummary": null, "SelfReportedSummary": null }, %BJMZ4VNNBSZ 
 &YQPTVSF8JOEPX "exposure_windows": [ { "CalibrationConfidence": 3, "DateMillisSinceEpoch": 1622937600000, "Infectiousness": 1, "ReportType": 1, "ScanInstances": [ { "MinAttenuationDb": 24, "SecondsSinceLastScan": 300, "TypicalAttenuationDb": 25 }, { "MinAttenuationDb": 24, "SecondsSinceLastScan": 240, "TypicalAttenuationDb": 25 }, … https://github.com/keiji/chino/wiki/Sample-ExposureData-iOS-(V2) https://github.com/keiji/chino/wiki/Sample-ExposureData-Android-(Exposure-Window-mode) ؒҧ͍

Slide 60

Slide 60 text

·ͱΊ &YQPTVSF8JOEPXNPEF͸ɺ&/"1*͔ΒಘΒΕΔ઀৮৘ใͷܗ͕ࣜมΘΔͩ ͚Ͱ͸ͳ͍ɻ ΞϓϦͦͷ΋ͷͷڍಈʢ௨஌λΠϛϯάͳͲʣ΋ௐ੔͢Δඞཁ͕͋Δɻ ઀৮൑ఆͷઃఆ஋Λ࠶ઃܭ͢Δඞཁ͕͋Δɻ ϓϥοτϑΥʔϜ͝ͱʹҟͳΔઃఆ஋ɾσʔλදݱ͕͋Δ͜ͱΛ೺Ѳɺௐ੔͠ ͨϥΠϒϥϦΛ࡞Δඞཁ͕͋Δʢ9BNBSJOݻ༗ͷ՝୊ʣɻ

Slide 61

Slide 61 text

ຊࢿྉ͸༗ࢁܓೋͷஶ࡞෺Ͱ͢ɻຊࢿྉͷશ෦ɺ·ͨ͸Ұ෦ʹ͍ͭͯɺஶ࡞ऀ͔ΒจॻʹΑΔڐ୚Λಘͣʹෳ੡͢Δ͜ͱ͸ې͡ΒΕ͍ͯ·͢ɻ ֤੡඼໊ɾϒϥϯυ໊ɺձ໊ࣾͳͲ͸ɺҰൠʹ֤ࣾͷ঎ඪ·ͨ͸ొ࿥঎ඪͰ͢ɻຊࢿྉதͰ͸ɺ˜ɺšɺäΛׂѪ͍ͯ͠·͢ɻ ຊࢿྉͷ಺༰͸ɺൃදऀݸਓͷݟղͰ͋Γɺॴଐ·ͨ͸ؔ༩͢Δ૊৫Λ୅ද͢Δ΋ͷͰ͸͋Γ·ͤΜɻ https://github.com/cocoa-mhlw/cocoa/ $0$0"΁ͷίϯτϦϏϡʔτ ͓଴͍ͪͯ͠·͢ɻ