ޓޓᧅޓ๔ ޓ࿖┙ᄢቇᴺੱ╳ᵄᄢቇߦ߅ߡޔਅ⸥ߩߣ߅ࠅㅧ⺧⽶ᄾ⚂ߦߟߡ৻⥸┹ᧅߦઃߒ߹ߔޕ ⸥ 㧝┹ޓᧅߦઃߔࠆ㗄 ઙ ฬ ߮ ᢙ ㊂ ╬ ቢ ᚑ ᦼ 㒢 ⚊ ႐ ᚲ ࡂ࠼࠙ࠚࠕᯏ⢻ࠍᵴ↪ߒߚ8//࠰ࡈ࠻࠙ࠚࠕߩᡷ⦟৻ޓᑼ ᐔᚑᐕᣣ ࿖┙ᄢቇᴺੱ╳ᵄᄢቇ✚ว⎇ⓥ$ቶ 㧞ޓ᭽ᦠޔᄾ⚂᧦㗄ਗ߮ߦᧅߩ⺑╬ࠍߔࠆᣣᤨ߮႐ᚲ╬ ᧄޓޓઙߪޔ᭽ᦠ╬㑐ଥᦠ㘃ߩઃࠍ߽ߞߡᒰ⺑ࠍ⋭⇛ߔࠆޕ ޓޓ᭽ᦠ╬㑐ଥᦠ㘃ઃ႐ᚲ ႐ ⨙ޥၔ⋵ߟߊ߫Ꮢᄤ₺บ㧝ৼ⋡㧝⇟ߩ㧝 ᚲ ࿖┙ᄢቇᴺੱ╳ᵄᄢቇ╙ਃࠛࠕ#ቶ 㔚⇟ภޓ ᭽ ᦠ ઃ ᦼ 㒢 ᐔᚑᐕᣣ ᤨಽ 㧟ߦᧅޓෳടߢ߈ࠆ⠪ߩขᛒ ޓޓᒰᧅߦෳടࠍᏗᦸߔࠆ⠪ߪޔ᭽ᦠߦᓥޔᒰ⺧⽶ࠍᦼ㒢߹ߢߦቢᚑ᧪ࠆߎߣࠍ⸽ߢ߈ࠆᦠ㘃 ࠍޓឭߔࠆᔅⷐ߇ࠆᧄޕቇ߇ክᩏߒޔቢᚑߢ߈ࠆ⠪ߣߚ႐วߩߺෳടߔࠆߎߣ߇ߢ߈ࠆޕ ⸽ޓޓߔࠆᦠ㘃╬ߩឭవ߮ឭᦼ㒢 ⸥᭽ᦠ╬㑐ଥᦠ㘃ઃ႐ᚲߣหߓ ឭ వ ᐔᚑᐕᣣ ᤨಽ ឭ ᦼ 㒢 㧠ߩᧅޓᣣᤨ߮႐ᚲ ᣣ ᤨ ႐ ᚲ ᐔᚑᐕᣣ ᤨಽ ⨙ޥၔ⋵ߟߊ߫Ꮢᄤ₺บ㧝ৼ⋡㧝⇟ߩ㧝 ࿖┙ᄢቇᴺੱ╳ᵄᄢቇ╙ਃࠛࠕ#ቶ 㧡ᧅޓᣇᴺ ᧅ⪭ޓޓቯߦᒰߚߞߡߪ⸥ߦᦠᧅޔタߐࠇߚ㊄㗵ߦᒰ㊄㗵ߩ㧡ࡄࡦ࠻ߦ⋧ᒰߔࠆ㗵ࠍട▚ߒߚ㊄㗵 ޓ㧔ᒰ㊄㗵ߦ㧝ᧂḩߩ┵ᢙ߇ࠆߣ߈ߪ┵ߩߘޔᢙ㊄㗵ࠍಾࠅᝥߡࠆ߽ߩߣߔࠆޕ㧕ࠍ߽ߞߡ⪭ᧅଔᩰߣ ᧅޔߢߩࠆߔޓ⠪ߪޔᶖ⾌⒢߮ᣇᶖ⾌⒢ߦដ߆ࠆ⺖⒢ᬺ⠪ߢࠆ߆⒢ᬺ⠪ߢࠆ߆ࠍࠊߕޔ ޓⓍ߽ߞߚᄾ⚂㊄㗵ߩಽߩߦ⋧ᒰߔࠆ㊄㗵ࠍᧅᦠߦ⸥タߔࠆߎߣޕ 㧢┹ޓߦෳടߔࠆ⠪ߦᔅⷐߥ⾗ᩰ ࿖┙ᄢቇᴺੱ╳ᵄᄢቇ⽷ോⷙೣᣉⴕⷙ⒟╙᧦ߩⷙቯߦᒰߒߥ⠪ߢࠆߎߣᧂޔ߅ߥޕᚑᐕ⠪ⵍޔ ੱߪⵍഥੱߢߞߡޔᄾ⚂✦⚿ߩߚߦᔅⷐߥหᗧࠍᓧߡࠆ⠪ߪޔห᧦ਛ․ޔߩℂ↱߇ࠆ ႐วߦᒰߔࠆޕ ࿖┙ᄢቇᴺੱ╳ᵄᄢቇ⽷ോⷙೣᣉⴕⷙ⒟╙᧦ߩⷙቯߦᒰߒߥ⠪ߢࠆߎߣޕ ࿖ߩ┹ෳട⾗ᩰ㧔ో⋭ᐡ⛔৻⾗ᩰ㧕ߪ࿖┙ᄢቇᴺੱ╳ᵄᄢቇߩ┹ෳട⾗ᩰߩߕࠇ߆ߦ߅ߡᐔ ᚑᐕᐲߦ㑐᧲↲ାၞߩ‛ޟຠߩㅧޟߩޠ#㨭ޟޔ$㨭ޟޔ%ޠߪߦ⚖╬ޠ&ޟᩰઃߌߐࠇߡࠆ⠪ ߢࠆߎߣޕ ࿖┙ᄢቇᴺੱ╳ᵄᄢቇ⽷ോⷙೣᣉⴕⷙ⒟╙᧦ߩⷙቯߦၮߠ߈ޔᄾ⚂ᜂᒰᓎ߇ቯࠆ⾗ᩰࠍߔࠆ⠪ߢ ࠆߎߣޕ ᄾ⚂ᜂᒰᓎ߆ࠄขᒁᱛߩភ⟎ࠍฃߌߡࠆᦼ㑆ਛߩ⠪ߢߥߎߣ㨫 㧣⸽ᧅޓ㊄߮ᄾ⚂⸽㊄ ޓޓ㒰ߔࠆޕ 㧤ߩᧅޓήല ᧄޓޓ๔ߦ␜ߒߚ┹ෳടߦᔅⷐߥ⾗ᩰߩߥ⠪ߩឭߒߚᧅᦠઁߩߘޔ࿖┙ᄢቇᴺੱ╳ᵄᄢቇᄾ⚂ോ ޓขᛒ⚦ೣ╙᧦╙㗄ฦภߦឝߍࠆᧅᦠߪήലߣߔࠆޕ 㧥ޓᄾ⚂ᦠߩᚑ ޓޓᄾ⚂✦⚿ߦᒰߚߞߡߪޔᄾ⚂ᦠࠍᚑߔࠆ߽ߩߣߔࠆޕ ᧅ⪭ޓ⠪ߩቯᣇᴺ ᧄޓޓ๔ߦ␜ߒߚ‛ຠࠍㅧߢ߈ࠆߣᄾ⚂ᜂᒰᓎ߇್ᢿߒߚᧅ⠪ߢߞߡޔ࿖┙ᄢቇᴺੱ╳ᵄᄢቇ⽷ോⷙ ޓೣᣉⴕⷙ⒟╙᧦ߩⷙቯߦၮߠߡᚑߐࠇߚ੍ቯଔᩰߩ▸࿐ౝߢᦨૐଔᩰࠍ߽ߞߡലߥᧅࠍⴕߞߚ ᧅޓ⠪ࠍ⪭ᧅ⠪ߣߔࠆޕ એ๔ߔࠆޕ ޓ ᐔᚑᐕᣣ ࿖┙ᄢቇᴺੱ╳ᵄᄢቇ ᄾ⚂ᜂᒰᓎ ⽷ോᜂᒰቇ㐳ᧄޓᶈ৻ 䇭᭽䇭ᦠ 䋱䋮 ઙ ฬ 䈶 ᢙ ㊂ 䊊䊷䊄䉡䉢䉝ᯏ⢻䉕ᵴ↪䈚䈢㪭㪤㪤䉸䊐䊃䉡䉢䉝䈱ᡷ⦟䇭৻ᑼ 䋲䋮 ቢ ᚑ ᦼ 㒢 ᐔᚑ㪉㪋ᐕ㪉㪉㪐ᣣ 䋳䋮 ⚊ ႐ ᚲ ࿖┙ᄢቇᴺੱ╳ᵄᄢቇ㩷✚ว⎇ⓥ㪙㪈㪈㪉㪏ቶ 䋴䋮 ᬌ ᩏ 䈶 ᒁ ᷰ 䈚 䇭ᧄቇ䈮䈍䈇䈩䇮⺧⽶⠪┙ળ䈱䈉䈋䇮ᒰᄾ⚂䈱ቢੌ䉕⏕䈜䉎䈢䉄䈱 ᬌᩏ䉕ⴕ䈇䇮วᩰ䈫䉄䈢ᓟ䇮ᒁᷰ䈚䉕ฃ䈔䉎䉅䈱䈫䈜䉎䇯 䋵䋮 ℩ 䇭䈖䈱ㅧ䈮䈧䈇䈩䇮⺧⽶⠪䈏ᒁᷰ䈚䉕ቢੌ䈚䈢䈱䈤䇮䋱ᐕએౝ䈮⊒ᵈ⠪ 䈏℩∎䉕⊒䈚䈢䈫䈐䈲䇮䈢䈣䈤䈮ୃᱜ䈜䉎䉅䈱䈫䈚䇮䈖䈱ୃᱜ䈮ⷐ䈚䈢⾌ ↪䈲䈜䈼䈩⺧⽶⠪䈱⽶ᜂ䈫䈜䉎䇯 ᛄ 䇭㩷ᬌᩏ⚳ੌᓟㆡᴺ䈭⺧᳞ᦠ䉕ฃℂ䈚䈢ᣣ䈎䉌▚䈚䈩䋴䋰ᣣએౝ䈮ᡰᛄ 䈉䉅䈱䈫䈜䉎䇯 ∎ ᜂ 䋶䋮 ᡰ 䋷䋮 ᄾ⚂䈮ᔅⷐ䈭⚦⋡ 䇭㩷ᧄᄾ⚂䈮ᔅⷐ䈭⚦⋡䈲䇮࿖┙ᄢቇᴺੱ╳ᵄᄢቇᄾ⚂ോขᛒ⚦ೣ䈮 䉋䉎䉅䈱䈫䈜䉎䇯 䋸䋮 䈠 㩷㩷ᧄઙ䈲䋬ᧄ᭽ᦠ䈶䇸䊊䊷䊄䉡䉢䉝ᯏ⢻䉕ᵴ↪䈚䈢㪭㪤㪤䉸䊐䊃䉡䉢䉝䈱 ᡷ⦟᭽ᦠ䇹䈮䉋䈦䈩ⴕ䈉䉅䈱䈫䈚䋬䈖䉏䉌䈮⇼⟵䈏↢䈛䈢ᤨ䈲䋬ᧄቇᜂᒰ ⡯ຬ䈱ᜰ␜䈮䉋䉎䈖䈫䇯 䈱 ઁ ࡂ࠼࠙ࠚࠕᯏ⢻ࠍᵴ↪ߒߚ VMM࠰ࡈ࠻࠙ࠚࠕߩᡷ⦟ ᭽ᦠ ᐔᚑ 23 ᐕ 1㧝 ╳ᵄᄢቇ 1 ⺞㆐ߩ⢛᥊߮⋡⊛ BitVisorߪ╳ޔᵄᄢቇ߇ਥ⊛ߦ㐿⊒ࠍㅴߡࠆࠝࡊࡦ࠰ࠬᗐᯏ᪾ ࡕ࠾࠲㧔એਅޟޔVMMޠ㧕࠰ࡈ࠻࠙ࠚࠕߢࠆޕBitVisorߪ․ޔቯߩOSߦଐሽ ߒߥVMMࡌ࡞ߢࠠࡘ࠹ࠖᯏ⢻ࠍታߔࠆߎߣࠍ⋡⊛ߣߒߡ߅ࠅޔICࠞ ࠼ߦࠃࠆ⸽ID▤ℂᯏ⢻߿ࠢࠬࠖ࠺࠼ࡂޔUSBࡔࡕ╬ߦኻߔࠆࠬ࠻ ࠫᥧภൻᯏ⢻ࠢࡢ࠻࠶ࡀޔㅢାࠍᒝ⊛ߦᥧภൻߔࠆVPNᯏ⢻ࠍឭଏߔࠆޕ BitVisorߩታⵝߪࠖ࠹ࡘࠠޔᯏ⢻ࠍታߔࠆߚߦᦨૐ㒢ᔅⷐߥI/Oߛߌࠍ ⋙ⷞᗐൻߒߡࠇߘޔએᄖߩ࠺ࡃࠗࠬߩI/Oߪࠥࠬ࠻OS߆ࠄㅘㆊ⊛ߣߔࠆḰࡄ ࠬࠬ࡞ဳࠕࠠ࠹ࠢ࠴ࡖࠍណ↪ߒߡࠆޕCPUߩᗐൻߦߟߡߪ࠶ࡠࡊޔ ࠨߩᗐൻᡰេᯏ⢻ࠍ↪ࠆߎߣߢޔታⵝࠍන⚐ൻߒߟߟޔᕈ⢻ૐਅࠍዊߐߊᛥ ߃ߡࠆߪߡߞࠃߦࠢࡑ࠴ࡦࡌޔߒ߆ߒޕᄢ߈ߥᕈ⢻ૐਅ߇ߺࠄࠇࠆ႐ว߇ ࠆߩࠨ࠶ࡠࡊޕᗐൻᡰេᯏ⢻ߪᐕޘᡷ⦟ߐࠇߡ߈ߡ߅ࠅᦨޔᣂߩࡂ࠼࠙ࠚ ࠕ߇ᜬߟᯏ⢻ߦኻᔕߔࠆߎߣߢᕈ⢻ࠍᡷༀߢ߈ࠆㄟߺ߇ࠆޕ ߹ߚޔBitVisorߩᥧภൻᯏ⢻ߪޔOpenSSLࠗࡉࠍᡷᄌߒߚ߽ߩࠍ⚵ߺㄟ ࠎߢ↪ߒߡࠆޔߒ߆ߒޕోߥᥧภㅢାߦᔅⷐߥᡆૃੂᢙߩࠪ࠼ߪޔേ ᤨߦ⸽↪ࡊࡠࠣࡓ㧔ࡒ࠾OS㧕߆ࠄᷰߐࠇࠆ࠺࠲ࠍ↪ߒߡࠆߚࠛޔ ࡦ࠻ࡠࡇ߇චಽߢߪߥน⢻ᕈ߇ࠆޕTPMࡂ࠼࠙ࠚࠕߩᡰេߦࠃࠅࡦࠛޔ ࠻ࡠࡇࠍჇᄢߐߖࠄࠇࠆㄟߺ߇ࠆޕ ㅀߩࠃ߁ߥ⢛᥊ߦၮߠ߈⺞ᧄޔ㆐᩺ઙߪߡ↪ࠍࠕࠚ࠙࠼ࡂޔVMMࠍᡷ ⦟ߔࠆ߽ߩߢࠆޕ 2 ⚊ຠ ޟᡷ⦟ VMM࠰ࡈ࠻࠙ࠚࠕ৻ޠᑼࠍޔᓟㅀᦼ⚊ޟ㒢߅ࠃ߮⚊႐ᚲߦޠቯ ࠆᦼᣣ߹ߢߦ⚊ߔࠆߎߣޕ ޟᡷ⦟ VMM࠰ࡈ࠻࠙ࠚࠕ৻ޠᑼߩ᭴ᚑౝ⸶߅ࠃ߮ᢙ㊂ߪޔએਅߩߣ߅ࠅߢ ࠆ⚊ᧄޕຠߪ⊒ޔᵈ⠪߇ࠞࠬ࠲ࡑࠗ࠭ߒߡ↪ߔࠆߚోߩ࠼ࠦࠬ࠰ޔ ౝኈ߇ℂ⸃ߢ߈ࠆࠃ߁ߦޔน⺒ᕈߩ⦟࠰ࠬࠦ࠼ߣචಽߥᖱႎࠍ⸥タߒߚ࠼ ࠠࡘࡔࡦ࠻ࠍឭଏߔࠆߎߣޕ 㧨᭴ᚑౝ⸶㧪 1. ᡷ⦟ VMM࠰ࡈ࠻࠙ࠚࠕߩ࠰ࠬࠦ࠼ ৻ᑼ 2. ᡷ⦟ VMM࠰ࡈ࠻࠙ࠚࠕߩᯏ⢻⹜㛎↪ࡊࡠࠣࡓߩ࠰ࠬࠦ࠼ ৻ᑼ 3. ታⴕน⢻ߥࠦࡦࡄࠗ࡞ᷣߺࡊࡠࠣࡓ 4. ታⵝ᭽ᦠ 5. ᯏ⢻⹜㛎᭽ᦠ㧛ታᣉႎ๔ᦠ 6. ࡊࡠࠣࡓߩࡆ࡞࠼ࡑ࠾ࡘࠕ࡞ 7. ࡊࡠࠣࡓߩታⴕᣇᴺࡑ࠾ࡘࠕ࡞ 8. ࡊࡠࠣࡓߩᯏ⢻⹜㛎ታⴕࡑ࠾ࡘࠕ࡞ 9. ߘߩઁߩᧄ⺞㆐᩺ઙߢᚑߒߚᦠ㘃 㧨ᢙ㊂㧪 A) ⸥2ޯߩ㔚ሶ࠺࠲ࠍᩰ⚊ߒߚࡔ࠺ࠖࠕ 1ㇱ⚊ B) ⸥2ޯࠍࡃࠗࡦ࠳ߦߚ߽ߩ 1ㇱ⚊ 3 ⚊ᦼ㒢߅ࠃ߮⚊႐ᚲ ⚊႐ᚲ㧦࿖┙ᄢቇᴺੱ╳ᵄᄢቇ ✚ว⎇ⓥB1128ቶ ⚊ᦼ㒢㧦ᐔᚑ24ᐕ229ᣣ 4 㐿⊒ⷐ ᧄ⺞㆐᩺ઙߩ㐿⊒▸࿐ࠍࠪࠬ࠹ࡓߩో࿑ࠍ࿑ 1ߦ␜ߔᧄ ޕ᩺ઙߢߪޔ ࡂ࠼࠙ࠚࠕᯏ⢻ࠍ↪ߡBitVisorߩᡷ⦟ࠍⴕ߁ޕ BitVisorߪޔ4ߟߩᯏ⢻ࡉࡠ࠶ࠢߦಽߌࠄࠇࠆ⺞ᧄޔߜ߁ߩߘ ޕ㆐᩺ઙߩ㐿⊒ ▸࿐ࠍᯏ⢻ࡉࡠ࠶ࠢߦߟߡޔᰴ▵ߦߡቯ⟵ߔࠆޕ Figure 1: ࠪࠬ࠹ࡓో࿑ 4.1 ᯏ⢻᭴ᚑ ᡷ⦟ VMM࠰ࡈ࠻࠙ࠚࠕߪޔએਅߩᯏ⢻߆ࠄ᭴ᚑߐࠇࠆޕ 1. CPUᗐൻ 2. ᥧภᯏ⢻ 3. ೋᦼൻᯏ⢻ ߎࠇࠄߦߟߡޔએਅߢㅀߴࠆޕ 4.1.1 CPUᗐൻ VMMߦߪޔᗐࡑࠪࡦࠍታߔࠆߚߦ᭽ߥޘᗐൻᯏ⢻߇ታⵝߐࠇߡࠆޕ ߘߩᗐൻᯏ⢻ߩ߭ߣߟ߇ޔCPUᗐൻߢࠆᧄ ޕᯏ⢻ߪߦࠄߐޔએਅߩ4ߟߩ ಣℂߦಽ⸃ߢ߈ࠆޕ 1. ࠥࠬ࠻OSVMM㑆ࠦࡦ࠹ࠠࠬ࠻ಾࠅᦧ߃ CPUߩᗐൻᡰេᯏ⢻ࠍ↪ߡ࠻ࠬࠥޔOSߣVMMߩ㑆ߢߩࠦࡦ࠹ࠠࠬ࠻ ಾࠅᦧ߃ࠍታߔࠆޕ 2. ࠪࡖ࠼࠙ࡍࠫ࠹ࡉ࡞ ࠥࠬ࠻OS߇↪ߔࠆࡍࠫ࠹ࡉ࡞ࠍ߽ߣߦޔCPU߇↪ߔࠆࡍࠫ࠹ ࡉ࡞ࠍᚑߔࠆߎߣߢ࠻ࠬࠥޔOSߩᗐࠕ࠼ࠬⓨ㑆ࠍታߔࠆޕ 3. CPUࠗࡦ࠲ࡊ࠲ CPUߩᗐൻᡰេᯏ⢻ߦࠃߞߡಣℂߢ߈ߥࠍޔ1ߕߟ⸃㉼ታⴕ ߔࠆޕ 4. ߘߩઁ ᄖㇱഀࠅㄟߺߩಣℂ߿ޔI/Oࠍࡈ࠶ࠢߒߡ࠺ࡃࠗࠬ࠼ࠗࡃࠍ߮ߔಣℂ ߥߤ߇ࠆޕ 4.1.2 ᥧภᯏ⢻ ᥧภᯏ⢻ߪࠫ࠻ࠬޔᥧภൻࡕࠫࡘ࡞ޔID▤ℂࡕࠫࡘ࡞ޔ߮ࠃ߅ޔVPN ࡕࠫࡘ࡞ߦࠃߞߡ↪ߐࠇࠆޔᥧภൻṶ▚߿ੂᢙ↢ᚑߥߤࠍⴕ߁ᯏ⢻ߢࠆޕ ᧄᯏ⢻ߪߦࠄߐޔએਅߩ2ߟߩಣℂߦಽ⸃ߢ߈ࠆޕ 1. OpenSSL SSLࡊࡠ࠻ࠦ࡞TLSࡊࡠ࠻ࠦ࡞ߩታⵝߢࠆ ޕOpenSSL Projectߦࠃߞߡ 㐿⊒ߐࠇߚOpenSSLࠍࡌࠬߦޔBitVisorߦࡦࠢߢ߈ࠆࠃ߁ᡷᄌߐࠇߡ ࠆޕ 2. ੂᢙ↢ᚑེ OpenSSL߇ᜬߟᡆૃੂᢙ↢ᚑᯏ⢻ࠍ↪ߔࠆ߇ޔᡆૃੂᢙߩࠪ࠼ߣߒߡ චಽߥࠛࡦ࠻ࡠࡇࠍᜬߟ࠺࠲ࠍ↪ߔࠆޕ 4.1.3 ೋᦼൻᯏ⢻ ೋᦼൻᯏ⢻ߪޔBitVisorౝߩฦࡕࠫࡘ࡞ߩೋᦼൻࠍⴕ߁ᯏ⢻ߢࠆޕ 4.2 ᯏ⢻ⷐઙ ᧄ⺞㆐᩺ઙߢᡷ⦟ߔࠆBitVisorߪޔએਅߩࠃ߁ߥᯏ⢻߅ࠃ߮․ᓽࠍ߃ߡࠆߎ ߣ߇᳞ࠄࠇࠆޕ 4.2.1 ࠥࠬ࠻OSVMM㑆ࠦࡦ࠹ࠠࠬ࠻ಾࠅᦧ߃ 1. Intelࡊࡠ࠶ࠨߩExtended Page Tables㧔EPT㧕ޔ߮ࠃ߅ޔAMDࡊࡠ࠶ࠨ ߩNested Page Tables㧔NPT㧕ߩ↪ EPT/NPT߇タߐࠇߡࠆࡊࡠ࠶ࠨߢߪޔEPT/NPTࠍ↪ߔࠆߎߣߢޔ ࠪࡖ࠼࠙ࡍࠫ࠹ࡉ࡞ߩࠝࡃࡋ࠶࠼ࠍㆱߌࠆ ޕEPT/NPTࠍ↪ߔࠆߣޔ ࠥࠬ࠻OSߩࡍࠫࡈࠜ࡞࠻ᄖߦࠃࠆVMM߳ߩࠦࡦ࠹ࠠࠬ࠻ࠬࠗ࠶࠴ ߇ਇⷐߦߥࠆ ޕEPT/NPT߇タߐࠇߡߥࡊࡠ࠶ࠨߢߪޔᓥ᧪ߤ߅ࠅ ࠪࡖ࠼࠙ࡍࠫ࠹ࡉ࡞ࠍ↪ߔࠆ࠻ࠬࠥ ޕOS߇ࡍࠫࡦࠣࠍലߦߒ ߡߥ㑆ߪޔEPT/NPTࠍ↪ߒߥߊߡ߽ࠃޕ 2. Intelࡊࡠ࠶ࠨߩUnrestricted guestߩ↪ Unrestricted guest߇タߐࠇߡࠆࡊࡠ࠶ࠨߢߪޔreal-address modeߩࠛࡒ ࡘ ࠪ ࡚ ࡦ ߩ ߚ ߦ ᗐ 8086 ࡕ ࠼ ࠍ ↪ ߔ ࠆ ߎ ߣ ࠍ ߿ ࠆ ޕ Unrestricted guest߇タߐࠇߡߥࡊࡠ࠶ࠨߢߪޔᓥ᧪ߤ߅ࠅᗐ8086 ࡕ࠼ࠍ↪ߡreal-address modeࠍࠛࡒࡘ࠻ߔࠆޕ 3. Intelࡊࡠ࠶ࠨߦ߅ߌࠆᄖಣℂߩ㜞ㅦൻ Intelࡊࡠ࠶ࠨߦ߅ߡ࠻ࠬࠥޔOSߢ⊒↢ߔࠆߔߴߡߩᄖࠍᏱߦVMM ߢಣℂߔࠆߎߣࠍ߿ߡޔᔅⷐߥᄖߩߺࠍಣℂߔࠆߎߣߢ㜞ㅦൻࠍⴕ߁ޕ 4. AMDࡊࡠ࠶ࠨߦ߅ߌࠆࡑ࡞࠴ࠦࠕኻᔕ AMDࡊࡠ࠶ࠨߦ߅ߡ࠻ࠬࠥޔOS߇ࡑ࡞࠴ࠦࠕࠍ↪ߢ߈ࠆࠃ߁ߦߔࠆޕ ࠥࠬ࠻OSߦࠃࠆLocal APICߩࠕࠢࠬࠍࡈ࠶ࠢߒޔStartup IPIࠍಣℂߔࠆᯏ ⢻߇ᔅⷐߦߥࠆޕ 4.2.2 CPUࠗࡦ࠲ࡊ࠲ 1. CPUࠗࡦ࠲ࡊ࠲ߩ64ࡆ࠶࠻ኻᔕ CPUࠗࡦ࠲ࡊ࠲߇ޔ64ࡆ࠶࠻ߩࠫࠬ࠲ࠍᛒ߁ߦኻᔕߔࠆߎߣߢޔ 64ࡆ࠶࠻ߩࠥࠬ࠻OSߢVPNᯏ⢻ߥߤ߇േߔࠆࠃ߁ߦߔࠆޕ 4.2.3 ੂᢙ↢ᚑེ 1. TPMߩੂᢙ↢ᚑེߩ↪ TPM߇タߐࠇߡࠆࠦࡦࡇࡘ࠲ߢߪޔᓥ᧪ߩ࠺࠲ߦട߃ߡޔTPMߩ ੂᢙ↢ᚑེࠍ↪ߡᡆૃੂᢙߩࠪ࠼ࠍ↢ᚑߔࠆࠃ߁ߦߔࠆޕTPM߇タ ߐࠇߡߥࠦࡦࡇࡘ࠲ߢߪޔᓥ᧪ߤ߅ࠅࡒ࠾OS߆ࠄᷰߐࠇࠆ࠺࠲ࠍ ↪ߔࠆޕ 4.2.4 ฦࡕࠫࡘ࡞ೋᦼൻ 1. ࡑ࡞࠴ࠦࠕᵴ↪ CPUߩࡑ࡞࠴ࠦࠕࠍᵴ↪ߒߡޔฦࡕࠫࡘ࡞ߩೋᦼൻಣℂࠍਗൻߔࠆߎ ߣߦࠃߞߡࠕࠦ࠴࡞ࡑޔCPU߇タߐࠇߡࠆࠦࡦࡇࡘ࠲ߢೋᦼൻߦ ߆߆ࠆᤨ㑆ࠍ⍴❗ߔࠆޕ 5 㐿⊒ⷐઙ 1. ᧄ࠰ࡈ࠻࠙ࠚࠕߪC⸒⺆ߦࠃߞߡ⸥ㅀߔࠆߎߣޕ 2. ᧄ࠰ࡈ࠻࠙ࠚࠕߪGNU Cࠦࡦࡄࠗ㧔gcc㧕ߦࠃߞߡࠦࡦࡄࠗ࡞ߢ߈ࠆࠃ߁ ߦߔࠆߎߣޕ 3. ᧄ࠰ࡈ࠻࠙ࠚࠕߪ␠࠻ࡈ࠰ࡠࠢࠗࡑޔWindows XP/Vista/7߅ࠃ߮Linux㧔ࡃ ࡚ࠫࡦ2.6.32એ㒠㧕ߩࠥࠬ࠻OSߣ⚵ߺวࠊߖߡޔᱜߒߊേߔࠆߎߣޕ ዏޔ㐿⊒ߦ㓙ߒߡߪ࠻ࠬࠥߩઁޔOSߩേ߽⠨ᘦߦࠇߡ㐿⊒ࠍⴕ߁ߎߣޕ 4. ᧄ࠰ࡈ࠻࠙ࠚࠕߩ㐿⊒߅ࠃ߮ᯏ⢻⹜㛎ߦ↪ࠆࡂ࠼࠙ࠚࠕߪޔએਅߩ ᭽ࠍḩߚߔ߽ߩߣߔࠆߎߣޕ (a) એਅߩᯏ⢻ࠍᜬߟIntelࡊࡠ࠶ࠨ • Intel 64 • Intel VT • Extended Page Tables㧔EPT㧕 • Unrestricted guest (b)એਅߩᯏ⢻ࠍᜬߟAMDࡊࡠ࠶ࠨ • AMD64 • AMD-V • Nested Page Tables㧔NPT㧕 • ࡑ࡞࠴ࠦࠕ (c) TPMタ 5. ᧄ࠰ࡈ࠻࠙ࠚࠕߪޔ⸥ࡂ࠼࠙ࠚࠕ᭽ࠍḩߚߔ64ࡆ࠶࠻ࠕࠠ࠹ࠢ࠴ ࡖߢേߔࠆߎߣߣߒޔᒰࠕࠠ࠹ࠢ࠴ࡖߦ߅ߡേ⏕ࠍⴕ߁ߎ ߣޕ 6. ᧄ࠰ࡈ࠻࠙ࠚࠕߪޔએਅߩOS࠰ࡈ࠻࠙ࠚࠕ߇ࠥࠬ࠻OSߣߒߡേߔࠆߎߣ ߣߒޔᒰOS࠰ࡈ࠻࠙ࠚࠕࠍ↪ߡേ⏕ࠍⴕ߁ߎߣޕ (a) Microsoft Windows 7 (b)Linux 2.6.32એ㒠ߩࡃ࡚ࠫࡦ 7. ᧄ࠰ࡈ࠻࠙ࠚࠕߪBitVisor߳ߩ⚵ߺㄟߺࠍ⋡⊛ߣߔࠆߚޔGNU Cࠗࡉ 㧔glibc㧕ࠍߪߓߣߔࠆᄖㇱࠗࡉࠍ৻ಾ↪ߖߕ㐿⊒ߔࠆߎߣޕ ߚߛߒ⊒ޔᵈ⠪߇ឭ␜ߔࠆࠗࡉߦߟߡߪߩߘޔ㒢ࠅߢߪߥޕ 8. ᧄ࠰ࡈ࠻࠙ࠚࠕߦߪޔේೣߣߒߡޔGPL߅ࠃ߮LGPLߦḰߔࠆࠗࡦࠬ ߇ઃᏪߐࠇߚ࠰ࡈ࠻࠙ࠚࠕࠍ⚵ߺㄟ߹ߥߎߣޕ 9.ᧄ࠰ࡈ࠻࠙ࠚࠕߩ࠰ࠬࠦ࠼ߪࠝࡊࡦ࠰ࠬߣߒߡ㐿ߔࠆޔߡߞࠃ ޕ ⚊ຠ‛ߦߪ㐿⊒ㆊ⒟ߩࡊࡠࠣࡓࠦ࠼߇ᱷࠄߥࠃ߁ߦߔࠆ ޕ㐿⊒ㆊ⒟ ߢ↪ߒߚ࠺ࡃ࠶ࠣ␜ޔ߮ࠃ߅ޔਇᔅⷐߥࠦࡔࡦ࠻ㇱಽߪߔߴߡ㒰ߒ ߡ⚊ຠߔࠆ߽ߩߣߔࠆޕ 10. ฦࠦ࠼ߩౝㇱಣℂߪߡߒߣࠬ࠰ࡦࡊࠝޔ㐿ߔࠆߎߣࠍ⠨ᘦߒޔㆡ ಾߥࠕ࡞ࠧ࠭ࡓ╬ࠍㆬᛯߒߡታⵝߔࠆ߽ߩߣߔࠆ ޕ᧪ߩᡷ⦟߇࿎㔍ߣ ߥࠆࠃ߁ߥޔน⺒ᕈߩૐࠦ࠺ࠖࡦࠣࠬ࠲ࠗ࡞߿ᢙ୯╬ߩࡂ࠼ࠦ࠺ ࠖࡦࠣࠍߢ߈ࠆߛߌឃ㒰ߔࠆ߽ߩߣߔࠆޕ 11. 㐿⊒ߔࠆࡕࠫࡘ࡞ߪ߇࠭ࠗࠨࡓࠣࡠࡊߌߛࠆ߈ߢޔዊߐߊߥࠆࠃ߁ߦ 㐿⊒ߔࠆ߽ߩߣߔࠆޕ 6 ᡰ⛎ຠ ᧄ⺞㆐᩺ઙߦⷐߔࠆߔߴߡߩ⾌↪ߪޔၮᧄ⊛ߦᧄ⺞㆐ߦ߹ࠇࠆ߽ߩߣߔࠆߎޕ ࠇߦߪ▚⸘ޔ߫߃ޔᯏ߿㐿⊒↪࠰ࡈ࠻࠙ࠚࠕ╬ߩ⾼⾌↪ߥߤ߽߹ࠇࠆߚޕ ߛߒ⊒ޔᵈ⠪߆ࠄ⾉ਈน⢻ߥᯏ᧚ߦߟߡߪ⾉ޔਈࠍᬌ⸛ߔࠆ߽ߩߣߔࠆޔߚ߹ޕ 㐿⊒ߦߚߞߡᔅⷐߥBitVisorߩ᭽ߦߟߡߪ⊒ޔᵈ⠪ߩⷐ᳞ߦᔕߓߡޔද⼏ ߩ⊒ޔᵈ⠪߆ࠄឭ␜ߔࠆޕ 7 ᯏ⢻⹜㛎 ᧄ᩺ઙߢᡷ⦟ߒߚVMM࠰ࡈ࠻࠙ࠚࠕ߇ᱜᏱߦേߔࠆߎߣࠍ⏕ߔࠆߚߩᯏ ⢻⹜㛎↪ࡊࡠࠣࡓࠍᚑߒᦼ⚊ޔ㒢߹ߢߦએਅߩᯏ⢻⹜㛎ࠍⴕ߁ߎߣ ޕᯏ ⢻⹜㛎ߩౝኈߪޔᯏ⢻⹜㛎᭽ᦠߦ⸥タߒ⚿ߩߘޔᨐߪޔታᣉႎ๔ᦠߦ߹ߣߡ ⸥タߔࠆߎߣޕ 1. EPT/NPTᯏ⢻߇タߐࠇߡࠆࡊࡠ࠶ࠨߢታⴕߒޔหᯏ⢻߇↪ߐࠇߡ ࠆߎߣࠍߢ࠼ࡕ࠻ࠢ࠹ࡠࡊޔേߔࠆࠥࠬ࠻OS߆ࠄ⏕ߔࠆޕ 2. Unrestricted guestᯏ⢻߇タߐࠇߡࠆࡊࡠ࠶ࠨߢታⴕߒޔหᯏ⢻߇↪ ߐࠇߡࠆߎߣࠍޔreal-address modeߢേߔࠆࠥࠬ࠻OS߆ࠄ⏕ߔࠆޕ 3. Intelࡊࡠ࠶ࠨߢታⴕߒޔዋߥߊߣ߽߭ߣߟߩᄖߦߟߡޔᄖࠍ↢ᚑ ߒߡ߆ࠄᄖࡂࡦ࠼߇߮ߐࠇࠆ߹ߢߩᤨ㑆߇ᷫዋߒߡࠆߎߣࠍޔ ࡊࡠ࠹ࠢ࠻ࡕ࠼ߢേߔࠆࠥࠬ࠻OS߆ࠄ⏕ߔࠆޕ 4. ࡑ࡞࠴ࠦࠕ߇タߐࠇߡࠆAMDࡊࡠ࠶ࠨߢታⴕߒ࠻ࠬࠥޔOSߣߒߡ Linuxࠍേߒߡ࠻ࠬࠥޔOS߆ࠄࡑ࡞࠴ࠦࠕ߇⼂ߐࠇߡࠆ߆⏕ߔࠆޕ 5. ࠥࠬ࠻OSߣߒߡ64ࡆ࠶࠻ߩLinux߇േߔࠆߎߣࠍ⏕ߔࠆޔᤨߩߎޕ BitVisorߩAHCIޔNICޔߪߚ߹ޔUSBߩ࠺ࡃࠗࠬ࠼ࠗࡃࠍലߦߒߡ߅߈ޔ ࠥࠬ࠻OSߢኻᔕߔࠆ࠺ࡃࠗࠬ࠼ࠗࡃ߇േߒߡࠆߎߣࠍ⏕ߔࠆޕ 6. TPM߇タߐࠇߡࠆࠦࡦࡇࡘ࠲ߢޔᡆૃੂᢙߩࠪ࠼ߣߥࠆޔTPMߩ ੂᢙ↢ᚑེߦࠃߞߡ↢ᚑߐࠇߚੂᢙࠍജߒੂޔᢙ߇↢ᚑߐࠇߡࠆߎߣ ࠍ⏕ߔࠆޕ 7. ࡑ࡞࠴ࠦࠕCPU߇タߐࠇߡࠆࠦࡦࡇࡘ࠲ߢታⴕߒޔೋᦼൻߦ߆߆ࠆ ᤨ㑆߇ᷫዋߒߡࠆߎߣࠍ⏕ߔࠆޕ 8 ᮭ ᮭߦߟߡ 1. ᧄ᩺ઙߢ㐿⊒ߒߚࡊࡠࠣࡓߦ㑐ߔࠆᮭ㧔⪺ᮭᴺ╙21᧦߆ࠄ╙28᧦ߦ ቯࠆߔߴߡߩᮭࠍ㧕߮ᚑᨐ‛ߩ⪺ᮭߪ⊒ߡߴߔޔᵈ⠪ߦᏫዻ ߔࠆ߽ߩߣߔࠆޕ 2. ડᬺ߇⪺ᮭࠍᚲߔࠆࡊࡠࠣࡓ㧔߃߫ࠍ࠼ࠦࠬ࠰ޔ㐿ߢ߈ߥ ࠗࡉߥߤ㧕߿⊒ઁߩߘޔᵈ⠪߇ឭ␜ߔࠆએᄖߩࠝࡊࡦ࠰ࠬߩ ࡊࡠࠣࡓߪ↪ߒߥ߽ߩߣߔࠆޕ 3. ᧄ᩺ઙߩ࠰ࡈ࠻࠙ࠚࠕࠍ㐿⊒ߔࠆߦߚࠅޔ⸥ ߩࡊࡠࠣࡓࠍෳ⠨ߦߩ ߺ↪ߔࠆ႐วߢߞߡ߽ޔ㐿⊒೨ߦᔅߕ⊒ᵈ⠪ߦႎ๔ߒߚߢߩߘޔข ࠅᛒߦߟߡㅜද⼏ࠍⴕ߁߽ߩߣߔࠆޕ 9 ߅ࠃ߮ࠨࡐ࠻ߦߟߡ 1. ⚊ຠᓟ1ᐕ㑆ߪ℩∎ᦼ㑆ߣߒޔਇㇺว߳ߩ⋥ធ⊛ߥኻᔕߩࠕࠚ࠙࠻ࡈ࠰ޔᯏ ⢻߅ࠃ߮ታᣇᴺߦ㑐ߔࠆ⾰߳ߩ࿁╵ޔBitVisorߩ৻ㇱᯏ⢻ߣߒߡേߐ ߖࠆߚߦᔅⷐߥ㗴⸃ߩߚߩᖱႎឭଏߦදജߔࠆߎߣޕ 2. ᧄ࠰ࡈ࠻࠙ࠚࠕߦ㑐ߔࠆ⾰߿วࠊߖߦߪޔㄦㅦߦޔߟ߆ޔㆡಾߦኻ ᔕߢ߈ࠆࠨࡐ࠻߇ᢛ߃ࠄࠇߡࠆߎߣޕ 3. ⸥ 1ߩ℩∎ᦼ㑆ਛߦߚࠇߐ⊒߇ࠣࡃߩࠕࠚ࠙࠻ࡈ࠰ᧄޔ႐วࡈ࠰ᧄޔ ࠻࠙ࠚࠕߩ࠰ࠬࠦ࠼ࠍୃᱜߒޟޔ2 ⚊ຠ⸥ߦޠタߩA)ߩᦝᣂ 1࠶ ࠻ࠍឭߔࠆߎߣޔߚ߹ޕB)ߩᏅಽ߇ࠇ߫৻✜ߦឭߔࠆߎߣޕ㗴⸃ ߇࿎㔍ߥ႐วߪߩߘޔᣦࠍ⊒ᵈ⠪ߦႎ๔ߒޔㅜද⼏ࠍⴕ߁ߎߣޕ 10 ߘߩઁ 1. ᄾ⚂ᓟޔᯏ⢻ᕈ⢻ߥߤߩ᭽ߦߟߡޔᒰೋ᭽ߣᏅ⇣߇↢ߓߚ႐วߪޔ ⊒ᵈ⠪ߣ⚦ᛂวߖࠍⴕޔᄌᦝౝኈࠍ⸥ߒߚޟᛂߜวࠊߖ⸥㍳ᦠޠ1 ㇱࠍᛂߜวࠊߖᓟ1ㅳ㑆એౝߦឭߒޔᛚࠍᓧߡߦ⌕ᚻߔࠆߎߣߥޕ ߅ޔෳ⠨࿑㕙ߩឭࠍ᳞ࠆߎߣ߇ࠆޕ 2. ࠰ࡈ࠻࠙ࠚࠕ㐿⊒ߩㅴߣຠ⾰ߩ⏕ߩߚᦼ⚊ޔ㒢ߦవ┙ߞߡޔਛ㑆 ႎ๔ߩឭࠍ᳞ࠆߎߣ߇ࠆޕਛ㑆ႎ๔ࠍ᳞ࠄࠇߚ႐วߪޔ㐿⊒߇ቢ ੌߒߚ࠰ࡈ࠻࠙ࠚࠕࠦ࠼ߣታᣉߒߚᯏ⢻⹜㛎ߩ৻ㇱࠍ߹ߣߡឭߔࠆ ߎߣޕ 3. 㐿⊒ᦼ㑆ਛߪ⊒ޔᵈ⠪ߩ᳞ߦᔕߓߡޔቯᦼ⊛ߦㅴ⁁ᴫߩႎ๔ࠍⴕ߁ߎ ߣޔ߅ߥޕᔅⷐߦᔕߓߡޔ㐿⊒ߩ⚦ߦߟߡᛂߜวࠊߖࠍⴕ߁ߎߣ߇ ࠆޕ 4. ฃᵈ⠪ߪޔIntel VTޔAMD-V╬ߩH/Wᗐൻᡰេᯏ⢻ࠍ↪ߒߚVMM࠰ࡈ ࠻࠙ࠚࠕߩ㐿⊒⚻㛎ࠍߒߡࠆߎߣޕ 5. ฃᵈ⠪ߪޔOpenSSL╬ߩᥧภൻᯏ⢻ߦ㑐ߔࠆ࠰ࡈ࠻࠙ࠚࠕߩ㐿⊒⚻㛎ࠍ ߒߡࠆߎߣޕ 6. ฃᵈ⠪ߪޔTPMߦ㑐ߔࠆ࠰ࡈ࠻࠙ࠚࠕߩ㐿⊒⚻㛎ࠍߒߡࠆߎߣޕ 7. ᧄ᩺ઙߦኻߔࠆߘߩઁਇὐߦߟߡߪ⊒ޔᵈ⠪ߣද⼏ߒߡಣℂߔࠆߎߣޕ ㅧ⺧⽶ᄾ⚂ᦠ㧔᩺㧕 ㅧ ຠ ฬ ࡂ࠼࠙ࠚࠕᯏ⢻ࠍᵴ↪ߒߚ8//࠰ࡈ࠻࠙ࠚࠕߩᡷ⦟৻ޓᑼ ⺧ ⽶ ઍ ㊄ 㗵 ㊄ޓޓޓ ߁ߜᶖ⾌⒢㗵߮ᣇᶖ⾌⒢㗵 ޓޓޓ 㧔ᶖ⾌⒢ᴺ╙᧦╙㗄߮╙᧦ਗ߮ߦᣇ⒢ᴺ ╙᧦ߩ߮╙᧦ߩߩⷙቯߦࠃࠅ▚ߒߚ߽ߩߢޔઍ㊄㗵ߦಽߩࠍਸ਼ߓߡᓧߚ㗵ߢࠆޕ㧕 ⊒ޓᵈ⠪࿖┙ᄢቇᴺੱ╳ᵄᄢቇᄾ⚂ᜂᒰᓎ⽷ോᜂᒰቇ㐳ᧄᶈ৻ߣ⺧⽶⠪ ߣߩ㑆ߦ߅ߡ⸥ߩㅧ㧔એਅޟㅧޕ߁ߣޠ㧕ߦߟߡޔ⸥ߩઍ㊄㗵ߢㅧᄾ⚂ࠍ⚿߽߱ߩߣ ߔࠆޕ ╙㧝᧦ ⺧⽶⠪ߪޔ⚕ߩ᭽ᦠߦၮߠߡㅧߔࠆ߽ߩߣߔࠆޕ ╙㧞᧦ ޓຠߪޔ࿖┙ᄢቇᴺੱ╳ᵄᄢቇ✚ว⎇ⓥ$ቶߦ߅ߡᒁᷰߒࠍߔࠆ߽ߩߣߔࠆޕ ╙㧟᧦ ቢᚑᦼ㒢ߪޔᐔᚑᐕᣣߣߔࠆޕ ╙㧠᧦ ޓㅧቢᚑㅢ⍮ᦠߪޔ࿖┙ᄢቇᴺੱ╳ᵄᄢቇࠪࠬ࠹ࡓᖱႎᎿቇ╬ᡰេቶળ⸘ଥߦㅍઃߔࠆ߽ ߩߣߔࠆޕ ╙㧡᧦ ⽶⺧ޓઍ㊄ߪ㧝࿁ߦᡰᛄ߁߽ߩߣߒޔᬌᩏ⚳ੌᓟޔㆡᴺߥ⺧᳞ᦠࠍฃℂߒߚᣣ߆ࠄ▚ߒߡ ᣣએౝߦᡰᛄ߁߽ߩߣߔࠆޕ ╙㧢᧦ ⽶⺧ޓઍ㊄ߩ⺧᳞ᦠߪޔ࿖┙ᄢቇᴺੱ╳ᵄᄢቇࠪࠬ࠹ࡓᖱႎᎿቇ╬ᡰេቶળ⸘ଥߦㅍઃߔࠆ ߽ߩߣߔࠆޕ ╙㧣᧦ ߩߎޓㅧߦߟߡ⽶⺧ޔ⠪߇ᒁᷰߒࠍቢੌߒߚߩߜޔ㧝ᐕએౝߦ⊒ᵈ⠪߇℩∎ࠍ⊒ߒߚ ߣ߈ߪୃߦߜߛߚޔᱜߔࠆ߽ߩߣߒୃߩߎޔᱜߦⷐߒߚ⾌↪ߪߔߴߡ⺧⽶⠪ߩ⽶ᜂߣߔࠆޕ ╙㧤᧦ ޓᄾ⚂⸽㊄ߪޔ㒰ߔࠆ⽶⺧ޔߒߛߚޕ⠪ߩᗧ߹ߚߪ㊀ᄢߥㆊᄬߦࠃࠅㅧߩ⺧⽶߇⪺ ߒߊㆃᑧߔࠆ߅ߘࠇ߇ࠆߣ߈ߪ⊒ޔᵈ⠪ߪޔᄾ⚂ࠍ⸃㒰ߔࠆߎߣ߇ߢ߈ࠆ߽ߩߣߔࠆߎޕ ߩ႐วߦ߅ߡ⺧⽶⠪ߪᄾ⚂㗵ߩ㧝㧜ಽߩ㧝ߦ⋧ᒰߔࠆ㆑⚂㊄ࠍ⊒ᵈ⠪ߦᡰᛄ߁߽ߩߣߔ ࠆޕ ╙㧥᧦ ߩߎޓᄾ⚂ߦቯࠆ߽ߩߩ߶߆ޔᔅⷐߥ⚦⋡ߪޔ࿖┙ᄢቇᴺੱ╳ᵄᄢቇᄾ⚂ോขᛒ⚦ೣߦ ࠃࠆ߽ߩߣߔࠆޕ ╙᧦ ߩߎޓᄾ⚂ߦߟߡᬌᩏߩṖߥታᣉࠍ࿑ࠆߚ⽶⺧ޔ⠪ߪ⊒ᵈ⠪ߩⴕ߁ᬌᩏߦදജߔࠆ߽ ߩߣߔࠆޕ ╙᧦ ߩߎޓᄾ⚂ߦߟߡ⊒ޔᵈ⠪⺧⽶⠪㑆ߦ⚗ࠍ↢ߓߚߣ߈ߪޔਔ⠪ද⼏ߩߎࠇࠍ⸃ߔࠆ ߽ߩߣߔࠆޕ ╙᧦ ߩߎޓᄾ⚂ߦቯߩߥ㗄ߦߟߡࠍࠇߎޔቯࠆᔅⷐ߇ࠆ႐วߪ⊒ޔᵈ⠪⺧⽶⠪㑆ߦ ߅ߡද⼏ߒߡቯࠆ߽ߩߣߔࠆޕ ⸥ᄾ⚂ߩᚑ┙ࠍ⸽ߔࠆߚ⊒ޔᵈ⠪⺧⽶⠪ߪᰴߦ⸥ฬߒශࠍߔ߽ߩߣߔࠆޕ ߎߩᄾ⚂ᦠߪ㧞ㅢᚑߒޔᣇߢฦ㧝ㅢࠍᚲᜬߔࠆ߽ߩߣߔࠆޕ ᐔᚑ ᐕ ᣣ ⊒ޓᵈޓ⠪ޓޓ ⨙ၔ⋵ߟߊ߫Ꮢᄤ₺บৼ⋡⇟ߩ ࿖┙ᄢቇᴺੱ╳ᵄᄢቇ ᄾ⚂ᜂᒰᓎ ⽷ോᜂᒰቇ㐳ޓޓᧄޓᶈ৻ޓ ⺧⽶ޓ⠪ ޓޓޓޓޓޓޓޓޓޓ ޓޓޓޓޓޓޓޓޓޓ ޓޓޓޓޓޓޓޓޓޓ ޓޓޓޓޓޓޓޓޓޓ ޓޓޓޓޓޓޓޓޓޓ ޓޓޓޓޓޓޓޓޓޓ ޓޓޓޓޓޓޓޓޓޓ
© Copyright 2024 ExpyDoc