SlideShare a Scribd company logo
1 of 10
MIFARE Classic の Access Conditions




                        Dec, 22, 2012 hiro99ma
MIFARE Classic とは?
●   NXP 社が作る NFC カードの1つ
●   値段は安い
●   メモリも多い
●   鍵を掛けることができる
メモリ構成
●   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
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 らしい
Access Conditions の設定
●   Access Conditions の設定は Access Bits
         data block                16 byte
         data block                16 byte
         data block                16 byte
        sector trailer   Key A   Access Bits   Key B



●   Access Bits は 4byte で、有効なのは 3byte
    ●
        残り 1byte は、ユーザデータ
    ●   チェックサムとか鍵バージョンに使うのか?
●   この設定値を理解するのが難しい
    ●   と、私は思う。
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
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         不可           不可           不可            不可
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     不可      不可          不可
Access Bits の値
●
    パターンが 8 つなので、 3bit
    ●
        その 3bit が 4 ブロック分なので、 12bit
        –   ・・・ではなく、ビット反転などの組み合わせ
●   出荷時
    ●   data block : パターン 0
    ●   sector trailer : パターン 1
        –   この組み合わせが、 FFh, 07h, 80h 、になる
おわりに
●   MIFARE Classic は NFC Forum の規格外だが
        比較的安く手に入りやすい
    ●   その割りには、鍵が使える
●   NFC Forum の規格外だが、 NXP が自前で
    Classic 用の NDEF 設定を考えているので
    Android でもそれが使えるのかも
●
    最近は Broadcom 社の NFC チップが
    増えているので、 Android の libnfc-nxp も
    変わってくるかも
    ●
        ってより、 NCI 対応になって汎用化するのかな

More Related Content

What's hot

Ndefってなんだろう
NdefってなんだろうNdefってなんだろう
Ndefってなんだろう
Tomoki YAMASHITA
 

What's hot (20)

Git超入門_座学編.pdf
Git超入門_座学編.pdfGit超入門_座学編.pdf
Git超入門_座学編.pdf
 
Windows 10 mobileでnfc~suica・edy対応編~(公開用)
Windows 10 mobileでnfc~suica・edy対応編~(公開用)Windows 10 mobileでnfc~suica・edy対応編~(公開用)
Windows 10 mobileでnfc~suica・edy対応編~(公開用)
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
 
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたIntro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
 
FreeBSD and Drivers
FreeBSD and DriversFreeBSD and Drivers
FreeBSD and Drivers
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターン
 
Cgroupあれこれ-第4回コンテナ型仮想化の情報交換会資料
Cgroupあれこれ-第4回コンテナ型仮想化の情報交換会資料Cgroupあれこれ-第4回コンテナ型仮想化の情報交換会資料
Cgroupあれこれ-第4回コンテナ型仮想化の情報交換会資料
 
12.03.17 第1回NFC勉強会資料
12.03.17 第1回NFC勉強会資料12.03.17 第1回NFC勉強会資料
12.03.17 第1回NFC勉強会資料
 
Ndefってなんだろう
NdefってなんだろうNdefってなんだろう
Ndefってなんだろう
 
Play with UEFI
Play with UEFIPlay with UEFI
Play with UEFI
 
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかBoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
 
Laravelとテストについて
LaravelとテストについてLaravelとテストについて
Laravelとテストについて
 
NDEF Writerを使ってみよう
NDEF Writerを使ってみようNDEF Writerを使ってみよう
NDEF Writerを使ってみよう
 
いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方
 
月刊NDEF 2013年 1、2、3月号
月刊NDEF 2013年 1、2、3月号月刊NDEF 2013年 1、2、3月号
月刊NDEF 2013年 1、2、3月号
 
分散システムの限界について知ろう
分散システムの限界について知ろう分散システムの限界について知ろう
分散システムの限界について知ろう
 
5分でわかるWebRTCの仕組み - html5minutes vol.01
5分でわかるWebRTCの仕組み - html5minutes vol.015分でわかるWebRTCの仕組み - html5minutes vol.01
5分でわかるWebRTCの仕組み - html5minutes vol.01
 
FeliCa/NFCの概説とAndroidの対応状況
FeliCa/NFCの概説とAndroidの対応状況FeliCa/NFCの概説とAndroidの対応状況
FeliCa/NFCの概説とAndroidの対応状況
 
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
 
CTF for ビギナーズ バイナリ講習資料
CTF for ビギナーズ バイナリ講習資料CTF for ビギナーズ バイナリ講習資料
CTF for ビギナーズ バイナリ講習資料
 

More from Hirokuma Ueno

SNEPは大変だった
SNEPは大変だったSNEPは大変だった
SNEPは大変だった
Hirokuma Ueno
 
一人でもSNEP開発
一人でもSNEP開発一人でもSNEP開発
一人でもSNEP開発
Hirokuma Ueno
 
