Top Banner
MIFARE Classic Access Conditions Dec, 22, 2012 hiro99ma
10

MIFARE ClassicのAccess Conditions

Jul 04, 2015

Download

Technology

Hiroshi Ueno
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MIFARE ClassicのAccess Conditions

MIFARE Classicの Access Conditions

Dec, 22, 2012 hiro99ma

Page 2: MIFARE ClassicのAccess Conditions

MIFARE Classicとは?

● NXP社が作るNFCカードの1つ● 値段は安い● メモリも多い● 鍵を掛けることができる

Page 3: MIFARE ClassicのAccess Conditions

メモリ構成

● 1ブロックは 16byte● 1セクタは以下で構成される

● 3つの data block● 1つの sector trailer

● sector trailerにメモリアクセス方法を設定

data block 16 byte

data block 16 byte

data block 16 byte

sector trailer Key A Access Bits Key B

Page 4: MIFARE ClassicのAccess Conditions

Access Conditionsとは?● メモリへのアクセス設定のこと

– read / write設定● read/write blockでも value blockでもできる

– increment / decrement / transfer / restore設定● value blockのみ

● ブロックごとに設定できる● Access Conditionsは sector trailerに書き込む

– 設定データのことを Access Bitsと呼ぶ– sector trailerには鍵 A、鍵 Bというデータも書く– 鍵 Bは optionalらしい

Page 5: MIFARE ClassicのAccess Conditions

Access Conditionsの設定● Access Conditionsの設定はAccess Bits

● Access Bitsは 4byteで、有効なのは 3byte● 残り 1byteは、ユーザデータ● チェックサムとか鍵バージョンに使うのか?

● この設定値を理解するのが難しい● と、私は思う。

data block 16 byte

data block 16 byte

data block 16 byte

sector trailer Key A Access Bits Key B

Page 6: MIFARE ClassicのAccess Conditions

Access Bits の意味 (1)

● 「状態」は大きく 4つ● 鍵 Aの認証でアクセスできる● 鍵 Bの認証でアクセスできる● 鍵 Aか鍵 Bの認証でアクセスできる● アクセス不可

● data blockと sector trailで異なる● data blockは、 read/write blockと value block● sector trailは、鍵 A、鍵 Bと Access Bits

Page 7: MIFARE ClassicのAccess Conditions

Access Bits の意味 (2)

● data blockの場合● 出荷時は何でもできるように、パターン 0

– たぶん transport configurationと呼ばれている

No. read write increment other

0 鍵 A or 鍵 B 鍵 A or 鍵 B 鍵 A or 鍵 B 鍵 A or 鍵 B

1 鍵 A or 鍵 B 不可 不可 鍵 A or 鍵 B

2 鍵 A or 鍵 B 不可 不可 不可3 鍵 B 鍵 B 不可 不可4 鍵 A or 鍵 B 鍵 B 不可 不可5 鍵 B 不可 不可 不可6 鍵 A or 鍵 B 鍵 B 鍵 B 鍵 A or 鍵 B

7 不可 不可 不可 不可

Page 8: MIFARE ClassicのAccess Conditions

Access Bits の意味 (4)

● sector trailの場合● 出荷時は、何でもできるようにパターン 1

No. 鍵 A Access Bits 鍵 B

read write read write read write

0 不可 鍵 A 鍵 A 不可 鍵 A 鍵 A

1 不可 鍵 A 鍵 A 鍵 A 鍵 A 鍵 A

2 不可 不可 鍵 A 不可 鍵 A 不可3 不可 鍵 B 鍵 A or B 鍵 B 不可 鍵 B

4 不可 鍵 B 鍵 A or B 不可 不可 鍵 B

5 不可 不可 鍵 A or B 鍵 B 不可 不可6 不可 不可 鍵 A or B 不可 不可 不可7 不可 不可 鍵 A or B 不可 不可 不可

Page 9: MIFARE ClassicのAccess Conditions

Access Bitsの値

● パターンが 8つなので、 3bit● その 3bitが 4ブロック分なので、 12bit

– ・・・ではなく、ビット反転などの組み合わせ● 出荷時

● data block : パターン 0● sector trailer : パターン 1

– この組み合わせが、 FFh, 07h, 80h、になる

Page 10: MIFARE ClassicのAccess Conditions

おわりに

● MIFARE ClassicはNFC Forumの規格外だが比較的安く手に入りやすい

● その割りには、鍵が使える● NFC Forumの規格外だが、NXPが自前で

Classic用のNDEF設定を考えているのでAndroidでもそれが使えるのかも

● 最近は Broadcom社のNFCチップが増えているので、 Androidの libnfc-nxpも変わってくるかも● ってより、NCI対応になって汎用化するのかな