FeliCa Lite-Sのドキュメントをじっくり読みたいところだが、体力がない。。。
ざっとした印象だけで書くので、また間違っているところがあることだろう。
FeliCa Standardには、相互認証機能がある。
FeliCa Liteには、片側認証(内部認証)がある。
FeliCa Lite-Sにも相互認証機能があるが、それはFeliCa Standardのものとは異なる。
異なるらしい。FeliCa Standardはよくわかってないので、知らないのだ。
あちらには、プロプライエタリなコマンドがあるので、もっと細かい認証が可能であろう。
Lite-Sは、Liteにあった内部認証と、新しくできた外部認証を組み合わせて相互認証を実現するらしい。
■内部認証
これは、読み書きする側が認証するしくみ。
特定の値を書き込むと、特定の値をカードが演算して返すので、その結果を自分が想定する結果と比較する、というもの。
結果が正しければ「これは自分が発行したカードだ」などという判断をする。
その判断は読み書きした人しかできず、カードは単に言われた通りにアクセスできてしまうので「片側」と呼ばれているのだろう。
名前が変わったので、カードを発行した人が自分内部だけで認証する、という意味になったのかな。
■外部認証
これは、カード側が認証するしくみ。
単独でやるのではなく、内部認証に引き続き実施する想定のようだ。
内部認証で得るときには同時に複数のブロックデータを取得するのだが、そのデータを使って読み書き側が演算して認証データを作成。
その認証データを特定のブロックに書き込むと、認証済みEXT_AUTHフラグが立つらしい。
そうなると、ブロックごとに指定できる「認証後読み込み」や「認証後書き込み」の指定がされているブロックにアクセスできるようになるらしい。
なんとなく、わかったような気がする。
EXT_AUTHはいつフラグが落ちるのか、とか、EXT_AUTHはそもそもReadOnlyなのか、とかの疑問はまだ残っているのだが、資料を読んでいけば解決するのだろう。
最後はやはり、実物で確認だな。
これは面白い。「EXT_AUTH」がデバイスをものにないぶでしたか?
返信削除こんばんは。
返信削除>「EXT_AUTH」がデバイスをものにないぶでしたか?
この部分が、日本語の順番になっていませんでした。
単語は、こうではないかと思います。
デバイス : device
もの(物?) : thing, object
ないぶ(内部?) : inner, inside
どうでしょう?
はい。ありがとうございます。My question was supposed to mean "What's actually happening internally (in the reader) when calling the "EXT_AUTH" command?" - since I suspected that some implied "magic" (low-level invocation of proprietary commands) was happening, given that documentation on authentication in FeliCa is scarce.
返信削除> What's actually happening internally (in the reader) when calling the "EXT_AUTH" command?
返信削除「"EXT_AUTH"コマンドが呼び出されたとき、実際には(NFCリーダの)内部で何が行われますか?」
などになると思います。
説明をしていませんでしたが、EXT_AUTHはLite-S内の情報で、メモリを読むときと同じRead without Encrptionコマンドを使って読むことができます。
> since I suspected that some implied "magic" (low-level invocation of proprietary commands) was happening, given that documentation on authentication in FeliCa is scarce.
Lite-Sで使うことができるコマンドはNFC-Fと同じで、
- Polling
- CHECK (Read without Encryption)
- UPDATE (Write without Encryption)
です。
FeliCaのproprietery(プロプライエタリ)コマンドは、「FeliCa Standard」と呼ばれるカードでしか使うことができませんし、ドキュメントは一般には公開されていません。