Share
Embed
Transcript
135 slides
-
ຊߨٛͷత w 5-4Λపఈతʹཧղͯ͠Β͏ɻ w Ͱ5-4֤छηΩϡϦςΟٕज़ͷू߹ମɺͦΕͧΕ͕ਂ ͍ͯ͘͠ɻ̔࣌ؒ͋ͬͯશ෦ແཧɻ w ͦ͜Ͱ̏ͭʹ͚·ͨ͠ɻ ࠲ֶɿٕज़ऀʹͱͬͯͳͥ͜Ε͔Β5-4͕ॏཁ͔
ߨٛɾԋशɿ5-4ϋϯυγΣΠΫΛֶͿ ߨٛɾԋशɿ5-4ٕज़ͷίΞɺ҉߸ٕज़ΛֶͿ -
ຊͷߨٛͷྲྀΕ w ߨٛɿ5-4ͷ֓ཁ w ߨٛɿ5-4Λཧղ͢Δ४උ ಛʹ"&"% w ߨٛɾԋशɿ5-4ϋϯυγΣΠΫઆ໌ɺ5-4#PUͱ 5-4ϋϯυγΣΠΫ͠Α͏ɺϦΞϧ.BOJO5IF
.JEEMF w ߨٛɾԋश$IB$IB1PMZͷ࣮ -
TLSͷత • TLSϓϩτίϧͷ࠷ॏཁͳΰʔϧɺ௨৴͢Δ̎ͭͷΞϓϦέʔγ ϣϯͷؒͰϓϥΠόγʔͱσʔλͷશੑΛఏڙ͢Δ͜ͱͰ͢ɻ RFC5246: The Transport Layer Security (TLS)
Protocol Version 1.2 1. Introduction The primary goal of the TLS protocol is to provide privacy and data integrity between two communicating applications. ΞϓϦ ΞϓϦ શੑ ϓϥΠόγʔ -
5-4ͷ؆୯ͳྺ࢙ 44- ະൃද 44- 44- *&5'5-48(ελʔτ
5-4 5-4 5-4 5-4ݕ౼ελʔτ 5-4༷Խྃʁ 44-چωοτεέʔϓࣾ ͷࢲతϓϩτίϧ େਓͷࣄͰ໊শมߋ 44-ͱجຊઃܭେ͖͘ม͑ͣվྑ ༷ʑͳػೳ֦ு ۙ8(ϥετίʔϧΛඪ ·ͩΘ͔Γ·ͤΜ %308/ 100%-& #&"45 -
5-4ͷҐஔ͚ 5$1 5-4 *1 WW &UIFSOFU )551ηϚϯςΟΫε 5$1 *1 WW
&UIFSOFU 5-4 41%: )551ηϚϯςΟΫε )551 )551͔Β)551 ʙ ʙ ϒϥβ5-4௨ ৴ͷΈαϙʔτ Ͳͷ5-4όʔ δϣϯͰ0, -
5-4ͷҐஔ͚ 26*$ *1 WW 5$1 6%1 5-4 &UIFSOFU )551ηϚϯςΟΫε )551
26*$҉߸ϓϩτίϧ ʙ )551ʙ )551͔Β26*$ (PPHMFಠࣗ҉߸ ϓϩτίϧ -
5-4ͷҐஔ͚ 26*$ *1 WW 5$1 6%1 &UIFSOFU 5-4 )551ηϚϯςΟΫε )551
ʙʁ 26*$͔Β5-4 ʙ ౷Ұ͞ΕΔ༧ఆ -
1FSWBTJWF4VSWFJMMBODF ൣғͷ౪ௌߦҝ w ࠃՈతͳ৫ ถࠃ/4"ͱӳࠃ($)2ͳͲ ͕ലେͳ ༧ࢉͰߦ͏ൣғͷ౪ௌߦҝ w ݄ΤυϫʔυɾεϊʔσϯʹΑͬͯͦͷ ׆ಈ༰͕ϦʔΫ͞ΕΔɻ
Πϯλʔωοτిͷडɾࢹɺσʔληϯλʔ ௨৴౪ௌɺ҉߸ղಡɺ҉߸όοΫυΞɺαΠόʔ߈ ܸ -
ݕࡧαʔϏεձࣾͷ༕ྀ w ݕࡧͷϖʔδϥϯΫ͕ߴ͍αΠτѼͷฏจ௨৴ɺ߈ܸର ͱͯ͠વૂΘΕΔɻ w ฏจ௨৴ͰϢʔβ͕ίϯςϯπվ͟ΜϚϧΣΞײછʹ Αͬͯ%%P4߈ܸͷҰΛ୲͏ڪΕ͋Γ (JUIVCͷ߈ ܸྫ ɻ
w ωοτίϯςϯπͷ݈શੑͷԼɺظతʹݕࡧαʔ Ϗεͷ৴པੑΛଛͳ͏͜ͱʹͳΔɻ 4&0Ͳ͏ͳΔʁ -
*"# ʹΑΔΠϯλʔωοτͷ ৴པੑʹؔ͢Δએݴ w ৽͘͠ϓϩτίϧΛઃܭ͢Δࡍʹɺ҉߸ԽػೳΛඞ ਢͱ͖͢ɻ w ωοτϫʔΫӡ༻ऀαʔϏεఏڙऀʹ҉߸Խ௨৴ͷ ಋೖΛਪਐ͢ΔΑ͏ڧ͘ٻΊΔɻ
w ίϯςϯπϑΟϧλʔ*%4ฏจ௨৴͕ඞཁͳػೳ ʹ͍ͭͯকདྷతʹସٕज़ͷ։ൃʹऔΓΉɻ *OUFSOFU"SDIJUFDUVSF#PBSE IUUQTXXXJBCPSHJBCTUBUFNFOUPOJOUFSOFUDPOpEFOUJBMJUZ -
.P[JMMBʹΑΔ ҆શͰͳ͍)551ͷഇࢭએݴ ͋Δ࣌ظ͔Β৽نػೳɺ)5514͚ͩར༻Ͱ͖ΔΑ͏ʹ͢ Δɻ ݱࡏ)551 ฏจ௨৴ Ͱར༻Ͱ͖ΔػೳͰɺϢʔβͷηΩϡ ϦςΟϓϥΠόγʔʹϦεΫΛ༩͑ΔͷΛআ͍ͯ͘͠
IUUQTCMPHNP[JMMBPSHTFDVSJUZEFQSFDBUJOHOPOTFDVSFIUUQ -
$ISPNFͷ)551্ͷػೳഇࢭ $ISPNFͰɺԼهͷػೳΛ)551 ฏจ௨৴ Ͱར༻ېࢭ͢Δ༧ఆ w ҐஔใΛऔಘ ഇࢭࡁ w σόΠεͷಈ͖ํΛૢ࡞
w ҉߸Խ͞ΕͨಈըԻͷ࠶ੜ w ΧϝϥɾϚΠΫͳͲͷૢ࡞ w ΞϓϦέʔγϣϯͷΩϟογϡใͷૢ࡞ IUUQTTJUFTHPPHMFDPNBDISPNJVNPSHEFW)PNFDISPNJVNTFDVSJUZEFQSFDBUJOHQPXFSGVMGFBUVSFTPOJOTFDVSFPSJHJOT -
ৗ࣌5-4ࢸΔಓ ৗ࣌5-4 ࠃՈϨϕϧͷൣғͳ౪ௌߦҝ ωοτίϯςϯπ ͷ݈શੑͷ֬อ )551 ฏจ௨৴ ্ͷ ϒϥβͷػೳഇࢭ ҉߸Խલఏͷ
৽ٕज़։ൃ কདྷతͳ৽ٕज़5-4ར༻Λલఏͱ͢Δɻ ࠷ઌͷٕज़ऀ5-4Λආ͚ͯ௨Δ͜ͱͰ͖ͳ͍ɻ ແྉূ໌ॻ -
TLSͷཁૉٕज़ X509ূ໌ॻ PKI ରশ ҉߸ ҉߸Ϟʔυ ެ։伴҉߸ σδλϧ ॺ໊ ϝοηʔδೝূ
ཚ ੜ TLS 伴ަ Ұํϋογϡ TLSϓϩτίϧɺ͜ΕΒͷཁૉٕज़ΛΈ߹Θͤͯ ΞϓϦؒͷηΩϡΞ௨৴Λཱ֬͢ΔखॱΛܾΊΔ -
TLSཁૉٕज़ͷґଘੑ X509ূ໌ ॻ PKI ରশ ҉߸ ҉߸Ϟʔυ ެ։伴҉ ߸ σδλϧ
ॺ໊ ϝοηʔδೝূ ཚ ੜ 伴ަ Ұํϋογϡ ຊདྷ͜ͷҰͭҰͭΛ͖ͪΜͱཧղ͢Δ͜ͱ͕ඞཁ -
TLSཁૉٕज़Ͳ͜ͰΘΕΔʁ ClientHello ServerHelloDone ChangeCipherSpec Finished ChangeCipherSpec Finished Application Data Application
Data ཚੜ ରশ҉߸ɾ҉߸ϞʔυɾҰํϋογϡɾཚੜ 1,*ɾ9ূ໌ॻɾσδλϧॺ໊ ཚੜ ServerHello Certificate ClientKeyExchange ServerKeyExchange ཚੜɾ伴ަɾ ެ։伴҉߸ɾσδλϧॺ໊ ϝοηʔδೝূ ରশ҉߸ɾ҉߸Ϟʔυ ϝοηʔδೝূ ରশ҉߸ɾ҉߸Ϟʔυ ཚੜɾ伴ަ σδλϧॺ໊ -
TLSཁૉٕज़Ͳ͜ͰΘΕΔʁ ཚੜ $MJFOU4FSWFS)FMMPͷ/PODF 伴ϖΞͷੜσʔλ҉߸Խͷ*7 1,* $"ʹΑΔαʔόূ໌ॻͷॺ໊ͱൃߦ 9ূ໌ॻ $FSUJpDBUFʹΑΔαʔόɾΫϥΠΞϯτͷೝূɾެ։伴ͷऔಘ ిࢠॺ໊ ূ໌ॻͷॺ໊ɾ伴ަͰަ͢Δެ։伴ͷॺ໊
伴ަ 4FSWFS$MJFOU,FZ&YDIBOHFʹΑΔ &$ %)ެ։伴ͷަ ެ։伴҉߸ 34"伴ަ࣌ʹ1SF.BTUFS4FDSFUͷ҉߸ૹ৴ Ұํϋογϡ $#$ͳͲͷ҉߸Ϟʔυར༻࣌ʹΞϓϦσʔλͷ."$ੜ ϝοηʔδೝূ .BTUFS4FDSFUͷੜɺ'JOJTIFEʹΑΔϋϯυγΣΠΫσʔλͷશ ੑݕূ ରশ҉߸ɾ҉߸Ϟʔυ $IBOHF$JQIFS4QFDҎ߱ͷϋϯυγΣΠΫͱΞϓϦέʔγϣϯσʔλͷ҉߸Խ ʢɿଞʹࡉ͔͍ͱ͜ΖͰΘΕ͍ͯ·͢ɻ -
ࠓճ͏TLSཁૉٕज़ AEAD Poly1305 ChaCha20 ECDHE RSA SHA256 X509ূ໌ ॻ PKI
ରশ ҉߸ ҉߸Ϟʔυ ެ։伴҉ ߸ σδλϧ ॺ໊ ϝοηʔδೝূ ཚ ੜ 伴ަ Ұํϋογϡ LinuxͳΒ/dev/urandom+OpenSSLॲཧ ࠓͷԋश -
ηοτϝχϡʔԽ͞ΕͨTLSͷཁૉٕज़ TLS CipherSuites TLS_RSA_WITH_AES_128_GCM_SHA256 = {0x00,0x9C} TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256={0xCC,0xA8} ରশ ҉߸ ҉߸Ϟʔ
υ σδλϧ ॺ໊ ϝοηʔδೝূ (ϋογϡ) 伴ަ TLS _ _ _WITH_ _ 伴 _ _ 伴ަɾσδλϧॺ໊ʹRSA ରশ҉߸ʹ128bit伴ͷAES ҉߸ϞʔυʹGCM(AEAD) ϋογϡʹSHA256 伴ަʹECDHE σδλϧॺ໊ʹRSA ରশ҉߸ʹChaCha20 ҉߸ϞʔυʹPoly1305(AEAD) ϋογϡʹSHA256 ൪߸ͱͯ͠0xCC,0xA8ΛׂΓͯ -
ࠓ5-4ʹԿΛ͏ʁ 伴ަ 34" 'PSXBSE4FDSFDZ %)& &$%)& σδλϧॺ໊ 34" %44 %4"
&$%4" ର҉߸ %&4 3$ "&4 $IB$IB ͦͷଞ ҉߸Ϟʔυ $#$ "&"% $$. ($. 1PMZ ϝοηʔδೝূ ʢϋογϡʣ .% 4)" 4)" 4)" ɿΘͳ͍ɺԫɿҙɺɿࠓͷͱ͜Ζͬͯେৎ ҙɺ҉߸ֶతҙͱকདྷతʹීٴ͕ݟࠐ·Εͳ͍ҙؚ·Ε·͢ ͪͳΈʹɺ ྔࢠίϯϐϡʔλͰ伴ަɺσδλ ϧॺ໊શ෦Ξτʂ -
ରশ҉߸ ҉߸จ ฏจ ڞ௨伴 ڞ௨伴 ฏจ ετϦʔϜ҉߸ɿσʔλΛஞ࣍҉߸Խ(RC4, Chacha20) ϒϩοΫ҉߸ɿσʔλΛϒϩοΫຖʹ҉߸Խ(DES, AES)
ز͔ͭͷ҉߸ͰطʹةຆԽɿ DES: 2005 NIST FPS46-3ن֨ͷഇࢭ(2030·Ͱڐ༰) RC4: RFC7455: Prohibiting RC4 Cipher Suites ҉߸Խ ෮߸Խ ϒϩοΫɺετϦʔϜͷ྆ऀͷҧ͍ݱࡏͳ͘ͳ͖͍ͬͯͯΔ ϒϩοΫ҉߸ "&4 Λ҉߸Ϟʔυ ޙड़ ͰΧϯλʔϞʔυΛར༻͢Δ͜ͱʹΑΓશͯε τϦʔϜ҉߸ͱͯ͠ར༻Ͱ͖·͢ɻ "&4($.ετϦʔϜ҉߸ॲཧ -
ରশ҉߸ AES • 1997ΑΓϓϩδΣΫτ։࢝ɺ2000બఆɺ2001 ༷ൃߦ • ϒϩοΫαΠζ 128bit • 伴ɿ
128bits, 192bits, 256bits ͷ̏छྨ • Intel/AMDͷCPUͰϋʔυΣΞॲཧͷαϙʔτ (AES-NI) ̎̌̍̒ݱࡏ5-4௨৴ͷσϑΝΫτ $IB$IBޙͰͨͬΓͱઆ໌͠·͢ɻ -
҉߸Ϟʔυ • ϒϩοΫ҉߸ಉ͡σʔλΛಉ͡伴Ͱ҉߸Խ͢ΔͱຖճಉҰͷ҉ ߸จʹͳΔɻ • ϒϩοΫΑΓ͍σʔλΛ҉߸Խ͢Δ߹ʹ҉߸ϞʔυΛར༻ ͯ͠܁Γฦ͠Λආ͚Δɻ • CBCɿʮ(ฏจ XOR
ϕΫτϧ) Λ҉߸ԽʯΛଓ͚Δ • CTRɿ ʮΧϯλʔΛ҉߸Խ XOR ฏจʯΛଓ͚Δ ࣮ࡍʹTLSͰར༻͢Δʹվ͟ΜݕͷͨΊͷMAC(ϝοηʔδೝূʣͱͷΈ߹ΘͤΔ (AEAD)ɻAES-GCM͕ࠓͷओྲྀɻ ͜Ε·Ͱͷ ओྲྀ $IB$IB1PMZޙͰͨͬΓͱઆ໌͠·͢ɻ -
ೝূλά AEADʢೝূ͖҉߸) ҉߸Խ͠ͳ͍͚Ͳվ͟Μ w w w w w w w
w w w w ࢭ͕ඞཁͳσʔλ w w w w w w w w w ʢϔομʣ w w w w ҉߸Խ͢Δฏจ AEAD ҉߸Խ ҉߸จ ڞ௨伴 ॳظϕΫτϧ &ODSZQU5IFO."$ ҉߸Խͨ͠ޙͰϋογϡΛऔಘ -
GCM • GCM (Galois Counter Mode: ΨϩΞΧϯλʔ Ϟʔυʣ • CTRͱGHASHΛΈ߹ΘͤͨAEAD
• ϋʔυΣΞॲཧͰߴԽ͕Մೳ • AESͱΈ߹Θͤͯ AES-GCMͱͯ͠ར༻ -
҉߸ֶతϋογϡ ɾݪ૾ܭࢉࠔੑ 1SFJNBHF3FTJTUBODF ɾୈ̎ݪ૾ܭࢉࠔੑ OE1SFJNBHF3FTJTUBODF ɾڧিಥੑ 4USPOH$PMMJTJPO3FTJTUBODF ϋογϡI͔ΒͱͷϝοηʔδNΛ୳͢ͷ͕ࠔ ̷ I)"4)
N ͷNΛݟ͚ͭΔ ಛఆͷϝοηʔδNͱಉ͡ϋογϡΛ࣋ͭNΛ୳͢ͷ͕ࠔ I)"4) N )"4) N IͷNΛݟ͚ͭΔ )"4) N )"4) N ͱͳΔNͱNΛݟ͚ͭΔͷ͕ࠔ -
Ұํϋογϡ • md5 • SHA-1 • SHA-2(SHA-256ͳͲ6छ) • SHA-3(SHA3-256ͳͲ6छ) 2018͙Β͍ʹݱ࣮తͳίετ
ͰিಥσʔλΛ୳ͤΔݟࠐΈ(*2) طʹݱ࣮తͳ߈ܸख๏͕ଘࡏ (*2) Cryptanalysis of SHA-1 https://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html (*1) how to Break MD5 and Other Hash Functions http://merlot.usc.edu/csac-f06/papers/Wang05a.pdf 8/5ʹNISTΑΓਖ਼ࣜެ։ -
"&"%Λࢥ͍ग़ͦ͏ ೝূλά ҉߸Խ͠ͳ͍͚Ͳվ͟Μ w w w w w w w
w w w w ࢭ͕ඞཁͳσʔλ w w w w w w w w w ʢϔομʣ w w w w ҉߸Խ͢Δฏจ AEAD ҉߸Խ ҉߸จ ڞ௨伴 ॳظϕΫτϧ ϋογϡͩʂ ($. 1PMZ͋Εͬɺ4)"ͱ͔͡Όͳ͍ɻͳͥʁ -
"&"%Ͱ҉߸ֶతϋογϡ ·Ͱඞཁͳ͍ ೝূλά ҉߸Խ͠ͳ͍͚Ͳվ͟Μ w w w w w w
w w w w w ࢭ͕ඞཁͳσʔλ w w w w w w w w w ʢϔομʣ w w w w ҉߸จ &ODSZQU 5IFO."$ ϋογϡલͷϝοηʔδ͕ ݟ͑ͯΔ ݪ૾ܭࢉࠔੑ͍Βͳ͍ɻ ݟ͑ͯΔϝοηʔδͷվ͟Μݕ ."$ ͕ॏཁɻ ୈ̎ݪ૾ܭࢉࠔੑͱߴ͍ڧিಥੑ͕ٻΊΒΕΔɻ ύέοτຖʹܭࢉ͢ΔͷͰߴੑೳେࣄɻ ($.1PMZɺ"&"%͚ʹಛԽͨ͠ߴ."$ΞϧΰϦζϜ -
ެ։伴҉߸ 512bit RSAͷةݥੑ FREAK https://freakattack.com/ • ղΛٻΊΔͷ͕ࠔͳֶతΛར༻ͯ͠҉߸Λੜɻ • ެ։伴ͱൿີ伴ͷϖΞΛੜɻެ։伴͞Βͯ͠େৎɻ •
ެ։伴Ͱ҉߸Խ͠ൿີ伴Ͱ෮߸Խɻ • RSA ૉҼղ • ECC(ପԁۂઢ҉߸ʣପԁۂઢ্ͷࢄର ެ։伴 ൿີ伴 ҉߸Խ ෮߸Խ -
伴ަ • 2ऀؒͰ҆શʹ伴Λڞ༗͢ΔΈ • ޓ͍ʹެ։伴Λަ͍͋͠ɺڞ༗伴Λੜ͢Δɻ • ௨৴ܦ࿏্Ͱڞ༗伴ͷΓऔΓ͕ͳ͍ɻ • DH (Diffie-Hellman)
• ECDH(ପԁۂઢDH) ੬ऑੑɿDH Logjam https://weakdh.org/ ެ։伴 ެ։伴 ൿີ伴 ൿີ伴 Ұ࣌తͳ伴ަ& &QIFNFSBM ͷจࣈ͕͘ %)& &$%)& -
σδλϧॺ໊ • σʔλͷશੑͷνΣοΫ͕ՄೳͱͳΔɻ • σʔλͷૹ৴ݩͷೝূ͕ՄೳͱͳΔɻ • ެ։伴ͷ৴པੑͷൣғͰ൱ೝࢭ͕ՄೳͱͳΔɻ • RSA •
DSA,ECDSA ެ։伴 ൿີ伴 σʔλʴσδλϧॺ໊ σʔλϋογϡ Λ҉߸Խ͠ σδλϧॺ໊Λ ੜ σδλϧॺ໊Λ෮߸Խɻ σʔλϋογϡͱൺ ֱ͠ݕূ͢Δ -
1,*֓ཁ $" $FSUJpDBUF"VUIPSJUZ 7" 7BMJEBUJPO"VUIPSJUZ 3" 3FHJTUSBUJPO"VUIPSJUZ $3-0$41 $43 伴ϖΞ
࣮ࡏ֬ೝ αʔόূ໌ॻ IUUQTʙ ࣦޮ֬ೝ ཧతʹෳͷׂʹ͔Ε͍ͯΔ͕ཧతʹ̍ͭͰΑ͍ 3PPUূ໌ॻ 04ɾϒϥβ ϕϯμʔ -
αʔόূ໌ॻ 9 w 5-4௨৴ͷ৴པੑΛ୲อ͢Δཁ w ϏϧτΠϯͷϧʔτূ໌ॻ͔Βαʔόূ ໌ॻ·Ͱূ໌ॻνΣʔϯͷॺ໊ݕূ w ΦϯϥΠϯҎ֎Ͱ৴པੑΛ୲อ 1,*
ϏϧτΠϯͷ ϧʔτূ໌ॻ αʔόূ໌ॻ தؒূ໌ॻ ϏϧτΠϯͷ ϧʔτূ໌ॻ αʔόূ໌ॻ தؒূ໌ॻ τϥετΞϯΧʔ -
ূ໌ॻͷछྨ &7ূ໌ॻ &YUFOEFE 7BMJEBUJPO $"ڞ௨ͷݫ֨ͳ৫ͷ࣮ࡏূ໌ ཧత࣮ࡏ ॻ໘σʔλ ޱ࠲औҾʹΑΔ࣮ࡏ৹ࠪɾॺ໊ ఏग़ɾి֬ೝͳͲ
ΞυϨεόʔ͕৭ 07ূ໌ॻ 0SHBOJ[BUJPO 7BMJEBUJPO ֤$"ϙϦγʔ $14 ʹैͬͨ৫ͷ࣮ࡏূ໌ ʢॻ໘σʔλ৹ࠪɾి֬ೝͳͲ %7ূ໌ॻ %PNBJO 7BMJEBUJPO ֤$"ϙϦγʔ $14 ʹैͬͨυϝΠϯอ࣋ূ໌ ϝʔϧͷ౸ୡੑ֬ೝͳͲ -FU`T&ODSZQUͳͲ ແྉূ໌ॻ͕͋ΔΑ ωοτϫʔΫҎ֎ ͷ࣮ࡏূ໌ -
5-4ηΩϡϦςΟͷ 5-4ͷ ηΩϡϦςΟ ཚੜ 1,* ൿີ伴ͷ ཧ ҉߸ٕज़ Τϯ τϩϐʔෆ
ෆਖ਼ ൃߦ ࿙Ӯ ΞϧΰϦζϜɾ ڧͷةຆԽ 5-4ɺ͜ͷ̐ͭͷ֎෦ཁૉͷ্ͰΠϯλʔ ωοτͰ҆શͳ௨৴Λఏڙ͢ΔΈͰ͋Δɻ ٯʹݴ͑ɺͲΕ΄Ͳᘳͳ5-4ϓϩτίϧΛ࡞ͬͯ ͜ͷ̐ͭͷ֎෦ཁૉ͕ഁΒΕͨΒ҆શΛ֬อͰ͖ͳ͍ɻ -
4FD$BNQ5-4#PU w ίϚϯυϥΠϯͰ)&9ܗࣜͷ5-4ϑϨʔϜΛೖྗ͠ ͯ5-4ϋϯυγΣΠΫΛߦ͏#PU w 4FSWFS$MJFOU྆ํͰಈ͖·͢ɻ w $MJFOU࠷ॳʹ)FMMP3FRVFTUͷϑϨʔϜΛೖྗ͠ ͯ։࢝ɻ w
/0%&@%(TFDDBNQͰग़ྗϑϨʔϜ ͷ+40/Λग़ྗ͠·͢ɻ -
4FD$BNQ5-4#PU w OQNJOTUBMMTFDDBNQUMTFYFSDJTF w 4FSWFS$MJFOU#PUͷεΫϦϓτΛ࡞ DPOTU4FD$BNQSFRVJSF TFDDBNQUMTFYFSDJTF 4FD$BNQ5-4#PU GBMTF
DMJFOUGBMTF Πϯετʔϧ͞ΕͨOPEF@NPEVMF͕ݟ͔ͭΕ OPEF@NPEVMFTTFDDBNQUMTFYFSDJTFTBNQMFT ʹίʔυ͕͋Γ·͢ɻ IUUQTHJTUHJUIVCDPNTIJHFLJGBBCDCCGFEGBFCB ʹ͋Γ·͢ɻ -
TLSϋϯυγΣΠΫ(full handshake) ClientHello ServerHello Certificate ServerKeyExchange ServerHelloDone ClientKeyExchange ChangeCipherSpec Finished
ChangeCipherSpec Finished Application Data Application Data (จࣈϋϯυγΣΠΫʣ ClientHelloͱServerHelloͷ ΓऔΓͰํ͕ར༻͢ΔTLS όʔδϣϯ҉߸ԽํࣜͳͲ Λ߹ҙ͢Δɻ ҉߸Խͨ͠ΞϓϦ௨৴Λ ߦ͏·Ͱ355ඞཁ -
TLSϋϯυγΣΠΫ(resumption) ClientHello(session_id) ServerHello(session_id) ChangeCipherSpec Finished ChangeCipherSpec Finished Application Data Application
Data (จࣈϋϯυγΣΠΫʣ SessionIDʹΑΔTLSηογϣ ϯͷ࠶։ɻ 伴ަূ໌ॻૹΛεΩοϓɻ ࠓճԋशͷର֎Ͱ͢ ҉߸Խͨ͠ΞϓϦ௨৴Λ ߦ͏·Ͱ355Ͱ͢Ή -
TLS1.2ͷߏ I P ϔ ο μ T C P ϔ
ο μ TLS Record Layer (5όΠτ) λΠϓ ʢ̐छ ྨʣ (1byte) όʔδϣϯ (2byte) ͞ (2byte) Handshake (λΠϓ:0x16) msgλΠϓ ʢ̍̌छྨʣ ͞ ʢ3όΠτʣ ϋϯυγΣΠΫσʔλ Alert (λΠϓ:0x15) Ϩϕϧ ཧ༝ ChangeCipherSpec (λΠϓ:0x14) λΠϓ Application Data (λΠϓ:0x17) ҉߸Խ͞Εͨσʔλ msgλΠϓ ϋϯυγΣΠΫσʔλͷछྨ 0x00 HelloRequest 0x01 ClientHello 0x02 ServerHello 0x0b Certificate 0x0c ServerKeyExchange 0x0d CertificateRequest 0x0e ServerHelloDone 0x0f CertificateVerify 0x10 ClientKeyExchange 0x14 Finished TLS Record Layerσʔλʹ ଓ͍ͯɺ࣍ͷ̐छྨͷTLSσ ʔλͷ͍ͣΕ͔͕ଓ͘ɻ TLS Handshakeɺ͜ͷ ̍̌छྨʹ͔ΕΔɻ -
5-4ϋϯυγΣΠΫϑϨʔϜΛಡΉ Record Layer Handshake (ClientHello) type protocol version length (2byte)
msg type length (3byte) client version random major minor major minor 0x16 0x03 0x03 0x00 0x45 0x01 0x00 0x00 0x41 0x03 0x03 32 byte όΠτ όΠτ ҉߸Խ͞Εͳ͍ ҉߸Խ͞ΕΔ -
ClientHello ߲ ཁૉ αΠζ ઌ಄ͷ͞ ใ client_version uint8 major, uint8
minor 2 N/A random uint32 gmt_unix_time, opaque random_bytes[28] 4 + 28 N/A session_id opaque SessionID <0..32> 1όΠτ cipher_suites uint8 CipherSuite[2] <2..2^16-2> 2όΠτ compression_ methods null(0) <1..2^8-1> 1όΠτ extensions extension_type(65535), extension_data<0..2^16-1> <0..2^16-1> 2όΠτ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 type σʔ λ σʔλ type σʔ λ σʔλ type σʔ λ σʔλ Extension Extensionsσʔλྫ -
ClientHello Record Layer Handshake (ClientHello) type protocol version length (2byte
) msg type length (3byte) client version random sessi on id cipher suite comp ressi on Exte nsion majo r mino r major minor 0x16 0x03 0x03 ?? ?? 0x01 ?? ?? ?? 0x03 0x03 32 byte Մม Մม Մม Մม Version 0x03,0x00 = SSLv3 0x03,0x01= TLSv1.0 0x03,0x02=TLSv1.1 0x03,0x03=TLSv1.2 ΫϥΠΞϯτ͕ར༻Ͱ͖Δ ࠷ߴͷTLSόʔδϣϯΛࢦ ఆɺαʔό͕Ͳͷόʔδϣ ϯΛ͏͔બ͢Δ -
ServerHello ߲ ཁૉ αΠζ ઌ಄ͷ͞ใ server_version uint8 major, uint8 minor
2 N/A random uint32 gmt_unix_time, opaque random_bytes[28] 4 + 28 N/A session_id opaque SessionID <0..32> 1 cipher_suite uint8 CipherSuite[2] 2 N/A compression_method null(0) 1 N/A extensions extension_type, extension_data<0..2^16-1> <0..2^16-1> 2όΠτ Record Layer(5bytes) Handshake (ServerHello) type protocol version length (2bytes) msg type length (3byte) server version random 32bytes session id cipher suite 2bytes compression majo r minor major minor 0x16 0x03 0x03 ? + 4 0x01 ? 0x03 0x03 ? ͞1byte 0x00,0x9c ͞2bytes -
Certificate ߲ ཁૉ αΠζ certificate_list ASN.1Cert<2^24-1> <0..2^24-1> શূ໌ॻ ূ໌ॻ#1 ূ໌ॻσʔλ#1
ূ໌ॻ#2 ূ໌ॻσʔλ#2 ෳͷূ໌ॻσʔλΛૹ ࠷ॳඞͣαʔόূ໌ॻ 2ͭҎ߱தؒূ໌ॻͳͲ -
Perfect Forward Secrecy(PFS) • લํൿಗੑ • ηογϣϯຖʹҰ࣌తͳ伴Λ͏ɻ • ϋϯυγΣΠΫΛؚΉશ҉߸σʔλΛऔಘ͞Ε͍ͯΔΑ͏ͳঢ় گͰɺকདྷతͳൿີ伴࿙ӮͳͲͷϦεΫʹରԠ͢Δɻ
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 Ephemeral:Ұ࣌తͳ 伴ަख๏ -
%)&WT&$%)& w %)%J⒎F)FMMNBOࢄରΛར༻ͨ͠伴ަ H?Y NPE1 ?ZNPE1 H?Z NPE1 ?YNPE1H? YZ
NPE1 ૉ1 δΣωϨʔλH ެ։伴 ࣈɺ੨ࣈʣͳͲͷใΛަɻ&$%)& ΑΓܭࢉྔ͕ଟ͍ɻ w &$%)&ɿପԁ্ؔͰͷࢄରԋࢉΛར༻ͨ͠伴ަ ପԁؔͷύϥϝʔλɾجΛ໊લͰنఆ TFDQ ɺެ։伴 ପԁ ۂઢ্ͷ Λަɻ%)ΑΓ伴ɾܭࢉྔ͕গͳͯ͘͢Ήɻ -
ECDHEͷϋϯυγΣΠΫ ClientHello + elliptic_curves + ec_point_formats ServerHello + ec_point_formats Certificate
ServerKeyExchange ServerHelloDone ClientKeyExchange ChangeCipherSpec Finished ChangeCipherSpec Finished Application Data (จࣈ͕Ճมߋ͞ΕΔͱ͜Ζʣ ClientHello֦ுΛՃ ServerHello֦ுΛՃ ପԁۂઢ໊ͱServer ͷެ։伴Λॺ໊͖ Ͱૹ Clientͷެ։伴Λૹ ପԁͷॻࣜΛ߹ҙ ͑Δପԁۂઢ໊ͱପԁॻࣜΛ௨ TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ެ։伴ຖճϥϯμϜʹੜ͞Ε·͢ -
ECDHE ClientHello֦ு ΫϥΠΞϯτ͕αϙʔτ͍ͯ͠ΔପԁۂઢͷϦετΛαʔόଆʹ௨ɻαʔό Ϧετͷத͔ΒదͳପԁۂઢΛબͼ ServerKeyExchangeͰબͨ͠ପԁ ۂઢΛ௨͢Δ 0 1 2 3
4 5 6 7 elliptic_curves(10) Ϧετ σʔλ secp256r1 (23) 0x00 0x0a 0x00 0x04 0x00 0x02 0x00 0x17 -
ECDHE Client/Server Hello֦ு ପԁ҉߸ͷެ։伴ͷॻࣜ 0 1 2 3 4 5
ec_point_formats(11) Ϧετ σʔλ uncompressed(0) 0x00 0x0b 0x00 0x02 0x01 0x00 -
ECDHE ServerKeyExchange ServerECDHParams Signature ECParameters ECPoint algorithm signature curve_type named_curve
͞ public key (Hello֦ுࢦఆͷॻࣜʣ RSA-SHA256 (0x04,0x01) named_curve (3) secp256r1 (23) signature = sign(algorithm, ClientHello.random + ServerHello.random + ServerECDHParams); RSAൿີ伴ͰServerECDHParmsͱRandomΛॺ໊ -
ServerHelloDone handshake type handshake 0x0e 0x00 0x00 0x00 ServerHelloͷऴྃͷ߹ਤ ϋϯυγΣΠΫϔομͷΈ
͜͜Ͱ4FSWFS)FMMP͔Βଓ͘Ұ࿈ͷϋϯυγΣΠ Ϋͷલ͕ऴྃͨ͜͠ͱΛࠂ͛Δ߹ਤ -
PreMasterSecret/MasterSecret • TLSͰར༻͢ΔIV(ॳظϕΫτϧ)ɺڞ༗伴ɺMAC伴ͷσʔλݩ • MasterSecret48όΠτɻPreMasterSecretͷ͞伴ަํࣜʹґ ଘ͢Δɻ • MasterSecretɺPreMasterSecretɺClientRandomɺ ServerRandomɺݻఆϥϕϧ͔Βੜ͢Δɻ •
Clinet/ServerRandomશؙͯݟ͑ɻPreMasterSecretɺඞͣࢮक͠ ͯकΒͳ͍ͱ͍͚ͳ͍ɻ͜Ε͕࿙͍͑͢ΔͱTLSͷ҆શੑશ͓ͯ͡ΌΜɻ 'SFBL-PHKBN -
ChangeCipherSpec ૹ৴ݩ͕҉߸։࢝Λએݴɻ͜ΕΛૹ৴ͨ͠ޙ҉߸ ௨৴Λߦ͏ɻ Record Layer ChangeCipherSpec ContentTy pe Version length
(2byte) major minor 0x14 0x03 0x03 0x00 0x01 0x01 -
Finished struct { opaque verify_data[verify_data_length]; } Finished; verify_data = PRF(master_secret,
finished_label, Hash(handshake_messages))[0..11]; finished_label: ΫϥΠΞϯτɺ"client finished"ɺαʔό"server finished" 12όΠτݻఆ ͜Ε·ͰͷϋϯυγΣΠΫσʔλʢͨ ͩࣗ͠আ͘ʣͷϋογϡΛܭࢉ TLS1.2Ͱ SHA256Λ͏ FinishedΛड৴͢Δͱɺ͜Ε·Ͱૹड৴ͨ͠ϋϯυγΣΠΫσʔλ͔Βܭࢉͨ͠ͱൺֱɻ ϋϯυγΣΠΫσʔλ͕վ͟Μ͞Εͯͳ͍͜ͱΛ֬ೝ͢Δɻ -
ChangeCipherSpec Server -> Client ClientHello ServerHello Certificate ServerKeyExchange ServerHelloDone ClientKeyExchange
ChangeCipherSpec Finished ChangeCipherSpec (จࣈϋϯυγΣΠΫʣ -
Application Data ClientHello ServerHello Certificate ServerKeyExchange ServerHelloDone ClientKeyExchange ChangeCipherSpec Finished
ChangeCipherSpec Finished Application Data (จࣈϋϯυγΣΠΫʣ -
$IB$IB1PMZ w $IB$IB%+#FSOTUFJO EKC ࢯ͕ߟҊͨ͠҉ ߸ํࣜ ࠷ॳʹ4BMTBΛൃදɺ$IB$IBʹվྑ w 1PMZEKCࢯ͕ߟҊͨ͠."$ํࣜ
"&4ͱΈ ߹Θͤͨ"&41PMZͰൃද جຊ྆ऀಠཱͨ͠ͷɻ(PPHMFͷ"EBN-BOHMFZ ࢯ͕$IB$IB1PMZͱͯ͠ʹυϥϑ τ༷Λެ։ -
1PMZจൃද ࠷ऴ൛ $IB$IBจൃද ࠷ऴ൛ 4BMTB͕F4USFBNͷ'JOBMJTUʹબఆ $IB$IBΛͬͨ#-",&͕4)"ͷ࠷ऴީิʹબఆ
ESBGUBHMUMTDIBDIBQPMZެ։ $ISPNF͕$IB$IB1PMZΛ࣮ɻ(PPHMFαʔϏεͰར༻։࢝ 0QFO44)͕$IB$IB1PMZΛ࣮ 5-48(͔Β$'3($IB$IB1PMZͷ༷ݕ౼ΛਐΊΔ͜ͱΛཁ -JCSF44-͕GPSLɻ$IB$IB1PMZΛ࣮ #PSJOH44-͕GPSLɻ$IB$IB1PMZΛ࣮ $MPVE'MBSF͕$IB$IB1PZͷར༻։࢝ɻ0QFO44-༻ύονެ։ 3'$ $IB$IB1PMZ༷ ͕ެ։ 0QFO44- BMQIB ͕$IB$IB1PMZΛ࣮ 'JSFGPY͕$IB$IB1PZΛ࣮ 3'$$IB$IB1PMZ$JQIFS4VJUFTGPS5SBOTQPSU-BZFS4FDVSJUZ 5-4 $IB$IB1PMZ͜Ε·ͰͷาΈ 4OPXEFOࣄ݅ -
"&4ͱ$IB$IBͷൺֱ "&4 $IB$IB ํࣜ ϒϩοΫ CJUT ετϦʔϜ ೖྗ
伴 CJUT 伴CJUT /PODFͳ͠ ॳظΧϯλʔͳ͠ /PODFCJUT EKCจͰCJUT ॳظΧϯλʔCJUT ඪ४ /*45'*14 3'$ 4BMTBFTUSFBNιϑτΣΞ1Iબఆ ੑೳಛੑ "&4/*ͳͲઐ༻ϋʔυΣΞʹΑΔߴ ॲཧ͕Մೳ ࣄલܭࢉ4#09͕ඞཁͳ͘ɺλΠϛϯά߈ܸ͕ൃੜ͠ʹ ͍͘ɻ4*.%ΛͬͨߴͳιϑτΣΞॲཧ͕Մೳ ҙࣄ߲ ΩϟογϡλΠϛϯάͳͲαΠυνϟωϧ ߈ܸʹରԠ࣮ͨ͠Ͱ͋Δ͜ͱ /PODFΛ࠶ར༻͠ͳ͍͜ͱ %+#ͷจIUUQDSZQUPDIBDIBDIBDIBQEG͕ΞϧΰϦζϜنఆͷࢀরઌ ΧϯλʔϞʔυͱΈ߹ΘͤͯετϦʔϜ҉߸ͱͯ͠ར༻͕Մೳ -
2VBSUFS3PVOE B C D E B C E?B
E D E C?D C B C E?B E D E C?D C B C D ECJUVOTJHOFEJOU Y Z Y Z NPE? ?903 OOϏοτࠨϩʔςγϣϯ B C D Eʹରͯ͠ɺશͯճ ԋࢉ͕ߦΘΕ͍ͯΔɻ $IB$IBϥϯυԋࢉ ࢉ͕ͳ͘ݻఆԋࢉ $POTUBOU5JNF B C D E -
B B B B B B B B B B
B B B B B B C C C C C C C C C C C C C C C C C C C C C C B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D D D D D D D D D D D D D D D όΠτY ྻϥϯυ ର֯ϥϯυ 2VBSUFS3PVOE όΠτ όΠτ όΠτ όΠτ छྨͷ$IB$IBϥϯυ ԋश -
F E C LFZ LFZ LFZ LFZ LFZ LFZ
LFZ LFZ DPVOUFS OPODF OPODF OPODF T T T T T T T T T T T T T T T T ྻϥϯυ ର֯ϥϯυ Yճ ॳظ$IB$IB4UBUF $IB$IB4UBUF ఆ ࣮ҎԼͷจࣈྻ FYQBOECZUFL 伴 όΠτ /PODF όΠτ ͔Β࢝·ΔΧϯλʔ όΠτ $IB$IB4USFBN4UBUF ϥϯυ -
$IB$IB4UBUFͷ &OEJBOʹҙ
L<> L<> L<> L<> L<> L<> L<> L<> L<> L<> L<> L<> L<> L<> L<> L<> F E C L<>L<>L<>L<> L<>L<>L<>L<> L<>L<>L<>L<> L<>L<>L<>L<> LFZ LFZ LFZ LFZ DPVOUFS OPODF OPODF OPODF όΠτຖʹ۠ͬ ͨ-JUUMF&OEJBO ͜ͷΑ͏ͳॱ൪Ͱσʔ λॲཧΛ͢Δ࣌ҙɻݟ͔ ͚#JH&OEJBOɻ -
$IB$IB#MPDL'VODUJPO F E C LFZ LFZ LFZ LFZ LFZ
LFZ LFZ LFZ DPVOUFS OPODF OPODF OPODF T T T T T T T T T T T T T T T T ༨ ॳظ$IB$IBTUBUF 3PVOE$IB$IBTUBUF 'JOBM$IB$IB4UBUF -
$IB$IB,FZ4USFBN CB GFED CB GFED
CB GFED CB GFED BCDEFGBCDEFG BCDEFGBCDEFG ̐όΠτ୯Ґͷ֤ཁૉΛ-JUUMF&OEJBOͰฒͼସ͑ ,FZ4USFBNͱฏจͷ903Λऔͬͯ҉߸จΛੜ͢Δɻ -
伴ɾ/PODF Χϯλʔ 903 ʹ ฏจ ҉߸จ ॳظ$IB$IB 4UBUF 伴ɾ/PODF Χϯλʔ
903 ʹ ฏจ ҉߸จ ॳظ$IB$IB 4UBUF 伴ɾ/PODF Χϯλʔ 903 ʹ ฏจ ҉߸จ $IB$IB4UBUF ,FZ4USFBN ॳظ$IB$IB 4UBUF 伴ɾ/PODF Χϯλʔ 903 ϥϯυ ॳظঢ়ଶ ʹ ฏจ ҉߸จ ॳظ$IB$IB 4UBUF όΠτ $IB$IBฏจͷ҉߸Խ ϥϯυ ॳظঢ়ଶ ϥϯυ ॳظঢ়ଶ ϥϯυ ॳظঢ়ଶ $IB$IB4UBUF ,FZ4USFBN $IB$IB4UBUF ,FZ4USFBN $IB$IB4UBUF ,FZ4USFBN ෮߸Խ,FZ4USFBNͱ҉߸จΛ903͢Δ͚ͩ ͳͷͰखॱ΄΅ಉҰ -
ͳͥNFTTBHF BVUIFOUJDBUPS͕ඞཁ͔ʁ IUUQTXXXFYBNQMFDPN 903ͨ͠վ͟Μσʔλ Ϩίʔυ *7 ҉߸จ λά Ϩίʔυ *7
վ͟Μ҉߸จ λά )FMMP8PSME )FMMP$SBDLFE ܭࢉ͢Δͱ λά͕ҧ͏ʂ վ͟Μ ͞ΕͯΔΘʂ λάͷ࠶ܭࢉʹൿີ伴͕ඞཁ -
()"4)ͱ1PMZ ()"4) 1PMZ ܭࢉํࣜ 8FHNBO$BSUFS$POTUSVDUJPO CJOBSZpFME Y Y Y Y
QSJNFpFME 伴 CJUT "&4ͱΈ߹Θͤͨ࣌ CJUT ."$ CJUT ར༻తʹԠͯ͡Γ٧ΊΔ CJUT ඪ४ /*4541% "&4($. 3'$ ੑೳಛੑ 1$-.6-2%2*ͳͲಛఆܭࢉ༻ϋʔυΣΞ ʹΑΔߴॲཧ͕Մೳ ࣄલܭࢉςʔϒϧ͕ඞཁͳ͘ɺ4*.%Λͬͨߴ ͳιϑτΣΞॲཧ͕Մೳ ҙࣄ߲ w 伴ɺ*7 /PODF Λ࠶ར༻͠ͳ͍͜ͱ w ."$CJUTҎ্Λར༻͢Δ͜ͱ w 伴ɺ*7 /PODF Λ࠶ར༻͠ͳ͍͜ͱ w λΠϛϯά߈ܸʹରԠ࣮ͨ͠Ͱ͋Δ͜ͱ "&4ͱΈ߹Θͤͨ%+#ͷจIUUQDSZQUPNBDQPMZQEG͕ΞϧΰϦζϜنఆͷࢀরઌ -
1PMZOPNJBMFWBMVBUJPO ೝূ͢Δσʔλ $ $ $ $O $O ʜ G S
$SO $SO $SO ʜ $OS $OS ʜ $S $ S $ S ʜ $O S $O S ղͨ͠ϝοηʔδΛ ͱͨ͠ଟ߲ࣜͷͰධՁ ϗʔφʔ๏Λͬͯࢉ ԋࢉΛݮΒͯ͠ܭࢉ 伴 S -
8FHNBO$BSUFS$POTUSVDUJPO GPS1PMZ ೝূ͢Δσʔλ $ $ $ $O $O ʜ 伴
S 伴 T ૉQ $SO $SO $SO ʜ $OS $OSNPEQ T Ϣχόʔαϧϋογϡ 0OF5JNF伴 w ֶతʹڧ͕ূ໌Ͱ͖͍ͯΔ w 4)"ͳͲͷ)."$ΑΓߴ -
1PMZ $SO $SO $SM ʜ $OS $OSNPE T NPE ೝূ͢Δσʔλ
伴 S $ $ $ $O $O ʜ όΠτͰׂɻ಄ʹ̍όΠτ Ճͯ̍̓͠όΠτʹ όΠτ 伴 T όΠτ ࠷ऴతʹόΠτ ʹΓ٧ΊΔ CJUؒҾ͖ ઈົ ͳαΠζͷૉ -
ೝূ͢Δσʔλ $ όΠτ $ όΠτ $
όΠτ ʴ $ όΠτ $ 1PMZVQEBUF ʴ 1PMZpOBM 1PMZʹΑΔ."$σʔλͷੜ όΠτ CJU ಄ͷCJUআ ."$ όΠτ ʴ όΠτ ."$ ࠷ऴతͳೝূίʔυ 伴S CJUؒҾ͖ 伴 S 伴 T $IB$IB Χϯλʔ LFZ OPODF 伴 T 伴S CJUؒҾ͖ 伴S CJUؒҾ͖ ԼҐόΠτ ԼҐόΠτ ্ҐόΠτ ෦༨ ෦༨ 1PMZVQEBUF -
5-4͚"&4($.ͱ$IB$IB1PMZ "&4($. $IB$IB1PMZ ඪ४ 3'$ 3'$ 3'$ ESBGUJFUGUMTDIBDIBQPMZ ࣌*&5'-BTU$BMMத
ରশ҉߸ "&4 "&4 $IB$IB 伴ަ 34" %) %)& &$%)& &$%)&%)& ೝূ 34" &$%4" 14, 13' 4") "&4 4)" "&4 4)" ໌ࣔత*7 CZUFT ͳ͠ /PODF $MJFOU4FSWFS8SJUF*7 CZUFT ໌ ࣔత*7 CZUFT ύουͨ͠4FR/VN CZUFT 903$MJFOU4FSWFS8SJUF*7 CZUFT λά CZUFT CZUFT ࠷খ҉߸Խ CZUFT CZUFT -
ॳظΧϯλʔ ॳظΧϯλʔ JODS ฏจ $IB$IB,FZ4USFBN LFZ OPODF 1PMZ 伴S 伴T
҉߸จ ೝূλά MFO ฏจ ccMFO ҉߸จ "VUI%BUB ̌1BE ̌1BE ҉߸จ 伴S 伴T $IB$IB,FZ4USFBN LFZ OPODF MFO จࣈྻɺCJUɺMJUUMFFOEJBOදه $IB$IB1PMZʹΑΔ"&"%ੜ $IB$IBΛͬͯ 1PMZͷ伴Λੜ