Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ProtocolBuffers/gRPCを安全に書き進めるためのエトセトラ

6ed12627fec46a135f1bce5d56f3568e?s=47 nwiizo
April 27, 2022

 ProtocolBuffers/gRPCを安全に書き進めるためのエトセトラ

OWASP Fukuoka Meeting #6
https://owasp-kyushu.connpass.com/event/244388/
#owaspfukuoka

6ed12627fec46a135f1bce5d56f3568e?s=128

nwiizo

April 27, 2022
Tweet

More Decks by nwiizo

Other Decks in Technology

Transcript

  1. 08"41'VLVPLB.FFUJOH!OXJJ[P 1SPUPDPM#VGGFSTH31$Λ 
 ҆શʹॻ͖ਐΊΔͨΊͷΤτητϥ

  2. ΞδΣϯμ w 1SPUPDPM#V ff FSTH31$ͱ͸ʁ w 1SPUPDPM#V ff FSTH31$Λ҆શʹॻ͖ਐΊΔͨΊͷʮา͖ํʯʹ͍ͭͯ

  3. !OXJJ[P ࡀݽಠ੒ਓஉੑ৞൒ͷ෦԰ʹ͸ݒਨόʔ͕͋Γ ɹேɺى͖δϜ΁ߦ͖ຊΛಡΜͰ࢓ࣄΛͯ͠ ɹ໷ɺ࠶ͼδϜ΁ߦ͖ຊΛಡΜͰ຾Δ͚ͩ ૐཿͷΑ͏ͳੜ׆Λͯ͠·͢

  4. ँࡑ 08"41'6,60,"Ͱ࿩͢಺༰͔ʁͱࢥ͍ࢸΔɻɻ 
 ಉ೔ɺ,VCFSOFUFT.FFUVQ5PLZP։࠵༧ఆ 
 ॳظɺ༧ఆ͍ͯͨ͠಺༰͔Β 
 େ͖͘ဃ཭ͯ͠͠·͍ਃ͠༁ͳ͍ͱࢥ͓ͬͯΓ·͢ɻ  ,VCFSOFUFTج൫ʹ͓͚Διϑτ΢ΣΞ։ൃͷηΩϡϦςΟ

    
 %BQSͷ֓೦ͱ࣮૷ʹ͍ͭͯ ݩʑ͠Α͏ͱ͍ͯͨ͠ͷ࿩
  5. ॴଐ૊৫ͷએ఻ͱͯ͠ɺ΋͘͠͸ܒ໤ͱͯ͠ͷ4FDVSJGZ 4FDVSJGZʢηΩϡϦϑΝΠʣͱ͸ 4FDVSJGZʢηΩϡϦϑΝΠʣ͸ɺ਍அର৅Λొ࿥͢ΔͱΫϥ΢υ্Ͱ੬ऑੑ਍அΛ 
 ࣮ࢪɺ਍அ݁ՌҰཡͱվળํ๏Λ෼͔Γ΍͘͢ఏࣔ͠·͢ 4FDVSJGZ։ൃʹ͓͚Δ૝͍ اۀ͕ɺ։ൃɾϦϦʔεεϐʔυΛམͱͣ͞ɺखܰʹʢඅ༻ɾ࣌ؒΛ͔͚ͣʣࣾ಺ͰηΩϡϦςΟ਍அΛ࣮ࢪ 
 ʢʹ%FW4FD0QTΛ࣮ݱʣ͠ɺαʔϏεΛఏڙ͢Δ͜ͱ͕ɺاۀɾΤϯυϢʔβʔͷརӹΛ࠷େԽ͍ͯ͘͜͠ͱʹͳΔͱ ߟ͍͑ͯ·͢ɻ͜ΕΛՄೳʹ͢Δπʔϧʮ4FDVSJGZʢηΩϡϦϑΝΠʣʯΛ։ൃ

     Beta ൛ ແঈఏڙ࣮ࢪதʂʂ IUUQTTFDVSJUZTSFBLFDPNTFDVSJGZ
  6. 1SPUPDPM#VGGFSTH31$ͱ͸ʁ

  7. 3&45GVM"1* 
 ͬͯͳΜ͚ͩͬʁ

  8. 3&45GVM"1*ͷ͓͞Β͍ w 3&45GVM"1*͸3&45ͱݺ͹ΕΔͭͷઃܭࢥ૝ʹै͏"1*ͷ͜ͱ w ঢ়ଶ؅ཧΛߦΘͣʹɺ΍ΓͱΓ͞ΕΔঢ়ଶ͸ͦΕࣗମͰ׬݁ͯ͠ղऍ͢Δ͜ͱ͕Ͱ͖Δ w ৘ใΛૢ࡞͢Δ໋ྩͷମܥ͕༧Ίఆٛɾڞ༗͞Ε͍ͯΔ w શͯͷ৘ใ͸൚༻తͳߏจͰҰҙʹࣝผ͞ΕΔ w

    ৘ใͷҰ෦ͱͯ͠ɺผͷ৘ใ΁ͷϦϯΫΛؚΊΔ͜ͱ͕Ͱ͖Δ w Ұൠతʹ͸γϯϓϧͳ8FCͷόοΫΤϯυΠϯλʔϑΣʔεͷҙͰ࢖ΘΕΔ w εςʔτϑϧͰ͋Γ w (&5 1045ͳͲͷ)551ϝιουΛར༻͠ w 63-63*ͰશͯͷϦιʔεΛҰҙʹࣝผ͢Δ  )551ϝκοτ 
 ೚ҙͷϑΥʔϚοτ
  9. 3&45GVM"1*ͷ͓͞Β͍ w 3&45GVM"1*ͷྑ͍ͱ͜Ζ w 63-63*ͷن཯͕͋ΔͷͰɺར༻͠΍͍͢ w 3&45ΫϥΠΞϯτΛར༻ͨ͠Ϧιʔεͷࢀর͕؆୯ w )551ඪ४ͷϝιουΛར༻͓ͯ͠Γɺ౷ҰతͳΠϯλʔϑΣʔεʹͳΔ w

    ঢ়ଶ؅ཧΛߦΘͳ͍ͨΊɺૄ݁߹ͳγεςϜΛ࣮ݱ͢Δ͜ͱ͕Ͱ͖Δ w 3&45GVM"1*ͷ՝୊ w ͋͘·Ͱઃܭࢥ૝Ͱ͋ΔɺϓϩτίϧͰ͸ͳ͍ w ϝλσʔλ΍εΩʔϚ৘ใΛผ్υΩϡϝϯτͱͯ͠࡞੒͕ඞཁ 
  10. H31$ͷલʹ31$ͱ͸ w αʔϏεؒͰͷ৘ใͷ΍ΓऔΓΛͲͷΑ͏ʹߦ͏͔ 
 ͱ͍͏ͷ͸ݹ͔͘Β͋Δ՝୊ͷͭͰ͢ɻ 

  11. H31$ͷલʹ31$ͱ͸ w 31$ͱ͸ 
 3FNPUF1SPDFEVSF$BMMͷུͰԕִखଓ͖ݺग़͠ͱ༁͞Ε·͢ɻ͢ͳΘͪɺ ผͷ৔ॴʹ͋ΔϓϩάϥϜΛݺͼग़ͦ͏ͱ͍͏ͷΛ໨తͱ͍ͯ͠·͢ɻҧ͏Ξϓ ϦέʔγϣϯϩδοΫΛ͔͋ͨ΋ࣗ෼ͷΞϓϦέʔγϣϯͷॲཧͱಉ͡Α͏ʹ ѻ͑Δ͜ͱ͕Ͱ͖Δͱ͍͏ͷ΋ಛ௃Ͱ͢ɻ  #ͱ͍͏αʔόʔͷ

    
 #ͱ͍͏ϓϩάϥϜ࣮ߦ͍ͨ͠ ࣮ߦͨ͠ʂ " # #Ͱ#Λ࣮ߦͨ͠ͷͰ 
 ݁Ռฦ͠·͢
  12. H31$ͷલʹ31$ͱ͸ w 31$ͱ͸ 
 ΫϥΠΞϯτ͸αʔόʔʹର࣮͠ߦ͢ΔॲཧΛࢦఆ͢Δύϥϝʔλ΍ Ҿ਺ͱͯ͠༩͑ΔσʔλΛૹ৴͠ɺͦΕʹର͠αʔόʔ͸ύϥϝʔλʹ Ԡͨ͡ॲཧΛ࣮ߦͯͦ͠ͷ݁ՌΛΫϥΠΞϯτʹฦ͢ɺͱ͍͏ͷ͕ 31$ͷجຊతͳྲྀΕʹͳΓ·͢ɻ 
 ͪͳΈʹɺH31$Ҏ֎ʹ΋+40/31$ɺ9.-31$ͳͲ͕͋Γ·͢ɻ

     #ͱ͍͏αʔόʔͷ 
 #ͱ͍͏ϓϩάϥϜ࣮ߦ͍ͨ͠ ࣮ߦͨ͠ʂ " # #Ͱ#Λ࣮ߦͨ͠ͷͰ 
 ݁Ռฦ͠·͢
  13. H31$ͷલʹ31$ͱ͸ w 3&45GVM"1*ͱͷࠩҟ w 3&45GVM"1*͕Ϧιʔεͷऔಘૢ࡞Λ໨తʹ͍ͯ͠Δͷʹରͯ͠ 
 31$͸ʮϦϞʔτϝιουͷίʔϧʯΛ໨తͱ͍ͯ͠Δ w 3&45GVM"1*͸͋͘·Ͱઃܭࢥ૝͕ͩ 


    31$͸ن֨ʹԊͬͨϓϩτίϧͱͯ͠ఏڙ͞ΕΔ  )551ϝκοτ 
 ೚ҙͷϑΥʔϚοτ
  14. H31$ͷྺ࢙ w H31$ͷલ਎Ͱ͋Δ4UVCCZͷొ৔ 
 H31$͸ɺ(PPHMF͕։ൃͨ͠31$ٕज़͕ϕʔεͱͳ͍ͬͯ·͢ɻ 
 (PPHMFͰ͸ଟ਺ͷίϯϙʔωϯτΛ૊Έ߹ΘͤͯαʔϏεΛ࣮ݱ͍ͯ͠·͢ɻ͍ΘΏΔɺϚΠΫϩαʔ ϏεΞʔΩςΫνϟͰγεςϜΛߏங͍ͯ͠Δ͜ͱͰ஌ΒΕΔ͕ɺ͜ΕΒͷαʔϏεؒͰ௨৴Λߦ͏ͨ ΊʹH31$ͷલ਎4UVCCZͱݺ͹ΕΔٕज़͕։ൃ͞Ε·ͨ͠ɻ 

    IUUQTHSQDJPCMPHQSJODJQMFT ˞ελϏʕ܉૤͸܉༻ݘͰ͋ΔɻୈҰ࣍ੈքେઓதɺࣗΒͷ೚຿Λશ͏͠ɺࠓ΋ΞϝϦΧͰޠΓܧ͕Ε͍ͯΔ໊܉૤Ͱ͋Δɻ
  15. H31$ͷྺ࢙ w ಠ࣮ࣗ૷͔Β)551Λ༻͍ͨH31$΁ 
 ͨͩɺ4UVCCZ͸(PPHMFͷΠϯϑϥ #PSHͳͲ Ҏ֎Ͱͷར༻͸૝ఆ͓ͯ͠Βͣɺಠࣗͷ࢓༷͕ଟ͘ɺ 4UVCCZͰ࢖༻͞Ε͍ٕͯͨज़ͱίϯηϓτ͕͍ۙ)551ͳͲͷٕज़͕ొ৔ͨ͜͠ͱ͔Βɺ(PPHMF ͸4UVCCZʹ͜ΕΒͷٕज़ΛऔΓೖΕͯΦʔϓϯԽ͢Δ͜ͱΛܾΊɺ೥ʹ044ϓϩμΫτͱͯ͠ H31$Λެ։͠·ͨ͠ɻ

     IUUQTHSQDJPCMPHQSJODJQMFT
  16. H31$ͷಛ௃ w )551ʹΑΔߴ଎ͳ௨৴ w 1SPUPDPMCV ff FST w ॊೈͳετϦʔϛϯάܗࣜ 

    ͪͳΈʹɺH31$ +40/΍)551 QSPUPCVGͷΑ͏ͳ૊Έ߹Θͤ΋ՄೳͰ͕͢ɺ 
 είʔϓ͕େ͖͘ͳΓ͗͢ΔͷͰҎ߱͸ग़͖ͯ·ͤΜɻ
  17. H31$ͷಛ௃ w )551ʹΑΔߴ଎ͳ௨৴ w όΠφϦʹγϦΞϥΠζ͞ΕͯૹΒΕͯ͘Δ w খ͞ͳ༰ྔͰసૹͰ͖Δ w ҰͭͷίωΫγϣϯͰෳ਺ͷSFTSFR͕Մೳ ॊೈͳετϦʔϛϯάܗࣜ

     H31$$MJFOU H31$4FSWFS )551$POOFDUJPO SFRVFTU SFTQPOTF
  18. H31$ͷಛ௃ w 1SPUPDPMCV ff FST w 1SPUPDPM#V ff FST͸(PPHMF͕։ൃͨ͠ ೥ʹΦʔϓϯιʔεԽ

    
 σʔλϑΥʔϚοτͰɺόΠφϦσʔλΛؚΉσʔλͰ΋ޮ཰తʹѻ͑ Δͷ͕ಛ௃Ͱ͢ɻ w *%- ΠϯλʔϑΣʔεهड़ݴޠ Λ༻͍ͯɺ 
 ೚ҙͷݴޠͷαʔόʔΫϥΠΞϯτ༻ͷίʔυΛࣗಈੜ੒ w QSPUPCVGͷσʔλΛγϦΞϥΠζɾσγϦΞϥΠζ͢Δʹ͸εΩʔϚ ৘ใ͕ඞཁͰ͢ɻH31$͸ٕज़తʹ͸ඞͣ͠΋εΩʔϚґଘͰ͸͋Γ· ͤΜ͕ɺ࣮૷্͸εΩʔϚͳ͠Ͱ࣮૷͢Δͷ͸ࠔ೉Ͱ͢ɻ w ͜ͷٕज़త੍໿ʹΑΓεΩʔϚϑΝʔετ։ൃ͕ڧ੍Ͱ͖Δ͜ͱ͕ QSPUPCVG H31$ͷڧΈͰ͸͋Γ·͢ɻ 
  19. H31$ͷಛ௃ w ॊೈͳετϦʔϛϯάܗࣜ w 6OBSZ31$ w ͭͷϦΫΤετʹରͯ͠ҰͭͷϨεϙϯεΛฦ͢Ұൠతͳ௨৴ Ͱ͢ɻޡղΛڪΕ͵ݴ͍ํΛ͢Δͱ3&45"1*ͷΑ͏ͳڍಈɻ w 4FSWFSTUSFBNJOH31$

    w ΫϥΠΞϯτ͔ΒૹΒΕ͖ͯͨҰͭͷϦΫΤετʹରͯ͠ɺෳ ਺ճʹ෼͚ͯϨεϙϯεΛฦ͢௨৴ํࣜͰ͢ɻ࠷ޙͷϨεϙϯ εΛฦͨ͠ޙ΋೚ҙʹαʔόʔͷ৘ใΛมߋʹԠͯ͡ΫϥΠΞ ϯτʹͦͷ৘ใΛૹΔ͜ͱ͕Ͱ͖·͢ɻ w $MJFOUTUSFBNJOH31$ w ΫϥΠΞϯτ͔ΒϦΫΤετΛ෼ׂͯ͠ૹͬͯαʔόʔ͸͢΂ ͯͷϦΫΤετΛड͚औ͔ͬͯΒϨεϙϯεΛฦ͠·͢ɻେ͖ ͳσʔλΛ1045͍ͨ͠ͱ͖ʹศརͰ͢ɻ w #JEJSFDUJPOBMTUSFBNJOH31$ w ΫϥΠΞϯτ͔ΒϦΫΤετ͕ૹΒΕ͖ͯͨͱ͖ʹαʔόʔͱ ΫϥΠΞϯτ͸ҰͭͷίωΫγϣϯΛཱ͓֬͠ޓ͍ʹ೚ҙͷλ ΠϛϯάͰϦΫΤετͱϨεϙϯεΛૹΓ͋͏͜ͱ͕Մೳʹͳ Γ·͢ɻ  H31$$MJFOU H31$4FSWFS )551$POOFDUJPO SFRVFTU SFTQPOTF
  20. H31$Λ࢖ͬͨΞϓϦέʔγϣϯ։ൃͷ঺հ w H31$Λ࢖ͬͨΞϓϦέʔγϣϯ։ൃΛߦ͏৔߹ͷखॱ͸ҎԼʹͳΓ·͢ w ຊࢿྉͰ͸(PΛར༻͠·͢  1SPUPDPM#V ff FSTΛ࢖ͬͨαʔϏεͷఆٛ 

    αʔϏεఆٛϑΝΠϧ͔Βͷίʔυͷੜ੒  ੜ੒ͨ͠ίʔυʹಠࣗͷࣗલͷ࣮૷Λ௥Ճ͢Δ 
  21. 1SPUPDPM#VGGFSTΛ࢖ͬͨαʔϏεͷఆٛ 1SPUPDPM#V ff FSTͷόʔδϣϯɻͱ͕͋Δ͕ɺࠓ͔Β΍ΔͳΒAQSPUPAҰ୒ TZOUBYlQSPUPz QBDLBHFࢦఆ͸ඞਢɻ)551ͷQBUIٙࣅϔομͷҰ෦ͱͯ͠࢖ΘΕΔɻ QBDLBHFQSPUPQBODBLFCBLFSW PQUJPOࢦఆ͸จࣈ௨ΓΦϓγϣϯͰແͯ͘΋ߏ͍·ͤΜɻ PQUJPOHP@QBDLBHFlHFOBQJz 8FMMLOPXOUZQFTͱݺ͹ΕɺλΠϜελϯϓ΍&NQUZϝοηʔδΛఆ͍ٛͯ͠·͢

    JNQPSUHPPHMFQSPUPCVGUJNFTUBNQQSPUP  H31$ͷεΩʔϚ͸ɺQSPUPϑΝΠϧΛهड़͢Δ͜ͱʹΑͬͯఆٛ͠·͢ QSPUP͕։ൃ࣌ͷϞδϡʔϧؒͷίϛϡχέʔγϣϯΛॿ͚Δ͜ͱʹ΋ܨ͕Γ·͢
  22. 1SPUPDPM#VGGFSTΛ࢖ͬͨαʔϏεͷఆٛ w ௨৴ํ๏΍αʔϏε͸TFSWJDFʹͯQSPUPϑΝΠϧͰࢦఆ w 31$ϝιουͷҾ਺ͱϨεϙϯεͷํͷલʹATUSFBNAΛ෇͚Δ͜ͱͰɺ 
 ෳ਺ͷϦΫΤετϨεϙϯεͱͳΔΑ͏ʹఆٛՄೳ   

     1BODBLF#BLFS4FSWJDF͸H31$ͷαʔϏεͰ͢ɻೋͭ31$Λఆ͍ٛͯ͠·͢ɻ   TFSWJDF1BODBLF#BLFS4FSWJDF\  #BLF͸ࢦఆ͞ΕͨϝχϡʔͷύϯέʔΩΛমؔ͘਺Ͱ͢ SQD#BLF #BLF3FRVFTU SFUVSOT #BLF3FTQPOTF \^ SQD#BLF4FSWFS4USFBN #BLF4FSWFS4USFBN3FRVFTU SFUVSOT TUSFBN#BLF4FSWFS4USFBN3FTQPOTF \^ SQD#BLF$MJFOU4USFBN TUSFBN#BLF$MJFOU4USFBN3FRVFTU SFUVSOT #BLF$MJFOU4USFBN3FTQPOTF \^ SQD#BLF#JEJ4USFBN TUSFBN#BLF#JEJ4USFBN3FRVFTU SFUVSOT TUSFBN#BLF#JEJ4USFBN3FTQPOTF \^  3FQPSU͸ϝχϡʔ͝ͱʹম͍ͨύϯέʔΩͷ਺Λฦ͠·͢  SQD3FQPSU 3FQPSU3FRVFTU SFUVSOT 3FQPSU3FTQPOTF \^ ^
  23. 1SPUPDPM#VGGFSTΛ࢖ͬͨαʔϏεͷఆٛ w .FTTBHFͷதͷϑΟʔϧυ͸ɺશͯܕΛ࣋ͭඞཁ͕͋Δ  1BODBLF͸ҰຕҰຕͷম͔ΕͨύϯέʔΩΛද͠·͢ɻ NFTTBHF1BODBLF\  FOVN͸ྻڍܕࠓճ͸.FTTBHF಺Ͱఆٛ͢ΔΧελϜܕͱͯ͠.FOVΛఆ͍ٛͯ͠Δ  FOVN.FOV\

      .&/6@6/,/08/@6/41&$*'*&%   .&/6@$-"44*$   .&/6@#"/"/"@"/%@8)*1  ^  JOU  fl PBU͸εΧϥʔܕͱݺ͹ΕΔجຊతͳܕɻܕͷछྨʹؔͯ͠͸ࢀরࢿྉʹγΣϑͷ໊લ  TUSJOHDIFG@OBNF  ઌ΄Ͳఆٛͨ͠ΧελϜܕΛఆ͍ٛͯ͠Δϝχϡʔ  .FOVNFOV  ͸୅ೖͰ͸ͳ͘ɺλάφϯόʔͱ͍͏ϑΟʔϧυͷࣝผࢠͱͯ͠ར༻͞ΕΔম͖۩߹Λද͢είΞͰ͢    fl PBUUFDIOJDBM@TDPSF  8FMMLOPXOUZQFTͱݺ͹ΕɺλΠϜελϯϓ΍&NQUZϝοηʔδΛఆٛͰ͖·͢ম͍ͨ೔࣌  HPPHMFQSPUPCVG5JNFTUBNQDSFBUF@UJNF ^
  24. QSPUPϑΝΠϧΛίϯύΠϧͯ͠ΈΑ͏ w H31$ͷαʔόʔ΍ΫϥΠΞϯτͷ਽ܗͱͳΔιʔείʔυ܈͸ 
 QSPUPϑΝΠϧ͔ΒQSPUPDΛ༻͍ͯੜ੒͢Δ͜ͱ͕Մೳ 
 QSPUPD͸೚ҙͷݴޠຖʹɺQSPUPDHFOYYYͱ͍͏ผͷίϚϯυΛ 
 ݺͼग़͢͜ͱͰɺ೚ҙͷݴޠ΍ϑΝΠϧΛੜ੒͢ΔΑ͏ʹ֦ுͰ͖·͢ 


    (Pͷ৔߹ʹ͸QSPUPDʹQSPUPDHFOHP QSPUPDHFOHPHSQDͱ͍͏ 
 ϓϥάΠϯΛ૊Έ߹ΘͤͯίϯύΠϧ  pancake.proto ੜ੒ϑΝΠϧ͸ԼهͷೋͭʹͳΓ·͢ ɾQBODBLFQBODBLFQCHPϝοηʔδ΍γϦΞϥΠζ ɾQBODBLFQBODBLF@HSQDQCHPH31$ͷαʔόΫϥΠΞϯτ ͜ΕΒΛࢀর࣮ͯ͠૷͍͖ͯ͠·͢ 
 
 αʔόʔଆʹ͸ੜ੒͞Εͨɻ 
 6OJNQMFNFOUFE1BODBLF#BLFS4FSWJDF4FSWFSΛ૊ΈࠐΜͰ࣮૷Λ͠·͢ ֤H13$ʹରͯ͠H13$εςʔλεͷ6OJNQMFNFOUFEΛฦ͢ϝιου 
 1BODBLF#BLFS4FSWJDF4FSWFSͷJOUFSGBDFʹ௥Ճ͠·͢ protoc --go_out=. --go_opt=paths=source_relative \ --go-grpc_out=. --go-grpc_opt=paths=source_relative \ pancake/pancake.proto
  25. ੜ੒͞ΕͨίʔυΛݩʹ(PͰͷಠࣗͷࣗલͷ࣮૷Λ௥Ճ͢Δ w 999999@HSQDQCHPΛݩʹ w 6OJNQMFNFOUFE1BODBLF#BLFS4FSWJDF4FSWFS΍ /FX1BODBLF#BLFS4FSWJDF$MJFOU Λ 
 ૊ΈࠐΜͰαʔόʔ΍ΫϥΠΞϯτͷ࣮૷Λߦ͍·͢ w

    ڍ͛ͨྫͱ͸ҧ͍·͕ͪ͢͜ΒͳͲΛࢀর͍ͩ͘͞ w IUUQTHJUIVCDPNHSQDHSQDHPUSFFNBTUFSFYBNQMFTIFMMPXPSME w ͜ͷޙʹࢦఆ͞ΕͨϝχϡʔͷύϯέʔΩΛম͍ͨ Γɺϝχϡʔ͝ͱʹম͍ͨύϯέʔΩͷ਺Λฦؔ͢ ਺Λ࣮૷͢ΔΜͰ͚͢Ͳͪΐͬͱ͜ͷลͰ 
 ऴΘΓʹ͓͖ͯ͠·͢  QBODBLFQBODBLF@HSQDQCHP $MJFOU 4FSWFS
  26. 1SPUPDPM#VGGFSTH31$Λ 
 ҆શʹॻ͖ਐΊΔͨΊͷ ʮา͖ํʯʹ͍ͭͯ

  27. ͋Εʁ͜Εͬͯӡ༻ʹͷ͍͍ͤͯΜ͚ͩͬʁ 

  28. ͋Εʁ͜Εͬͯӡ༻ʹͷ͍͍ͤͯΜ͚ͩͬʁ w ΄ͳɺ1SPEVDUJPO3FBEZͱҧ͏͔͊ w H31$ͷαʔόʔɾΫϥΠΞϯτ࣮૷ʹඞཁͳجૅ஌ࣝ͸੔͑Δ͜ͱ͕Ͱ͖·ͨ͠ɻ͔͠͠ɺઆ໌ͯ͠ ͖ͨίʔυͷத਎ͷͳ͞Λࠩ͠ஔ͍ͯ΋͜ΕΒΛ࣮ӡ༻͢Δ͜ͱ͸ͱͯ΋Ͱ͖·ͤΜ w ࣗಈςετ͸Ͳ͏͢Δͷʁ w 31$͕ΠϯλϑΣʔεͱͯ͠ఆٛ͞Ε͍ͯΔͷͰɺϞοΫͰ࣮૷

    w ϩά͸ʁ w H31$͸֤ݴޠͰΠϯλʔηϓλʔͱݺ͹ΕΔϦΫΤετॲཧͷલޙʹ೚ҙͷॲཧΛ௥Ճ͢Δ࢓૊ΈΛఏڙ͞Ε͍ͯΔͷͰͦͪΒΛར༻͢Δ w ηΩϡϦςΟ w (Pͷ৔߹BEWBODFEUMT΍QFN fi MFͱ͍͏ύοέʔδΛ࢖͏ͱূ໌ॻ͕ߋ৽͞Εͨࡍͷࣗಈ࠶ಡΈࠐΈ΍N5-4Λൺֱత؆୯ʹ࣮૷Ͱ͖·͢ɻ w ೝূͷ࢓૊Έ͕ͳ͍ w H31$ʹ͸0"VUIτʔΫϯ΍+40/8FC5PLFO +85 Λશͯͷ31$Ͱࣗಈతʹૹ৴͢Δػೳ͕͋Γ·͢ɻ w ϔϧενΣοΫ w HPPHMFHPMBOHPSHHSQDIFBMUIΛݺͼग़࣮ͯ͠ߦ͢Ε͹Α͍ɻ w FUD %FQMPZJO,VCFSOFUFT 1SPNFUIFVT H31$&DPTZTUFN  ࣮ӡ༻ʹ଱͑ΔͨΊʹ͸͞Βʹ͍͔ͭ͘ͷΑΓৄ͍͠಺༰ʹ͍ͭͯ͸ʮH31$6QBOE3VOOJOHʯΛಡΜͰΈ͍ͯͩ͘͞ʂ
  29. H31$6QBOE3VOOJOHΛಡΜͰ࣮ફ͔ͨ͠Βͱ͍ͬͯ ͱ͍͏͔ɺH31$ʹݶΒͣ೔ʑίʔυΛॻ͍͍ͯ͘தͰɺ ӡ༻తʹ͋·ΓΑΖ͘͠ͳ͍มߋͰ͋ͬͨΓॻ͖ํΛͯ͠͠·͏৔໘ͱ͍͏ͷ͸ Ͳ͏ͯ͠΋ɺग़͖ͯͯ͠·͍·͢ɻ

  30. ಛʹ͜Ε͔Βӡ༻͍ͯ͘͠தͰͦ΋ͦ΋ɺ ԿʹؾΛ͚ͭΔ΂͖͔Λ୭΋஌Βͳ͍··

  31. ίʔυͷੜ੒͸Ͳ͏͢Μͷʁ࠷ڧͷ.BLFGJMFʁ QSPUPϑΝΠϧͷߏ੒ͱ͔4UZMFHVJEFతʹ͜Ε͸Ͳ͏ͳͷΑʁ ઃܭʹҰ؏ੑ͕ͳ͘ഁյతͳมߋΛߦ͏࣌ʹͲ͏͢Ε͹͍͍ͷʁ શͯͷ஍ཕΛ౿Έൈ͘ελΠϧ

  32. H31$

  33. ز౓ͷো֐ӡ༻Λܦͯ෗ഊͤͣʹ ঃʑʹ࠷ڧͷߏ੒ʹ͚͍ۙͮͯ͘ ϚονϣελΠϧ

  34. શੈքతʹ1SPUPDPM#VGGFSTH31$͸։ൃӡ༻͕͞Ε͍ͯͯ ଟ͘ͷਓ͕΍ΔࣦഊͷϕʔεΛ͏·͘रͬͯ͘ΕΔ-JOU΍ߏ੒πʔϧ͕͋Γ ϕετϓϥΫςΟεͰνʔϜͷഎےΛ৳͹ͯ͘͠Ε·͢ ❤ 0, 0,

  35. VCFSQSPUPUPPM w ೥͙Β͍લ·Ͱʹೖ໳ͨ࣌͠ʹ͸͜Ε͕࠷ڧͷπʔϧͩͬͨ w ͦͷલʹVCFSQSPUPUPPMʹ͍ͭͯ w 1SPUPUPPM͸6CFS5FDIOPMPHJFTʹΑͬͯ։ൃ͞Εͨ1SPUPDPM#V ff FSTͷϢʔςΟ ϦςΟπʔϧͰ͢ɻ1SPUPUPPMʹ͸H31$ͷΤϯυϙΠϯτΛݺͼग़ͤ·͢ɻQSPUPϑ

    ΝΠϧͷੜ੒ɺQSPUPϑΝΠϧʹهड़ϛε͕ͳ͍͔ͷνΣοΫɺQSPUPϑΝΠϧ͔Β֤ ݴޠͷϑΝΠϧΛੜ੒ͳͲͷαϒίϚϯυ͕෇ଐ͍ͯ͠·͢ɻͨͩ͠ɺ͜ͷαϒίϚϯυ ͸GVMMTUPSZEFWHSQDVSMʹେ͖͘ґଘ͓ͯ͠Γɺ࣮࣭H31$VSMͷαϒηοτͱͳͬͯ ͍·͢ɻݱࡏ͸1SPUPDPM#V ff FSTͷϢʔςΟϦςΟπʔϧͱͯ͠#VGΛਪ঑͍ͯ͠· ͢ɻ 
  36. CVGCVJMECVG w 1SPUPDPM#V ff FSTͷϢʔςΟϦςΟπʔϧ 
 Ұ࣌ظͷϢʔςΟϦςΟπʔϧͷઓ૪ʹউͪൈ͍ͨͱݴͬͯ΋Α͍ 
 CVG͸ࣗಈϑΝΠϧݕग़ɺਖ਼֬ͳMJOUͱCSFBLJOHDIFDLFSTͷߏ੒Λબ୒͢ Δ͜ͱ͕Ͱ͖ͨΓɺΤϥʔग़ྗ͸ͲͷΤσΟλʔͰ΋؆୯ʹղੳՄೳʹͳͬͯ

    ͓Γ·͢  CVGCVJMECVG IUUQTEPDTCVGCVJMEJOUSPEVDUJPO
  37. CVGCVJMECVG͕ղܾ͠Α͏ͱ͍ͯ͠Δ՝୊ w "1*ͷઃܭʹ͸Ұ؏ੑΛ࣋ͨͤΔ w อकՄೳͰҰ؏ੑͷ͋Δ1SPUPCVG"1*Λॻ͘͜ͱ͸ɺอकՄೳͳ3&45+40/ϕʔεͷ"1*Λॻ͘͜ͱ΄ Ͳ޿͘ཧղ͞Ε͍ͯͳ͍ɻ w 1SPUP#VGͷύοέʔδϚωʔδϟʔ w ґଘؔ܎ΛίϐϖͰࣦഊ͢Δ͜ͱ΋͋ΔͷͰਏ͍

    w લํɾޙํޓ׵ੑΛڧ੍ͤ͞Δ w ࣮ࡍʹޙํޓ׵ੑͷ͋Δ1SPUPCVG"1*Λҡ࣋͢Δ͜ͱ͸޿࣮͘ફ͞Ε͓ͯΒͣɺڧ੍͢Δ͜ͱ͕೉͍͠ w 4UVCͷ഑෍ʹ͍ͭͯ w 1SPUPϑΝΠϧͷ഑෍ͱੜ੒෺ͷ഑෍͕՝୊ͱͯ͋͠Δ w ݶΒΕͨΤίγεςϜπʔϧ w ϞοΫαʔόੜ੒ɺ'V[[ςετɺυΩϡϝϯςʔγϣϯʹ͍ͭͯ 
  38. "1*ͷઃܭʹ͸Ұ؏ੑΛ࣋ͨͤΔ w "1*ͷઃܭʹ͸Ұ؏ੑ͕ͳ͍ w อकՄೳͰҰ؏ੑͷ͋Δ1SPUPCVG"1*Λॻ͘͜ͱ͸ɺอकՄೳͳ3&45+40/ϕʔεͷ "1*Λॻ͘͜ͱ΄Ͳ޿͘ཧղ͞Ε͍ͯͳ͍ɻඪ४ͷڧ੍ྗ͕ͳ͍ͨΊɺ૊৫ͷ1SPUPCVG "1*ʹҰ؏ੑ͕ͳ͘ɺઃܭ্ͷܾఆ͕"1*ͷকདྷͷ൓෮ੑʹෆ஫ҙʹӨڹ͢ΔՄೳੑ͕͋Γ ·͢ɻ  CVGMJOU

    HPPHMFUZQFEBUFUJNFQSPUP1BDLBHFOBNFHPPHMFUZQFTIPVMECFTV ff i YFEXJUIBDPSSFDUMZGPSNFEWFSTJPO TVDIBT HPPHMFUZQFWQFUWQFUQSPUP'JFMEOBNFQFU*%TIPVMECFMPXFS@TOBLF@DBTF TVDIBTQFU@JEQFUW QFUQSPUP4FSWJDFOBNF1FU4UPSFTIPVMECFTV ff i YFEXJUI4FSWJDF CVGHFOFSBUFCVGCVJME#6'@64&3QFUBQJT
  39. 1SPUP#VGͷύοέʔδϚωʔδϟʔ w ґଘؔ܎ͷ؅ཧ͸௨ৗɺޙճ͠ʹ͞ΕΔɻ1SPUPCVGͷϑΝΠϧ͸(JU)VCͷ ϦϙδτϦ͔Βίϐʔˍϖʔετͱ͍͏ΤϥʔΛى͜͠΍͍͢ϓϩηεͰɺख ࡞ۀͰϕϯμϦϯά͞Ε͍ͯ·͢ɻ 
 ϑΝΠϧؒͷґଘؔ܎Λ௥੻͠ɺ؅ཧ͢ΔͨΊͷूதతͳࢼΈ͸͋Γ·ͤΜ Ͱͨ͠ɻ͜Ε͸ɺOQNͷͳ͍+BWB4DSJQUɺDBSHPͷͳ͍3VTUɺϞδϡʔϧ ͷͳ͍(Pɺͦͯ͠ࢲ͕ͨͪ׳Ε਌͠ΜͰ͖ͨଞͷϓϩάϥϛϯάݴޠͷґଘ ੑϚωʔδϟΛॻ͘͜ͱʹࣅ͍ͯ·͢ɻ

     CVGSFHJTUSZMPHJO CVGCFUBSFHJTUSZSFQPTJUPSZDSFBUFCVGCVJME#6'@64&3QFUBQJTWJTJCJMJUZQVCMJD 'VMMOBNF$SFBUFE CVGCVJME#6'@64&3QFUBQJT 
 CVGQVTI ' fi BGGEB ff BGBHBGB IUUQTEPDTCVGCVJMEUPVSMPHJOUPUIFCTS
  40. લํɾޙํޓ׵ੑΛڧ੍ͤ͞Δ w લํɾޙํޓ׵ੑ͸ڧ੍͞Εͳ͍ɻલํ͓Αͼޙํޓ׵ੑ͸1SPUPCVGͷ໿ଋ ࣄͰ͕͢ɺ࣮ࡍʹޙํޓ׵ੑͷ͋Δ1SPUPCVG"1*Λҡ࣋͢Δ͜ͱ͸޿࣮͘ ફ͞Ε͓ͯΒͣɺڧ੍͢Δ͜ͱ͸ࠔ೉Ͱ͢ɻ  IUUQTEPDTCVGCVJMEUPVSEFUFDUCSFBLJOHDIBOHFT CVGCSFBLJOHBHBJOTUHJU QFUWQFUQSPUP1SFWJPVTMZQSFTFOUTFSWJDF1FU4UPSFXBTEFMFUFEGSPN fi

    MFQFUW QFUQSPUP'JFMEPONFTTBHF1FUDIBOHFEUZQFGSPNFOVNUPTUSJOHQFUW QFUQSPUP'JFMEXJUIOBNFQFU@JEPONFTTBHF%FMFUF1FU3FRVFTUDIBOHFEPQUJPO KTPO@OBNFGSPNQFU*%UPQFU*EQFUWQFUQSPUP'JFMEPONFTTBHF %FMFUF1FU3FRVFTUDIBOHFEOBNFGSPNQFU*%UPQFU@JE w "1*ͷҟͳΔόʔδϣϯؒͷॏେͳมߋΛݕग़Ͱ͖·͢ɻ
  41. 4UVCͷ഑෍ʹ͍ͭͯ w ελϒ഑෍͸ࠔ೉ͰະղܾͷϓϩηεͰ͢ɻ૊৫ ͸ɺQSPUPDͷϫʔΫϑϩʔΛҰݩԽͯ͠ੜ੒͞Ε ͨίʔυΛ഑෍͢Δ͔ɺ͢΂ͯͷαʔϏεΫϥΠ Ξϯτ͕ಠཱͯ͠QSPUPDΛ࣮ߦ͢Δ͜ͱΛཁٻ͢ Δ͔ɺͲͪΒ͔Λબ୒͠ͳ͚Ε͹ͳΓ·ͤΜɻ QSPUPDʢ͓Αͼؔ࿈͢ΔQSPUPDϓϥάΠϯʣΛ ৴པͰ͖Δํ๏Ͱ࢖༻͢Δʹ͸ٸͳֶशۂઢ͕͋ ΔͨΊɺ૊৫͸1SPUPCVGϑΝΠϧ΍ελϒͷ഑

    ෍ʹۤ࿑͠·͢ɻ w CVG XPSLcHFO ZBNMʹΑͬͯ؆ུԽ͍ͯ͠Δ   ᵓᴷᴷCVGXPSLZBNM ᵓᴷᴷQSPUP ᴹᵓᴷᴷBDNF ᴹᴹᵋᴷᴷXFBUIFS ᴹᴹᵋᴷᴷW ᴹᴹᵋᴷᴷXFBUIFSQSPUP ᴹᵋᴷᴷCVGZBNM ᵋᴷᴷWFOEPS ᵋᴷᴷQSPUPDHFOWBMJEBUF ᵓᴷᴷCVGZBNM ᵋᴷᴷWBMJEBUF ᵋᴷᴷWBMJEBUFQSPUP IUUQTEPDTCVGCVJMEDPO fi HVSBUJPOWCVGZBNM
  42. ݶΒΕͨΤίγεςϜπʔϧ w πʔϧͷΤίγεςϜ͕ݶఆతͰ͋Δɻ͔͠͠ɺϞοΫαʔόੜ੒ɺϑΝζςετɺυΩϡ ϝϯςʔγϣϯɺ͓Αͼͦͷଞͷ೔ৗతͳ"1*ʹؔ͢Δ໰୊͸ɺ1SPUPCVG"1*ͷͨΊʹ޿ ͘ඪ४Խ͞Ε͓ͯΒͣɺϢʔβϑϨϯυϦͰ΋͋Γ·ͤΜɻͦͷ݁ՌɺνʔϜ͸ఆظతʹं ྠΛ࠶ൃ໌͠ɺ+40/ΤίγεςϜΛෳ੡͢ΔͨΊʹΧελϜπʔϧΛߏங͍ͯ͠·͢ɻ w CVGHFOZBNMʹΑͬͯHSQDHBUFXBZ PQFOBQJWͳͲ 


    υΩϡϝϯτ΍ੜ੒Ͱ͖ΔΑ͏ʹઃఆͰ͖Δ  QMVHJOT SFNPUFCVGCVJMEHSQDFDPTZTUFNQMVHJOTHSQDHBUFXBZW PVUHFOQSPUPHP PQU QBUITTPVSDF@SFMBUJWF SFNPUFCVGCVJMEHSQDFDPTZTUFNQMVHJOTPQFOBQJWW PVUHFOPQFOBQJW
  43. ·ͱΊ͸ͳ͍

  44. ࢀߟࢿྉ w 8FC"1*5IF(PPE1BSUT w IUUQTXXXPSFJMMZDPKQCPPLT w (PݴޠͰͷH31$ίʔυੜ੒ ೥݄Ҏ߱൛  w

    IUUQTOPUFDPNEE@UFDICMPHOOCCE w H31$ͷެࣜαΠτ w IUUQTHSQDJP w ΑΓৄࡉͳυΩϡϝϯτ܈ w IUUQTHSQDHJUIVCJP w H31$6QBOE3VOOJOH w IUUQTXXXBNB[PODPNH31$3VOOJOH#VJMEJOH"QQMJDBUJPOT,VCFSOFUFTEQ  
  45. ࢀߟࢿྉ w ΨʔυϨʔϧΛ੔උͯ͠ɺ҆৺ɾ҆શͳʮ(PʯϥΠϑΛίʔυΛηΩϡΞʹอͭͨΊʹղܾ͢΂͖ͭ ͷ՝୊ w IUUQTMPHNJKQUFDIBSUJDMFT w 1SPUPDPMCV ff FST

    w IUUQTEFWFMPQFSTHPPHMFDPNQSPUPDPMCV ff FST w #VG%PDT w IUUQTEPDTCVGCVJMEJOUSPEVDUJPO w