Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GPUを用いたSSLリバースプロキシの実装についての論文を読んだ

 GPUを用いたSSLリバースプロキシの実装についての論文を読んだ

GPUを用いたSSLリバースプロキシの実装.
RSA,AES,HMAC-SHA1の高速化など.

Avatar for Yuuki Tsubouchi (yuuk1)

Yuuki Tsubouchi (yuuk1)

April 17, 2013
Tweet

More Decks by Yuuki Tsubouchi (yuuk1)

Other Decks in Technology

Transcript

  1. *OUSPEVDUJPO ‣ 44-ͱ5-4͸ηΩϡΞͳτϥϯεϙʔτ૚௨৴ͷͨΊͷ σϑΝΫτελϯμʔυͳϓϩτίϧ ‣ ΤϯυϙΠϯτʹ͓͚Δೝূͱίϯςϯπͷ҉߸Խ ‣ ͔͠͠ݱࡏɼ44-͸ηΩϡϦςΟΫϦςΟΧϧͳυϝΠ ϯ΍ΤϯλʔϓϥΠζΞϓϦέʔγϣϯͷΈͰར༻͞Ε ͍ͯΔ͚ͩͰ͋Δ

    ‣ ͜Ε͸ओʹαʔόαΠυʹ͓͚Δܭࢉෛՙ͕ॏ͍ͨΊ ‣ ओͳϘτϧωοΫ͸伴ަ׵ϑΣΠζ ‣ CJU34"ʹରͯ͠ɼ࠷৽ͷ$16Ͱ,44- USBOTBDUJPOTT ‣ ҉߸Խ͠ͳ͍ͳΒ͹ɼ,USBOTBDUJPOTTҎ্͞͹͚Δ 2013/4/17 ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹྠߨ 3
  2. *OUSPEVDUJPO ‣ ໨త͸ɼશͯͷϓϥΠϕʔτͳΠϯλʔωοτ௨৴Ͱ 44-Λಋೖ͢ΔͨΊʹɼ൚༻ϓϩηοαΛ༻͍࣮ͨ༻త ͳιϦϡʔγϣϯΛݟ͚ͭΔ͜ͱ ‣ εςοϓͷΞϓϩʔν ‣ ൚༻άϥϑΟοΫϓϩηοαͰ͋Δ(16Λ࠾༻ ‣

    ਺ඦݸͷίΞΛ΋͍ͪͯɼ34"ɼ"&4͓Αͼ4)"ͳͲͷ҉߸Խ ΞϧΰϦζϜΛฒྻॲཧ͢Δ ‣ ਺ඦNT͔Β਺ඵ͔͚ͯ34"ͷੑೳΛ࠷େԽ͢ΔΑ͏ͳطଘͷख๏ Ͱ͸ϨΠςϯγ͕େ͖͗͢Δ ‣ ௿ϨΠςϯγͰεϧʔϓοτΛ࠷େԽ͢Δख๏ΛఏҊ͢Δ ‣ 44-4IBEFS(16Λ༻͍ͨ44-ϓϩΩγͷ࡞੒ ‣ ϚϧνίΞ$16΍/6."ɼ"&4/*ʹରԠ 2013/4/17 ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹྠߨ 4
  3. 44- 4FDVSF4PDLFUT-BZFS ‣ $MJFOU)FMMP 4FSWFS)FMMPαϙʔτ͍ͯ͠Δ҉߸Խख๏ ͷத͔ΒҰͭΛܾఆɽαʔόΫϥΠΞϯτؒͷೝূͳͲ ‣ ΫϥΠΞϯτ͸QSFNBTUFSTFDSFUΛαʔόͷެ։伴Λ ༻͍ͯ҉߸Խαʔόʹૹ৴ ‣

    QSFNBTUFSLFZΛ༻͍ͯαʔόɾΫϥΠΞϯτͷ૒ํ ͕ηογϣϯΩʔͱ."$ΩʔΛੜ੒ ‣ ηογϣϯΩʔͱ."$ɹɹɹɹɹɹɹɹɹɹɹɹɹ Ωʔ͸҉߸Խʹ࢖༻ 6
  4. 44-Ͱ࢖༻͞ΕΔ҉߸Խํࣜ34" ‣ 34" ‣ ެ։伴ͷ҉߸Խ͸ൿີ伴ͷղಡΑΓɼʙഒ଎͍ ‣ 44-αʔόʹͱͬͯ͸ɼ34"ͷܭࢉ͸ܭࢉό΢ϯυͳෛՙ ‣ 44-ίωΫγϣϯ͝ͱʹɼൿີ伴ͷղಡΛߦ͏ͷͰɼΫϥΠ Ξϯτ਺͕ଟ͍ͱෛՙ͕ߴ·Δ

    $҉߸จ.ฏจΛ੔਺஋ʹͨ͠΋ͷ O F ެ։ݤ  O E ൿີݤ $ . E Oͷ௕͞  PSCJUT F  PS  ҉߸Խ ղಡ 2013/4/17 ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹྠߨ 8
  5. 44-Ͱ࢖༻͞ΕΔ҉߸Խํࣜ"&4 ‣ "&4 "EWBODFE&ODSZQUJPO4UBOEBSE ‣ ฏจΛCJU͝ͱͷϒϩοΫʹ෼ׂ͠ɼ  CJU ͷ伴Λ༻͍ͯ҉߸Խ͢Δ ‣

    伴ͷCJU਺ʹґଘͯͦ͠ΕͧΕ  ϥ΢ϯυͷม׵ ‣ )."$ )BTICBTFE.FTTBHF"VUIFOUJDBUJPO$PEF ‣ ௨৴ϝοηʔδͷ׬શੑͷอূͱೝূ ‣ ϋογϡؔ਺ͱͯ͠4)"Λ࢖༻ )ϋογϡؔ਺LൿີݤNϝοηʔδ JQBEPQBE༧Ίఆٛ͞ΕΔఆ਺஋ 2013/4/17 ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹྠߨ 9
  6. (16 (SBQIJDT1SPDFTTJOH6OJU ‣ ࠷ۙͷ(16͸਺ඦݸͷίΞΛ࣋ͪɼάϥϑΟοΫϨϯμ Ϧϯά͚ͩͰͳ͘ɼ൚༻ܭࢉʹ࢖༻͞ΕΔ ‣ 4*.%ԋࢉ ಉҰࢉज़ԋࢉࢠʹΑΔෳ਺ͷ߲ԋࢉΛα ΠΫϧͰ࣮ߦ 

    ‣ (16ίʔυͷ࣮ߦ୯ҐΛΧʔωϧͱݺͿ ‣ େྔͷίΞΛ׆༻͢ΔͨΊʹɼଟ͘ͷεϨουΛىಈ ͠ɼΧʔωϧΛฒྻʹ࣮ߦ͢Δ (16 (16 ϝϞϦ )PTU ϝϞϦ ᶃೖྗσʔλసૹ ᶄΧʔωϧ࣮ߦ໋ྩൃߦ CPU ᶆग़ྗσʔλసૹ ᶅΧʔωϧ࣮ߦ 2013/4/17 ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹྠߨ 10
  7. 34"ϚΠΫϩϕϯνϚʔΫ ‣ ฒྻ(16࣮૷ͱஞ࣍$16࣮૷ͷൺֱ ‣ ϝοηʔδ਺ͷͱ͖ ‣ 34"伴ͷCJU௕͕େ͖͍΄͏͕ฒྻੑ͕ߴ͍ͨΊɼ(16ͷ΄͏͕ߴ εϧʔϓοτ ‣ ϝοηʔδ਺͕ෳ਺ͷͱ͖

    ‣ NFTTBHF਺͕খ͍͞ͱ͖͸ɼ$16ͷ΄͏͕ߴεϧʔϓοτ ‣ NFTTBHF਺͕े෼େ͖͍ͱ͖͸(16ͷ΄͏͕ߴεϧʔϓοτ ‣ (16࣮૷͸ɼίΞͷ$16Yݸʹඖఢ͢Δ DJQIFSUFYUNFTTBHFT 34"ݤ௕CJU 14
  8. "&4ͷߴ଎Խ ‣ $#$ϞʔυʹΑΔ҉߸Խ͸௚લͷϒϩοΫͷ݁ՌΛ࣍ ͷϒϩοΫͰ࢖͏ͨΊɼஞ࣍ॲཧ͠ͳ͚Ε͹ͳΒͳ͍ ‣ Ұํɼղಡ࣌͸௚લͷϒϩοΫͷ݁ՌΛطʹ஌͍ͬͯΔ ͨΊɼฒྻॲཧՄೳ ‣ ࠷దԽख๏ ‣

    ֤εϨου͕MPPLVQςʔϒϧΛڞ༗ϝϞϦʹίϐʔ ‣ ڞ༗ϝϞϦͷ΄͏͕άϩʔόϧϝϞϦΑΓ΋ܻ଎͍ ‣ άϩʔόϧϝϞϦ͔Βͷࣄલʹల։͞Εͨ伴Λ࢖͏୅ΘΓ ʹɼ֤ϥ΢ϯυͰϥ΢ϯυ伴ΛಘΔ ‣ ܭࢉෛՙ͸༨ܭʹ͔͔Δ͕ɼߴՁͳϝϞϦΞΫηεΛ࡟ݮͰ ͖ɼશମͷϨΠςϯγΛ௿Լͤ͞ΒΕΔ 2013/4/17 ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹྠߨ 16
  9. )."$4)"ͷߴ଎Խ ‣ )."$4)"ͷੑೳ͸4)"ʹґଘ͍ͯ͠ΔͨΊɼ 4)"Λߴ଎Խ͢Ε͹Α͍ ‣ 4)"୯ମͷฒྻॲཧ͕೉͍͠ ‣ ೖྗϝοηʔδΛCJUͷϒϩοΫʹ෼ׂ ‣ J൪໨ͷϒϩοΫͷ݁ՌΛJ

    ൪໨ͷϒϩοΫͷܭࢉʹ࢖༻ ‣ ϒϩοΫΛஞ࣮࣍ߦ͠ͳ͚Ε͹ͳΒͳ͍ ‣ (16ʹΑΔ4)"ͷ࠷దԽख๏ ‣ ϨδελʹσʔλΛஔ͘͜ͱͰ(16ϝϞϦ΁ͷΞΫηε࡟ݮ ‣ (16ͷϨδελ਺ʹऩ·ΔΑ͏ʹඞཁσʔλهԱྔΛ࡟ݮ ‣ φΠʔϒͳ࣮૷ͱൺֱͯ͠ͷੑೳ޲্ 2013/4/17 ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹྠߨ 17
  10. "&4)."$4)"·ͱΊ ‣ J "&4/*͸υϧ͋ͨΓͷੑೳ͕࠷େ ‣ JJ $16(16ؒͷσʔλసૹίετʹΑΓ໿ഒͷੑೳ ௿Լ ‣ JJJ

    $16͕"&4/*Λαϙʔτ ‣ ࠷ۙͷτϨϯυͱͯ͠(16౷߹ܕ$16͕͋ΔͷͰɼক དྷతʹ͸σʔλసૹίετ͸ແࢹͰ͖Δ 2013/4/17 ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹྠߨ 19
  11. 44-4IBEFS ‣ εέʔϥϒϧ44-ϦόʔεϓϩΩγ ‣ ઃܭ໨త ‣ $16ͱ(16ͷίΞ਺ʹରͯ͠ੑೳɹɹɹɹɹɹɹɹɹɹɹ ͕εέʔϧ ‣ εϧʔϓοτΛߴΊͭͭɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ

    8FCͳͲͷΠϯλϥΫςΟϒͳɹɹɹɹɹɹɹɹɹɹɹɹɹ ؀ڥΛαϙʔτ͢ΔͨΊʹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ϨΠςϯγΛ཈͑Δ΂͖ ... SSLShader Webαʔό $MJFOUT 2013/4/17 ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹྠߨ 21
  12. جຊઃܭ ‣ 44-ίωΫγϣϯΛॲཧ͢ΔͨΊͷΠϕϯτۦಈͷεϨου ‣ ίΞ਺εέʔϧͷͨΊʹɼ$16ίΞ͋ͨΓϫʔΧεϨου ‣ (16Φϑϩʔυॲཧઐ༻ʹ(16JOUFSGBDJOHεϨουΛ༻ҙ ‣ ֤ϫʔΧεϨου͸҉߸छผʢ34" "&4

    )."$4)"ʣ෼ͷ *OQVURVFVFΛ΋ͭ ‣ ಉ͡҉߸छผͷϦΫΤετ͸ɼಉ͡Ωϡʔʹૠೖ͞Εɼೖྗ ΩϡʔͷαΠζ͕͋Δᮢ஋Λ௒͑ͨΒɼ(16RVFVFʹҠ͞ΕΔ ‣ (16JOUFSGBDJOHεϨου͸(16RVFVFΛ·ͱΊͯॲཧ͢Δ 22
  13. (16ΦϑϩʔυΞϧΰϦζϜ ‣ ฒྻੑΛ࠷େݶߴΊΔͨΊʹɼෳ਺ͷ҉߸ॲཧΛ·ͱΊ ͯ(16ʹΦϑϩʔυ͢Δ΂͖Ͱ͋Δ ‣ γϯϓϧͳ(16ΦϑϩʔυΞϧΰϦζϜ ‣ ௿ෛՙ࣌͸ϨΠςϯγΛ࡟ݮʢᮢ஋ҎԼͰ͋Ε͹$16࢖༻ʣ ‣ ߴෛՙ࣌͸εϧʔϓοτΛ࠷େԽ

    ϫʔΧεϨου͕JOQVURVFVFʹ҉߸ॲཧλεΫΛૠೖ શϫʔΧͷΩϡʔͷதͷಉ͡҉߸छผͷϦΫΤετ਺Λ֬ೝ ᮢ஋Λ௒͍͑ͯΔΩϡʔ͕͋Ε͹ɼͦͷΩϡʔΛ(16 JOUFSGBDJOHRVFVFʹҠಈ ‣ ࠷খͷᮢ஋ͱ࠷େͷᮢ஋Λઃఆ ‣ ࠷খͷᮢ஋͸ɼ$16ίΞΑΓ(16ͷ΄͏͕ੑೳ͕Α͍ͱ͖ ‣ ࠷େͷᮢ஋͸ɼ࠷େεϧʔϓοτ͕ୡ੒Ͱ͖Δͱ͖ 2013/4/17 ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹྠߨ 23
  14. εέδϡʔϦϯάख๏ ‣ ϫʔΧεϨου͸*0ΠϕϯτΛ༏ઌ͠ɼ*0Πϕϯτ͕ ͳ͍ͱ͖ʹɼ҉߸ॲཧΛߦ͏ ‣ ϫʔΧεϨου͸҉߸ॲཧϦΫΤετΛ'*'0Ͱॲཧ ‣ ֤ϦΫΤετͷ౸ண࣌ʹλΠϜελϯϓΛه࿥͠ɼ࠷ॳʹ౸ண͠ ͨϦΫΤετΛݟ͚ͭΔ ‣

    (16΋·ͨ҉߸ॲཧΛ'*'0εέδϡʔϦϯάͰߦ͏ ‣ (16JOUFSGBDJOHεϨου͸λΠϜελϯϓΛΈͯ࠷΋ए͍ϦΫΤ ετͷ҉߸छผΛ·ͱΊͯॲཧ͢Δ ‣ (16ΦϑϩʔυϒϩοΩϯά๷ࢭͷͨΊɼϫʔΧεϨου͸ ఢతʹ*0͕ͳ͍͔Ͳ͏͔Λ֬ೝ ‣ $16ͱ(16ͦΕͧΕʹ޲͍͍ͯΔॲཧΛ༏ઌ 3FKFDU ‣ $16ʹ)."$4)"ͱ"&4҉߸ԽΛ༏ઌ͠ɼ(16ʹ34" ͱ"&4ղಡΛ༏ઌ ‣ ࠷େεϧʔϓοτ͸޲্͕ͨ͠ɼෆ҆ఆ͔ͭϨΠςϯγ૿େ 2013/4/17 ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹྠߨ 24
  15. ධՁ ‣ )5514ͰධՁ ‣ 44-Λ࢖༻͢Δ࠷΋༗໊ͳϓϩτίϧ ‣ ߴεϧʔϓοτ͔ͭ௿ϨΠςϯγͳίωΫγϣϯͷϋϯυϦ ϯάͱେ͖ͳϑΝΠϧసૹΛୡ੒ ‣ MJHIUUQEXJUI0QFO44-WT44-4IBEFS

    ‣ ੩తίϯςϯπͰ8FCαʔό͕ϘτϧωοΫʹͳΔ͜ͱΛ๷ ͙͜ͱʹϑΥʔΧε͢Δ ‣ ΫϥΠΞϯτ୆BCίϚϯυͰαʔόʹෛՙΛ͔͚Δ $16 *OUFM9FPOίΞº ϝϞϦ (# (16 /7*%*"(59ίΞ()[º /*$ESJWFS JYHCFW 8FCαʔό MJHIUUQEW 04 6CVOUV 26
  16. εϧʔϓοτධՁ ‣ ΫϥΠΞϯτ͔Βͷಉ࣌઀ଓ਺ΛมԽͤͨ͞ͱ͖ͷ44- USBOTBDUJPOTT 514 Λଌఆ ‣ 34"CJUͰɼ44-4IBEFS͕MJHIUUQEͷʙഒ଎͍ 34"CJUͰɼ໿ʙഒ଎͍ ‣

    34"CJUͰɼ(16୆ͷ34"ॲཧϐʔΫεϧʔϓοτ ,NTHTʹରͯ͠44-4IBEFS͕,Ͱ(16Λ΄΅࢖ ͍͖Ε͍ͯΔ ‣ ͔͠͠ɼ34"ͷCJU͸ϐʔΫɹɹɹɹɹɹɹɹɹɹɹɹ εϧʔϓοτ͸,NTHTɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ʹରͯ͠44-4IBEFS͕,Ͱɹɹɹɹɹɹɹɹɹɹɹ (16Ϧιʔε͕༨͍ͬͯΔ 27
  17. %JTDVTTJPO ‣ ϋʔυ΢ΣΞΞΫηϥϨʔλͱͷൺֱ ‣ ݱࡏͷϋʔυ΢ΣΞΞΫηϥϨʔλ͸,ʙ,34" PQFSBUJPOTT ఏҊख๏͸,ͰՁ֨ίετ͸௿͍ ‣ (16͸৽ͨͳ҉߸ॲཧΞϧΰϦζϜʹॊೈʹରԠՄೳ ‣

    υϧ͋ͨΓͷੑೳ ‣ "&4ʹ͍ͭͯ͸9$16͸"&4ઐ༻ͷ໋ྩηοτΛ΋ͬ ͍ͯΔͨΊɼίετύϑΥʔϚϯε͕ߴ͍ ‣ (16͸શମతʹίετύϑΥʔϚϯε͕ߴ͍ 29
  18. $PODMVTJPOT ‣ Πϯλʔωοτʹ͓͚Δ44-ར༻͕૿Ճ ‣ 44-ύϑΥʔϚϯεΛεέʔϧͤ͞Δ҆Ձͳํ๏ͱ͠ ͯɼߴੑೳ44-ΞΫηϥϨʔλͱͯ͠ͷ(16ར༻ΛఏҊ ‣ (16Ͱ҉߸ॲཧΛߴ଎Խ͢ΔͨΊͷ͞·͟·ͳٕज़Λ ఏࣔ ‣

    44-4IBEFSߴεϧʔϓοτͱ௿ϨΠςϯγΛୡ੒͢Δ 44-ϦόʔεϓϩΩγͷ࡞੒ ‣ ධՁͷ݁Ռ ‣ CJU34"Λ୯Ұ(16Ͱ,PQFSBUJPOTT·Ͱεέʔϧ Ͱ͖Δ ‣ 44-4IBEFS͸,514Λॲཧ͢Δ 2013/4/17 ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹྠߨ 30