UIDのことわかってますか? -フォーマット編-

29
UIDのこと わかってますか? -フォーマット編- なっぴー / @napplecomputer 12825日土曜日

description

NFC LABO 2012 08 定例での発表資料です。 http://connpass.com/event/884/

Transcript of UIDのことわかってますか? -フォーマット編-

Page 1: UIDのことわかってますか? -フォーマット編-

UIDのことわかってますか?

-フォーマット編-

なっぴー / @napplecomputer

12年8月25日土曜日

Page 2: UIDのことわかってますか? -フォーマット編-

自己紹介

•なっぴー / @napplecomputer• Androidとか

12年8月25日土曜日

Page 3: UIDのことわかってますか? -フォーマット編-

UIDとは•タグの製造ID• FeliCaではIDm• Unique ID•簡単に取得でき、一意性があるのでこれだけを使っているサービスは多い(と思う)。

12年8月25日土曜日

Page 4: UIDのことわかってますか? -フォーマット編-

UIDとは

•本当にユニークなの?•偽造可能なため、一意なIDとして扱うと・・・

12年8月25日土曜日

Page 5: UIDのことわかってますか? -フォーマット編-

今回はフォーマットの話だけです

12年8月25日土曜日

Page 6: UIDのことわかってますか? -フォーマット編-

きっかけ•タグを発注しUIDの一覧をもらったが、期待していた値と違ったものだった

•→エンディアンが想定していたものと違った

• AndroidのUIDを取得するAPIのドキュメントではUIDのサイズとフォーマットはタグの種類によると書いてある

12年8月25日土曜日

Page 7: UIDのことわかってますか? -フォーマット編-

タグの種類でサイズと

フォーマットが違うの?

12年8月25日土曜日

Page 8: UIDのことわかってますか? -フォーマット編-

使うなら知っておいたほうがいいよね!

12年8月25日土曜日

Page 9: UIDのことわかってますか? -フォーマット編-

UIDのことわかってますか?

-フォーマット編-

なっぴー / @napplecomputer

12年8月25日土曜日

Page 10: UIDのことわかってますか? -フォーマット編-

タグのドキュメントをUIDに絞って読みました

なっぴー / @napplecomputer

12年8月25日土曜日

Page 11: UIDのことわかってますか? -フォーマット編-

MIFARE Ultralight

12年8月25日土曜日

Page 12: UIDのことわかってますか? -フォーマット編-

MIFARE Ultralight• 7byte固定•メモリ領域の1ページ目から2メージ目に記憶

•上位1byteはmanufacturer codeISO/IEC 7816-6/AM1

•誤り確認用のcheck byteがある12年8月25日土曜日

Page 13: UIDのことわかってますか? -フォーマット編-

MIFARE UltralightPage address

Byte numberByte numberByte numberByte numberPage address 0 1 2 3

00h serial numberserial numberserial number check byte 0

01h serial numberserial numberserial numberserial number

02h check byte 1

今回は関係ないよ!今回は関係ないよ!今回は関係ないよ!

12年8月25日土曜日

Page 14: UIDのことわかってますか? -フォーマット編-

check byte• Check Byte0CT ⊕ SN0 ⊕ SN1 ⊕ SN2

• Check Byte1SN3 ⊕ SN4 ⊕ SN5 ⊕ SN6

• CTはCascade Tagこのタグでは88h固定

•⊕は排他的論理和(XOR)12年8月25日土曜日

Page 15: UIDのことわかってますか? -フォーマット編-

MIFARE Classic 1K

12年8月25日土曜日

Page 16: UIDのことわかってますか? -フォーマット編-

MIFARE Classic 1K• 7byte あるいは 4byte• 4byteの場合はUIDではなくNUID(Non-Unique ID)と呼ぶ

• UIDのサイズはATQA(Answer To reQuest, Type A)の7-8bit目で判別

•メモリ領域、Sector0のBlock0(Manufacturer Block)に記録

12年8月25日土曜日

Page 17: UIDのことわかってますか? -フォーマット編-

4 byte

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

上位 下位

NUID 今回は関係ないよ!

Block0/Sector0

12年8月25日土曜日

Page 18: UIDのことわかってますか? -フォーマット編-

7 byte

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

上位 下位

UID 今回は関係ないよ!

Block0/Sector0

12年8月25日土曜日

Page 19: UIDのことわかってますか? -フォーマット編-

FeliCa

12年8月25日土曜日

Page 20: UIDのことわかってますか? -フォーマット編-

FeliCa

• 8byte固定•上位2byteは製造者コード•続く6byteはカード識別番号•カードに複数のシステムが存在する場合は・・・今回は説明しません

12年8月25日土曜日

Page 21: UIDのことわかってますか? -フォーマット編-

FeliCa

D0 D1 D2 D3 D4 D5 D6 D7

IDm

カード識別番号

製造者コード

上位 下位

12年8月25日土曜日

Page 22: UIDのことわかってますか? -フォーマット編-

FeliCa製造者コードと識別番号

製造者コード カード識別番号 製品用例

01fe 乱数 NFCIP-1

02fe 規定なし NFC Forum Type 3 Tag

03fe ソニー株式会社が規定するデータフォーマットコードを含む FelicCa Plug

xxfe 予約予約

その他 カード製造者が規定 FeliCa Standard他

12年8月25日土曜日

Page 23: UIDのことわかってますか? -フォーマット編-

Type V

12年8月25日土曜日

Page 24: UIDのことわかってますか? -フォーマット編-

Type V• 8byte固定•上位1byteは固定値e0h•続く1byteはmanufacturer code•続く1byteと37bit目で製品判別可能(manufacturerで異なる?)

• Androidで読むとエンディアンが。。

12年8月25日土曜日

Page 25: UIDのことわかってますか? -フォーマット編-

Type V

UID7 UID6 UID5 UID4 UID3 UID2 UID1 UID0

UID

serial number

e0h

上位 下位

Tag Type

IC Manufacturer code

12年8月25日土曜日

Page 26: UIDのことわかってますか? -フォーマット編-

Androidで読むと• AndroidでType VのUIDを読むと、他のタグとはエンディアンが逆

• Androidだけでタグを読むサービスなら気にしなくてもいいが、他のリーダでも読み取りすることを考えると正しく読んでおいた方がいい

12年8月25日土曜日

Page 27: UIDのことわかってますか? -フォーマット編-

最後に•持っていない製品のドキュメントは理解しにくい

•使う製品のドキュメントは読んでおくと発見があるかも

•ドキュメントの探し方がわからなくて時間がかかったので、探し方を覚えておいたほうがいい

12年8月25日土曜日

Page 28: UIDのことわかってますか? -フォーマット編-

おしまい

12年8月25日土曜日

Page 29: UIDのことわかってますか? -フォーマット編-

参考資料• MF1S50yyX

http://www.nxp.com/documents/data_sheet/MF1S50YYX.pdf

• MF0ICU1http://www.nxp.com/documents/data_sheet/MF0ICU1.pdf

• AN11042http://www.nxp.com/documents/application_note/AN11042.pdf

• I•CODE SLI Smart Label IC SL2 ICS20 Functional Specificationhttp://www.nxp.com/documents/data_sheet/058031.pdf

• SL2 ICS50/SL2 ICS51http://www.nxp.com/documents/data_sheet/SL136430.pdf

• FeliCa 技術方式の各種コードについてhttp://www.sony.co.jp/Products/felica/business/tech-support/data/code_descriptions_1.2.pdf

12年8月25日土曜日