2012/04/04

FeliCa Lite-Sの相互認証はこんな感じだろうか

FeliCa Lite-Sのドキュメントをじっくり読みたいところだが、体力がない。。。
ざっとした印象だけで書くので、また間違っているところがあることだろう。


FeliCa Standardには、相互認証機能がある。
FeliCa Liteには、片側認証(内部認証)がある。

FeliCa Lite-Sにも相互認証機能があるが、それはFeliCa Standardのものとは異なる。
異なるらしい。FeliCa Standardはよくわかってないので、知らないのだ。
あちらには、プロプライエタリなコマンドがあるので、もっと細かい認証が可能であろう。

Lite-Sは、Liteにあった内部認証と、新しくできた外部認証を組み合わせて相互認証を実現するらしい。

 

■内部認証

これは、読み書きする側が認証するしくみ。
特定の値を書き込むと、特定の値をカードが演算して返すので、その結果を自分が想定する結果と比較する、というもの。
結果が正しければ「これは自分が発行したカードだ」などという判断をする。
その判断は読み書きした人しかできず、カードは単に言われた通りにアクセスできてしまうので「片側」と呼ばれているのだろう。

名前が変わったので、カードを発行した人が自分内部だけで認証する、という意味になったのかな。

 

■外部認証

これは、カード側が認証するしくみ。
単独でやるのではなく、内部認証に引き続き実施する想定のようだ。
内部認証で得るときには同時に複数のブロックデータを取得するのだが、そのデータを使って読み書き側が演算して認証データを作成。
その認証データを特定のブロックに書き込むと、認証済みEXT_AUTHフラグが立つらしい。
そうなると、ブロックごとに指定できる「認証後読み込み」や「認証後書き込み」の指定がされているブロックにアクセスできるようになるらしい。


なんとなく、わかったような気がする。

EXT_AUTHはいつフラグが落ちるのか、とか、EXT_AUTHはそもそもReadOnlyなのか、とかの疑問はまだ残っているのだが、資料を読んでいけば解決するのだろう。

最後はやはり、実物で確認だな。