最終更新:2013-02-08 (金) 02:16:52 (2704d)  

FeliCa Lite-S
Top / FeliCa Lite-S

メモ

  • FeliCa Lite-Sはセキュリティ機能として、FeliCa Liteが持つMAC(認証コード「Message Authentication Code」)つき読み出し機能に加え、MACつき書き込み機能とそれらを組み合わせた相互認証機能を追加し、ライトデータの改ざん検知、リードアクセス権制御、及びライトアクセス権制御を実現。

仕様

  • IDブロックMAC付きで読み出すこととSTATEブロックにMACつきで書き込むことで相互認証が可能
  • 各ユーザブロックに独立に下記属性を設定可能
    • 読み出し専用または読み出し・書き込み可能
    • 読み出しに認証が必要または不要(認証後読み出し)
    • 書き込みに認証が必要または不要(認証後書き込み)
    • 書き込みにMAC必要または不要(MACつき書き込み)

プロトコル

物理層

データリンク層

  • パケット単位
    フィールドバイト長定義
    プリアンプル?60x00 00 00 00 00 00
    Syncコード20xB24D
    データ長1n
    パケットデータn
    CRC2

アプリケーション層

  • パケットデータの定義

コマンドパケット

  • コマンドコード (1バイト)
  • コマンドデータ

レスポンスパケット

  • レスポンスコード (1バイト)
  • レスポンスデータ

コマンド一覧

  • コマンドコマンドコードレスポンスコード概要一度にアクセスできるブロック数
    Polling0x000x01カードを特定する機能-
    Read Without Encryption0x060x07データ読み出し4
    Write Without Encryption0x080x09データ書き込み1
  • 上記とAuthentication1以外のコマンド以外は無効
  • MACつき書き込み時は2ブロック

レスポンスデータ

  • Polling - 製造IDIDm/製造パラメータPMm

FeliCa/サービス

  • サービスコード
  • サービス番号 (上位6バイト)
    • FeliCa Lite-Sでは全0x0を推奨
  • サービス属性
    2進数16進数サービス読み書き認証
    0010010x0009ランダムサービスR/W不要
    0010110x000BRO不要

FeliCa/ブロック

  • ブロック番号名称有効バイト数備考用途
    0x00S_PAD0?16FeliCa/ユーザブロック任意のデータを格納
    0x01S_PAD1?16
    0x02S_PAD2?16
    0x03S_PAD3?16
    0x04S_PAD4?16
    0x05S_PAD5?16
    0x06S_PAD6?16
    0x07S_PAD7?16
    0x08S_PAD8?16
    0x09S_PAD9?16
    0x0aS_PAD10?16
    0x0bS_PAD11?16
    0x0cS_PAD12?16
    0x0dS_PAD13?16
    0x0eREG?16減算レジスタ(より小さい値のみ書き込める)
    0x80RC16認証機能用ランダムチャレンジ(書き込まれた値からMAC生成に用いるセッション鍵を生成)
    0x81MAC8MAC(メッセージ認証コード)の演算結果を読み出す
    0x82ID16(8/8)FeliCa/システムブロック発行者IDを格納、IDd?,DFC
    0x83D_ID?16デバイスID (IDd?/PMm)
    0x84SER_C2FeliCa/サービスコード
    0x85SYS_C2FeliCa/システムコード
    0x86CKV?2カード鍵バージョン
    0x87CK16FeliCa/カード鍵 - FeliCa/セッション鍵生成の暗号鍵?
    0x88MC13メモリコンフィグレーション (ブロックのアクセス権限設定、NDEF設定、RFパラメータ)
    0x90WCNT?3ライトカウンタ値(リプレイアタック?防止)
    0x91MAC_AR:8、W:11認証機能用MAC(メッセージ認証コード)値の読み書き
    0x92STATE2外部認証?およびポーリングディスエーブルに使用
    0x93CRC_CHECK?1検査用すべてのブロックのCRC結果

FeliCa Liteから追加