サイドチャネル攻撃とその防衛手法@暗号通貨読書会#34

693bebf0f9f34ee94dd2c873a6888418?s=47 Takaya Imai
October 23, 2019

 サイドチャネル攻撃とその防衛手法@暗号通貨読書会#34

ここ最近ハードウェアウォレットまたは暗号演算器に対するハッキング手法としてよく聞くサイドチャネル攻撃にフォーカスを当ててみました。
今年の8月下旬にアトランタであったCHES2019の講演資料を紹介しています。

Focused on the Side-channel Attacks, which get popular recently as a hacking technique to Hardware Wallets or Encryption Machines.
This slide introduces Side-channel Attack presentation in CHES 2019 https://ches.iacr.org/2019/ in August 2019.

693bebf0f9f34ee94dd2c873a6888418?s=128

Takaya Imai

October 23, 2019
Tweet

Transcript

  1. αΠυνϟωϧ߈ܸͱ ͦͷ๷Ӵख๏ ʲ҉߸௨՟ྠಡձʳ!ϑϨηοπɺ౦ژେֶೆݚڀ౩  ϑϩϯςΟΞύʔτφʔζ߹ಉձࣾ૑ۀऀ୅ද$&0 6OJUFE#JUDPJOFST*ODڞಉ૑ۀऀ$50 ࠓҪਸ໵

  2. ࣗݾ঺հ ϑϩϯςΟΞύʔτφʔζ߹ಉձࣾ ୅දCEO United Bitcoiners Inc. ڞಉ૑ۀऀˍऔక໾CTO ϚελϦϯάϏοτίΠϯɺ຋༁ऀ୅ද ੈքͰॳΊͯͷɺ೔ຊޠʹΑΔϏοτίΠϯɾϒϩοΫ νΣʔϯͷৄࡉٕज़ॻ(NTTग़൛ࣾ)

    શମͷׂ̕Λ຋༁ ୈ̍̎࡮ 2016/7/14ग़൛ ిࢠॻ੶൛(kindle)΋ ΦʔϓϯΤσΟγϣϯ൛ https://www.bitcoinbook.info ίϯαΠε൛ͱ߹Θͤͯ13,300෦ൃߦ
  3. ࣗݾ঺հ όοΫάϥ΢ϯυ ৽ׁେֶେֶӃɹૉཻࢠཧ࿦෺ཧɹത࢜(ཧ) ΦϑνΣʔϯΞΧσϛʔ୅ද ೔ຊͰ࠷ॳͷϥΠτχϯάωοτϫʔΫϋοΧιϯ(off-chain academy hackday)Λओ ࠵ ΧΧΫίϜ ݕࡧΤϯδϯ։ൃɹݕࡧαʔόΫϥελߏஙӡ༻ɹେن໛σʔλॲཧɹػցֶ

    शɹը૾ೝࣝ σʔλλϫʔגࣜձࣾɹ୅දऔక໾
  4. ໨࣍ w ঺հࢿྉͷ֓ཁ w ঺հࢿྉͷத਎  جૅ  ߈ܸख๏લ൒ 

    ߈ܸख๏ޙ൒"OE(Pݪ͞Μ୲౰   ๷Ӵख๏લ൒  ๷Ӵख๏ޙ൒"OE(Pݪ͞Μ୲౰
  5. ঺հࢿྉͷ֓ཁ w 5JUMF w &MFDUSPNBHOFUJDBOE.BDIJOF-FBSOJOH4JEF$IBOOFM"UUBDLTBOE-PX0WFSIFBE (FOFSJD$PVOUFSNFBTVSFT w "VUIPS w 4ISFZBT4FO

    w "SJKJU3BZDIPXEIVSZ w 1VCMJTIFE w  w -JOL w IUUQTDIFTJBDSPSHTSDUVUPSJBMTDIFTUVUPSJBM@4FOQEG
  6. جૅ

  7. None
  8. ؾ͖ͮʹ͘͘ɺࠟ੻΋࢒͞ͳ͍

  9. None
  10. ߈ܸͷओͳछྨ w ిྗղੳ߈ܸ w ి࣓೾ղੳ߈ܸ w ςϯϖετ 5&.1&45 ߈ܸ΋࿙Ӯి࣓೾Λ༻͍ Δ͕ɺ߈ܸ໨త͕҉߸ղಡͱ΋ݶΒͳ͍

    w Իڹղੳ߈ܸ w λΠϛϯά߈ܸ w Ωϟογϡ߈ܸ w ނোར༻߈ܸ w εΩϟϯϕʔε߈ܸ w -4*ಛ༗ प೾਺ɺڧ౓ ࣌ܥྻ Τϥʔग़ྗ ςετग़ྗ
  11. ߈ܸͷओͳछྨ w ిྗղੳ߈ܸ w ి࣓೾ղੳ߈ܸ w ςϯϖετ 5&.1&45 ߈ܸ΋࿙Ӯి࣓೾Λ༻͍ Δ͕ɺ߈ܸ໨త͕҉߸ղಡͱ΋ݶΒͳ͍

    w Իڹղੳ߈ܸ w λΠϛϯά߈ܸ w Ωϟογϡ߈ܸ w ނোར༻߈ܸ w εΩϟϯϕʔε߈ܸ w -4*ಛ༗ प೾਺ɺڧ౓ ࣌ܥྻ Τϥʔग़ྗ ςετग़ྗ ిྗղੳ߈ܸ 1PXFS$POTVNQUJPO"OBMZTJT  ి࣓೾ղੳ߈ܸ &MFDUSPNBHOFUJD"OBMZTJT
  12. ߈ܸͷओͳछྨ w ഁյ త ߈ܸPSඇഁյ త ߈ܸ w ϒϥοΫϘοΫεత /PO1SPpMFE

    PSػث౳߈ܸλʔ ήοτͷಛఆࡁΈ 1SPpMFE  w αΠυνϟωϧ߈ܸʹ͸྆ํ͋Δ w 1SPpMFEͷํ͕ύϫϑϧɻςϯϓϨʔτ߈ܸͱ͔ɻ αΠυνϟωϧ߈ܸ
  13. ҉߸΁ͷݹయతͳ߈ܸख๏ w ڞ௨伴҉߸Πϯϓοτ w ฏจ w બ୒ฏจ߈ܸ $1" ط஌ฏจ߈ܸ ,1"

    ؔ࿈ฏจ߈ܸ ࠩ෼ղಡ๏ ઢܗ߈ܸ๏ͳͲ w ൿີ伴 w ٖࣅཚ਺ස౓෼ੳ ؔ࿈伴߈ܸ ૯౰ͨΓ߈ܸͳͲ w ϒϩοΫ௕ w ΦϥΫϧύσΟϯά߈ܸͳͲ w ڞ௨伴҉߸Ξ΢τϓοτ w ҉߸จ w બ୒҉߸จ߈ܸ $$" ɺ҉߸จ୯ಠ߈ܸ $0" ස౓෼ੳ ࠩ෼ղಡ๏ ઢܗ߈ܸ๏ͳͲ
  14. ҉߸΁ͷݹయతͳ߈ܸख๏ w ڞ௨伴҉߸Πϯϓοτ w ฏจ w બ୒ฏจ߈ܸ $1" ط஌ฏจ߈ܸ ,1"

    ؔ࿈ฏจ߈ܸ ࠩ෼ղಡ๏ ઢܗ߈ܸ๏ͳͲ w ൿີ伴 w ٖࣅཚ਺ස౓෼ੳ ؔ࿈伴߈ܸ ૯౰ͨΓ߈ܸͳͲ w ϒϩοΫ௕ w ΦϥΫϧύσΟϯά߈ܸͳͲ w ڞ௨伴҉߸Ξ΢τϓοτ w ҉߸จ w બ୒҉߸จ߈ܸ $$" ɺ҉߸จ୯ಠ߈ܸ $0" ස౓෼ੳ ࠩ෼ղಡ๏ ઢܗ߈ܸ๏ͳͲ ҉߸ཧ࿦҉߸ॲཧ࣮૷ͷ ௚઀తΠϯϓοτΞ΢τϓοτͷΈ  αΠυνϟωϧ߈ܸͰ͸͜ΕʹՃ͑ͯ ֎෦͔Βͷ෺ཧతͳ؍ଌσʔλ΋ ߈ܸλʔήοτ ͜͜೥͘Β͍
  15. αΠυνϟωϧ߈ܸͱ͸ʁ w αΠυνϟωϧͱ͸ɺਖ਼نͷೖग़ྗܦ࿏Ͱ͸ͳ͍ೖग़ྗΛ ҙຯ͢Δɻ w ҉߸Խɺ෮߸Խɺॺ໊ॲཧΛ௨ͯ͠ɺ-4*಺෦ʹ͋Δൿີ ৘ใΛऔΓग़͢ɻ

  16. αΠυνϟωϧ߈ܸͱ͸ʁ w ೥ʹॳΊͯ1BVM,PDIFS͕ൃදͨ͠߈ܸํ๏ɻ w ౰࣌͸ɺެ։伴҉߸ͷൿີ伴ϏοτύλʔϯʹԠͯ͡ॲཧ͕࣌ؒ มΘΔ͜ͱΛར༻ͯ͠ൿີ伴Λऔಘɻ w <,>1BVM$,PDIFS $SZQUBOBMZTJTPG%J⒏F)FMMNBO 

    34" %44 BOE0UIFS4ZTUFNT6TJOH5JNJOH"UUBDLT  FYUFOEFEBCTUSBDU %FDFNCFS w <,>1BVM,PDIFS 5JNJOH"UUBDLTPO*NQMFNFOUBUJPOT PG%J⒏F)FMMNBO 34" %44 BOE0UIFS4ZTUFNT  $SZQUP QQ 
  17. ͳͥαΠυνϟωϧ߈ܸ͕ ͓ಘͳͷ͔ʁ CJU CJU CJU CJU ʜ CJU "&4CJU CJUYݸCJU

    CJUͰ͸ͳ͘CJUͣͭൿີ伴͕நग़Ͱ͖Δɻ ͜ΕΛճ΍Ε͹ൿີ伴શମͷநग़׬ྃɻ ୳ࡧ͢Δ΂͖ݸ਺͸ͨͬͨͷݸɻ ൿີ伴ͷऔΓಘΔݸ਺͸ͷ৐ఔ౓ɻ
  18. "&4 "&4 w "&4 "EWBODFE&ODSZQUJPO4UBOEBSE  w ΞϝϦΧࠃཱඪ४ٕज़ݚڀॴʢ/*45ʣओಋͰެื͞Εɺ೥ݱࡏଟ ͘ͷެతػؔͰ࠾༻͞Ε͍ͯΔඪ४҉߸ w

    ڞ௨伴҉߸ w ϒϩοΫ҉߸ w ϒϩοΫ௕CJUT w 伴௕  CJUT w ࠓճɺओʹྫͰऔΓ্͛Δ҉߸
  19. ୳ࡧ͢Δ΂͖͸௨Γ͚ͩʂ

  20. ߈ܸͷϑΣʔζ ୈ̍ϑΣʔζ σʔλूΊ ୈ̎ϑΣʔζ ౷ܭॲཧ

  21. ඞཁͳϋʔυ΢ΣΞ ԁ ສԁ ສԁ

  22. ؖࠃͷ"5.Ͱͷ࢒ߴ૿Ճ ϋοΩϯά ೥Ͱͷ࿦จൃද༻

  23. ߈ܸख๏લ൒

  24. /PO1SPpMFE߈ܸख๏ͷ ओͳछྨ w ిྗղੳ w ୯७ిྗղੳ 4JNQMFQPXFSBOBMZTJT 41"  w

    ࠩ෼ిྗղੳ %J⒎FSFOUJBMQPXFSBOBMZTJT %1"  w ૬ؔిྗղੳ $PSSFMBUJPOBMQPXFSBOBMZTJT $1"  w ి࣓೾ղੳ w ૬ؔి࣓೾ղੳ $PSSFMBUJPO&." $&."  w ࠩ෼ి࣓೾ղੳ %J⒎FSFOUJBM&." %&."
  25. ࠶ͼ"&4 w "&4͸ʮϥ΢ϯυʯͱݺ͹ΕΔॲ ཧΛ̍̌ճ܁Γฦ͢ɻ w ϒϩοΫ҉߸ͳͷͰɺ͜ͷϥ΢ϯυ΁ ͷೖྗ͸ฏจΛCJUͣͭ۠෼͚ͨ͠ ΋ͷΛ࢖͍҉߸Խ෮߸ԽॲཧΛ͍ͯ͠ ͘ɻ w

    ൿີ伴͸伴֦େॲཧ 伴εέδϡʔϧ Ͱ ʮϥ΢ϯυ਺ ݸʯʹม׵͞ΕɺͦΕ ͧΕͷϥ΢ϯυॲཧΛ࣮ߦ͍ͯ͘͠ɻ w X@ʙX@͸ͦΕͧΕCJUͣͭͰશ෦ ͰCJUɻ
  26. ʢגʣ-"$ *P5෼໺ͰڴҖʹͳΓಘΔɺϋʔυ΢ΣΞ΁ͷ૬ؔిྗղੳ߈ܸΛղઆ IUUQTXXXMBDDPKQMBDXBUDIQFPQMF@IUNM ੺͍ϥΠϯͰిྗΛଌఆ͢Δ

  27. ͳͥαΠυνϟωϧ߈ܸ͕ ͓ಘͳͷ͔ʁ CJU CJU CJU CJU ʜ "&4CJU CJUYݸCJU CJUͰ͸ͳ͘CJUͣͭൿີ伴͕நग़Ͱ͖Δɻ

    ͜ΕΛճ΍Ε͹ൿີ伴શମͷநग़׬ྃɻ ୳ࡧ͢Δ΂͖ݸ਺͸ͨͬͨͷݸɻ ൿີ伴ͷऔΓಘΔݸ਺͸ͷ৐ఔ౓ɻ CJU
  28. ૬ؔి࣓೾ղੳͷ΍Γํ

  29. ͜͜Ͱൿີ伴͕ಛఆͰ͖ͨʂ ݸऑͷαϯϓϧ਺  ಛఆʹͲΕ͚ͩͷσʔλΛूΊͳ͍ͱ͍͚ͳ͍͔͕ αΠυνϟωϧ߈ܸ΁ͷ଱ੑࢦඪͷ̍ͭɻ ͜ͷϥΠϯ͕ӈʹߦ͚͹͍͘΄Ͳ଱ੑ͕͋Δɻ

  30. ιϑτ΢ΣΞ҉߸Խͱϋʔυ΢ΣΞ҉߸ԽͰ ࢖͏ਪఆϞσϧ͸มΘΔͷ͔ʁ w มΘΔɻ w ଌఆͨ͠ిྗి࣓೾ΛਪఆϞσϧʹೖΕͯൿີ伴Λਪఆͤ͞Δ͕ɺద੾ͳਪఆϞσϧ͕ҧ͏ɻ w ͜ͷൃදࢿྉͷϖʔδͷਤʹ͋Δʮ.PEFMPGMFBLBHFʯͷ͜ͱɻ w ਪఆϞσϧͷओͳछྨ

    w ϋϛϯά΢ΣΠτج४Ϟσϧ )BNNJOH8FJHIU )8  w ιϑτ΢ΣΞ҉߸Խ޲͖ w ϋϛϯάڑ཭ج४Ϟσϧ )BNNJOH%JTUBODF )%  w ϋʔυ΢ΣΞ҉߸Խ޲͖
  31. ๷Ӵख๏લ൒

  32. ๷Ӵํ๏͸جຊతʹ̏ͭʹ෼͚ΒΕΔ ɾϩδοΫϨϕϧ ɾΞʔΩςΫνϟϨϕϧ ɾ෺ཧϨϕϧ

  33. ϋʔυ΢ΣΞ ιϑτ΢ΣΞ )JEJOH .BTLJOH )JEJOH .BTLJOH ϩδοΫ Ϩϕϧ 4"#- 8%%-

    ##- .%1- ΞʔΩςΫνϟ Ϩϕϧ #PPMFBO .BTLJOH ࣌ؒ࿪Έ ిྲྀ࿪Έ ࣮ߦॱϥϯμϜԽ #PPMFBO .BTLJOHGPS MJOFBS PQFSBUJPOT ෺ཧϨϕϧ /PJTF*OKFDUJPO "4/* "UUFOVBUFE4JHOBUVSF /PJTF*OKFDUJPO
  34. ϩδοΫϨϕϧ ओͳ๷ӴΞϓϩʔνํ๏ w σϡΞϧϨʔϧϩδοΫ w ϝϦοτ w ΧελϚΠζͰ͖Δ෯͕޿͕Δ w ૬ิతͳ̎ͭͷճ࿏Ͱɺిྗి࣓೾ͷಛ௃ΛฏୱԽ͠߈ܸΛ͠ʹ͘͘͠΍͍͢

    w σϝϦοτ w ඪ४తͳϥΠϒϥϦ͕࢖͑ͳ͍ͨΊɺ৽ͨʹ։ൃ͠ͳ͍ͱ͍͚ͳ͍ w ճ࿏Ϙʔυ͕̎ഒͷ໘ੵʹͳΔ w γϯάϧϨʔϧϩδοΫ w ϝϦοτ w ඪ४తͳϥΠϒϥϦ͕࢖͑Δ w σϝϦοτ w ߈ܸʹର͢Δ଱ੑ͕ऑ͍ʁ
  35. ϋʔυ΢ΣΞ ιϑτ΢ΣΞ )JEJOH .BTLJOH )JEJOH .BTLJOH ϩδοΫ Ϩϕϧ 4"#- 8%%-

    ##- .%1- ΞʔΩςΫνϟ Ϩϕϧ #PPMFBO .BTLJOH ࣌ؒ࿪Έ ిྲྀ࿪Έ ࣮ߦॱϥϯμϜԽ #PPMFBO .BTLJOHGPS MJOFBS PQFSBUJPOT ෺ཧϨϕϧ /PJTF*OKFDUJPO "4/* "UUFOVBUFE4JHOBUVSF /PJTF*OKFDUJPO
  36. ࣌ؒ࿪Έ 5JNF%JTUPSUJPO w μϛʔΦϖϨʔγϣϯΛೖΕΔ w 3BOEPN*OTFSUJPOPG%VNNZ0QFSBUJPOT w ͔͠͠ɺϋΠϨϕϧϓϩςΫγϣϯ͸Ͱ͖ͳ͍ɻͳͥ ͳΒ࣮ߦ͕࣌ؒ৳ͼͪΌ͏͔Βɻ w

    4CPYͷॲཧͷॱ൪ΛϥϯμϜʹ͢Δ w 4IV⒐JOHPG0QFSBUJPOT
  37. ʢגʣ-"$ *P5෼໺ͰڴҖʹͳΓಘΔɺϋʔυ΢ΣΞ΁ͷ૬ؔిྗղੳ߈ܸΛղઆ IUUQTXXXMBDDPKQMBDXBUDIQFPQMF@IUNM 4CPY 4VC#ZUFT

  38. None
  39. ϋʔυ΢ΣΞ ιϑτ΢ΣΞ )JEJOH .BTLJOH )JEJOH .BTLJOH ϩδοΫ Ϩϕϧ 4"#- 8%%-

    ##- .%1- ΞʔΩςΫνϟ Ϩϕϧ #PPMFBO .BTLJOH ࣌ؒ࿪Έ ిྲྀ࿪Έ ࣮ߦॱϥϯμϜԽ #PPMFBO .BTLJOHGPS MJOFBS PQFSBUJPOT ෺ཧϨϕϧ /PJTF*OKFDUJPO "4/* "UUFOVBUFE4JHOBUVSF /PJTF*OKFDUJPO
  40. None
  41. ϊΠζ෦෼ΛؚΊΕ͹ి࣓೾͸֧ཚ͞ΕΔ͕ɺ Ͱ͖Δ͚ͩখ͍͞ϊΠζͰ֧ཚ͍ͨ͠

  42. े෼ͳαΠυνϟωϧ߈ܸ଱ੑΛ෇͚ΔͨΊʹɺ ୯७ͳϊΠζํ๏ͩͱN8ͷిྗ͕ඞཁɻ "4/*ͩͱN8͚ͩɻ

  43. pO