2014/06/21

[felica]相互認証(1) - 内部認証

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が、何か良くわからない(資料の通りにやれば良いのだろうが)。

なんか、暗号化の知識がないから書いてある通りにやっているけど、知っている人からすると関数一発で終わる、みたいなものではないんだろうか、と変な心配をしている。

2-1 基本

 

スターターマニュアルには、MAC_Aと一緒にID, CKV, WCNTを読み出すように書いているが、ユーザーズマニュアルではIDとWCNTになっている。
最低限、IDとWCNTは必要だからってことでいいのかな?

0 件のコメント:

コメントを投稿

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