Next: III. 耐タンパー性に対する解析法
Up: II.2.2 業界標準
Previous: II.2.2.2 カード用OS
ICカードをPCの周辺機器としてセキュリティ用途に用いたいという要請に
応えることを目的として次のような規格が提案されている.
Microsoft社が1998年9月にスマートカードの
ためのOSとして発表した Smart Card for Windows [SCW99]は,
8KバイトのROMを内蔵したスマートカード用の8ビットOSである[Kum99,His00].
Smart Card for Windowsの狙いは次の4点である.
- スマートカードを,開発ツールと接続性の両方に関して,PC環境で
普及可能にする.
- 開発者が理解でき,それをサポートするソフトウェア開発ツールを提供する.
- カード発行者が希望のコンポーネントを各提供者から選択できるようにする.
- 低価格なスマートカードを配布できるようにする.
Smart Card for Windows の大きな特徴は,Microsoft社のVisual C++や
Visual Basicなど,多くの企業が利用している開発ツールをそのまま使える
ことである.また,Smart Card for Windowsは PC/SCプログラムの一部で
あるため,カードリーダにPC/SC認定のロゴがついてさえいれば,カードを
読み取ることが可能である.
その他の特徴を以下に挙げる.
- スマートカードを使用したシステムを構築する場合に,カード自身は
Smart Card for Windowsで対応,カードにアクセスするためのアプリケーションは
Windows プラットホームで対応する.
- メモリやアプリケーションのニーズに応じて機能を追加/削除し,
OSをカスタマイズできる.
例えば,カードのセキュリティ機能の高低,カードの正常動作に必要な
コマンド数を決めたり,チップメーカを指定することができる.
- アプリケーションをダウンロードして追加できる.
ダウンロード可能なものは言語非依存なバーチャルマシンで,例えば
Visual Basicなどで開発したプログラムである.カード上にアプリケーションを
ダウンロードできるという点では JavaCardと同じである.
- Windowsネットワークで動作する.
- 単純な構造の小さなOSのため,開発コストをJavaCardやMULTOSを用いた
カードに比べて1/5程度におさえることができる.
Smart Card for Windowsはスマートカードを使用するすべてのシステムが
ターゲットである.現在の仕様は8ビットカード対応であるが,今後は
32ビットカードの上位バージョンも予定されている.
Open Card Framework (OCF) 1.0は1998年5月にCardTech/SecureTech East 98
において発表された規格で,複数のベンダーからなるOpen Cardコンソーシアムが
策定した [Ima99,OC].現在はOCF1.1がリリースされている.
現在の市場では多くのスマートカードが出回っているが,各サービスを実現する
プログラムを書く場合,それぞれの機種に応じたプログラムを書く必要がある.
すなわち同じサービスを実現するプログラムでも,機種が異なれば
プログラムを書き換えることが求められる.そのため一度スマートカードの
機種を確定してしまうと,機種を変更するのが容易ではなかった.
つまりアプリケーション開発者から見たとき,スマートカードの機種依存に関して,
少なくとも次の3点を考慮する必要がある.
- カード端末製造者
各製造者ごとにさまざまなインタフェースやプロトコルを用いている.
さらに同じ製造者のカードでも,機能や価格からいろいろなモデルが
存在する.そのためカードに依存したインタフェースなどを考慮しなければ
ならない.
- カードOSプロバイダ
多くのカードOS,APIs(Application Program Interfaces)があるため,
種々のコマンドやレスポンスコードがある.カードOSごとに,これらに
対応させなければならない.
- カード発行者
カードに搭載するアプリケーションを,カードのどこに配置するのかを
決めるのがカード発行者である.そのためアプリケーションコードは
自由に配置できるようにしておかなければならない.
これらの問題に対し,OCFはCardTerminal層,CardService層の2つの層および
ApplicationManagementを提供している.
CardTerminal層は,カード端末製造者に,カード端末の物理的特性などを
与えるものである.また,PC/SC対応のカード端末にアクセスするための
Java APIも提供している.
CardService層は,現存するカードOSとそれらのさまざまな機能を幅広く
扱えるようにするためのインフラを与える.インタフェースの設計は
Javaのプログラミングモデルに適合するような形で行われている.
ApplicationManagementは,1枚のカードに複数のアプリケーションを搭載するときに,
それらのアプリケーションの配置,選択の方法や,リストを作成する方法を
与える.これにより,カード発行者に依存していた部分の問題が解決される.
PC/SCはPC上でのスマートカードを利用するための標準を定めたもので,
複数のベンダーからなるPC/SC Workshopにより
1997年12月にバージョン1.0が公開された [PC].
ISO 7816とEMVを基礎に作られている.
PC/SCの仕様は大きく分けてスマートカード,カードリーダ,カードリソースを
管理するリソースマネージャ,カードを操作するアプリケーションの4つである.
これらの各層間でのインタフェースを定義することで,カード,リーダ,
アプリケーションの組み合わせをできるだけ意識せずにシステムを構築
できるようにすることが,PS/SCの狙いである.
PC/SCを構成する8つのパートは以下の通りである.
- Part 1
- システムの構成,コンポーネントについての概要.
- Part 2
- スマートカードと接続される機器の特性について.
- Part 3
- 接続される機器とのインタフェースについて.
- Part 4
- 接続される機器について.
- Part 5
- リソースマネージャについて.
- Part 6
- スマートカードサービスプロバイダのモデルについて.
- Part 7
- アプリケーション開発ツールについて.
- Part 8
- セキュリティについて.
Next: III. 耐タンパー性に対する解析法
Up: II.2.2 業界標準
Previous: II.2.2.2 カード用OS