『プロフェッショナル SSL/TLS 読書会』 第 6 章

07b02dd38e4e3a53caf0e528e3bc9e6c?s=47 Ryo Kato
October 06, 2017

『プロフェッショナル SSL/TLS 読書会』 第 6 章

07b02dd38e4e3a53caf0e528e3bc9e6c?s=128

Ryo Kato

October 06, 2017
Tweet

Transcript

  1. ࣮૷ͷ໰୊ ʰϓϩϑΣογϣφϧ44-5-4ʱಡॻձ

  2. !IBTIFEIZQIFO w )BTI !IBTIFEIZQIFO  w 8FCEFWFMPQFS w +4 3VCZ

    4DBMB 3VTU 4FDVSJUZ FUDʜ w .P[JMMB4FDVSJUZ#MPH೔ຊޠ൛ w 8FCTFDVSJUZؔ࿈ͷ.%/هࣄ຋༁ w 44-ͱಉڃੜ
  3.  ূ໌ॻͷݕূ ʹ͓͚Δෆඋ ݹࠓ౦੢΍ͬͪ·ͬͨू ূ໌ॻͷݕূϓϩηεʹόάΛ ࢓ࠐΜͰ͠·ͬͨஉͷࢠͷΠϥετ

  4. #BTJD$POTUSBJOUTͷݕূෆඋ w #BTJD$POTUSBJOUTͱ͸ʢ෮शʣ w \
 D"#PPMFBO%FGBVMU'BMTF 
 QBUI-FO$POTUSBJOU*OUFHFS ."9 0QUJPOBM


    ^ w D" w $"ূ໌ॻʢଞͷূ໌ॻΛൃߦՄೳʣͷϑϥά w QBUI-FO$POTUSBJOU w ഑Լͷதؒ$"ʢ㱠ΤϯυΤϯςΟςΟʣͷ࠷େ਺ w লུ࣌͸Կ΋੍ݶ͠ͳ͍
  5. #BTJD$POTUSBJOUTͷݕূෆඋ w ྫ3PPU*OUFSNFEJBUF&OEFOUJUZ w ຊདྷߦ͏΂͖ॲཧʢ͓͓·͔ʹʣ w &OEFOUJUZͷ$PNNPO/BNFΛ֬ೝ w *OUFSNFEJBUFͷެ։伴Ͱ&OEFOUJUZΛݕূ w

    3PPUͷެ։伴Ͱ*OUFSNFEJBUFΛݕূ w *OUFSNFEJBUF͕$"ূ໌ॻͰ͋Δ͔ͷ֬ೝ
 Ұൠͷূ໌ॻʹଞͷূ໌ॻΛൃߦͤ͞ͳ͍ͨΊ
  6. #BTJD$POTUSBJOUTͷݕূෆඋ w *&Ͱ#BTJD$POTUSBJOUT͕ແࢹ͞Ε͍ͯΔ͜ͱΛ .PYJF.BSMJOTQJLFʢԾ໊ʣ͕ʹใࠂ w .JDSPTPGU͸ʹ৘ใެ։ w ݪҼ͸*&ݻ༗Ͱ͸ͳ͘$SZQUP"1* w XFCαʔόِ૷ɾϝʔϧॺِ໊૷ɾূ໌ॻϕʔε

    ͷೝূγεςϜͰͷಛݖঢ֨ɾίʔυॺِ໊૷ w ౰ॳ.JDSPTPGU͸एׯ୙ͯ͠ൃදͨ͠Β͘͠ɺ .PYJFᐌ͘l*EPO`UGFFMMJLFXBTUJOHUJNFXJUI UIF.JDSPTPGU13EFQBSUNFOUz .PYJF
  7. ࣭໰ w Q٭஫ʮΤϯυΤϯςΟςΟূ໌ॻΛൃߦ ͢Δ$"ͷূ໌ॻͰ͸ɺηΩϡϦςΟ্ͷཧ༝ʹ ΑΓԼҐ$"ূ໌ॻΛൃߦͰ͖ͯ͸͍͚·ͤΜɻ ͜ͷಛݖ͕ඞཁʹͳΔͷ͸ɺূ໌ॻνΣʔϯʹ͓͚ Δଞͷ͢΂ͯͷதؒ$"ূ໌ॻͰ͢ɻʯ w ηΩϡϦςΟ্ͷཧ༝ͱ͸ʁ

  8. ূ໌ॻνΣʔϯݕূͷܽؕ w .BSUJOWPO(BHFSO͕ʹใࠂ w $7& w ໰୊ͱͳͬͨূ໌ॻνΣʔϯ
 <தؒূ໌ॻ><ࡶͳূ໌ॻ><೚ҙͷϧʔτূ໌ॻ> w ೚ҙͷϧʔτূ໌ॻ͸ଞͷূ໌ॻͱશ͘ແؔ܎

    w Կނ͔HOVUMTDMJͩͱWBMJEͳνΣʔϯͱͳΔ w ड৴ͨ͠νΣʔϯͷதʹϧʔτূ໌ॻ͸௨ৗؚ·Ε ͳ͍ɺͱ͍͏ղऍͷؒҧ͍͕ݪҼ͔ʁ
  9. %4"&$%4"ॺ໊ݕূͷ࣮૷ϛε w 0QFO44-͕ʹެ։ w (PPHMF4FDVSJUZ5FBN͕ใࠂ w %4"&$%4"ͷॺ໊ݕূʹࣦഊͯ͠΋JGจ͕ USVFͷέʔεʹͳͬͯ͠·ͬͨ - if

    (!EVP_VerifyFinal(&md_ctx,p,(int)n,pkey)) + if (EVP_VerifyFinal(&md_ctx,p,(int)n,pkey) <= 0) ͜ͷόάमਖ਼Λػʹif (flag)ͳͲͷ׳श͕ ՕॴҎ্मਖ਼͞Εͨ໛༷
  10. ؼ͖ͬͯͨ#BTJD$POTUSBJOUT w ʹJ04Ͱಉ༷ͷ੬ऑੑ͕ൃ֮ w .PYJFͷ͔݅Β໿೥ޙ w $7& w "QQMFͷΫϨδοτʹࡌͬͨͷ͸ਓ w

    (SFHPS,PQG 3FDVSJUZ-BCT  w 1BVM,FISFS 5SVTUXBWF4QJEFS-BCT
  11. %)&&$%)&ݕূॲཧͷ࣮૷ϛε w ʹJ04͕ṖΞοϓσʔτΛެ։ w $7& w "QQMFᐌ͘ʮ5-4઀ଓͷਅਖ਼ੑݕূʹ͓͚Δόά Λमਖ਼͠·ͨ͠ʯ w )BDLFS/FXTͰ࿩୊Λݺͼɺ"QQMFͷ౰֘ιʔε

    ίʔυ͕εϨουʹషΒΕ͓ͯࡇΓঢ়ଶʹ
  12. %)&&$%)&ݕূॲཧͷ࣮૷ϛε … OSStatus err; … if ((err = SSLHashSHA1.update(/**/)) !=

    0) goto fail; goto fail; if ((err = SSLHashSHA1.final(/**/)) != 0) … fail: … return err;
  13. %)&&$%)&ݕূॲཧͷ࣮૷ϛε w 4FSWFS,FZ&YDIBOHFͷॲཧʹ͓͚Δܽؕ w ్த·Ͱॲཧ͕੒ޭ͢Ε͹ແ৚݅ʹQBTT͢Δ w ௨শlHPUPGBJMCVHzͱݺ͹ΕΔΑ͏ʹ w HDD΍DMBOHͷ8BMMͰ͸EFBEDPEFͷܯࠂ͕ ग़ͳ͍Β͍͠ʜ

    w (OV5-4ʹ͓͚Δಉ༷ͷόά΋ޙ೔໌Β͔ʹ
  14. ূ໌ॻνΣʔϯݕূͷ࣮૷ϛε w ೥ॳ಄ʹ(OV5-4͕ެද w $7& w 9όʔδϣϯͷূ໌ॻ͸WBMJEͳதؒ$" ূ໌ॻͱͯ͠ѻΘΕͯ͠·͏ w όʔδϣϯͷWBMJEͳূ໌ॻΛ࢖ͬͯ೚ҙͷυϝ

    Πϯʹର͢Δূ໌ॻΛൃߦͰ͖Δ
  15. HPUPจͷ൵ܶ࠶ͼ w ೥ॳ಄ʹ(OV5-4͕ެද w $7& w ్தͷॲཧʹࣦഊͨ͠ࡍɺ໭Γ஋Λࣦഊ஋ʹηοτ ͠ͳ͍··HPUPDMFBOVQ w ྫ͑͹ॺ໊ͷ௕͕͞CJUͰׂΓ੾Εͳ͔ͬͨ৔߹

    ʢͦ΋ͦ΋#JU4USJOHͳͷͰԾఆ΋ؒҧ͍ʣ w ్தͷॲཧͰҙਤతʹࣦഊͤ͞ɺҎ߱ͷݕূॲཧΛ ᷖճͰ͖Δ
  16. $IBOHF$ZQIFS4QFD*OKFDUJPO w 0QFO44-͕ʹύονΛެ։ w $7& w ൃݟऀ͸-FQJEVNͷ٠஑ਖ਼࢙͞Μ w 0QFO44-͸4FSWFS)FMMP%POFΛड͚औͬͨ࣌఺ Ͱ҉߸͕ར༻Մೳͩͱݟͳͯ͠͠·͏

    w 4FSWFS)FMMP%POFͷ௚ޙʹ$IBOHF$ZQIFS4QFD $$4 Λड৴͢ΔͱۭͷNBTUFSTFDSFU͕ੜ੒ w ճ໨ʹਖ਼͍͠$$4Λड৴ͨ͠ࡍʹ͸طଘͷ NBTUFSTFDSFU͕ૹ৴͞Εͯ͠·͏
  17. ୅ସνΣʔϯূ໌ॻِ଄ w 0QFO44-͕ʹύονΛެ։ w $7& w ใࠂऀ͸"EBN-BOHMFZ%BWJE#FOKBNJO (PPHMF#PSJOH44-  w

    Ϋϩεϧʔτͷূ໌ॻνΣʔϯͱͯ͠ݕূ͢Δࡍɺ ݩʑͷνΣʔϯʹUSVTUFEͳূ໌ॻؚ͕·Ε͍ͯ Δͱɺ$"ϑϥάΛݕূ͢Δதؒূ໌ॻͷ਺Λݟ ޡͬͯ͠·͏όά w ؂༁ऀେ௡͞Μͷϒϩά IUUQEIBUFOBOFKQ KPWJ Ͱղઆ
  18. ΞϓϦέʔγϣϯͷݕূʹ͓͚Δܽؕ w ௿Ϩϕϧͷ"1*͔͠ఏڙ͞Ε͍ͯͳ͍ϥΠϒϥϦ Λ࢖༻͢ΔͱόάΛࠞೖ͠΍͍͢ w ͪΌΜͱͨ͠ϥΠϒϥϦΛ࢖͍·͠ΐ͏ w ։ൃ؀ڥͰΦϨΦϨূ໌ॻΛ࢖༻͍ͯ͠ΔͨΊʹূ ໌ॻͷݕূػೳΛΦϑʹ͍ͯ͠·ͤΜ͔ʁ w

    εςʔδϯά؀ڥ΍ຊ൪؀ڥͰݕূॲཧΛΦϯʹ͠ ͍ͯ·͔͢ʁ
  19. ϗετ໊ͷݕূʹ͓͚Δ໰୊ w %BO,BNJOTLZͱ.PYJF.BSMJOTQJLF͕#MBDL )BU64"Ͱผʑʹൃද w $43ͷ$PNNPO/BNFʹOVMMจࣈaΛڬΉ w WJDUJNDPNaNBMDJPVTDPN w "4/Ͱॲཧ͢Δ$"͸͜ͷจࣈྻશମΛධՁ͠ɺ

    ຤ඌͷNBMDJPVTDPNΛݕূͯ͠ൃߦ w ͜ͷূ໌ॻΛड͚औͬͨΫϥΠΞϯτ͕ʢྫ͑͹ʣ ௨ৗͷ$ݴޠͱͯ͠จࣈྻΛॲཧͨ͠৔߹ɺ WJDUJNDPNʹର͢ΔWBMJEͳূ໌ॻͱղऍ w $SZQUP"1* (OV5-4 /44͢΂ܸͯ௜
  20.  ཚ਺ੜ੒ʹ͓ ͚Δܽؕ ਓੜͷॳظ஋ͱ͍͏ཚ਺ͷ ੜ੒աఔʹ͕ܽؕ͋ͬͨΒ ܽؕͷ͋Δཚ਺ΞϧΰϦζϜΛ ࢖༻ͯ͠͠·ͬͨஉͷࢠͷΠϥετ

  21. /FUTDBQF/BWJHBUPSͷܽؕ3/( w ೥ w ϒʔτ͔Βͷܦա࣌ؒʢϚΠΫϩඵʣ w ࣗ਎ͷϓϩηε*% w ਌ͷϓϩηε*% w

    ߈ܸର৅ͱಉ͡ 6OJY ϚγϯʹΞΫηεͰ͖ΔͳΒ ͱ͸ط஌ w ϚΠΫϩඵ?㲈?CJUͷηΩϡϦςΟ
  22. ૊ΈࠐΈσόΠεͱཚ਺ w σϑΥϧτͷ伴͕࢖༻͞Ε͍ͯΔ w ىಈؒ΋ͳ͘ੜ੒͞Εͨ伴Λ༻͍ͨͨΊʹΤϯτϩ ϐʔ͕௿͍·· w 34"伴ͷଟ͘Ͱ๏ʢϞδϡϩʣͱͳΔͭͷૉ਺ ͷ͏͕ͪͭಉ͡஋Ͱ͋Γɺ伴ͷةຆԽΛট͘ঢ় ଶʹ͋ͬͨ

  23.  )FBSU#MFFE 0QFO44-Ψνϟ ݩ૆ʁηΩϡϦςΟΤϞΞΠίϯ

  24. 0QFO44-GPSLͱ)FBSU#MFFE w )FBSU#MFFEͷൃ֮ʹ൐ͬͯ0QFO44-ͷࢿۚ೉ ΍ίʔυͷ௿඼࣭ͳͲ͕໌ΔΈʹ w 0QFO#4%ϓϩδΣΫτ͕-JCSF44-ͱͯ͠GPSL w -JCSF44-͸)551αʔόͷIPʹಉࠝ w (PPHMF͕#PSJOH44-ͱͯ͠GPSL

    w ֤GPSLϓϩδΣΫτͷݱঢ়͸ʜʁ
  25. ۩ମతͳ࣮૷ϛε಺༰ … n2s(p, payload); // ௕͞ payload ͷಡΈऔΓ … …

    // snip. 33 lines … memcpy(bp, pl, payload); …
  26. )FBSU#MFFEʹର͢Δద੾ͳ؇࿨ࡦ w ύονΛ౰ͯΔ w αʔόͷൿີ伴ΛೖΕସ͑ɺ৽͍͠ূ໌ॻΛऔಘ͠ɺ ݹ͍ূ໌ॻΛࣦޮͤ͞Δ w ηογϣϯνέοτ伴ΛೖΕସ͑ w Ϣʔβ΁ύεϫʔυมߋґཔʢέʔεόΠέʔεʣ

    w %#ʹΞΫηε͢ΔΞϓϦέʔγϣϯαʔόͱ5-4 αʔό͕ಉډ͍ͯͨ͠৔߹ɺ%#ͷύεϫʔυ΋ม ߋ͓ͯ͘͠
  27.  '3&", ࠓ·ͰͣͬͱʮϑϨʔΫʯͬ ͯಡΜͰͨ

  28. ੬ऑੑɾ'3&",߈ܸ֓આ w ೥݄0QFO44-͕4FWFSJUZMPXͰൃද w ΫϥΠΞϯτ͕ߴ͍ڧ౓ͷ҉߸εΠʔτΛωΰγΤʔ γϣϯ͠Α͏ͱͯ͠΋ɺΫϥΠΞϯτ͕ऑ͍34" 伴ͰQSF@NBTUFS@TFDSFUΛ҉߸Խͯ͠͠·͏ w .JDSPTPGU3FTFBSDI*OSJBͷNJ5-4QSPKFDU ͕͜ͷ੬ऑੑΛར༻ͯ͠'3&",߈ܸΛൃ໌ɺ

    0QFO44-͸4FWFSJUZΛIJHIʹมߋ w ऑ͍34"伴ݹͷ༌ग़༻҉߸ʹ༝དྷ
  29. ༌ग़҉߸ํࣜ֓આ w ถࠃ֎ͷ伴ަ׵ڧ౓CJUʹ੍ݶ͞Ε͍ͯͨ࣌୅ w ถࠃ಺͔ΒͷΞΫηεͱࠃ֎͔ΒͷΞΫηεͱʹ
 Ԡͯ͡伴௕ɾূ໌ॻΛ෼͚ΔͳΜͯ΍ͬͯΒΕͳ͍ w ࠃ֎͔Β$MJFOU)FMMPΛड͚ͨࡍ͸ऑ͍34"伴Λ
 Ұ࣌తʹ࡞੒ɾαʔόͷڧ͍伴Ͱॺ໊͠ɺ 4FSWFS,FZ&YDIBOHFͰΫϥΠΞϯτ΁ฦ৴

    w ΫϥΠΞϯτ͸ੜ੒ͨ͠QSF@NBTUFS@TFDSFUΛ
 Ұ࣌తͳऑ͍伴Ͱ҉߸Խ w ඇ༌ग़҉߸ͷ34"伴ަ׵Ͱ͸ 4FSWFS,FZ&YDIBOHF͕ൃੜ͠ͳ͍͜ͱʹ஫ҙ
  30. '3&",߈ܸ੒ཱ৚݅ w .J5.͕Ͱ͖Δ͜ͱ w αʔό͕༌ग़҉߸ํࣜͷҰ࣌త34" CJU Λ࢖ ༻Ͱ͖Δ͜ͱ w αʔόଆͰҰ࣌త34"ͷ伴ϖΞ͕࢖͍·Θ͞Εͯ

    ͍Δ͜ͱ w ΫϥΠΞϯτ͕༌ग़҉߸Ҏ֎ͷํࣜͰ΋Ұ࣌త 34" CJU ͕࢖͑ΔΑ͏֦ு͞Ε͍ͯΔ͜ͱ LΑΓલͷ0QFO44-
  31. ࣄલʹҼ਺෼ղ ͨ͠伴Ͱ෮߸ ڧݻͳ҉߸εΠʔτΛཁ੥ ऑ͍҉߸εΠʔτʹվ᜵ " Ұ࣌త34"伴 Λੜ੒ɾૹ৴ ϦΫΤετվ᜵ ΛӅ͢վ᜵ #

    ෆਖ਼ϨεϙϯεΛ৴ͯ͡ QSF@NBTUFS@TFDSFU Λ҉߸Խɾૹ৴ ʢຊจʹ͸ͳ͍͕ʣ վ᜵"ΛӅ͢ վ᜵#ΛӅ͢
  32. '3&",߈ܸ w ͪͳΈʹ5-4 3'$ ʹ͓͚ΔҰ࣌伴ͷ ߋ৽ස౓͸lEBJMZPSFWFSZUSBOTBDUJPOT  BOENPSFPGUFOJGQPTTJCMFzͱਪ঑ w '3&",߈ܸͷൃද࣌͸&$ΠϯελϯεΛ࢖ͬ

    ͯΘ͔ͣɾ࣌ؒͰCJUΛҼ਺෼ղ w ϨΨγʔίʔυ͸ੵۃతʹຣফ͍ͯ͜͠͏
  33.  -PHKBN ༌ग़҉߸ͷѱເ࠶ͼ

  34. -PHKBN w %)&伴ަ׵ʹ΋༌ग़҉߸ํࣜ͸͋ͬͨ w ͜Ε·ͨCJUͳͷͰ'3&",ͱಉ༷ʹΤΠϠ w ೥݄*NQFSGFDU'PSXBSE4FDSFDZ)PX %J⒏F)FMMNBO'BJMTJO1SBDUJDF w BVUIPS\%BWJE"ESJBOBOE,BSUIJLFZBO

    #IBSHBWBOBOE;BLJS%VSVNFSJDBOE1JFSSJDL (BVESZBOE.BUUIFX(SFFOBOE+"MFY )BMEFSNBOBOE/BEJB)FOJOHFSBOE%SFX 4QSJOHBMMBOE&NNBOVFM5IPNa`FBOE-VLF 7BMFOUBBOE#FOKBNJO7BOEFS4MPPUBOE&SJD 8VTUSPXBOE4BOUJBHP;BOFMMB#aFHVFMJOBOE 1BVM;JNNFSNBOO^
  35. ҉߸εΠʔτީิ ҉߸εΠʔτɾ伴ڧ౓ܾఆ ૉ਺Qݪ࢝ࠜH ൿີ伴9 ެ։伴:TH?9NPEQ ൿີ伴8 ެ։伴:DH?8NPEQ ;:T?8 H? 89

    ;:D?9 H? 89 QSF@NBTUFS@TFDSFU;͔Βڞ௨伴Λੜ੒ 3'$ 5-4 ͷ%)&
  36. ࣭໰ w 1ʮ-PHKBNͰར༻͞ΕΔͷ͸ɺ%)ύϥϝʔλ ͷαʔόॺ໊͕࠶ૹͰ͖ͯ͠·͏ͱ͍͏ϓϩτίϧ ͷऑ఺ ʜ ϦϓϨΠ߈ܸʹର͢Δอޢ͕ॺ໊ͷઃ ܭʹؚ·Ε͍ͯ·͕͢ɺͦͷͨΊͷ࢓૊Έ͸ΫϥΠ Ξϯτͱαʔόͷཚ਺ʹґଘ ʜ

    ΫϥΠΞϯτ͕ ਃ͠ग़ͨཚ਺ͷ஋Λ؍࡯͠ɺผͷϋϯυγΣΠΫͰ ࠶ར༻͢Δ͜ͱ͕ՄೳͳͷͰ͢ʯ digitally-signed struct { opaque client_random[32]; opaque server_random[32]; ServerDHParams params; } signed_params; 3'$4FD αʔόॺ໊ͱࢥ͖͠Օॴ
  37. ౰೔ͷձ৔Ͱͷ౴͑ w DMJFOU@SBOEPN͸$MJFOU)FMMPʢฏจʣʹೖ͍ͬͯ ΔͷͰ෼͔Δ w TFSWFS@SBOEPN͸4FSWFS)FMMPʢฏจʣʹೖͬͯ ͍ΔͷͰ෼͔Δ w ൿີ伴9Λഁ͓͚ͬͯ͹ɺ%)ύϥϝʔλΛվ᜵ ͨ͠όʔδϣϯͷॺ໊Λ࡞Γग़ͤΔ

    digitally-signed struct { opaque client_random[32]; opaque server_random[32]; ServerDHParams params; } signed_params;
  38. ࣄલܭࢉ߈ܸ w ૉ਺Qݪ࢝ࠜH͸ϓϩτίϧͱͯ͠ط஌ w Ұ࣌αʔό伴 9 :T ͸Ωϟογϡ Ұ࣌తͱ͸ʜ 

    w %)伴ަ׵ʹର͢Δ/'4߈ܸ͕ஈ֊ʹ෼͚ΒΕ Δ͜ͱɺલஈͷܭࢉ͸ૉ਺QͷΈʹґଘ͢Δ͜ͱ ͷൃݟ͕-PHKBNͷݚڀ੒Ռ w CJUͷ伴ʹର͢Δલஈͷܭࢉ͸िؒ w ޙஈͷܭࢉ͸ඵະຬ w Ұ࣌伴ͷΩϟογϡظؒ಺ʹલஈͷܭࢉ͕ऴΘΕ͹ ΫϥΠΞϯτͷλΠϜΞ΢τ෼ʹؒʹ߹͏
  39.  ڧ੍੾அ߈ܸ ࣈ໘ͱҧͬͯͦΕ΄Ͳߴঘͳ ߈ܸ͡Όͳ͍Α

  40. ڧ੍੾அ߈ܸ w ຊ౰͸ૹΓ͔ͨͬͨɾཉ͔ͬͨ͠ϨεϙϯεΛ 5$1ϨΠϠʔͰϒϩοΫ͢Δ߈ܸ w ઀ଓͷऴྃ࣌ʹ૒ํ͕DMPTF@OPUJGZΛૹΓ߹͍ɺ ਖ਼ৗʹड৴Ͱ͖ͨΒਖ਼ৗͳऴྃͱݟͳ͢ͷ͕ਖ਼ղ w ݹͷ࢓༷ͷӨڹͰ࣮૷͕ద౰ w

    ͜Ε΋ཱ೿ͳ߈ܸ w σʔλ͕͚ܽΔఔ౓Ͱ͠ΐʁ
  41. Ԡ༻ɿ$PPLJF$VUUFS߈ܸ w ߈ܸର৅ͷXFCαΠτͱηογϣϯΛཱ͍֬ͯ͠ ͳ͍ϢʔβΛ୳͢ w )551 ϨεϙϯεதͷಈతͳσʔλΛಛఆ͠ɺ5-4 Ϩίʔυͷ੍ݶ όΠτΛ࢖ͬͯద౰ʹσʔ λΛಥͬࠐΈɺϨεϙϯεΛ෼ׂͤ͞Δ

    w 4FDVSFϑϥά͕ผϨεϙϯεʹͳΔΑ͏ʹ w ͭ໨Ҏ߱ͷϨεϙϯεΛڧ੍੾அ͢Δ w 4FDVSFϑϥά͕མͪͨ$PPLJFΛ͓޷͖ͳํ๏Ͱ ঌ্͕͠Δ
  42. Ԡ༻ɿ$PPLJF$VUUFS߈ܸ 4FU$PPLJFΑΓ΋લʹ ଘࡏ͢Δ͜ͱ͕ඞཁ

  43. Ԡ༻ɿ)454$VUUFS߈ܸ w )454ϔομΛಉ༷ʹΦʔόʔϑϩʔͤ͞
 ڧ੍੾அʹΑͬͯ)454ػೳΛམͱ͢ w TUSJDUUSBOTQPSUTFDVSJUZNBYBHF JODMVEF4VC%PNBJOT w NBYBHF͸༗ޮظؒʢඵʣ w

    JODMVEF4VC%PNBJOT͸αϒυϝΠϯʹؔͯ͠΋ )5514ͷΈڐՄ͢ΔΦϓγϣϯ w ϓϩύςΟͷ஋͸࣍ճͷϨεϙϯε࣌ͷ஋Ͱ্ॻ͖ ͞ΕΔ࢓༷ͳͷͰڧ੍੾அ߈ܸ͕ศར
  44.  σϓϩΠʹ͓͚Δ ໰୊఺ ࣅͯඇͳΔ΋ͷ ͪΌΜͱ۠ผ͠Α͏

  45. Ծ૝ϗετࠞಉ ಉ͡ূ໌ॻΛڞ༗͍ͯ͠Δ ଞͷϗετʹ࢓޲͚ͯ΋ ҟৗ͕ݕ஌͞Εͳ͍ ূ໌ॻΛڞ༗ ҆શͳϗετ ߈ܸऀͷ੍ޚԼ

  46. 5-4ηογϣϯΩϟογϡͷڞ༗ ߈ܸର৅ ҆શͳϗετ ಉ͡5-4ηογϣϯΛ ڞ༗͢Δଞͷϗετʹ ࢓޲͚ͨࡍʹ ূ໌ॻͷ֬ೝΛόΠύε Ͱ͖Δ 5-4ηογϣϯΛڞ༗ ϗετ͝ͱʹઃఆͰ͖Δ

    ηογϣϯνέοτΛ ࢖͍·͠ΐ͏