Post on 24-May-2015
description
UIDのことわかってますか?
-フォーマット編-
なっぴー / @napplecomputer
12年8月25日土曜日
自己紹介
•なっぴー / @napplecomputer• Androidとか
12年8月25日土曜日
UIDとは•タグの製造ID• FeliCaではIDm• Unique ID•簡単に取得でき、一意性があるのでこれだけを使っているサービスは多い(と思う)。
12年8月25日土曜日
UIDとは
•本当にユニークなの?•偽造可能なため、一意なIDとして扱うと・・・
12年8月25日土曜日
今回はフォーマットの話だけです
12年8月25日土曜日
きっかけ•タグを発注しUIDの一覧をもらったが、期待していた値と違ったものだった
•→エンディアンが想定していたものと違った
• AndroidのUIDを取得するAPIのドキュメントではUIDのサイズとフォーマットはタグの種類によると書いてある
12年8月25日土曜日
タグの種類でサイズと
フォーマットが違うの?
12年8月25日土曜日
使うなら知っておいたほうがいいよね!
12年8月25日土曜日
UIDのことわかってますか?
-フォーマット編-
なっぴー / @napplecomputer
12年8月25日土曜日
タグのドキュメントをUIDに絞って読みました
なっぴー / @napplecomputer
12年8月25日土曜日
MIFARE Ultralight
12年8月25日土曜日
MIFARE Ultralight• 7byte固定•メモリ領域の1ページ目から2メージ目に記憶
•上位1byteはmanufacturer codeISO/IEC 7816-6/AM1
•誤り確認用のcheck byteがある12年8月25日土曜日
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日土曜日
check byte• Check Byte0CT ⊕ SN0 ⊕ SN1 ⊕ SN2
• Check Byte1SN3 ⊕ SN4 ⊕ SN5 ⊕ SN6
• CTはCascade Tagこのタグでは88h固定
•⊕は排他的論理和(XOR)12年8月25日土曜日
MIFARE Classic 1K
12年8月25日土曜日
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日土曜日
4 byte
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
上位 下位
NUID 今回は関係ないよ!
Block0/Sector0
12年8月25日土曜日
7 byte
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
上位 下位
UID 今回は関係ないよ!
Block0/Sector0
12年8月25日土曜日
FeliCa
12年8月25日土曜日
FeliCa
• 8byte固定•上位2byteは製造者コード•続く6byteはカード識別番号•カードに複数のシステムが存在する場合は・・・今回は説明しません
12年8月25日土曜日
FeliCa
D0 D1 D2 D3 D4 D5 D6 D7
IDm
カード識別番号
製造者コード
上位 下位
12年8月25日土曜日
FeliCa製造者コードと識別番号
製造者コード カード識別番号 製品用例
01fe 乱数 NFCIP-1
02fe 規定なし NFC Forum Type 3 Tag
03fe ソニー株式会社が規定するデータフォーマットコードを含む FelicCa Plug
xxfe 予約予約
その他 カード製造者が規定 FeliCa Standard他
12年8月25日土曜日
Type V
12年8月25日土曜日
Type V• 8byte固定•上位1byteは固定値e0h•続く1byteはmanufacturer code•続く1byteと37bit目で製品判別可能(manufacturerで異なる?)
• Androidで読むとエンディアンが。。
12年8月25日土曜日
Type V
UID7 UID6 UID5 UID4 UID3 UID2 UID1 UID0
UID
serial number
e0h
上位 下位
Tag Type
IC Manufacturer code
12年8月25日土曜日
Androidで読むと• AndroidでType VのUIDを読むと、他のタグとはエンディアンが逆
• Androidだけでタグを読むサービスなら気にしなくてもいいが、他のリーダでも読み取りすることを考えると正しく読んでおいた方がいい
12年8月25日土曜日
最後に•持っていない製品のドキュメントは理解しにくい
•使う製品のドキュメントは読んでおくと発見があるかも
•ドキュメントの探し方がわからなくて時間がかかったので、探し方を覚えておいたほうがいい
12年8月25日土曜日
おしまい
12年8月25日土曜日
参考資料• 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日土曜日