1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NFCを使ってみる

Posted at

はじめに

今回は、FeliCa Lite-Sのセキュリティ(メッセージ認証)を使用してみました。
カードを認証する内部認証を行ってみました。

FeliCa Lite-S ユーザーズマニュアル
5.4.1 内部認証

使用機器

PN5180 NFC RFセンサーモジュール
FeliCa Lite-S RC-S966

準備

セキュリティを使用するために鍵を準備します。
今回の動作確認では、下記の鍵を使用しました。

CK1 0xAB 0xE6 0xF4 0xE3 0x92 0xEC 0x58 0xB9
CK2 0xD5 0x34 0x5D 0x3D 0xA2 0x8C 0x75 0x15

Writeコマンドを使用して事前に鍵を書き込んでおく必要があります。
※鍵は1度書き込みを行えば電源をオフしても記憶されています。

手順

手順1. ランダムチャレンジ(RC1、RC2)を書き込みます。
手順2. ID、CKV、MAC_Aを同時に読み出します。
手順3. MACを計算して、読み出したMAC_Aと比較します。

FeliCa Lite-Sでのメッセージ認証ではセッション鍵を使用します。
セッション鍵は、鍵(CK1、CK2)とランダムチャレンジ(RC1、RC2)から作られます。

動作確認のためランダムチャレンジの値を固定値としました。
※ランダムチャレンジの値は、電源がオフされると消えてしまいます。

ランダムチャレンジ
RC1 0x40 0x49 0x54 0xF4 0x0B 0xEA 0xA8 0xA8
RC2 0x16 0x0E 0xFD 0x98 0xA4 0x89 0x04 0x16

鍵とランダムチャレンジから生成されるセッション鍵(SK1、SK2)は下記となります。

セッション鍵
SK1 0x02 0x47 0x1A 0xD7 0x51 0xCD 0x00 0x25
SK2 0xD1 0x07 0xAC 0x7C 0xBB 0xB8 0x43 0x45

セッション鍵の生成方法は、
FeliCa Lite-S ユーザーズマニュアル
5.1.1 読み出し時のMAC生成方法
となります。

セッション鍵について
鍵とランダムチャレンジから作成したセッション鍵はパリティが合っていません。パリティの設定は合っていませんがMACは正しく生成されます。DESの計算過程でパリティビットは取り除かれるためだと思われます。

ここまでで、鍵の準備ができました。
鍵の準備ができたので内部認証を行います。

内部認証は、FeliCa Lite-SからIDとCKVとMAC_Aを読み出して、FeliCa Lite-Sから読み出したMACと、自分で算出したMACが一致することで認証となります。

今回の動作確認で使用したFeliCa Lite-SのIDです。

ID
ID 0x01 0x2E 0x50 0xE7 0xDA 0xC7 0x8B 0x47

カード鍵バージョン(CKV)は
0x00
としています。

ランダムチャレンジ(RC1)とセッション鍵(SK1、SK2)と受信データから生成したMACは下記になります。

MAC
MAC 0x68 0x1B 0x71 0xBD 0x41 0xC5 0x03 0x01

FeliCa Lite-Sから取得したMAC_Aの値と一致すれば内部認証が完了となります。

MACの生成方法は、
FeliCa Lite-S ユーザーズマニュアル
5.2.1 読み出し時のMAC生成方法
となります。

MACの生成について
MACを生成するときは、受信データを使用しますが、MAC_Aの受信データは使用しません。
MACを生成する際にブロック番号を使用しますが、こちらについては、MAC_Aのブロック番号も使用します。

今回は、IDとCKVとMAC_Aを読み出したので、MACを生成するのに使用するブロック番号は
0x82 0x00 0x86 0x00 0x91 0x00 0xFF 0xFF
となります。

MACの生成にMAC_Aの受信データは使用しないので、MACの生成にはIDとCKVの受信データを使用します。今回の場合は、

IDの受信データ
0x01 0x2E 0x50 0xE7 0xDA 0xC7 0x8B 0x47
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

CKVの受信データ
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

となります。

mac.png

編集後記

次回は、MACつき書き込みを行ってみたいと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?