hiro99ma
 FeliCa   Lite へのアクセス
  Write Without Encryption (UPDATE)
  Read Without Encryption (CHECK)
   ▪ どちらも、認証無しでアクセスできる
 読み取られるのは仕方ないとしても、
 データを書き換えられるのは困る
  発行したポイントカードのポイントを
   勝手に増やしたり…
 「発行した人」がカード情報の正当性を
確認するしくみ
 FeliCa Lite は認証せず、なされるがまま
 ▪ そこは、あきらめる
 ユーザーズマニュアルでは
 リーダ / ライタ側 のシステムがカードを認証
  と表現している。
 発行した人もカードも認証するのが
  「相互認証」になる。
 ▪ FeliCa Standard や FeliCa Lite-S
 カード発行時に、カード鍵を書く
  セッション鍵のパラメータになる
  読み込みできないレジスタ
 乱数を書き込んでセッション鍵を作る

  RC レジスタ書込→セッション鍵生成

 IDm   とセッション鍵→ MAC 値
  FeliCa Lite が MAC 値を算出

  発行者も、自分 で MAC 値 を算出

 MAC   値を比較
自分の管理

                               ・鍵バージョン
                               ・カード鍵
 発行者
      カード鍵


      NFC


カード鍵は、 FeliCa Lite の
書込専用レジスタなので、
直接読み出すことはできない
自分の管理                                                自分で
                                                      MAC を計算
                             カード鍵
           カード鍵


                        RC
                                      IDm

発行者           発行者                   発行者
                  IDm と MAC                             MAC( 計算 )
   RC 書込
                  読込
                              IDm と MAC
    NFC           NFC
                                          MAC( 読込 )
カード鍵と RC から   セッション鍵と IDm から
セッション鍵生成      MAC 生成                                    比較
 カード鍵

  鍵バージョンで管理 ( レジスタがある )
 全員に同じカード鍵を使うと、
一人のカード鍵が盗まれると全滅
  総当たりすれば、わかってしまう
 発行カードごとにカード鍵を管理?
  管理が大変!
  鍵データベースがすごいことに・・・
 個別化 カード鍵
 鍵バージョンに 1           つのマスターカード鍵
  マスターカード鍵と IDm              からカード鍵
自分の管理


 ・鍵バージョン               個別化カード鍵
 ・マスターカード鍵

                                        MAC を計算
              IDm   マスターカード鍵と IDm から
                    「カードごとのカード鍵」が
        NFC
                    生成できる ( 個別化カード鍵 )
 カードごとに鍵が異なるのに、
管理するのはマスターカード鍵だけ
 個別化カード鍵は計算で得られる
 1枚のカード鍵が漏れても、影響が少ない

 1枚ずつ IDm が異なるので、カード鍵も異なる
 さっきまでの話は、カード偽造について
 正しいカードに違う値を書き込んだら?
 カードは助けてくれない

 必要が無いなら、 Read Only にしておく

 データの書き込み方に工夫を凝らす
  ▪ エンコードした値にするなど
  ▪ MAC を使うといいのかな
 強固にしたいなら、 FeliCa      Standard を
  値段と必要なセキュリティとの相談
  相互認証
 FeliCa   Lite-S
  Standard とは異なる相互認証

 MIFARE

  Ultralight C : 保護機能がある

  Classic : 鍵をかけられる

  DESFire : よく知らない・・・

FeliCa Liteの片側認証

  • 1.
  • 2.
     FeliCa Lite へのアクセス  Write Without Encryption (UPDATE)  Read Without Encryption (CHECK) ▪ どちらも、認証無しでアクセスできる  読み取られるのは仕方ないとしても、 データを書き換えられるのは困る  発行したポイントカードのポイントを 勝手に増やしたり…
  • 3.
     「発行した人」がカード情報の正当性を 確認するしくみ  FeliCaLite は認証せず、なされるがまま ▪ そこは、あきらめる  ユーザーズマニュアルでは リーダ / ライタ側 のシステムがカードを認証 と表現している。  発行した人もカードも認証するのが 「相互認証」になる。 ▪ FeliCa Standard や FeliCa Lite-S
  • 4.
     カード発行時に、カード鍵を書く セッション鍵のパラメータになる  読み込みできないレジスタ  乱数を書き込んでセッション鍵を作る  RC レジスタ書込→セッション鍵生成  IDm とセッション鍵→ MAC 値  FeliCa Lite が MAC 値を算出  発行者も、自分 で MAC 値 を算出  MAC 値を比較
  • 5.
    自分の管理 ・鍵バージョン ・カード鍵 発行者 カード鍵 NFC カード鍵は、 FeliCa Lite の 書込専用レジスタなので、 直接読み出すことはできない
  • 6.
    自分の管理 自分で MAC を計算 カード鍵 カード鍵 RC IDm 発行者 発行者 発行者 IDm と MAC MAC( 計算 ) RC 書込 読込 IDm と MAC NFC NFC MAC( 読込 ) カード鍵と RC から セッション鍵と IDm から セッション鍵生成 MAC 生成 比較
  • 7.
     カード鍵 鍵バージョンで管理 ( レジスタがある )  全員に同じカード鍵を使うと、 一人のカード鍵が盗まれると全滅  総当たりすれば、わかってしまう  発行カードごとにカード鍵を管理?  管理が大変!  鍵データベースがすごいことに・・・  個別化 カード鍵
  • 8.
     鍵バージョンに 1 つのマスターカード鍵  マスターカード鍵と IDm からカード鍵 自分の管理 ・鍵バージョン 個別化カード鍵 ・マスターカード鍵 MAC を計算 IDm マスターカード鍵と IDm から 「カードごとのカード鍵」が NFC 生成できる ( 個別化カード鍵 )
  • 9.
     カードごとに鍵が異なるのに、 管理するのはマスターカード鍵だけ  個別化カード鍵は計算で得られる 1枚のカード鍵が漏れても、影響が少ない  1枚ずつ IDm が異なるので、カード鍵も異なる
  • 10.
     さっきまでの話は、カード偽造について  正しいカードに違う値を書き込んだら? カードは助けてくれない  必要が無いなら、 Read Only にしておく  データの書き込み方に工夫を凝らす ▪ エンコードした値にするなど ▪ MAC を使うといいのかな
  • 11.
     強固にしたいなら、 FeliCa Standard を  値段と必要なセキュリティとの相談  相互認証  FeliCa Lite-S  Standard とは異なる相互認証  MIFARE  Ultralight C : 保護機能がある  Classic : 鍵をかけられる  DESFire : よく知らない・・・