3. セキュリティトークン
3.1. セキュリティトークンの標準仕様
ここでは、セキュリティトークンとアプリケーションとのインターフェース標準の仕様に ついて、2つ紹介します。
3.1.1. PC/SC14とWindows のCryptographic Service Provider
どちらもマイクロソフトが提唱しWindowsで標準的に採用されている方式です。PC/SC はインターフェース部分の仕様にとどまらず、セキュリティトークンを含む利用環境全体 を規定しています。Windowsでは。アプリケーションンはCryptoAPIと呼ばれるOSの
13 PKI対応のセキュリティトークンとは、PKIで使われる、公開鍵暗号、共通鍵暗号、メッセージダイジ
ェスト関数などのアルゴリズムが実装されており、公開鍵やプライベート鍵、秘密鍵の生成や保存、加え て公開鍵証明書の管理が出来るものをいいます。
14 PC/SC の標準化団体のURLはhttp://www.pcscworkgroup.com/
62
基本機能をとおしてセキュリティトークンを扱います。セキュリティトークンのベンダー は、セキュリティトークンへのインターフェースモジュールをCSP(Cryptographic
Service Provider)と呼ばれる標準仕様にそって実装します。CSPによって個々のハード
ウェアの特性は吸収され、アプリケーションはCryptoAPIの一連の関数群を使って
Windows証明書ストアをアクセスすることによって自動的にセキュリティトークン内の
証明書を使った処理が行われます。(図 3-1)
したがって、Windows証明書ストアを使っているInternet Explorer15 や、Outlook をは じめとする電子メールソフトはCSPを提供しているセキュリティトークンを使って暗号 化やデジタル署名の処理が可能です。
図 3-1 アプリケーション、CryptoAPI、CSP、セキュリティトークンの関係
セキュリティトークンのセットアッププログラムを事項した後に、レジストリを確認する と、CSPが登録されていることが確認できます。(図 3-2)キーは
HKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥Cryptography¥Defaults¥Provid erです。Image Pathキーで示されているファイルが、選択されているセキュリティトー クンのCSPです。
15 Internet Explorerでは、証明書ストア経由の処理以外にも鍵生成などCSPを使って特殊な操作を行っ
ています。
63
図 3-2 WindowsのレジストリのCSPの情報
Windows XPでは、いくつかのICカード用のCSPが標準で登録されています。また、ソ
フトウェアとして暗号アルゴリズムを実装したモジュールもCSPとして提供されていま す。図 3-2の中で“Microsoft”で始まるキーが該当モジュールです。
3.1.2. PKCS#1116
米国RSAセキュリティ社が策定した仕様です。Windows以外のOSでもサポートされて います。Netscape社のWebブラウザや電子メールソフトがサポートしていました。現在
もMozilla FirefoxやMozilla Thunderbirdがサポートしています。Javaのアプリケーシ
ョンからセキュリティトークンを利用するために、JNI17を使ってPKCS#11モジュールを 扱うライブラリも用意されています。ベンダーは、DLLファイルなどOSに沿った実行形
式でPKCS#11仕様を実装したドライバを提供します。OSが標準でサポートしているも
のではないため、個々のアプリケーションごとにPKCS#11ドライバを登録する必要があ ります。アプリケーションでは、登録されたPKCS#11ドライバのパスを元に実行時にド ライバをロードし、C_Initialize、C_DigestなどといったPKCS#11仕様の既定の関数を 呼び出して利用します。PKCS#11を扱うアプリケーションはCryptoAPIのような抽象化
16 https://www.rsa.com/rsalabs/node.asp?id=2124
17 Java Native Interface JavaのプログラムからOSの基本機能や、他の言語(CやC++など)
で開発されたプログラムを呼び出すための手法
64
したレイヤを経由せず、PKCS#11の仕様をベンダーが実装したドライバを直接呼び出す ため、仕様への準拠の度合い、仕様の網羅度を吸収した実装とする必要があります。