2012/01/14

[mifare]Mifareのアクセスコンディション

前の記事でもちょろっと書いたが、Mifareのアクセスコンディションはめんどくさい。
しかし、読めばわかるので忘れないように書いておこう。
アクセスコンディションへの書き込みはまだやってないので、間違ってたらごめんなさい。

説明をするよりも、解析ツールを作った。
Excelだ。
https://sites.google.com/site/hiro99ma/home/experiment/card_security/type/MifareAccessCondition.xls

入力するところは薄い黄色セル、結果は青文字にしている。
あまり特殊なことはせず、仕様書にあるとおりに解析しただけだ。

Access conditionからAccess bitsを算出

自分でアクセスコンディションを設定したい場合は、C1, C2, C3に値を書き込むと、すぐ下のbyte6, 7, 8にアクセスコンディション値が出てくる。

Access bitsからAccess conditionを逆算

アクセスコンディション値を解析したい場合は、下側にあbyte6, 7, 8に書き込むと、黄色い表に結果が出てくる。
下の方に、OKとかNGとかが出てくる表がある。
これはチェック用で、byte6, 7, 8の値に矛盾があるとNGが出てくる。



neverは「不可」と解釈した。
Sector Trailの書き込み属性を「不可」にすると、きっともう書き込みができないのだろうと思う。
最初はneverを「認証不要」だと思っていたので、「なんで毎回Authenticationがいるんだ」と悩んでいた。
まあ、そういうこともある。
なお、byte6~8はアクセスコンディションで、byte9はユーザ用である。
なので、鍵バージョンの管理なんかに使うといいんじゃないだろうかね。

FeliCa Liteの運用と同じように考えると、鍵はreadを不可にし、writeのみ許可にしておくのがよいかと思う。
writeも不可にするといいのかもしれないが、何らかの理由で鍵が漏れてしまった場合のことを考えると、再度カードを作り直すよりも、鍵だけ書き直すようになるのではなかろうか。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。