台湾に行ってきました    2012/09/08 Fukuoka NFC Hack 4                       @treby006
自己紹介• @treby006  • まどろみはじめ• コミケで本出しました。  • 冬も出せるといいな。
今日のおはなし• 台北滞在 • 国際会議参加報告 • 台北のICカード事情、というか実物紹介• (おまけ)NFC ShieldでFeliCa IDmを読む
台北の様子• 割と日本と変わらない雰囲気 • 食べ物も美味しかったです。 • 過ごしやすいところだと思います。 • 中国語を少しは知ってた方がいいです。• 写真の紹介
国際会議• IEEE ASID2012  • Anti-Counterfeiting, Security and Identification     • 「偽造防止やセキュリティ、個人識別」がテーマ  • 論文内容     • SNSアカウン...
反省点• 及第点の発表 • 準備不足 • 提案のみしかできなかった • 教員のお力を借りた部分が多すぎた• 余裕を持ったスケジュール設定が大事 • 発表慣れすることも大事
MRT(鉄道)のシステム• きっぷ • 20~50 NTD(約60~150円) • 改札に入るときはかざして、出るときは投入口に入れる • トークン状のMIFARE Ultralight   • データ解析・複製が簡単にできsゴホンゴホン
MRT(鉄道)のシステム• 非接触ICカード(悠遊卡/EASY CARD) • 500 NTDで400 NTD分チャージされたものが買える。 • 何度でもチャージできる。 • カード状のMIFARE Classic 1K   • つまりセキュリ...
(おまけ)NFC ShieldでFeliCa IDmを読む• NFC Shieldってなんぞ? •   Arduino用のシールド •   NXP(MIFAREの企業)のPN532というチップを搭載 •   NFC Shield Wiki : ...
問題点• 標準で提供されているライブラリは最低限の機能しか  持っていなかったりする • P2Pできねーじゃん! • FeliCa読めないじゃん!• つまり、ライブラリが整備されていない感じなのです。 • PN532のデバイスとしてはできること...
予備知識• コマンドにはホストコマンドとRFコマンドがある。 • ホストコマンド:マイコンとチップの間のコマンド • RFコマンド:各NFCテクノロジ用のコマンド• ホストコマンドはRFコマンドを内包している              ホスト ...
予備知識• Polling …… FeliCaカードを検出するためのRFコマンド • 参考:FeliCaカード ユーザーズマニュアル   • http://www.sony.co.jp/Products/felica/business/tech...
現状のコードを読むreadPassiveTargetID 関数
InListPassiveTargetを知る                  PN532 User Manualより
現在のInListPassiveTarget• BrTyの部分が0x00で渡されている→ボーレートが106kbps、  つまりType A向け • この時、InitiatorDataは「まるっと」省ける
現在のInListPassiveTarget• TargetDataがType A仕様なので適当に切りだしている感じ
余計な部分を削って変更readPassiveTargetID 関数
変更後のInListPassiveTarget• BrTyを0x01(212kbps)、つまりFeliCa向けに変える • 実際には引数を取ってるため、Arduinoプログラムをちょ   こっと変えると良い。• FeliCaの場合、Initia...
Polling          FeliCaカードユーザーズマニュアルより
変更後のInListPassiveTarget• ここでいうNFCID2tというのが、IDmを指す。ちなみに  POL_RESはPollingコマンドのレスポンスを意味する。• あとはてけとーに欲しいデータを切り出してあげる
実際に返ってきたデータを見る
まとめ• 台湾に行ってきました • カキ氷屋さんの女の子がとても可愛かったです
Upcoming SlideShare
Loading in …5
×

台湾に行ってきました

1,301 views

Published on

2012-09-08 Fukuoka NFC Hack 4にて

Published in: Technology
  • for NFC Shield user, see also http://www.nfcworld.com/2012/09/06/317697/new-library-for-nfc-shield/
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

