Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Signed HTTP Exchanges (SXG)とはなにか/SXG Explained
Search
Shigeki Ohtsu
May 28, 2019
Technology
10
3.3k
Signed HTTP Exchanges (SXG)とはなにか/SXG Explained
Signed HTTP Exchange Study
https://web-study.connpass.com/event/128480/
の発表資料です。
Shigeki Ohtsu
May 28, 2019
Tweet
Share
More Decks by Shigeki Ohtsu
See All by Shigeki Ohtsu
Privacy Sandboxとはなにか/Privacy Sandbox Explained
shigeki
5
1.7k
内定者向け黒帯トーク#4/Kuroobi-Talk for fresh persons #4
shigeki
3
1.9k
Webプロトコル最前線
shigeki
0
440
運用の観点から見たTLSプロトコルの動き
shigeki
0
1.4k
祝Node-v10リリース これまでのNodeの振り返り
shigeki
7
3.4k
運用の観点から見たTLSプロトコルの動き
shigeki
14
3.7k
IETF QUICに至るプロトコルの透過性問題とその対策
shigeki
3
1.1k
QUIC WG報告
shigeki
4
1.1k
Nodeへの コード貢献の仕方
shigeki
11
5.1k
Other Decks in Technology
See All in Technology
GraphQLとスキーマファーストで切り開く ライドシェアの未来
ku0522a
0
490
[RSJ24] Object Retrieval in Large-Scale Indoor Environments Using Dense Text with a Multi-Modal Large Language Model
keio_smilab
PRO
0
220
実践的なバグバウンティ入門
scgajge12
4
2.1k
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
15
39k
分野に潜むツールの紹介
pojiro
1
330
New Relicで実践する外形監視
aeonpeople
1
120
脆弱星に導かれて
nishimunea
1
1.5k
エンジニアリングマネージャーが紐解く、事業視点から組織文化まで、包括的アプローチの探求 / READYFOR
9ma3r
13
2.2k
EitherT_with_Future
aoiroaoino
0
380
Azure Cosmos DB での時系列ログの運用と改善
sansantech
PRO
0
190
AWS IAM Identity Center議論会 〜 認証認可結合モデルと認証認可分離モデル / 20240827-jawsug-arch-iam_identity_center
opelab
3
320
Eventual Detection Engineering
ken5scal
0
390
Featured
See All Featured
Bash Introduction
62gerente
608
210k
Code Review Best Practice
trishagee
62
16k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
34
1.9k
Statistics for Hackers
jakevdp
793
220k
Fashionably flexible responsive web design (full day workshop)
malarkey
400
65k
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.2k
YesSQL, Process and Tooling at Scale
rocio
167
14k
Documentation Writing (for coders)
carmenintech
65
4.3k
Large-scale JavaScript Application Architecture
addyosmani
508
110k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
165
48k
Producing Creativity
orderedlist
PRO
340
39k
How GitHub (no longer) Works
holman
309
140k
Transcript
4JHOFE)551&YDIBOHFT 49( ͱͳʹ͔ 49(ͷΈ͔Β".1࿈ܞͷಋೖ·Ͱ େൟथ 49(4UVEZ ݄̑̎̔
༰ 49(ͷ͘͠Έ 49(".1γεςϜࣄྫ BNQQBDLBHFSʹ͍ͭͯ 49(ಋೖৼΓฦΓ
49(ͷ͘͠Έ
ɿԿ͕ҧ͏ʁ 4JHOFE)551&YDIBOHFT 4JHOFE&YDIBOHF 49(
ղ 4JHOFE)551&YDIBOHFT༷ͷਖ਼໊ࣜশ 4JHOFE&YDIBOHF͍ͯ͠Δ࣌ΈΜͳ͍ͬͯΔݴ༿ 49(ɿ֦ுࢠུ͘͠শදه
Ͳ͕ͬͪ49( " #
ղ " # 49( ".1
Ͳ͕ͬͪ49( " #
ղ " # 49( )5514
)5514ͱ49(ͷҧ͍ )5514 49( %JTUSJCVUPS 1VCMJTIFS ௨৴ΛकΔ ίϯςϯπΛकΔ ηΩϡΞνϟωϧ FYBNQMFDPN FYBNQMFDPN
QVCMJTIFSͷPSJHJOͰදࣔ ॺ໊ ॺ໊
)5514ͱ49(ͷҧ͍ )5514 49( ػີੑ 㾎 /" શੑ 㾎 㾎 ೝূ
㾎 㾎 ൱ೝࢭ /" 㾎 0SJHJO ଓઌ 1VCMJTIFS อޢ͍ͯ͠Δ࣌ؒ ௨৴͍ͯ͠Δؒ ඦϛϦඵఔ ॺ໊ͷ༗ޮظؒ ࠷େ̓ؒ )551ͷ੍ݶ /" ΩϟογϡՄೳͳίϯςϯπݶఆ (&5ݶఆɺېࢭϔομ༗
49(ͷΓऔΓํ๏छ 4BNF0SJHJO DSPTTPSJHJO 4FSWFS1VTI BQQMJDBUJPO TJHOFEFYDIBOHF ϑΥʔϚοτ 1VTI 1SPNJTF DSPTTPSJHJO
4FSWFS1VTI "DDFQUBQQMJDBUJPOTJHOFEFYDIBOHFWC 4JHOBUVSF 4JHOFE)FBEFST 49(ϑΝΠϧ &/"#-&@$3044@ 03*(*/@164) &/"#-&@$3044@ 03*(*/@164) ࠓͷ
දతͳ49(ͷϢʔεέʔε ΦϑϥΠϯ ΦϯϥΠϯ දྫ49(".1 49( $FSU 1VCMJTIFS %JTUSJCVUPS )551ϦΫΤετ )551Ϩεϙϯε
)551ϦΫΤετ )551Ϩεϙϯε ύοΫͯ͠ॺ໊ ॺ໊ݕূͯ͠࠶ੜ 49(ϑΝΠϧ
49(".1γʔέϯεਤ ݕࡧαʔϏε ".1$BDIF 0SJHJO 6" 4FBSDI 4&31 1SFGFUDI 49( (&5
$FSU$IBJO 0$41 49( $FSU$IBJO 0$41 -PDBM$BDIF 7FSJGZ OBWJHBUJPO -PDBM$BDIF ".1࠷దԽ 5SBOTGPNFS 0SJHJOʹΞΫηε͠ͳ͍ ͜ͱͰ1SJWBDZΛอޢ "DDFQUBQQMJDBUJPOTJHOFEFYDIBOHFWC ".1$BDIF5SBOTGPSNHPPHMFW 7BSZ".1$BDIF5SBOTGPSN #PUΫϩʔϧ (&5 #PUΫϩʔϧ DFSUVSMॻ͖͑ JOEFYԽ %JTUSJCVUPS 1VCMJTIFS
ݕࡧ݁Ռ 4&31 ͔Β 49(Λ1SFGFUDI
49(7FSJGZͷঢ়گ EFWUPPM্ωοτϫʔΫύωϧͷ1SFWJFXͰ֬ೝͰ͖·͢
49(ͷঢ়گ w $ISPNF.ΑΓEFGBVMUͰFOBCMF όʔδϣϯC w J04൛ඇରԠɻݱঢ়ϞόΠϧڥͰ49(͕͑Δͷ "OESPJE$ISPNFͷΈ w .BD04൛*&&EHF
$ISPNJVNϕʔε Ͱ49(ಈ࡞֬ೝࡁ w (PPHMF4FBSDIͰ݄த०ΑΓ49(".1Λਖ਼ࣜରԠ w $MPVEqBSF49(ػೳఏڙ։࢝ (6*ϕʔε w ඪ४Խʜ·ͩΘ͔Γ·ͤΜɻ%*41"5$)&4$"1& 8PSLTIPQ
8FC1BDLBHJOH༷֓ཁ ESBGUZBTTLJOIUUQPSJHJO TJHOFESFTQPOTF ESBGUJFUGIUUQCJT IFBEFSTUSVDUVSF ESBGUUIPNTPO IUUQNJD ESBGUZBTTLJOXQBDL CVOEMFEFYDIBOHFT -PBEJOH4JHOFE
&YDIBOHFT 8)"58( 'FUDI #VOEMF 49( 'FUDIʹର͢Δ ϞϯΩʔύον )551ϘσΟͷ )BTI%JHFTU ΑΓѻ͍͍͢)551 ϔομͷهड़ॻࣜ 8FC1BDLBHJOH༷ 3'$ $#03 #JOBSZ+40/ͷ γϦΞϥΠζ C݄࣌ IUUQTHJUIVCDPN8*$(XFCQBDLBHF
.FSLMF*OUFHSJUZ$POUFOU&ODPEJOH )BTI "cc1SPPG#ccY " # $ " # $ )5513FTQPOTF#PEZ
ST SFDPSETJ[F ST " 1SPPG# # 1SPPG$ $ .*$& %JHFTUNJTIB'037ʜ )BTI #cc1SPPG$ccY )BTI $ccY 1SPPG$ 1SPPG# )551Ϩεϙϯεϔομ ϔομใͰ#PEZͷ શੑΛνΣοΫ 49(༷ͰSFDPSETJ[F,#ҎԼʹ੍ݶ
49(ϑΝΠϧͷத C sxg1-b3 ϚδοΫ fallbackURL 49(ݕূ͕ࣦഊͨ͠߹ʹΞ Ϋηε͢Δ63- signature ॺ໊σʔλ signedHeaders
)551Ϩεϙϯεϔομ $#03ܗࣜ payload body )551ϨεϙϯεͷϘσΟ .*$&ܗࣜ sig ॺ໊ integrity )551ϨεϙϯεϘσΟͷϋογϡΞϧΰϦ ζϜ validity-url ৽͍͠ॺ໊σʔλΛऔಘ63- ݱࡏະ࣮ cert-url ূ໌ॻσʔλͷ63- ॺ໊ର֎ cert-sh256 ূ໌ॻσʔλͷϋογϡ ed25519key ॺ໊ݕূ͢Δެ։ݤ ݱࡏະ࣮ date ॺ໊ͨ࣌ؒ͠ expire ॺ໊ͷ༗ޮظݶ ࠷େؒ sxg1-b3 (8) fallbackUrl length (2) fallbackURL sigLength (3) headerLength (3) signature signedHeaders payload body
49(Ͱॺ໊͍ͯ͠Δσʔλ Y Y YY )551&YDIBOHF Y DFSUTIB
WBMJEJUZVSMMFO WBMJEJUZVSM EBUF FYQJSFT SFRVFTU6SMMFO SFRVFTU6SM SFTQPOTF)FBEFSTMFO SFTQPOTF)FBEFST C͔ΒSFRVFTUϔομআ֎ w 49(ূ໌ॻͷൿີ伴ΛͬͯFDETBXJUI4)" TFDQS Ͱॺ໊ w 49(ূ໌ॻͷެ։伴Λͬͯॺ໊Λ7FSJGZ w ॺ໊ͷ7FSJGZ͕ޭͯ͠ϨεϙϯεϘσΟͷ.*$&νΣοΫ͕Ͱ͖ͨΒ49(͕WBMJE
49(ͷத $#03 .*$& ॺ໊
49(ͷத
$FSU$IBJO $#03ͷத $#03ܗࣜ ݱࡏͷ࣌ࠁ Ͱ༗ޮʁ 49(֦ு༗ $5 ϩά༗ʁ Ҏɺݱࡏ༗ޮʁʁ SPPU$"·Ͱ
ॺ໊ݕূ 6 '%$4DSPMM 6 %⛓$IBJOT
49(ېࢭ)551ϔομ $POOFDUJPO ,FFQ"MJWF 1SPYZ$POOFDUJPO 5SBJMFS 5SBOTGFS&ODPEJOH 6QHSBEF "VUIFOUJDBUJPO$POUSPM "VUIFOUJDBUJPO*OGP $MFBS4JUF%BUB
0QUJPOBM888"VUIFOUJDBUF 1SPYZ"VUIFOUJDBUF 1SPYZ"VUIFOUJDBUF*OGP 1VCMJD,FZ1JOT 4FD8FC4PDLFU"DDFQU 4FU$PPLJF 4FU$PPLJF 4FU1SPpMF 4USJDU5SBOTQPSU4FDVSJUZ 888"VUIFOUJDBUF )PQCZ)PQϨεϙϯεϔομ 4UBUFGVMϨεϙϯεϔομ 49(Խ͢Δ".1αʔό͔ΒͷϨεϙϯεʹ্هϔομ͕ೖ͍ͬͯͳ͍͔ҙ͢Δ BNQQLHͰ&SSPS0O4UBUFGVM)FBEFSTͷઃఆͰ੍ޚͰ͖·͢ɻ
BNQQBDLBHFS ʹ͍ͭͯ HJUIVCDPNBNQQSPKFDUBNQQBDLBHFS SFMFBTFCSBODI1SPEVDUJPO༻ϒϥϯν NBTUFSCSBODI։ൃϒϥϯν
BNQQBDLBHFSఏڙίϚϯυ w DNEBNQQLHBNQQLHຊମ w DNEBNQQLH@EM@TYH49(ͱূ໌ॻΛμϯϩʔυ w DNEBNQQLH@UFTU@DBDIF49(Λఏڙ͢Δ؆қΩϟογϡαʔό w DNEHBUFXBZ@TFSWFSH31$Ͱ49(Λੜ͢ΔήʔτΣΠαʔό w
DNEUSBOTGPSN".1࠷దԽΛߦ͏ίϚϯυ
BNQQLHUPNM NBTUFS 1PSU -JTUFOϙʔτ EFGBVMU -PDBM0OMZ MPDBMIPTUͰ-JTUFO͢Δ͜ͱΛڧ੍ EFGBVMUGBMTF $FSU'JMF 49(ূ໌ॻͷϑΝΠϧ
αʔόূ໌ॻ தؒূ໌ॻ 1&.ܗࣜ ,FZ'JMF 49(ূ໌ॻͷൿີ伴ϑΝΠϧ 1&.ܗࣜ 0$41$BDIF 0$41σʔλͷΩϟογϡϑΝΠϧͷύε 'PSXBSEFE3FRVFTU)FBEFS GFUDI͢Δࡍʹసૹ͢ΔϦΫΤετϔομ <<63-4FU>> <63-4FU4JHO> ॺ໊༻ͷઃఆ ඞਢ %PNBJO ॺ໊͢ΔυϝΠϯ 1BUI3& ॺ໊ΛڐՄ͢Δ1BUI EFGBVMU 1BUI&YDMVEF3& ॺ໊ΛڐՄ͠ͳ͍1BUI 2VFSZ3& ॺ໊ΛڐՄ͢Δ2VFSZύϥϝʔλ EFGBVMU &SSPS0O4UBUFGVM)FBEFS TUBUFGVMϔομ͕͋ͬͨΒQSPYZͤ͞Δ͔আ͢Δ͔ .BY-FOHUI 63-ͷ࠷େ EFGBVMU <63-4FU'FUDI> ".1ίϯςϯπΛ'FUDI͢Δઃఆ Φϓγϣϯ 4DIFNF GFUDIΛڐՄ͢ΔTDIFNB EFGBVMUIUUQT 4BNF1BUI ॺ໊ͱಉ͡QBUIͰGFUDI͢Δ͜ͱΛڧ੍ͤ͞Δ %PNBJO3& GFUDIΛڐՄ͢ΔυϝΠϯͷύλʔϯ %PNBJO GFUDI͢ΔυϝΠϯ 1BUI3& GFUDIΛڐՄ͢Δ1"5) EFGBVMU 2VFSZ3& GFUDIΛڐՄ͢Δ2VFSZύϥϝʔλ EFGBVMU
BNQQLH DPOpH DPOpHϑΝΠϧͷࢦఆ EFWFMPQFNFOU w $BO4JHO)551&YDIBOHF֦ு͕ͳ͍ূ໌ॻͷར༻ΛڐՄ͢Δ w MPDBMIPTUѼͷ63-͚ͩڐՄ w ".1$BDIF5SBOTGPSN"DDFQUϔομඞཁͳ͍
JOWBMJEDFSU $BO4JHO)551&YDIBOHF֦ு͕ͳ͍ূ໌ॻͷར༻ΛڐՄ͢Δ ϩάඪ४ग़ྗͷΈ ίϚϯυϥΠϯϑϥά
BNQQLHͷϦΫΤετ QSJWEPDIUUQTFYBNQMFDPNBNQ QSJWEPD GFUDIIUUQ"''JOUFSOBMDPN'BNQTJHOIUUQT"''FYBNQMFDPN'BNQ QSJWEPD TJHOIUUQT"''FYBNQMFDPN'BNQ IUUQTFYBNQMFDPNBNQ BNQQLH BNQQLH BNQQLH
IUUQTFYBNQMFDPNBNQ IUUQJOUFSOBMDPNBNQ ॺ໊υϝΠϯͱ'FUDIઌ͕ಉҰ ॺ໊υϝΠϯͱ'FUDIઌ͕ҟͳΔ BNQQLHલஈͰ5-4ऴΛͯ͠ɺ֎෦͔ΒQSJWEPDʹଓͤ͞ͳ͍͜ͱ 5 - 4 ऴ ɾ 1 B U I ม ߋ IUUQTFYBNQMFDPNBNQ IUUQTFYBNQMFDPNBNQQLH 49(ূ໌ॻཁٻϦΫΤετ BNQQLH 49(ཁٻϦΫΤετ
5SBOTGPSNFS w ͜Ε·Ͱ".1$BDIFͰ(PPHMF͕".1࠷దԽॲཧΛߦͬͯ ͖ͨ ".1ͷSVOUJNFWBMVFͷೖΕࠐΈJOMJOFԽFUD w 49(Ͱॺ໊ͨ͠ޙͰ࠷దԽ͕ෆՄೳɻ49(Խͷલʹ Δඞཁ͕͋Δɻ w
5SBOTGPSNFSͷࢦఆΛ".1$BDIF5SBOTGPSNFSϔομͰ ωΰγΤʔγϣϯ͢ΔɻόʔδϣϯिؒͰ্͕Δ༧ఆ w ".1$BDIF5SBOTGPSNHPPHMFW w ".1$BDIF5SBOTGPSNBOZ #PU IUUQTHJUIVCDPNBNQQSPKFDUBNQIUNMCMPCNBTUFSTQFDBNQDBDIFUSBOTGPSNNE 7BSZ".1$BDIF5SBOTGPSN ".1$BDIF5SBOTGPSNHPPHMFW IUUQTHJUIVCDPNBNQQSPKFDUBNQIUNMCMPCNBTUFSTQFDBNQDBDIFNPEJpDBUJPOTNE
49(ূ໌ॻ w 49(ΛαʔϏεͰఏڙ͢ΔͨΊʹඞཁෆՄܽ w ௨ৗͷ&$$ূ໌ॻ TFDQ ʹ49(֦ு͕͍ͨͷ w ௨ৗͷ)5514αʔό༻్ͷূ໌ॻʹ͏͜ͱېࢭ w
ݱࡏ%JHJDFSUࣾͷΈൃߦ w ݄ΑΓ w ূ໌ॻͷ༗ޮظݶΛʹ੍ݶ w %/4$""ϨίʔυొΛඞਢԽ 49(֦ு
$""ಋೖͷࡍͷҙࣄ߲ w $/".&͚͍ͯΔϨίʔυʹଞϨίʔυ͚Εͳ͍ w $/".&ઌͷ$""Λݟʹߦ͕͘$/".&ͷυϝΠϯΛḷΒͳ͍ 3'$&SSBUB w $/".&ઌͷ$""͕ͳ͚ΕυϝΠϯͷ$""Λࢀর͠ʹߦ͘ɻ FYBNQMFDPN$""JTTVFEJHJDFSUDPNDBOTJHOIUUQFYDIBOHFTZFT
)5514ͱ49(ͷηΩϡϦςΟͷҧ͍ ൿີ伴͕࿙Ӯͨ͠߹ ΦϑϥΠϯڥ POQBUI %/4Λม͑Εͳ͔ͬͨ Β.*5.͔͠ͳ͍ ωοτϫʔΫڥ ͍Βͳ͍ ෆਖ਼49( )5514
49( վ͟Μ ౪ௌ ͳΓ͢·͠ վ͟Μ ͳΓ͢·͠ P⒎QBUI $""Ͱূ໌ॻͷෆਖ਼ൃߦɾޡൃߦΛ͗ ظؒ ͷ49(ূ໌ॻͰةຆԽ࣌ͷϦεΫΛݮ ࿙Ӯ
49(".1 γεςϜࣄྫ
".149(γεςϜ֓ཁ ݕࡧαʔϏε ".1Ωϟογϡ 49( ݕࡧ 1SFGFUDI 0$4αʔό ".1$%/ ".1αʔό BNQQLH
49(3PVUFS )55141SPYZ
)55141SPYZ w Πϯλʔωοτ͔Βͷ)5514ଓͷऴ w Ωϟογϡػೳ w ෦αʔϏεͷৼΓ͚ BNQ".1αʔϏε BNQQLH 49(ূ໌ॻऔಘ
$SBXMFSCPU BNQ BNQQLH ".1͚ϦΫΤετ ".1Ҏ֎ϦΫΤετ 49(3PVUFS ".1Ҏ֎ͷαʔϏε
49(3PVUFS w $SBXMFSʹ49(ରԠͰ͋Δ͜ͱΛΒͤΔ 7BSZ".1 $BDIF5SBOTGPSN w 49(औಘϦΫΤετ ".1$BDIF5SBOTGPSN HPPHMFW
͕དྷͨΒBNQQLʹ;Δɻ w ϦΫΤετΛBNQQLH༻ͷRVFSZQBSBNFUFSʹมߋ )55141SPYZ 49(3PVUFS BNQQLH ".1αʔό
BNQQLH w ".1ίϯςϯπ͔Β49(Λੜ͠ఏڙ͢Δ ࠷େ.# w ΫϥΠΞϯτͷ࣌ؒͣΕΛߟྀͯ͠ॺ໊ظؒ̍લ͔Β̒ޙ w 49(ੜ࣌ʹ".1࠷దԽ 5SBOTGPSN
Λߦ͏ w 49(ূ໌ॻͱ0$41Λ·ͱΊͨσʔλ DFSU DCPS Λੜ͠ɺఏڙ ͢Δ w ύϒϦοΫΩϟογϡʹద͞ͳ͍ϔομͷνΣοΫআΛߦ͏ w TUBUVT$PEFҎ֎جຊεϧʔ QSPYZ IUUQTHJUIVCDPNBNQQSPKFDUBNQQBDLBHFS BNQQLH ".1$%/ 0$41αʔό 49(3PVUFS ".1αʔό ".1$BDIF5SBOTGPSN ͖ϦΫΤετ 49(ূ໌ॻऔಘϦΫΤετ $44 357 ࣦޮใ )551ϦΫΤετ )551Ϩεϙϯε ".1ίϯςϯπ
49(ಋೖৼΓฦΓ
49(".1γεςϜಋೖɺৼΓฦΓ طଘΠϯϑϥͷӨڹΛ࠷খݶʹͯ͠ɺಋೖ͕Մೳͩͬ ͨɻ ϢʔβͷϦΫΤετͷӨڹΛ͋·Γؾʹͤͣʹ͢ Μͩ ओཁϦΫΤετ͕#PUͷΫϩʔϦϯάͰ͋ͬͨͨΊ
ࣄલʹ4UBHJOHڥͰͷςετ͕ݶఆతͩͬͨɻ#PUΫ ϩʔϧ".1ΩϟογϡԽͷࢼݧϦϦʔεޙʹ͔͠Ͱ ͖ͳ͍ɻ
49(".1γεςϜಋೖʹؔ ͢Δҙࣄ߲ w ΩϟογϡՄೳͳίϯςϯπ͔ʁ 49(ېࢭϔομ w ݸਓใηΩϡϦςΟใ͕ೖ͍ͬͯͳ͍͔ʁ w 4BNF0SJHJOʹͳͬͨΒΤϥʔʹͳΒͳ͍͔ʁ
FH".1 JGSBNF w 4PGU OPUGPVOEΛͰฦ͢ ͱ͔͍ͯ͠ͳ͍͔ʁ
·ͱΊ PSJHJOΛೖΕସ͑Δ4JHOFE)551&YDIBOHFTɺ͜Ε·Ͱ ͷ8FCϓϩτίϧͷ֓೦Λࠜຊతʹม͑Δٕज़Ͱ͢ɻ ͜ͷٕज़ʹΑͬͯ1VCMJTIFS%JTUSJCVUPSͦΕͧΕͷ͕ؔ কདྷେ͖͘มΘΔՄೳੑ͕͋Γ·͢ɻ ࠓޙɺ49(͕ఱͱͳΔͷ͔ɺͦΕͱѱຐͱͳΔͷ͔ɺ օ͞ΜͰͦͷӨڹΛΑ͘ߟ্͑ͨͰ49(Λஅͯ͠Լ͍͞ɻ