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

クレジットカードの通信プロトコル ISO8583 と戦う

クレジットカードの通信プロトコル ISO8583 と戦う

builderscon2019

Hiroaki Sano

August 31, 2019
Tweet

More Decks by Hiroaki Sano

Other Decks in Programming

Transcript

  1. ؙٖآحزؕ٦س噟歲ךؒ؝ءأذي "DRVJSFS
 ،ؙٙ؎،ٓ *TTVFS
 ؎ءُ، !6  #SBOE
 ـٓٝس ˖

    #SBOE 7JTB .BTUFS$BSE +$# ꋒ耠 "NFY  ˖ فٓحزؿؓ٦يך䲿⣘ծ《䒷ٕ٦ٕך鋉㹀 ˖ "DRVJSFS ˖ ؕ٦س⸇湅䏄ךꟚ䬪׾遤ֲ ˖ *TTVFS ˖ ؕ٦س⠓㆞ ِ٦ؠ ךꟚ䬪׾遤ֲ ؕ٦س⠓㆞㤍秈 ؕ٦س⠓㆞ 䏄莧 ⸇湅䏄㤍秈 ،ٓ؎،ٝأ ،ٓ؎،ٝأ ぐ涫㜥➂暟ךꟼ⤘ ؕ٦سךⵃ欽㉀ㅷך「ֽ床׃
  2. ؙٖآحزؕ٦س噟歲ךؒ؝ءأذي "DRVJSFS
 ،ؙٙ؎،ٓ *TTVFS
 ؎ءُ، !7  #SBOE
 ـٓٝس 

    ⵃ欽  ؕ٦س涪遤 ؕ٦س⠓㆞ 䏄莧  ⟎㡰♳  ⟎㡰♳  ⟎㡰♳  锜実  㹋㡰♳  㹋㡰♳  㹋㡰♳ ؙٖآحزؕ٦س寸幥כؿؑ٦ؤ  ⟎㡰♳ؔ٦أئ٦ءّٝ ♷⥋٥ؔ٦أ   㹋㡰♳ؙٔ،ؚٔٝ 㡰♳然㹀 ر٦ةֶꆃך崧׸
  3. *40 ؙٖآحزؕ٦س噟歲ךؒ؝ءأذي "DRVJSFS
 ،ؙٙ؎،ٓ *TTVFS
 ؎ءُ، !8  #SBOE
 ـٓٝس

    ˖ أؾ٦ؕ٦ך䨽㾩ׅ׷ؕٝيכ؎ءُ،ח㾩ׅ׷ ˖ ؔ٦أئ٦ءָّٝ*40׾ك٦أח׃׋فٗز؝ٕ ˖ 䎃剢⟃⵸כ寸幥➿遤؟٦ؽأ׾ⵃ欽׃גְ׋ָ✲噟 䭁㣐ח⠵׏ג⟎㡰♳ה㹋㡰♳ךءأذي׾ⰻ醡⻉׃׋  ⵃ欽  ؕ٦س涪遤 ؕ٦س⠓㆞ 䏄莧  锜実 *40 *40  ⟎㡰♳  ⟎㡰♳  ⟎㡰♳  㹋㡰♳  㹋㡰♳  㹋㡰♳
  4. *40ך➬圫 !10  ˖ *40ծ⚅歲垥彊 ˖ IUUQTXXXJTPPSHPCQVJJTPTUEJTPFEWFO ˖ 鸐⥋כ5$1ד遤׻׸׷ ˖

    傀ח1BSTFSָ֮׶׉ֲ׌ָծזְ ˖ ぐ爡杝荈ך䭁䓸׾⸇ִגְ׋׶&ODPEJOHָ殯ז׏׋׶׃גְ׷ ˖ 劤涪邌ךⰻ㺁׮稢鿇ָ殯ז׷〳腉䚍׮֮׷ ˖ 1BSTFSכNPSJZPTIJׁ׿ח䩛⠗׏גְ׋׌ְ׋ *40
  5. !14  㣐תַז圓鸡כ.FTTBHF5ZQF #JUNBQ %BUB&MFNFOUךא 㛇劤圓鸡 *40ך➬圫 ˖ .FTTBHF5ZQFY ˖

    #JUNBQYGF ˖ %BUB&MFNFOUYGGG
  6. !15 .5 #JUNBQ %BUB #JUNBQ %BUBխ -FOHUI %BUB %BUB %BUB

    %BUB %BUB %BUB 㛇劤圓鸡 ˖ .FTTBHF5ZQFכ䗳׆א㶷㖈ׅ׷ ˖ #JUNBQכ䖓竲ך%BUB&MFNFOUך⳿植ػة٦ٝ׾邌植׃גְ׷ ˖ %BUB&MFNFOUכ⳿植ׅ׷㜥䨽ח״׏גر٦ةⰻ㺁 1"/ 剣⸬劍 ꣲ ֶ״ן圓鸡 〳㢌ꞿծ㔿㹀ꞿծⰅ׸㶨 ָ✮׭寸ת׏גְ׷ %BUB -FOHUI %BUBխ *40ך➬圫 
  7. !16 .FTTBHF5ZQF ˖ )551ך⚅歲דְֲأذ٦ةأ؝٦سך״ֲז׮ך ˖ Y׾⽃秪ח鹌侧ח㢌䳔ׅ׷ה ˖ ֿֿדכ#JUػحؙ鹌侧 1BDLFE#$% ה׃ג鍑ꅸ

    ˖ את׶ ˖ ぐ呞ח䠐㄂ָ֮׷ *40ך➬圫   *40ךغ٦آّٝ 湡涸կכؔ٦أծכؔ٦أך《嶊FUD
 堣腉կכؙٔؒأزծכٖأهٝأFUD
 涪⥋⯋կכ،ؙٙ؎،ٓծכ؎ءُ،FUD
  8. !17 ؔ٦أ *TTVFS ؔ٦أח㼎ׅ׷ٖأهٝأ "DRVJSFS #SBOE ؔ٦أ *TTVFS ؔ٦أח㼎ׅ׷ٖأهٝأ "DRVJSFS

    #SBOE 《嶊 《嶊ח㼎ׅ׷ٖأهٝأ 飑Ⰵ 飑Ⰵ 《嶊 飑Ⰵ 《嶊 *40ך➬圫  剣⸬劍ꣲثؑح ؙFUD 剣⸬劍ꣲثؑح ؙFUD 㼎䘔ׅ׷ؔ٦أ ךثؑحؙFUD .FTTBHF5ZQF
  9. !18 GF #JUNBQ ⳿植ׅ׷%BUB&MFNFOU׾邌植ׅ׷#JU։ך#JUNBQ G ˟    殢湡ך%BUB&MFNFOUָ㶷㖈

     殢湡ך%BUB&MFNFOUָ㶷㖈   殢湡ך%BUB&MFNFOUָ㶷㖈 ׾䠐㄂ׅ׷ ˟.4#JUכ如ח竲ֻ#JUNBQ  ך㶷㖈׾䠐㄂ׅ׷ #JU #JU *40ך➬圫 
  10. !19 %BUB&MFNFOU ˖ 1"/ ꆃ겘 ؕ٦س剣⸬劍ꣲFUD寸幥ד䗳銲זر٦ةך劤⡤ ˖ ⵸鶢ך#JUNBQד#JUָ甧׏׋׮ךָ׉ך갫殢דⰅ׏גְ׷ ˖ #JUך㜥䨽ח״׏גו׿זر٦ةָⰅ׷ַכ寸ת׏גְ׷

    ˖ #JU1"/ ˖ #JU1SPDFTTJOH$PEF ˖ #JU"NPVOU 5SBOTBDUJPO ˖ #JU"NPVOU 4FUUMFNFOU ˖ #JU"NPVOU $BSEIPMEFS#JMMJOH ˖ #JU5SBOTNJTTJPO%BUFBOE5JNF ˖ #JU   ָ甧׏גְ׋㜥さכ如ך״ֲזر٦ةחז׷ *40ך➬圫  .5 #JUNBQ 1"/ 1$խ "./5 %BUF5JNF
  11. !20 %BUB&MFNFOUךؿؓ٦وحز ˖ ر٦ةךⰻ㺁ח״׏גؿؓ٦وحزָ寸ת׏גְ׷ ˖ ꞿׁ〳㢌ꞿPS㔿㹀ꞿ ˖ 俑㶵珏ⴽ侧㶵ծ薉㶵ծ暴婊俑㶵ծת׋כֿ׸׵ך穈׫さ׻ׇ ˖ 邌植倯岀#$%

    &#$%*$זו #JU ر٦ة ꞿׁ 俑㶵珏ⴽ 邌植  1"/ 〳㢌ꞿ 侧㶵 #$%  ؕ٦س剣⸬ 劍ꣲ 㔿㹀ꞿ 侧㶵 #$%  ⵃ欽䏄莧 ⡝䨽㕂 㔿㹀ꞿ 薉侧㶵暴婊俑㶵 &#$%*$ *40ך➬圫 
  12. *40ך1BSTF !22  NTH<>CZUF\ .FTTBHF5ZQF Y Y  #JUNBQ YG

    Y Y Y Y YF Y Y  Y Y Y Y Y Y Y Y  %BUB&MFNFOU Y Y Y Y Y Y Y Y Y Y  Y Y^ غ؎ز⴨׾⯓鶢ך➬圫ח䖞׏ג⯓걧ַ׵Ⳣ椚ׅ׷ ˟⟃꣬؟ٝفٕ؝٦س (P鎉铂 ָ竲ֹתָׅأل٦أךꟼ⤘♳ծ ؒٓ٦عٝسؚٔٝזוכ満ֹתׅ
  13. *40ך1BSTF !24  WBSCJUNBQ<>VJOU CJUNBQ<> NTHCJOBSZ#JH&OEJBO6JOU NTH<> NTH<> 锷椚琎ד.4#JUך㶷㖈然钠׾遤ֲ JG

    YCJUNBQ<> \ CJUNBQ<> NTHCJOBSZ#JH&OEJBO6JOU NTH<> NTH<> ^ JG YCJUNBQ<> \ CJUNBQ<> NTHCJOBSZ#JH&OEJBO6JOU NTH<> NTH<> ^  #JUNBQ ˖ #JU #ZUF ׆א铣׬ ˖ .4# Y ָ㶷㖈ׅ׷㜥さכ ׁ׵ח#ZUFךCJUNBQָ竲ֻה׫זׅ
  14. *40ך1BSTF !25  #JU1BSTF1"/JGCJUQSFTFOU 〳㢌ꞿծ#$%ծ⯓걧ח؟؎ؤ 呞侧 ָⰅ׏גְ׷ػة٦ٝ JG YCJUNBQ<> \

    MFOHUIJOU NTH<> 
 䗳銲זꞿׁ׌ֽ铣׿ד1"/׾《䖤 婍׶׾SFTU0G.THד《䖤 QBO SFTU0G.THSFBE"T#$% MFOHUI NTH<>  ^ %BUB&MFNFOU ˖ ֿֿד׮锷椚琎׾崞欽 ˖ #JUNBQה#JUך⡘縧ך"/%怴皾ד㶷㖈׾ثؑحؙ׃ג1BSTF ˖ ♴鎸ך⢽כ#JU湡  Y ָ㶷㖈ׅ׷ַ׾锃ץגְ׷
  15. *40ך1BSTF !27  #JU剣⸬劍ꣲ 㔿㹀ꞿծ#$%ծ呞 ::..ַ׵UJNFTUBNQפך㢌䳔ָ䗳銲זػة٦ٝ JG YCJUNBQ<> \ ZZNN

    SFTU0G.THSFBE"T#$%  NTH  FYQJSFT"UZZNN5P5JNFTUBNQ ZZNN  ^ %BUB&MFNFOU 㛇劤כ㔿㹀ꞿPS〳㢌ꞿծ侧㶵 薉侧㶵PS薉侧㶵鎸〾ד֮׷ָծ 1BSTF׾鹌׭גְֻ麓玎ד圫ղזػة٦ٝח湫꬗ׅ׷
  16. *40ך1BSTF !28  #JU⸇湅䏄せ⡝䨽㕂 㔿㹀ꞿծ薉侧㶵鎸〾ծչغ؎زպךػة٦ٝ JG YCJUNBQ<> \ NFSDIBOU SFTU0G.THSFBE"MQIB/VNFSJD4ZNCPM/

     NTH  ^ %BUB&MFNFOU 㛇劤כ㔿㹀ꞿPS〳㢌ꞿծ侧㶵 薉侧㶵PS薉侧㶵鎸〾ד֮׷ָծ 1BSTF׾鹌׭גְֻ麓玎ד圫ղזػة٦ٝח湫꬗ׅ׷
  17. *40ך1BSTF !29  〳㢌ꞿծ薉侧㶵鎸〾ծ⯓걧חغ؎ز侧
 ׁ׵חꞿׁח״׏ג䠐㄂ָ㢌׻׷ػة٦ٝ JG YCJUNBQ<> \ MNTH<> WBMVF

    SFTU0G.THSFBE"MQIB/VNFSJD4ZNCPM/ M NTH<>  TXJUDIMFO WBMVF \ DBTF  DBTF  ^ %BUB&MFNFOU
  18. *40ך1BSTF !30  %BUB&MFNFOUך⚥חׁ׵ח#JUNBQָⰅ׏גְ׷ػة٦ٝ JG YCJUNBQ<> \ TVCCJUNBQ TVCNTHNTH<> NTH<>

    JG YTVCCJUNBQ \  ^ YYYYזػة٦ٝ JG YCJUNBQ<> \  ^ ZZZZZזػة٦ٝ JG YCJUNBQ<> \  %BUB&MFNFOU
  19. 㣐㢌׌׏׋הֿ׹ !32  䔲ⴱծוךر٦ةָꅾ銲ַ״ֻ׻ַ׵זַ׏׋ ˖ #JU1SPDFTTJOH$PEF ˖ #JU4ZTUFNT5SBDF"VEJU/VNCFS ˖ ꆃ겘ָⰅ׏גְ׷%BUB&MFNFOUָ׋ֻׁ׿֮׷

    ˖ سًُؗٝز׾מ׋ׅ׵铣׬ ˖ ְ׋׷䨽דؕ٦س׾⢪ֲⰻ醡⻉⟃⵸ךءأذيךؚٗ׾鋅ג ו׿זر٦ةָ굲׿דֻ׷ַ岞荍ֻ锃叨 ˖ &$؟؎زծ؝ٝؽصծمذٕծ㕂ⰻ嵲㢩 ˖ 䏄莧ך噟䡾װ寸幥䩛媮ח״׏ג굲׿דֻ׷ر٦ةָ殯ז׷
  20. 㣐㢌׌׏׋הֿ׹ !33  JG YCJUNBQ<> \ WBMVF SFTU0G.THSFBE#ZUFT/ 5IF-FOHUI0G5IJT%BUB NTH

     EPOPUIJOH ^ %BUB&MFNFOUָהחַֻ㢳ְ ˖ ⵸ل٦آ鸐׶ծ噟⹡ٗآحؙד䗳銲ז׮ך׾锃叨 ˖ 穠卓ծ噟⹡ٗآحؙד♶銲ז׮ךכ铣׫굲לׅ倯ꆙה׃׋ ˖ %BUB&MFNFOUך؟؎ؤכ傀濼ד֮׷ ˖ ؟؎ؤⴓ铣׬ָ⡦׮׃זְ
  21. !34  ꅾ銲ׄׯזְה䙼׏ג׋׵㹋כꅾ銲׌׏׋ ˖ 㕂ⰻⵃ欽儗ך׫⳿植ׅ׷〳腉䚍ָ֮׷%BUB&MFNFOUָ֮׷ ˖ ⼱錬ؕةؕشזו傈劤㔿剣ךر٦ةָⰅ׏גְ׷ ˖ ♶銲׌׏׋ךד铣׫굲ל׃גְ׋ ˖

    ׃ַ׃㹋כٔن䩪ְ׾䠐㄂ׅ׷'MBH׮Ⰵ׏גְ׋ ˖ ♧鿇ךֶ㹏圫ךٔن䩪ְ׾鏩〳׃ג׃ת׏גְ׋ ˖ ˟植儗挿דך䒦爡ך醡ㅷٓ؎ٝشحفדכٔن䩪ְכ♶鏩〳 ˖ سًُؗٝزך鋅衅ה׃荈ⴓָٔن䩪ְ׾׃זְַ׵㶷㖈׾ 䘌׸גְ׋ 㣐㢌׌׏׋הֿ׹