$30 off During Our Annual Pro Sale. View Details »

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

nwiizo
April 27, 2022

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

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

nwiizo

April 27, 2022
Tweet

More Decks by nwiizo

Other Decks in Technology

Transcript

  1. 08"41'VLVPLB.FFUJOH!OXJJ[P
    1SPUPDPM#VGGFSTH31$Λ

    ҆શʹॻ͖ਐΊΔͨΊͷΤτητϥ

    View Slide

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

    View Slide

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

    View Slide

  4. ँࡑ
    08"41'6,60,"Ͱ࿩͢಺༰͔ʁͱࢥ͍ࢸΔɻɻ

    ಉ೔ɺ,VCFSOFUFT.FFUVQ5PLZP։࠵༧ఆ

    ॳظɺ༧ఆ͍ͯͨ͠಺༰͔Β

    େ͖͘ဃ཭ͯ͠͠·͍ਃ͠༁ͳ͍ͱࢥ͓ͬͯΓ·͢ɻ

    ,VCFSOFUFTج൫ʹ͓͚Διϑτ΢ΣΞ։ൃͷηΩϡϦςΟ

    %BQSͷ֓೦ͱ࣮૷ʹ͍ͭͯ
    ݩʑ͠Α͏ͱ͍ͯͨ͠ͷ࿩

    View Slide

  5. ॴଐ૊৫ͷએ఻ͱͯ͠ɺ΋͘͠͸ܒ໤ͱͯ͠ͷ4FDVSJGZ
    4FDVSJGZʢηΩϡϦϑΝΠʣͱ͸
    4FDVSJGZʢηΩϡϦϑΝΠʣ͸ɺ਍அର৅Λొ࿥͢ΔͱΫϥ΢υ্Ͱ੬ऑੑ਍அΛ

    ࣮ࢪɺ਍அ݁ՌҰཡͱվળํ๏Λ෼͔Γ΍͘͢ఏࣔ͠·͢
    4FDVSJGZ։ൃʹ͓͚Δ૝͍
    اۀ͕ɺ։ൃɾϦϦʔεεϐʔυΛམͱͣ͞ɺखܰʹʢඅ༻ɾ࣌ؒΛ͔͚ͣʣࣾ಺ͰηΩϡϦςΟ਍அΛ࣮ࢪ

    ʢʹ%FW4FD0QTΛ࣮ݱʣ͠ɺαʔϏεΛఏڙ͢Δ͜ͱ͕ɺاۀɾΤϯυϢʔβʔͷརӹΛ࠷େԽ͍ͯ͘͜͠ͱʹͳΔͱ
    ߟ͍͑ͯ·͢ɻ͜ΕΛՄೳʹ͢Δπʔϧʮ4FDVSJGZʢηΩϡϦϑΝΠʣʯΛ։ൃ

    Beta ൛ ແঈఏڙ࣮ࢪதʂʂ
    IUUQTTFDVSJUZTSFBLFDPNTFDVSJGZ

    View Slide

  6. 1SPUPDPM#VGGFSTH31$ͱ͸ʁ

    View Slide

  7. 3&45GVM"1*

    ͬͯͳΜ͚ͩͬʁ

    View Slide

  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ϝκοτ

    ೚ҙͷϑΥʔϚοτ

    View Slide

  9. 3&45GVM"1*ͷ͓͞Β͍
    w 3&45GVM"1*ͷྑ͍ͱ͜Ζ
    w 63-63*ͷن཯͕͋ΔͷͰɺར༻͠΍͍͢
    w 3&45ΫϥΠΞϯτΛར༻ͨ͠Ϧιʔεͷࢀর͕؆୯
    w )551ඪ४ͷϝιουΛར༻͓ͯ͠Γɺ౷ҰతͳΠϯλʔϑΣʔεʹͳΔ
    w ঢ়ଶ؅ཧΛߦΘͳ͍ͨΊɺૄ݁߹ͳγεςϜΛ࣮ݱ͢Δ͜ͱ͕Ͱ͖Δ
    w 3&45GVM"1*ͷ՝୊
    w ͋͘·Ͱઃܭࢥ૝Ͱ͋ΔɺϓϩτίϧͰ͸ͳ͍
    w ϝλσʔλ΍εΩʔϚ৘ใΛผ్υΩϡϝϯτͱͯ͠࡞੒͕ඞཁ

    View Slide

  10. H31$ͷલʹ31$ͱ͸
    w αʔϏεؒͰͷ৘ใͷ΍ΓऔΓΛͲͷΑ͏ʹߦ͏͔

    ͱ͍͏ͷ͸ݹ͔͘Β͋Δ՝୊ͷͭͰ͢ɻ

    View Slide

  11. H31$ͷલʹ31$ͱ͸
    w 31$ͱ͸

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

    #ͱ͍͏αʔόʔͷ

    #ͱ͍͏ϓϩάϥϜ࣮ߦ͍ͨ͠
    ࣮ߦͨ͠ʂ
    " #
    #Ͱ#Λ࣮ߦͨ͠ͷͰ

    ݁Ռฦ͠·͢

    View Slide

  12. H31$ͷલʹ31$ͱ͸
    w 31$ͱ͸

    ΫϥΠΞϯτ͸αʔόʔʹର࣮͠ߦ͢ΔॲཧΛࢦఆ͢Δύϥϝʔλ΍
    Ҿ਺ͱͯ͠༩͑ΔσʔλΛૹ৴͠ɺͦΕʹର͠αʔόʔ͸ύϥϝʔλʹ
    Ԡͨ͡ॲཧΛ࣮ߦͯͦ͠ͷ݁ՌΛΫϥΠΞϯτʹฦ͢ɺͱ͍͏ͷ͕
    31$ͷجຊతͳྲྀΕʹͳΓ·͢ɻ

    ͪͳΈʹɺH31$Ҏ֎ʹ΋+40/31$ɺ9.-31$ͳͲ͕͋Γ·͢ɻ

    #ͱ͍͏αʔόʔͷ

    #ͱ͍͏ϓϩάϥϜ࣮ߦ͍ͨ͠
    ࣮ߦͨ͠ʂ
    " #
    #Ͱ#Λ࣮ߦͨ͠ͷͰ

    ݁Ռฦ͠·͢

    View Slide

  13. H31$ͷલʹ31$ͱ͸
    w 3&45GVM"1*ͱͷࠩҟ
    w 3&45GVM"1*͕Ϧιʔεͷऔಘૢ࡞Λ໨తʹ͍ͯ͠Δͷʹରͯ͠

    31$͸ʮϦϞʔτϝιουͷίʔϧʯΛ໨తͱ͍ͯ͠Δ
    w 3&45GVM"1*͸͋͘·Ͱઃܭࢥ૝͕ͩ

    31$͸ن֨ʹԊͬͨϓϩτίϧͱͯ͠ఏڙ͞ΕΔ

    )551ϝκοτ

    ೚ҙͷϑΥʔϚοτ

    View Slide

  14. H31$ͷྺ࢙
    w H31$ͷલ਎Ͱ͋Δ4UVCCZͷొ৔

    H31$͸ɺ(PPHMF͕։ൃͨ͠31$ٕज़͕ϕʔεͱͳ͍ͬͯ·͢ɻ

    (PPHMFͰ͸ଟ਺ͷίϯϙʔωϯτΛ૊Έ߹ΘͤͯαʔϏεΛ࣮ݱ͍ͯ͠·͢ɻ͍ΘΏΔɺϚΠΫϩαʔ
    ϏεΞʔΩςΫνϟͰγεςϜΛߏங͍ͯ͠Δ͜ͱͰ஌ΒΕΔ͕ɺ͜ΕΒͷαʔϏεؒͰ௨৴Λߦ͏ͨ
    ΊʹH31$ͷલ਎4UVCCZͱݺ͹ΕΔٕज़͕։ൃ͞Ε·ͨ͠ɻ

    IUUQTHSQDJPCMPHQSJODJQMFT
    ˞ελϏʕ܉૤͸܉༻ݘͰ͋ΔɻୈҰ࣍ੈքେઓதɺࣗΒͷ೚຿Λશ͏͠ɺࠓ΋ΞϝϦΧͰޠΓܧ͕Ε͍ͯΔ໊܉૤Ͱ͋Δɻ

    View Slide

  15. H31$ͷྺ࢙
    w ಠ࣮ࣗ૷͔Β)551Λ༻͍ͨH31$΁

    ͨͩɺ4UVCCZ͸(PPHMFͷΠϯϑϥ #PSHͳͲ
    Ҏ֎Ͱͷར༻͸૝ఆ͓ͯ͠Βͣɺಠࣗͷ࢓༷͕ଟ͘ɺ
    4UVCCZͰ࢖༻͞Ε͍ٕͯͨज़ͱίϯηϓτ͕͍ۙ)551ͳͲͷٕज़͕ొ৔ͨ͜͠ͱ͔Βɺ(PPHMF
    ͸4UVCCZʹ͜ΕΒͷٕज़ΛऔΓೖΕͯΦʔϓϯԽ͢Δ͜ͱΛܾΊɺ೥ʹ044ϓϩμΫτͱͯ͠
    H31$Λެ։͠·ͨ͠ɻ

    IUUQTHSQDJPCMPHQSJODJQMFT

    View Slide

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

    ͪͳΈʹɺH31$+40/΍)551QSPUPCVGͷΑ͏ͳ૊Έ߹Θͤ΋ՄೳͰ͕͢ɺ

    είʔϓ͕େ͖͘ͳΓ͗͢ΔͷͰҎ߱͸ग़͖ͯ·ͤΜɻ

    View Slide

  17. H31$ͷಛ௃
    w )551ʹΑΔߴ଎ͳ௨৴
    w όΠφϦʹγϦΞϥΠζ͞ΕͯૹΒΕͯ͘Δ
    w খ͞ͳ༰ྔͰసૹͰ͖Δ
    w ҰͭͷίωΫγϣϯͰෳ਺ͷSFTSFR͕Մೳ ॊೈͳετϦʔϛϯάܗࣜ


    H31$$MJFOU H31$4FSWFS
    )551$POOFDUJPO
    SFRVFTU
    SFTQPOTF

    View Slide

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


    σʔλϑΥʔϚοτͰɺόΠφϦσʔλΛؚΉσʔλͰ΋ޮ཰తʹѻ͑
    Δͷ͕ಛ௃Ͱ͢ɻ
    w *%- ΠϯλʔϑΣʔεهड़ݴޠ
    Λ༻͍ͯɺ

    ೚ҙͷݴޠͷαʔόʔΫϥΠΞϯτ༻ͷίʔυΛࣗಈੜ੒
    w QSPUPCVGͷσʔλΛγϦΞϥΠζɾσγϦΞϥΠζ͢Δʹ͸εΩʔϚ
    ৘ใ͕ඞཁͰ͢ɻH31$͸ٕज़తʹ͸ඞͣ͠΋εΩʔϚґଘͰ͸͋Γ·
    ͤΜ͕ɺ࣮૷্͸εΩʔϚͳ͠Ͱ࣮૷͢Δͷ͸ࠔ೉Ͱ͢ɻ
    w ͜ͷٕज़త੍໿ʹΑΓεΩʔϚϑΝʔετ։ൃ͕ڧ੍Ͱ͖Δ͜ͱ͕
    QSPUPCVGH31$ͷڧΈͰ͸͋Γ·͢ɻ

    View Slide

  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

    View Slide

  20. H31$Λ࢖ͬͨΞϓϦέʔγϣϯ։ൃͷ঺հ
    w H31$Λ࢖ͬͨΞϓϦέʔγϣϯ։ൃΛߦ͏৔߹ͷखॱ͸ҎԼʹͳΓ·͢
    w ຊࢿྉͰ͸(PΛར༻͠·͢
    1SPUPDPM#V
    ff
    FSTΛ࢖ͬͨαʔϏεͷఆٛ
    αʔϏεఆٛϑΝΠϧ͔Βͷίʔυͷੜ੒
    ੜ੒ͨ͠ίʔυʹಠࣗͷࣗલͷ࣮૷Λ௥Ճ͢Δ

    View Slide

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

    H31$ͷεΩʔϚ͸ɺQSPUPϑΝΠϧΛهड़͢Δ͜ͱʹΑͬͯఆٛ͠·͢
    QSPUP͕։ൃ࣌ͷϞδϡʔϧؒͷίϛϡχέʔγϣϯΛॿ͚Δ͜ͱʹ΋ܨ͕Γ·͢

    View Slide

  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
    \^
    ^

    View Slide

  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
    ^

    View Slide

  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

    View Slide

  25. ੜ੒͞ΕͨίʔυΛݩʹ(PͰͷಠࣗͷࣗલͷ࣮૷Λ௥Ճ͢Δ
    w 999999@HSQDQCHPΛݩʹ
    w 6OJNQMFNFOUFE1BODBLF#BLFS4FSWJDF4FSWFS΍
    /FX1BODBLF#BLFS4FSWJDF$MJFOU
    Λ

    ૊ΈࠐΜͰαʔόʔ΍ΫϥΠΞϯτͷ࣮૷Λߦ͍·͢
    w ڍ͛ͨྫͱ͸ҧ͍·͕ͪ͢͜ΒͳͲΛࢀর͍ͩ͘͞
    w IUUQTHJUIVCDPNHSQDHSQDHPUSFFNBTUFSFYBNQMFTIFMMPXPSME
    w ͜ͷޙʹࢦఆ͞ΕͨϝχϡʔͷύϯέʔΩΛম͍ͨ
    Γɺϝχϡʔ͝ͱʹম͍ͨύϯέʔΩͷ਺Λฦؔ͢
    ਺Λ࣮૷͢ΔΜͰ͚͢Ͳͪΐͬͱ͜ͷลͰ

    ऴΘΓʹ͓͖ͯ͠·͢

    QBODBLFQBODBLF@HSQDQCHP
    $MJFOU
    4FSWFS

    View Slide

  26. 1SPUPDPM#VGGFSTH31$Λ

    ҆શʹॻ͖ਐΊΔͨΊͷ
    ʮา͖ํʯʹ͍ͭͯ

    View Slide

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

    View Slide

  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ʯΛಡΜͰΈ͍ͯͩ͘͞ʂ

    View Slide

  29. H31$6QBOE3VOOJOHΛಡΜͰ࣮ફ͔ͨ͠Βͱ͍ͬͯ
    ͱ͍͏͔ɺH31$ʹݶΒͣ೔ʑίʔυΛॻ͍͍ͯ͘தͰɺ
    ӡ༻తʹ͋·ΓΑΖ͘͠ͳ͍มߋͰ͋ͬͨΓॻ͖ํΛͯ͠͠·͏৔໘ͱ͍͏ͷ͸
    Ͳ͏ͯ͠΋ɺग़͖ͯͯ͠·͍·͢ɻ

    View Slide

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

    View Slide

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

    View Slide

  32. H31$

    View Slide

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

    View Slide

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

    0,
    0,

    View Slide

  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Λਪ঑͍ͯ͠·
    ͢ɻ

    View Slide

  36. CVGCVJMECVG
    w 1SPUPDPM#V
    ff
    FSTͷϢʔςΟϦςΟπʔϧ

    Ұ࣌ظͷϢʔςΟϦςΟπʔϧͷઓ૪ʹউͪൈ͍ͨͱݴͬͯ΋Α͍

    CVG͸ࣗಈϑΝΠϧݕग़ɺਖ਼֬ͳMJOUͱCSFBLJOHDIFDLFSTͷߏ੒Λબ୒͢
    Δ͜ͱ͕Ͱ͖ͨΓɺΤϥʔग़ྗ͸ͲͷΤσΟλʔͰ΋؆୯ʹղੳՄೳʹͳͬͯ
    ͓Γ·͢

    CVGCVJMECVG
    IUUQTEPDTCVGCVJMEJOUSPEVDUJPO

    View Slide

  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[[ςετɺυΩϡϝϯςʔγϣϯʹ͍ͭͯ

    View Slide

  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

    View Slide

  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

    View Slide

  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*ͷҟͳΔόʔδϣϯؒͷॏେͳมߋΛݕग़Ͱ͖·͢ɻ

    View Slide

  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

    View Slide

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

    υΩϡϝϯτ΍ੜ੒Ͱ͖ΔΑ͏ʹઃఆͰ͖Δ

    QMVHJOT
    SFNPUFCVGCVJMEHSQDFDPTZTUFNQMVHJOTHSQDHBUFXBZW
    PVUHFOQSPUPHP
    PQU
    QBUITTPVSDF@SFMBUJWF
    SFNPUFCVGCVJMEHSQDFDPTZTUFNQMVHJOTPQFOBQJWW
    PVUHFOPQFOBQJW

    View Slide

  43. ·ͱΊ͸ͳ͍

    View Slide

  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


    View Slide

  45. ࢀߟࢿྉ
    w ΨʔυϨʔϧΛ੔උͯ͠ɺ҆৺ɾ҆શͳʮ(PʯϥΠϑΛίʔυΛηΩϡΞʹอͭͨΊʹղܾ͢΂͖ͭ
    ͷ՝୊
    w IUUQTMPHNJKQUFDIBSUJDMFT
    w 1SPUPDPMCV
    ff
    FST
    w IUUQTEFWFMPQFSTHPPHMFDPNQSPUPDPMCV
    ff
    FST
    w #VG%PDT
    w IUUQTEPDTCVGCVJMEJOUSPEVDUJPO
    w

    View Slide