FeliCa Lite-Sの最大の売り、相互認証。
それを実現するために、内部認証と外部認証を行う。
内部認証
これは、従来のFeliCa Liteにもあった「片側認証」である。
片側認証については、いくつか書いてきた。
リーダライタから上位が、「このカードは自分が発行したものだ」と認証するしくみ。
偽造カードじゃないことを確認するしくみ、といえばよいか。
さて、FeliCa Lite-SになってMAC_Aというレジスタが追加されたが、「MACまたはMAC_Aを使います」ということなので、どちらのレジスタでも同じことができるようだ。
ただ、MACとMAC_Aでは計算方法が異なるそうだ。
以前作った片側認証アプリのレジスタ名だけ変更してみたが、MACの値が一致しなかった。
(前ブログで、MAC_Aが読み込み失敗した、という現象は発生せず。IDブロックと一緒に読み込んだからか。)
違いは、ブロックデータの3DES暗号化でのIVが、RC1なのか、RC1をさらに3DES暗号化したものかどうかだけのようだ。
RC1の3DES暗号化に使うIVが、何か良くわからない(資料の通りにやれば良いのだろうが)。
なんか、暗号化の知識がないから書いてある通りにやっているけど、知っている人からすると関数一発で終わる、みたいなものではないんだろうか、と変な心配をしている。
スターターマニュアルには、MAC_Aと一緒にID, CKV, WCNTを読み出すように書いているが、ユーザーズマニュアルではIDとWCNTになっている。
最低限、IDとWCNTは必要だからってことでいいのかな?
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。