台湾に行ってきました

  1. 1. 台湾に行ってきました 2012/09/08 Fukuoka NFC Hack 4 @treby006
  2. 2. 自己紹介• @treby006 • まどろみはじめ• コミケで本出しました。 • 冬も出せるといいな。
  3. 3. 今日のおはなし• 台北滞在 • 国際会議参加報告 • 台北のICカード事情、というか実物紹介• (おまけ)NFC ShieldでFeliCa IDmを読む
  4. 4. 台北の様子• 割と日本と変わらない雰囲気 • 食べ物も美味しかったです。 • 過ごしやすいところだと思います。 • 中国語を少しは知ってた方がいいです。• 写真の紹介
  5. 5. 国際会議• IEEE ASID2012 • Anti-Counterfeiting, Security and Identification • 「偽造防止やセキュリティ、個人識別」がテーマ • 論文内容 • SNSアカウントとAndroid NFCを組み合わせて会議等の出席者を 管理するシステム(の提案) • 実際に使用したスライドをご紹介
  6. 6. 反省点• 及第点の発表 • 準備不足 • 提案のみしかできなかった • 教員のお力を借りた部分が多すぎた• 余裕を持ったスケジュール設定が大事 • 発表慣れすることも大事
  7. 7. MRT(鉄道)のシステム• きっぷ • 20~50 NTD(約60~150円) • 改札に入るときはかざして、出るときは投入口に入れる • トークン状のMIFARE Ultralight • データ解析・複製が簡単にできsゴホンゴホン
  8. 8. MRT(鉄道)のシステム• 非接触ICカード(悠遊卡/EASY CARD) • 500 NTDで400 NTD分チャージされたものが買える。 • 何度でもチャージできる。 • カード状のMIFARE Classic 1K • つまりセキュリティ機能付き
  9. 9. (おまけ)NFC ShieldでFeliCa IDmを読む• NFC Shieldってなんぞ? • Arduino用のシールド • NXP(MIFAREの企業)のPN532というチップを搭載 • NFC Shield Wiki : http://www.seeedstudio.com/wiki/NFC_Shield • SPIで通信しているのでシリアルモニタが使える!• ありがちな勘違い • NFC ShieldはNXP製だからMIFAREしか対応してないよ…… • ……実際過去に発表した作品(?)、NFCキャンドルではタ グにMIFARE Ultralightを使っていました。 • http://www.slideshare.net/treby/nfc-13347078• 確かに標準ではMIFAREしかサポートされておりません
  10. 10. 問題点• 標準で提供されているライブラリは最低限の機能しか 持っていなかったりする • P2Pできねーじゃん! • FeliCa読めないじゃん!• つまり、ライブラリが整備されていない感じなのです。 • PN532のデバイスとしてはできることを、プログラムで実現 しようとしたらとても大変• とはいえいきなり全部は無理なので、まずはFeliCaのIDm を読んでみました(1回のRFやり取りで取れます)。
  11. 11. 予備知識• コマンドにはホストコマンドとRFコマンドがある。 • ホストコマンド:マイコンとチップの間のコマンド • RFコマンド:各NFCテクノロジ用のコマンド• ホストコマンドはRFコマンドを内包している ホスト RF コマンド コマンド タグ マイコンボード チップ ・ (Arduino) (PN532) デバイス
  12. 12. 予備知識• Polling …… FeliCaカードを検出するためのRFコマンド • 参考:FeliCaカード ユーザーズマニュアル • http://www.sony.co.jp/Products/felica/business/tech- support/index.html#Standard01• InListPassiveTarget …… R/Wが対象のタグやデバイスを探す ためのホストコマンド • FeliCaを対象とする場合、Pollingコマンドを内包する • 参考:PN532 User Manual • http://www.nxp.com/documents/user_manual/141520.pdf
  13. 13. 現状のコードを読むreadPassiveTargetID 関数
  14. 14. InListPassiveTargetを知る PN532 User Manualより
  15. 15. 現在のInListPassiveTarget• BrTyの部分が0x00で渡されている→ボーレートが106kbps、 つまりType A向け • この時、InitiatorDataは「まるっと」省ける
  16. 16. 現在のInListPassiveTarget• TargetDataがType A仕様なので適当に切りだしている感じ
  17. 17. 余計な部分を削って変更readPassiveTargetID 関数
  18. 18. 変更後のInListPassiveTarget• BrTyを0x01(212kbps)、つまりFeliCa向けに変える • 実際には引数を取ってるため、Arduinoプログラムをちょ こっと変えると良い。• FeliCaの場合、InitiatorDataにはPollingコマンドが入る
  19. 19. Polling FeliCaカードユーザーズマニュアルより
  20. 20. 変更後のInListPassiveTarget• ここでいうNFCID2tというのが、IDmを指す。ちなみに POL_RESはPollingコマンドのレスポンスを意味する。• あとはてけとーに欲しいデータを切り出してあげる
  21. 21. 実際に返ってきたデータを見る
  22. 22. まとめ• 台湾に行ってきました • カキ氷屋さんの女の子がとても可愛かったです

×