NFCIP-1を斜め読み
NFCIP-1を斜め読みNFCIP-1を斜め読み
NFCIP-1を斜め読み
Hirokuma Ueno
 
SDK for NFC Starter Kit(2) 使ってみる
SDK for NFC Starter Kit(2) 使ってみるSDK for NFC Starter Kit(2) 使ってみる
SDK for NFC Starter Kit(2) 使ってみる
Hirokuma Ueno
 

More from Hirokuma Ueno (20)

nRF51のGPIOTEについて
nRF51のGPIOTEについてnRF51のGPIOTEについて
nRF51のGPIOTEについて
 
Nordic nRF51822でBLEしてみました 2
Nordic nRF51822でBLEしてみました 2Nordic nRF51822でBLEしてみました 2
Nordic nRF51822でBLEしてみました 2
 
Nordic nRF51822でBLEしてみました
Nordic nRF51822でBLEしてみましたNordic nRF51822でBLEしてみました
Nordic nRF51822でBLEしてみました
 
About FeliCa Lite-S
About FeliCa Lite-SAbout FeliCa Lite-S
About FeliCa Lite-S
 
月刊NDEF 2013年12月号
月刊NDEF 2013年12月号月刊NDEF 2013年12月号
月刊NDEF 2013年12月号
 
月刊NDEF 2013年8月号
月刊NDEF 2013年8月号月刊NDEF 2013年8月号
月刊NDEF 2013年8月号
 
月刊NDEF 5月号
月刊NDEF 5月号月刊NDEF 5月号
月刊NDEF 5月号
 
旅行カバンとNFC
旅行カバンとNFC旅行カバンとNFC
旅行カバンとNFC
 
NDEF WriterとOSとPaSoRi
NDEF WriterとOSとPaSoRiNDEF WriterとOSとPaSoRi
NDEF WriterとOSとPaSoRi
 
月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)
 
月刊NDEF 2013年2月号(臨時号)
月刊NDEF 2013年2月号(臨時号)月刊NDEF 2013年2月号(臨時号)
月刊NDEF 2013年2月号(臨時号)
 
月刊NDEF 2013年1月号
月刊NDEF 2013年1月号月刊NDEF 2013年1月号
月刊NDEF 2013年1月号
 
SNEPは大変だった
SNEPは大変だったSNEPは大変だった
SNEPは大変だった
 
NFC切手
NFC切手NFC切手
NFC切手
 
NFCの汎化
NFCの汎化NFCの汎化
NFCの汎化
 
一人でもSNEP開発
一人でもSNEP開発一人でもSNEP開発
一人でもSNEP開発
 
NFCIP-1を斜め読み
NFCIP-1を斜め読みNFCIP-1を斜め読み
NFCIP-1を斜め読み
 
らくがき
らくがきらくがき
らくがき
 
NFCテルミン
NFCテルミンNFCテルミン
NFCテルミン
 
SDK for NFC Starter Kit(2) 使ってみる
SDK for NFC Starter Kit(2) 使ってみるSDK for NFC Starter Kit(2) 使ってみる
SDK for NFC Starter Kit(2) 使ってみる
 

Recently uploaded

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
atsushi061452
 

Recently uploaded (12)

5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 

MIFARE ClassicのAccess Conditions

  • 1. MIFARE Classic の Access Conditions Dec, 22, 2012 hiro99ma
  • 2. MIFARE Classic とは? ● NXP 社が作る NFC カードの1つ ● 値段は安い ● メモリも多い ● 鍵を掛けることができる
  • 3. メモリ構成 ● 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
  • 4. 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 らしい
  • 5. Access Conditions の設定 ● Access Conditions の設定は Access Bits data block 16 byte data block 16 byte data block 16 byte sector trailer Key A Access Bits Key B ● Access Bits は 4byte で、有効なのは 3byte ● 残り 1byte は、ユーザデータ ● チェックサムとか鍵バージョンに使うのか? ● この設定値を理解するのが難しい ● と、私は思う。
  • 6. 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
  • 7. 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 不可 不可 不可 不可
  • 8. 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 不可 不可 不可
  • 9. Access Bits の値 ● パターンが 8 つなので、 3bit ● その 3bit が 4 ブロック分なので、 12bit – ・・・ではなく、ビット反転などの組み合わせ ● 出荷時 ● data block : パターン 0 ● sector trailer : パターン 1 – この組み合わせが、 FFh, 07h, 80h 、になる
  • 10. おわりに ● MIFARE Classic は NFC Forum の規格外だが 比較的安く手に入りやすい ● その割りには、鍵が使える ● NFC Forum の規格外だが、 NXP が自前で Classic 用の NDEF 設定を考えているので Android でもそれが使えるのかも ● 最近は Broadcom 社の NFC チップが 増えているので、 Android の libnfc-nxp も 変わってくるかも ● ってより、 NCI 対応になって汎用化するのかな