being qua being

情報的な何かと政治的な何か

【メモ】ICタグのセキュリティー技術について

IoTがいよいよ普及段階にかかろうとしているが、すべてのものがインターネットに接続する必要性はない。たとえインターネットを通した通信を行う必要がないものであったとしても、ICタグが普及するだけでも従来より効率的かつ安全なデータチェックが可能になる。ICタグについては東芝経産省の委託により報告書を作成していたので、特に気になった点についてまとめた。

(4) 偽造防止
家電、電子部品、アパレル、ブランド品など様々な業界で、国をまたがった偽造品の不正流通による被害が問題となっている。これらの問題に対して、製品に電子タグを貼付し、真贋判定をする運用方法を検討する必要がある。電子タグに、出荷地域、製造年月日、製品型式、製品番号などの情報を格納する。これらの情報を真贋判定時に読み出し確認する。偽造防止を実現することで、消費者の満足度も向上すると考えられる。
この運用における主な課題として、次の 2 点が考えられる。
(a) 企業情報保護(データ改ざん防止)
出荷地域、製品型式などの情報は、改ざんを防止する必要がある。
(b) 企業情報保護(不正読み取り防止)
複製を防止するために真贋判定に用いる情報は、読み出し禁止にして複製
させない仕組みが必要である。


2-7-1 セキュリティ向上のための研究事例
セキュリティを向上するための技術としては、IC カードの分野で研究開発されてきた一般的なセキュリティ技術が挙げられる。たとえば、機密性を向上するためにデータの暗号化を行うことや、データの信頼性を向上するために、デジタル署名を使用するなどがあげられる。しかし、計算能力の制限から一般的なセキュリティ技術をそのままの形で導入することはできない。たとえば、電子タグ上に乱数発生と暗号回路を実装することができれば、電子タグとリーダの間でチャレンジ・レスポンス認証を用いた相互認証を行うことも可能であるが、セキュリティ上、十分な強度を持つ暗号回路を実装することは、コストが大きくなり、低価格の電子タグを実現するために、さまざまなアプローチがとられている。以下に電子タグ特有のセキュリティ向上に関する研究事例を挙げる。

  • Kill command (Self Destruct command)

機密データの保護あるいは匿名性を確保するための簡単な方法として、電子タグ自身を無効化してしまうという方法である。これは Type C にも採用された技術である。無効化した電子タグから機密データを読み出すことはできないと同時に ID も
読み出すことができないため、機密性や匿名性は確保することが可能である。ただし、電子タグを無効にすることにより、再利用ができないという問題点と、本当に無効になったかどうか、目視で確認できないという問題点がある。

  • Blocker Tag

RSA Security の Ari Juels 氏らが提案した方式で、すべての ID を送信するタグを所持することにより、任意の電子タグの特定を防ぐ技術である。この Blocker Tag は正規タグの妨害を行うことにより、正規の電子タグの有効性を失わせている。この技術は正規に電子タグを読み取りたい時にも使用される恐れがあると同時に、位置や向きなどさまざまな要因、あるいは、Blocker Tag自身を遮蔽するなどによって、正常に機能しない場合が考えられるなど不安要素が存在する。また、Blocker Tag を常に携帯する必要性がある。

  • Clipped Tag [3]

IBM の Guenter Karjoth 氏と Paul Moskowitz 氏によって提案された技術で、電子タグのミシン目に沿って消費者がタグを切り取ることによって、アンテナの大部分をはずし、無線到達距離を縮めることができるものである。完全無効化や妨害を行うことなく、所有者のプライバシを保護することを目的としている。アンテナを短くすることにより、10mから約2cm にまで狭めることができる[4]。この距離は、第三者が携帯リーダによって読み出すことは相当難しいと予想される。ただし、第三者が強力かつ高性能のリーダを用いた場合、その範囲は拡大することが予想されている。Killcommand では、タグが無効になったことを容易に見分けることはできなかったが、Clipped Tag においては無線到達距離が縮まっていることが視覚的にわかりやすいという利点がある。

  • Hash Lock

電子タグにリーダを認証させる方式で、正規にリーダと見なした場合のみ、正規の ID をリーダに送信する。最初にキーとして乱数を生成し、そのキーに対するハッシュ値をメタ ID とする。電子タグに対し、正規の ID とメタ ID を書き込んでおき、サーバ側にはメタ ID とキーを登録しておく。ID の読み込み時、リーダからの要求に対し、電子タグはメタ ID を返す。リーダ側は渡されたメタ ID に対するキーを検索し、キーを電子タグに返す。電子タグは渡されたキーからハッシュ値を算出し、それがメタ IDと同一である時、正規のリーダと見なす。リーダの認証を行うことでリーダのなりすましに対して有効であると同時に、乱数により生成されたメタ ID から対象物の特定は一般的にできないため、匿名性に対しても有効である。しかし、電子タグは、常に同一のメタ ID を返すことから、メタ ID を追跡することによって、行動の追跡が行える。また、電子タグ上でハッシュ値を算出することから、ハッシュ回路の実装が不可欠である。

  1. Randomized Hash Lock [5]

リーダからの要求に対し、電子タグは乱数を生成し、その乱数と ID からハッシュ値を計算する。そのハッシュ値と乱数のペアをリーダに送る。サーバにはすべての電子タグのIDが保管してあり、渡された乱数と任意のIDに対するハッシュ値を計算して、渡されたハッシュ値と同じになる ID を見つけ出す。電子タグは、毎回、乱数を生させることにより、リーダに渡す値が毎回異なるし、当然、その値から対象物を特定することもできないため、匿名性に関して有効であると言える。しかし、電子タグを物理的に解析し、ハッシュ関数と ID が得られた場合、電子タグが過去に送信したハッシュ値と乱数を用いることによって、過去に送信した情報を算出することが可能となり、フォワード・セキュア性がないことになる。さらに、サーバ側で、最悪、すべてのIDに対して、ハッシュ値を算出する必要があり、サーバ側の負荷に対する問題がある。

  • Hash Chain [6]

サーバ側で電子タグに対する初期値 s1 を決定し、電子タグの ID と s1をペアで保存しておく。また、s1 を該当 ID の電子タグに書き込む。電子タグ上には二つのハッシュ関数を実装する。それぞれ、H と G とする。リーダの要求に従い、i 番目の値 siのハッシュ値 ai=G(si)を計算し、さらに、値 si を siのハッシュ値で置き換える。つまり、si+1=H(si)を計算し、si+1 を保存する。ai をリーダ経由でサーバに送る。サーバはすべてのIDに対してs1からG(Hi-1(s1))を計算し、その値がaiと同じになるIDを特定する。
物理的に解析し、保存されている si とハッシュ関数が得られたとしても、過去の値、たとえば、si-1 を算出することが困難であるため、過去に送信した情報を算出することは困難であると言える。よって、フォワード・セキュア性を持っていると言える。しかし、サーバ側の負担は Randomized Hash Lock に比べ、さらに増加する。ハッシュ関数に関しては、電子タグ側に二つのハッシュ回路が必要であるが、演算回路を共有することにより、ハッシュ回路一つ分の実装に抑えることができる。
ただし、電子タグ上に実装すべき最適なハッシュ関数が研究段階であることや、サーバ側の負荷に問題があることなどから現実的な運用にまで至っていない。


経済産業省 平成18年度経済産業省委託事業 平成18年度エネルギー使用合理化電子タグシステム開発調査事業(UHF帯電子タグの技術開発事業

http://www.meti.go.jp/policy/it_policy/tag/secua.pdf