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. ؙٖآحزؕ٦سך鸐⥋فٗز؝ٕ

    *40ה䨌ֲ

    CVJMEFSTDPO

    "VH
    ,BONV *OD
    )JSPBLJ4BOP

    View Slide

  2. !2
    ⡟ꅿ酔畍
    #BDLFOE&OHJOFFSBU,BONV *OD
    !IJSPBLJT
    荈䊹稱➜
    IJSPBLJT [email protected]@B[VM

    View Slide

  3. !3
    غٝسٕؕ٦سאֻ׏גתׅ

    View Slide

  4. !4
    ؙٖآحزؕ٦س噟歲ךؒ؝ءأذي
    *40ך➬圫
    *40ך1BSTF
    㣐㢌׌׏׋הֿ׹
    תה׭



    ،آؑٝت


    View Slide

  5. ؙٖآحزؕ٦س噟歲ך
    ؒ؝ءأذي

    View Slide

  6. ؙٖآحزؕ٦س噟歲ךؒ؝ءأذي
    "DRVJSFS

    ،ؙٙ؎،ٓ

    *TTVFS

    ؎ءُ،

    !6

    #SBOE

    ـٓٝس

    ˖ #SBOE 7JTB .BTUFS$BSE +$# ꋒ耠 "NFY

    ˖ فٓحزؿؓ٦يך䲿⣘ծ《䒷ٕ٦ٕך鋉㹀
    ˖ "DRVJSFS
    ˖ ؕ٦س⸇湅䏄ךꟚ䬪׾遤ֲ
    ˖ *TTVFS
    ˖ ؕ٦س⠓㆞ ِ٦ؠ
    ךꟚ䬪׾遤ֲ
    ؕ٦س⠓㆞㤍秈
    ؕ٦س⠓㆞
    䏄莧
    ⸇湅䏄㤍秈
    ،ٓ؎،ٝأ
    ،ٓ؎،ٝأ
    ぐ涫㜥➂暟ךꟼ⤘
    ؕ٦سךⵃ欽㉀ㅷך「ֽ床׃

    View Slide

  7. ؙٖآحزؕ٦س噟歲ךؒ؝ءأذي
    "DRVJSFS

    ،ؙٙ؎،ٓ

    *TTVFS

    ؎ءُ،

    !7

    #SBOE

    ـٓٝس


    ⵃ欽

    ؕ٦س涪遤
    ؕ٦س⠓㆞
    䏄莧

    ⟎㡰♳

    ⟎㡰♳

    ⟎㡰♳

    锜実

    㹋㡰♳

    㹋㡰♳
    㹋㡰♳
    ؙٖآحزؕ٦س寸幥כؿؑ٦ؤ

    ⟎㡰♳ؔ٦أئ٦ءّٝ ♷⥋٥ؔ٦أ


    㹋㡰♳ؙٔ،ؚٔٝ 㡰♳然㹀

    ر٦ةֶꆃך崧׸

    View Slide

  8. *40
    ؙٖآحزؕ٦س噟歲ךؒ؝ءأذي
    "DRVJSFS

    ،ؙٙ؎،ٓ

    *TTVFS

    ؎ءُ،

    !8

    #SBOE

    ـٓٝس

    ˖ أؾ٦ؕ٦ך䨽㾩ׅ׷ؕٝيכ؎ءُ،ח㾩ׅ׷
    ˖ ؔ٦أئ٦ءָّٝ*40׾ك٦أח׃׋فٗز؝ٕ
    ˖ 䎃剢⟃⵸כ寸幥➿遤؟٦ؽأ׾ⵃ欽׃גְ׋ָ✲噟
    䭁㣐ח⠵׏ג⟎㡰♳ה㹋㡰♳ךءأذي׾ⰻ醡⻉׃׋

    ⵃ欽

    ؕ٦س涪遤
    ؕ٦س⠓㆞
    䏄莧

    锜実
    *40
    *40

    ⟎㡰♳

    ⟎㡰♳

    ⟎㡰♳

    㹋㡰♳

    㹋㡰♳
    㹋㡰♳

    View Slide

  9. *40ך➬圫

    View Slide

  10. *40ך➬圫
    !10

    ˖ *40ծ⚅歲垥彊
    ˖ IUUQTXXXJTPPSHPCQVJJTPTUEJTPFEWFO
    ˖ 鸐⥋כ5$1ד遤׻׸׷
    ˖ 傀ח1BSTFSָ֮׶׉ֲ׌ָծזְ
    ˖ ぐ爡杝荈ך䭁䓸׾⸇ִגְ׋׶&ODPEJOHָ殯ז׏׋׶׃גְ׷
    ˖ 劤涪邌ךⰻ㺁׮稢鿇ָ殯ז׷〳腉䚍׮֮׷
    ˖ 1BSTFSכNPSJZPTIJׁ׿ח䩛⠗׏גְ׋׌ְ׋
    *40

    View Slide

  11. *40ך➬圫
    !11

    YGF

    CGGGG
    GGGGGGGGFDEEDDGGDDEDDD
    DDEFEEDDEFDEDEEDED
    DDFFEDED
    FF
    FGGGGG
    *40ךر٦ةך⼧Ⱈ鹌邌鎸

    View Slide

  12. *40ך➬圫
    !12

    YGF

    CGGGG
    GGGGGGGGFDEEDDGGDDEDDD
    DDEFEEDDEFDEDEEDED
    DDFFEDED
    FF
    FGGGGG
    *40ךر٦ةך⼧Ⱈ鹌邌鎸

    View Slide

  13. *40ך➬圫
    !13

    YGF

    CGGGG
    GGGGGGGGFDEEDDGGDDEDDD
    DDEFEEDDEFDEDEEDED
    DDFFEDED
    FF
    FGGGGG
    *40ךر٦ةך⼧Ⱈ鹌邌鎸
    1"/
    剣⸬劍ꣲ 䎃剢

    ؔٝٓ؎ٝ寸幥
    ꆃ겘

    ˟1"/1SJNBSZ"DDPVOU/VNCFSծؕ٦س殢〾ךֿה

    View Slide

  14. !14

    㣐תַז圓鸡כ.FTTBHF5ZQF #JUNBQ %BUB&MFNFOUךא
    㛇劤圓鸡
    *40ך➬圫
    ˖ .FTTBHF5ZQFY
    ˖ #JUNBQYGF
    ˖ %BUB&MFNFOUYGGG

    View Slide

  15. !15
    .5 #JUNBQ %BUB
    #JUNBQ
    %BUBխ
    -FOHUI %BUB %BUB
    %BUB %BUB %BUB %BUB
    㛇劤圓鸡
    ˖ .FTTBHF5ZQFכ䗳׆א㶷㖈ׅ׷
    ˖ #JUNBQכ䖓竲ך%BUB&MFNFOUך⳿植ػة٦ٝ׾邌植׃גְ׷
    ˖ %BUB&MFNFOUכ⳿植ׅ׷㜥䨽ח״׏גر٦ةⰻ㺁 1"/ 剣⸬劍

    ֶ״ן圓鸡 〳㢌ꞿծ㔿㹀ꞿծⰅ׸㶨
    ָ✮׭寸ת׏גְ׷
    %BUB
    -FOHUI %BUBխ
    *40ך➬圫

    View Slide

  16. !16
    .FTTBHF5ZQF
    ˖ )551ך⚅歲דְֲأذ٦ةأ؝٦سך״ֲז׮ך
    ˖ Y׾⽃秪ח鹌侧ח㢌䳔ׅ׷ה
    ˖ ֿֿדכ#JUػحؙ鹌侧 1BDLFE#$%
    ה׃ג鍑ꅸ
    ˖ את׶
    ˖ ぐ呞ח䠐㄂ָ֮׷
    *40ך➬圫


    *40ךغ٦آّٝ
    湡涸կכؔ٦أծכؔ٦أך《嶊FUD

    堣腉կכؙٔؒأزծכٖأهٝأFUD

    涪⥋⯋կכ،ؙٙ؎،ٓծכ؎ءُ،FUD

    View Slide

  17. !17
    ؔ٦أ
    *TTVFS
    ؔ٦أח㼎ׅ׷ٖأهٝأ
    "DRVJSFS #SBOE
    ؔ٦أ
    *TTVFS
    ؔ٦أח㼎ׅ׷ٖأهٝأ
    "DRVJSFS #SBOE
    《嶊
    《嶊ח㼎ׅ׷ٖأهٝأ
    飑Ⰵ
    飑Ⰵ
    《嶊
    飑Ⰵ
    《嶊
    *40ך➬圫

    剣⸬劍ꣲثؑح
    ؙFUD
    剣⸬劍ꣲثؑح
    ؙFUD
    㼎䘔ׅ׷ؔ٦أ
    ךثؑحؙFUD
    .FTTBHF5ZQF

    View Slide

  18. !18
    GF
    #JUNBQ
    ⳿植ׅ׷%BUB&MFNFOU׾邌植ׅ׷#JU։ך#JUNBQ
    G ˟
    殢湡ך%BUB&MFNFOUָ㶷㖈
    殢湡ך%BUB&MFNFOUָ㶷㖈
    殢湡ך%BUB&MFNFOUָ㶷㖈
    ׾䠐㄂ׅ׷
    ˟.4#JUכ如ח竲ֻ#JUNBQ
    ך㶷㖈׾䠐㄂ׅ׷
    #JU #JU
    *40ך➬圫

    View Slide

  19. !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

    View Slide

  20. !20
    %BUB&MFNFOUךؿؓ٦وحز
    ˖ ر٦ةךⰻ㺁ח״׏גؿؓ٦وحزָ寸ת׏גְ׷
    ˖ ꞿׁ〳㢌ꞿPS㔿㹀ꞿ
    ˖ 俑㶵珏ⴽ侧㶵ծ薉㶵ծ暴婊俑㶵ծת׋כֿ׸׵ך穈׫さ׻ׇ
    ˖ 邌植倯岀#$% $%*$זו
    #JU ر٦ة ꞿׁ 俑㶵珏ⴽ 邌植
    1"/ 〳㢌ꞿ 侧㶵 #$%

    ؕ٦س剣⸬
    劍ꣲ
    㔿㹀ꞿ 侧㶵 #$%

    ⵃ欽䏄莧
    ⡝䨽㕂
    㔿㹀ꞿ 薉侧㶵暴婊俑㶵 $%*$
    *40ך➬圫

    View Slide

  21. *40ך1BSTF

    View Slide

  22. *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鎉铂
    ָ竲ֹתָׅأل٦أךꟼ⤘♳ծ
    ؒٓ٦عٝسؚٔٝזוכ満ֹתׅ

    View Slide

  23. *40ך1BSTF
    !23

    .FTTBHF5ZQFכ#ZUF
    NFTTBHF5ZQFNTH<>
    Y Y
    NUSFBE"T#$% NFTTBHF5ZQF

    .FTTBHF5ZQF
    .FTTBHF5ZQFכ#ZUF⽃秪ח铣׭ל״ְ

    View Slide

  24. *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ָ竲ֻה׫זׅ

    View Slide

  25. *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
    ָ㶷㖈ׅ׷ַ׾锃ץגְ׷

    View Slide

  26. *40ך1BSTF
    !26

    #JU1BSTF1SPDFTTJOH$PEFJGCJUQSFTFOU
    㔿㹀ꞿծ#$%ծ呞ךػة٦ٝ
    JG YCJUNBQ<>
    \
    QD SFTU0G.THSFBE"T#$% NTH

    ^
    %BUB&MFNFOU
    ずׄ銲걄דמ׋ׅ׵㶷㖈ثؑحؙה1BSTF׾鹌׭גְֻ

    View Slide

  27. *40ך1BSTF
    !27

    #JU剣⸬劍ꣲ
    㔿㹀ꞿծ#$%ծ呞
    ::..ַ׵UJNFTUBNQפך㢌䳔ָ䗳銲זػة٦ٝ
    JG YCJUNBQ<>
    \
    ZZNN SFTU0G.THSFBE"T#$% NTH

    FYQJSFT"UZZNN5P5JNFTUBNQ ZZNN

    ^
    %BUB&MFNFOU
    㛇劤כ㔿㹀ꞿPS〳㢌ꞿծ侧㶵 薉侧㶵PS薉侧㶵鎸〾ד֮׷ָծ
    1BSTF׾鹌׭גְֻ麓玎ד圫ղזػة٦ٝח湫꬗ׅ׷

    View Slide

  28. *40ך1BSTF
    !28

    #JU⸇湅䏄せ⡝䨽㕂
    㔿㹀ꞿծ薉侧㶵鎸〾ծչغ؎زպךػة٦ٝ
    JG YCJUNBQ<>
    \
    NFSDIBOU SFTU0G.THSFBE"MQIB/VNFSJD4ZNCPM/ NTH

    ^
    %BUB&MFNFOU
    㛇劤כ㔿㹀ꞿPS〳㢌ꞿծ侧㶵 薉侧㶵PS薉侧㶵鎸〾ד֮׷ָծ
    1BSTF׾鹌׭גְֻ麓玎ד圫ղזػة٦ٝח湫꬗ׅ׷

    View Slide

  29. *40ך1BSTF
    !29

    〳㢌ꞿծ薉侧㶵鎸〾ծ⯓걧חغ؎ز侧

    ׁ׵חꞿׁח״׏ג䠐㄂ָ㢌׻׷ػة٦ٝ
    JG YCJUNBQ<>
    \
    MNTH<>
    WBMVF SFTU0G.THSFBE"MQIB/VNFSJD4ZNCPM/ M NTH<>

    TXJUDIMFO WBMVF
    \
    DBTF

    DBTF

    ^
    %BUB&MFNFOU

    View Slide

  30. *40ך1BSTF
    !30

    %BUB&MFNFOUך⚥חׁ׵ח#JUNBQָⰅ׏גְ׷ػة٦ٝ
    JG YCJUNBQ<>
    \
    TVCCJUNBQ TVCNTHNTH<> NTH<>
    JG YTVCCJUNBQ
    \

    ^
    YYYYזػة٦ٝ
    JG YCJUNBQ<>
    \

    ^
    ZZZZZזػة٦ٝ
    JG YCJUNBQ<>
    \

    %BUB&MFNFOU

    View Slide

  31. 㣐㢌׌׏׋הֿ׹

    View Slide

  32. 㣐㢌׌׏׋הֿ׹
    !32

    䔲ⴱծוךر٦ةָꅾ銲ַ״ֻ׻ַ׵זַ׏׋
    ˖ #JU1SPDFTTJOH$PEF
    ˖ #JU4ZTUFNT5SBDF"VEJU/VNCFS
    ˖ ꆃ겘ָⰅ׏גְ׷%BUB&MFNFOUָ׋ֻׁ׿֮׷
    ˖ سًُؗٝز׾מ׋ׅ׵铣׬
    ˖ ְ׋׷䨽דؕ٦س׾⢪ֲⰻ醡⻉⟃⵸ךءأذيךؚٗ׾鋅ג
    ו׿זر٦ةָ굲׿דֻ׷ַ岞荍ֻ锃叨
    ˖ &$؟؎زծ؝ٝؽصծمذٕծ㕂ⰻ嵲㢩
    ˖ 䏄莧ך噟䡾װ寸幥䩛媮ח״׏ג굲׿דֻ׷ر٦ةָ殯ז׷

    View Slide

  33. 㣐㢌׌׏׋הֿ׹
    !33

    JG YCJUNBQ<>
    \
    WBMVF SFTU0G.THSFBE#ZUFT/ 5IF-FOHUI0G5IJT%BUB NTH

    EPOPUIJOH
    ^
    %BUB&MFNFOUָהחַֻ㢳ְ
    ˖ ⵸ل٦آ鸐׶ծ噟⹡ٗآحؙד䗳銲ז׮ך׾锃叨
    ˖ 穠卓ծ噟⹡ٗآحؙד♶銲ז׮ךכ铣׫굲לׅ倯ꆙה׃׋
    ˖ %BUB&MFNFOUך؟؎ؤכ傀濼ד֮׷
    ˖ ؟؎ؤⴓ铣׬ָ⡦׮׃זְ

    View Slide

  34. !34

    ꅾ銲ׄׯזְה䙼׏ג׋׵㹋כꅾ銲׌׏׋
    ˖ 㕂ⰻⵃ欽儗ך׫⳿植ׅ׷〳腉䚍ָ֮׷%BUB&MFNFOUָ֮׷
    ˖ ⼱錬ؕةؕشזו傈劤㔿剣ךر٦ةָⰅ׏גְ׷
    ˖ ♶銲׌׏׋ךד铣׫굲ל׃גְ׋
    ˖ ׃ַ׃㹋כٔن䩪ְ׾䠐㄂ׅ׷'MBH׮Ⰵ׏גְ׋
    ˖ ♧鿇ךֶ㹏圫ךٔن䩪ְ׾鏩〳׃ג׃ת׏גְ׋
    ˖ ˟植儗挿דך䒦爡ך醡ㅷٓ؎ٝشحفדכٔن䩪ְכ♶鏩〳
    ˖ سًُؗٝزך鋅衅ה׃荈ⴓָٔن䩪ְ׾׃זְַ׵㶷㖈׾
    䘌׸גְ׋
    㣐㢌׌׏׋הֿ׹

    View Slide

  35. !35

    噟歲ך鸐⢽
    ˖ #JU"QQSPWBM$PEFכ呞ך薉侧㶵
    ˖ 㼎ぢ鑐꿀ךꥷחչ薉㶵ָ幉ׄ׏גְתׅ״պה䭷䶯׾ְ׋׌ֻ
    ˖ ؿؓ٦وحزדכ鏩〳ׁ׸גְ׷ָ侧㶵ך׫׾⢪ֲךָ䢪统
    ˖ 鸐⢽ח䖞׏ג侧㶵ך׫ה׃׋
    㣐㢌׌׏׋הֿ׹

    View Slide

  36. !36
    ֶתֽ
    #JU
    "QQSPWBM$PEF

    View Slide

  37. תה׭

    View Slide

  38. תה׭
    !38

    תה׭
    ˖ فٗز؝ٕ׾余殛ׅ׷ךכ嚂׃ְ
    ˖ 噟⹡濼陎㣐✲կ⹈䓼㹋꿀ׅ׸ל䨌ִ׷կ
    ˖ 噟歲ך䢪统װ农럀濼ָ֮׷

    View Slide